Monday, March 21, 2011

Meringkas Program PHP

Mungkin para programmer php udah tau dan familiar sama yang namanya ngringkes program. Menurut penelusuranku, berarti ku nyontoh coding php orang lain. Program php diringkas dengan cara beberapa proses menjadi satu file saja (yang berkaitan, atau dengan kata lain satu menu). Tapi, ku nyoba buat (eh gak nyoba lagi, tapi ku udah berkali-kali buat program) program kompleks banyak dengan menu dengan 3 file saja. Lebih ringkas, file penyimpanan jadi lebih longgar. Mungkin itu salah satu alternative kalo kita pengen punya web hosting yang murah dengan kapasitas yang kecil.

3 file tersebut kita pisah menurut fungsinya. Index.php, class.php, dan fungsi.php. struktur kayak gini udah pasaran di dunia joomla. Tapi, kalo dibuat untuk web yang php murni, kan lebih ringkas, lebih enak ngeditnya, gak makan tempat.

File index.php dijadiin desainnya, contohnya kayak gini:


< ?
Ob_start();
? >
< html>
< body >
< table width=’100%’ >
< tr >
< td width=’20%’ >
Menu
< br >
< ahref=’index.php?task=lihat’>Lihat< /a >
< a>Insert< /a >
< a>Edit< /a >
Atau menu-menu yang laen.
< td >

< td >
Include ( ‘class.php’);
< td >
< tr >


< /body >
< /html >

Terus, file class.php dijadiin sebagai file tempat dimana kita menaruh atau me-list fungsi-fungsi yang kita buat. Misalnya kayak gini:

< ?
Incude ( ‘fungsi.php’);

$cari = $_GET [‘cari’];
switch($cari)
{
case 'index':
fungsi::index($option);
break;
case 'insert':
fungsi::insert($option);
break;
case 'insert2':
fungsi::insert2($option);
break;
case 'lihat':
fungsi::lihat($option);
break;
case 'edit':
fungsi::edit($option);
break;
case 'edit2':
fungsi::edit2($option);
break;
case 'hapus':
fungsi::hapus($option);
break;
case 'pesan':
fungsi::pesan($option);
break;
default:
fungsi::index($option);
break;
}
? >
Bingung? Gini, tuh maksudnya, seandainya ada command lihat akan pergi menuju ke fungsi lihat, dan begitu juga seterusnya. Masih bingung. Lha fungsi-fungsi itu ada dimana? Kan ada include fungsi.php. jadi fungsi-fungsi yang kita list di class.php ada di file fungsi.php. terus jangan lupa include untuk mysql koneksi di database. Terserah mau ditaruh dimana aja. Mending di file index.php biar lebih aman.

Untuk file fungsi.php

< ?
Class fungsi
{

Function index()
{
Echo”
Selamat datang di web ku, < br>
< a href=’index.php? cari=insert’>Insert</ a >
< br>
<a href=’index.php? cari=edit’> Edit</ a>< br >
Dst…

”;
}

Function insert ()
{
< form method=’post’ action=’index.php?cari=insert2’ >

Nama : < input type=’text’ name=’nama’ >
< br>
Alamat : < input type=’text’ name=’alamat’ >
< br>
< input type=’submit’ value=’simpan’ >
</ form >
}

Function insert2()
{
$nama=$_POST[‘nama’];
$alamat=$_POST[‘alamat’];
$a=mysql_query(“insert into nyoba values (‘’, ‘$nama’, ‘$alamat’)”);
If ($a)
{header (“Location: index.php?cari=pesan&pesan=Data Sudah Masuk&balik=insert”);}
Else {echo” error”;}

}

Function pesan()
{
$pesan=$_GET[‘pesan’];
$balik=$_GET[‘balik’];

Echo”
$pesan, < a href=’index.php?cari=balik’> kembali < /a>
”;
}

Function lihat ()
{
Echo”
< table >

< tr>
< td > Nama < /td >
< td >Alamat < /td >
< td >Hapus < /td >
< tr >
“;
$a1=mysql_query(“select *from nyoba”);
While($a=mysql_fetch_array($a1))
{
Echo”
< tr >
< td >
< a href=’index.php?cari=edit&id=$a[id]’ >
$a[nama]
< /a >
< /td >
< td >
$a[alamat]
< /td >

< td >
< a href=’index.php?cari=hapus&id=$a[id]&db=nyoba&balik=lihat’ >
$a[nama]
< /a >
< /td >

< /tr >
”;
}

</ table >
”;
}

Function edit ()
{
$id=$_GET[‘id’];
$a1=mysql_query(“select *from nyoba where id=’$id’”);
While ($a=mysql_fetch_array($a1))
{
$nama=$a[nama];
$alamat=$a[alamat];
}
Echo”
< form method=’post’ action=’index.php?cari=edit2’ >
Nama : < input type=’text’ name=’nama’ value=’$nama’ >
< br>
Alamat: < input type=’text’ name=’alamat’ value=’$alamat’ >
< input type=’hidden’ name=’id’ value=’$id’ >
< input type=’submit’ value=’GANTI’ >
< /form>

}

Function edit2()
{
$id=$_POST[‘id’];
$nama=$_POST[‘nama’];
$alamat=$_POST[‘alamat’];

$a=mysql_query(“update nyoba set nama=’$nama’, alamat=’$alamat’ where id=’$id’”);
If ($a)
{header (“location: index.php?cari=pesan&pesan=Data Sudah Diganti&balik=lihat”);}
Else
{echo”error”;}
}

Function hapus()
{
$id=$_GET[‘id’];
$db=$_GET[‘db’];
$a=mysql_query(“delete *from $db where id=’$id’”);
If ($a)
{header (“location: index.php?cari=pesan&pesan=Data Sudah Dihapus&balik=$balik”);}
Else
{echo”error”;}

}
// lha kalo fungsi hapus kayak gitu kan enak, seumpamanya ada 10 menu atau 20 menu atau buanyak-nyak menu, dan setiap menu harus ada fungsi untuk menghapus kan kita Cuma buat 1 fungsi hapus aja untuk semua menu. Dan fungsi hapus fleksibel karena juga menangkap nama table apa yang harus kita hapus yaitu $db, dan $balik untuk menentukan kemana setelah data tersebut dihapus.
}

? >

Kelebihan:

Kelebihan dalam program seperti di atas dapat dijabarkan, sbb:

Lebih ringkas, karena semua fungsi dijadikan 3 file. Tidak seperti program waktu kita baru lulus kuliah, setiap 1 proses 1 file (seandainya 100 fungsi berarti 100 file), jadi di web hosting buanyak file. Ku pernah buat program dengan struktur seperti itu (dijadiin 3 file), itungannya kB loh, padahal terdapat banyak proses. Seandainya dibuat 1 proses 1 file bisa 1 MB atau lebih. Iya toh?...

Hemat file penyimpanan/ web hosting...

Kalo web kompleks mudah untuk pembagian tugas, untuk desainer Cuma ngurusi index.php, sedangkan programmer ngurusin class.php dan fungsi.php nya aja.

Kelemahan:

Kalo kita ngedit satu fungsi, kita bingung nyarinya (seandainya beribu-ribu baris codingnya). Tapi dapat kita cegah kalo pake editplus. Kayak pake netbeans atau aplikasi untuk create program java. Jadi setiap function bisa diklik, kalo diklik langsung tampil isinya.

Saran:

Kalo mau nyoba pake bahasa sendiri aja (coding sendiri), kalo kopi paste dari ini gak bisa jalan cs buatnya kesusu-susu, mungkin ada coding yang salah. (ya maaaaaaappp…)

Jangan lupa buat databasenya..

Struktur pemrograman kayak gitu lumrah kita jumpai di joomla. Coba liat aja komponen jommla...

Satu lagi kalo buat program gak usah bingung, kalo ada yang sulit ya di akali, gitu aja kok repot. ... hehehe...

0 komentar:

Post a Comment

Thanks a lot for your attention...

Twitter Delicious Facebook Digg Stumbleupon Favorites More

 
Design by Free WordPress Themes | Bloggerized by Lasantha - Premium Blogger Themes | Best Web Hosting