Nomor 5, Tahun I,   Oktober 1999

Web Database dengan PHP3

Home
Halaman Muka

SAMBA sebagai File Server dan Print Server Windows  

Melihat Traffic Router dengan MRTG pada Linux 

SEKILAS KPLI JAKARTA

Cara Menjadi anggota KPLI-Jakarta

1 Pendahuluan

PHP3 adalah PHP versi 3, merupakan bahasa yang disertakan dalam dokumen HTML, bekerja di sisi server sehingga script-nya tak tampak di sisi client. PHP3 dirancang untuk dapat bekerja sama dengan database server dan dibuat sedemikian rupa sehingga pembuatan dokumen HTML yang dapat mengakses database menjadi begitu mudah.

Diperkenalkan pertama kali oleh Rasmus Lerdorf di akhir 1994, PHP3 sampai pertengahan 1998 lalu telah dipakai di 150.000 situs web dunia.

2 Mengapa PHP3

Aplikasi yang dibangun dengan PHP3 memiliki nilai tambah tersendiri. Disamping keterpaduannya yang kuat dengan sejumlah besar database ternama, PHP3 yang tertanam dalam dokumen HTML jelas bisa diakses oleh seluruh browser di seluruh platform yang ada. Dengan kata lain aplikasi yang dibangun dengan PHP3 berlaku secara universal.
2.1 Mendukung Open Source

PHP3 juga open source([footnote] open source, kode program diberikan dan biasanya secara cuma-cuma) , sehingga sangat mungkin bagi kita untuk menambah fasilitasnya sekehendak hati.

2.2 Multiplatform

Ketersediaan source code dalam bahasa C membuat PHP3 sangat universal dan mudah disesuaikan dengan platform yang kita gunakan, sehingga tidak perlu keraguan untuk menginvestasikan waktu dan tenaga guna mengembangkan aplikasi PHP3 ini.

2.3 Modular

PHP3 juga modular, kemampuannya dalam mengenal berbagai database server tidak perlu terpasang seluruhnya. Hal ini penting guna efisiensi dan penghematan memory. Jadi misalkan database yang kita gunakan adalah Postgres maka kita tidak perlu meng-compile PHP3 untuk mendukung database yang lain.

2.4 Menyatu dengan HTML

Penulisan script PHP3 dapat menyatu dengan dokumen HTML sehingga memudahkan pembuatannya. Untuk membedakan antara sintaks HTML dan PHP maka dibuatlah kesepakatan : script PHP3 dimulai dengan tag <? dan diakhiri dengan ?>. Contoh :

<html><body>
Ditulis dengan HTML
<?
echo ``Ditulis dengan PHP'';
?>
</body></html>

Contoh di atas jika source-nya dilihat dengan browser akan tampak :

<html><body>
Ditulis dengan HTML
Ditulis dengan PHP
</body></html>

2.5 Konektivitas yang Tinggi

Meski PHP3 bekerja di sisi server (menyatu dengan web server), PHP juga dapat mengakses database server yang berada di remote host. Tentu saja hal ini perlu didukung oleh database servernya itu sendiri, karena tidak semua database server menyediakan fasilitas remote access. Selama masa pembuatan, browser, webserver, dan database server dapat menyatu dalam sebuah host, jadi tidak harus on-line untuk mencoba aplikasi yang dibuat dengan PHP3.

3 Cara Kerja

Seperti yang pernah disebutkan bahwa PHP3 adalah aplikasi di sisi server atau dengan kata lain beban kerja ada di server bukan di client (baca: browser). Pada saat browser meminta dokumen PHP3, webserver langsung menggunakan modul PHP3 untuk mengolah dokumen tersebut. Jika pada

dokumen terkandung fungsi yang mengakses database maka modul PHP3 menghubungi database server yang bersangkutan. Dokumen yang berformat PHP3 dikembalikan webserver dalam format HTML, sehingga source-code PHP3 tidak tampak di sisi browser.

\resizebox*{10cm}{6cm}{\includegraphics{server-side.eps}}

4 Kemampuan

Jika anda pernah bergelut dengan aplikasi CGI([footnote] Common Gateway Interface, suatu program yang dapat menerima input dari browser, memprosesnya, dan selanjutnya mengirim kembali outputnya.) yang diprogram dengan Perl atau C, maka dengan PHP ini anda akan mendapatkan kemudahan-kemudahan. Sebagai contoh data- masukkan dalam suatu form html secara otomatis di-variabel-kan dan dapat digunakan langsung, sehingga kita tidak perlu memparsing apa yang disebut query string.
 
4.1 Database

Kemudahan akses ke berbagai database server adalah yang terpenting dari PHP3. Adapun database server yang didukungnya antara lain : Oracle, Sybase, Informix, Postgres, dBase, Interbase, MySQL, ODBC, dan masih banyak lagi. Bukan itu saja, jika kita konsisten menggunakan Linux sebagai sistem operasi maka kita mendapatkan database server yang benar-benar gratis, tanpa biaya lisensi. Sebagai contoh MySQL yang ``ringan'' dan sangat umum digunakan dalam PHP, atau Postgres yang open-source dan lebih kuat dengan arsitektur object-relational-nya. Jika masih ragu, gunakan sang legendaris Oracle yang juga free untuk platform Linux.

4.2 Otorisasi

Otorisasi bisa diterapkan manakala dibutuhkan pengisian username dan password untuk memasuki suatu situs web. Dokumen HTML yang diberikan fasilitas ini menyebabkan browser menampilkan menu untuk pengisian username dan password.

<?
if (!isset($PHP_AUTH_USER)) {
header(``WWW-Authenticate: Basic realm=\''My Realm\'''');
header(``HTTP/1.0 4.01 Unauthorized'');
echo ``Anda menekan Cancel'';
exit;
} else {
echo ``Halo $PHP_AUTH_USER <p>'';
echo ``Anda memasukkan password $PHP_AUTH_PW'';
}
?>

4.3 Mengolah String

Manipulasi string sangat penting dalam pemrograman. Fungsi-fungsi yang biasanya sering dipakai sudah tersedia, diantaranya :

  • Upper / lowercase
  • Menghapus spasi di awal & akhir kalimat (trim)
  • Posisi string dalam string
  • Menghitung panjang string
  • Penggabungan antar string
  • Parsing
  • Mengganti string dengan string lain (find & replace)
  • Copy (substring)
  • 4.4 Array

    Dukungan terhadap array ini mulai ``terasa'' manakala kita menggunakan database. Setiap tabel yang di-fetch([footnote] diambil setiap recordnya) dimasukkan dalam suatu array. Fungsi fetch-nya sendiri menghasilkan tipe data array. Disamping itu telah tersedia pula fungsi array secara umum.

    4.4.1 Mendefinisikan Variabel Array

    Berikut ini adalah contoh array satu dimensi :

    $buah = array(``pisang'', ``apel'', ``mangga'');

    Setiap elemen dipanggil sesuai dengan urutannya yang dimulai dengan nomor indeks 0. Jadi untuk mencetak ``pisang'' dapat ditulis :

    echo $buah[0];

    4.4.2 Menghitung Jumlah Elemen dalam Array

    Jumlah elemen dalam array dapat dihitung dengan fungsi count.

    echo ``Jumlah elemen array : `` . count($buah);

    4.4.3 Sort

    Array dapat di-sort (diurutkan) dengan fungsi sort yang mengurutkan data dengan metode ascending (dari kecil ke besar).

    sort($buah);

    Metode sortir juga dapat kita definisikan sendiri. Berikut ini adalah contoh fungsi sortir descending (dari besar ke kecil).

    function banding($a, $b) {
    if ($a == $b) { return 0; }
    return ($a > $b) ? -1:1;
    }
    usort ($buah, banding);

    4.4.4 String Sebagai Indeks

    Pemanggilan elemen array juga tidak terbatas pada pemakaian bilangan sebagai indeksnya, melainkan dapat juga menggunakan string.

    $sayur = array(``a''=>''kangkung'', ``b''=>''bayam'');
    echo $sayur[``a''];

    4.5 Manipulasi Gambar

    Selain dapat menampilkan gambar dalam berbagai format, PHP3 juga dapat menambahkan kalimat di atas gambar. Hal ini dipakai biasanya penggunaan gambar yang sama untuk tujuan-tujuan yang berbeda. Seperti misalnya gambar dua buah tombol yang sama namun tombol yang satu tertulis ``A'' dan yang kedua ``B''.

    4.6 Upload File

    Fasilitas ini berfungsi untuk ``menangkap'' file yang dikirimkan browser. Aplikasi human resource biasanya memerlukan ini untuk mendata foto karyawan yang telah di-scan atau diambil dengan kamera digital.

    Gambar berformat apapun dapat dikirim. Di sisi server, file yang dikirim ditampung dalam suatu temporary file. Beberapa informasi dapat diambil dari aktivitas upload ini : temporary filename, nama file yang sebenarnya, tipe file yang dikirim, serta ukuran file tersebut.

    4.7 Fungsi Waktu

  • Menampilkan tanggal dalam berbagai format
  • Waktu saat ini (localtime)
  • 4.8 Web Mail

    Fungsi mail yang tersedia dapat digunakan untuk membuat mail-client dimana kita dapat menulis dan mengirimkan e-mail dengan menggunakan browser.

    4.9 User Defined Function

    User Defined Function adalah fungsi yang dapat kita definisikan sendiri. Outputnya juga bisa bertipe apa saja : string, numeric, bahkan array. Contoh untuk hal ini telah tertulis di atas untuk fungsi sortir descending.

    4.10 Penanganan Kesalahan

    PHP3 dapat menampilkan pesan kesalahan guna kemudahan proses debugging.
    Jika aplikasi sudah dianggap mapan option ini dapat juga tidak dipakai.

    5 Contoh Aplikasi

    Banyak aplikasi yang bisa dibuat dengan memanfaatkan PHP3, mulai dari search engine, daftar produk, pembuatan laporan, sampai penerapan e-commerce. PHP3 juga bisa melengkapi aplikasi yang sudah berjalan, misalnya untuk pembuatan laporan. Dengan begitu semua pihak yang membutuhkan laporan tersebut (biasanya untuk para manager tingkat atas) tidak perlu membaca dari hasil print-out. Mereka cukup menghidupkan komputer, menjalankan browser, dan mengunjungi situs yang dimaksud, layaknya bermain internet. Data yang diperoleh juga akurat, karena diambil langsung dari database-nya saat itu juga.
    5.1 Search Engine

    Search Engine merupakan tools pencari kata yang biasa kita temui di situs Yahoo, Infoseek, atau Altavista. Aplikasi ini hanya menggunakan perintah SELECT dalam query-nya dan memerlukan data-entry (kata yang dicari) dari browser. Berikut ini adalah script sederhana untuk sebuah search engine yang menggunakan database Postgres.

    <form action=cari.php3>
    <input name=kalimat>
    <input type=submit>
    </form>

    <?
    if ($kalimat == "") { exit; }
    $sql="select no_panggil, judul, pengarang, penerbit
    from katalog where upper(judul) like '%" . strtoupper($kalimat) . "%'";
    $conn = pg_connect("dbname=perpus");
    $result = pg_exec($conn, $sql);
    if (pg_numrows($result) == 0) {
    echo "Tidak ada hasil query";
    } else {
    for ($i = 0; $i < pg_numrows($result); $i++) {
    $row=pg_fetch_row($result, $i);
    echo "Kode : $row[0] <br>";
    echo "Judul : $row[1] <br>";
    echo "Pengarang : $row[2] <br>";
    echo "Penerbit : $row[3] <br> <br>";
    }
    }
    ?>

    5.2 Data Entry

    Aplikasi ini melengkapi search engine sebelumnya, yakni memanipulasi data lewat web, dengan kata lain proses insert, update, delete dapat dilakukan dengan menggunakan browser.

    <?
    if ($cmd == "Insert") {
    $sql="insert into katalog (no_panggil, judul, pengarang, penerbit)
    values ('$no_panggil', '$judul', '$pengarang',
    '$penerbit')";
    }
    if ($cmd == "Delete") {
    $sql="delete from katalog where no_panggil = '$no_panggil'" ;
    }
    if ($cmd == "Update") {
    $sql="update katalog set no_panggil = '$no_panggil', judul =
    '$judul', pengarang = '$pengarang', penerbit = '$penerbit'
    where no_panggil='$tno_panggil'"; 
    }
    $conn = pg_connect("dbname=perpus");
    if ($cmd != "") {
    $result = pg_exec ($conn, $sql);
    }
    if ($cmd == "Delete" or $cmd == "") {
    $sql = "select * from katalog";
    } else {
    $sql = "select * from katalog where no_panggil = '$no_panggil'";
    }
    $result = pg_exec($conn, $sql);
    $row = pg_fetch_row($result, 0);
    echo "<form action=katalog.php3>";
    echo '<input type=hidden name=tno_panggil value="', $row[0],'">';
    echo 'Kode <input name=no_panggil value="', $row[0],'"><br>';
    echo 'Judul <input name=judul value="',$row[1],'"><br>';
    echo 'Pengarang <input name=pengarang value="', $row[2],'"><br>';
    echo 'Penerbit <input name=penerbit value="', $row[3],'"><br>';
    echo "<input type=submit name=cmd value=Insert>";
    echo "<input type=submit name=cmd value=Update>";
    echo "<input type=submit name=cmd value=Delete>";
    echo "</form>";
    ?>

    6 Isu Seputar PHP3

    Selentingan berita mengenai PHP3 tidak terlepas dari pertanyaan para penggunanya, terutama bagi mereka yang duduk sebagai pengambil keputusan, karena hal ini menyangkut kehandalan, kemudahan pengembangan, dan dukungan terhadap PHP3 itu sendiri.
     

    6.1 Para Pemakai

    Daftar para pengguna PHP3 menjadi begitu penting, karena kita perlu mengambil pengalaman dari orang lain. Sudah begitu banyak daftar mereka yang menggunakan PHP3, mulai dari kalangan serius sampai mereka yang just for fun.

    6.1.1 Industri Otomotif
  • Audi (http://www.a4.org)
  • Mitsubishi Motors (http://www.mitsucars.com)
  • Opel (http://www.opel.com)
  • Subaru (http://www.subaru.com)
  • Volvo (http://www.volvo.com)
  • 6.1.2 Komputer & Perangkat Lunak
  • Apache Web Server (http://www.apache.org)
  • Mozilla Crypto Group (http://mozilla-crypto.ssleay.org)
  • RedHat Software (http://www.redhat.com)
  • Winamp (http://www.winamp.com)
  • Xingtech (http://www.xingtech.com)
  • YellowDog Linux (http://www.yellowdoglinux.com)
  • 6.1.3 Lembaga Riset & Pendidikan
  • The Biology Place (http://www.biology.com)
  • Digital Metrics (http://www.digitalmetrics.com)
  • The Internet Pilot to Physics (http://www.tp.umu.se/TIPTOP)
  • Research Institute for electro-magnetic compatibility (http://www.femu.rwth-aachen.de)
  • 6.1.4 Hiburan
  • CD93 Radio Station (http://www.cd93.com/index_hi.htm)
  • FilmNetwork (http://www.fnw.de)
  • HitList (http://www.hitlist.com)
  • TVN Entertainment (http://www.tvn.com)
  • United States of Hardcore (Music) (http://www.ush.net)
  • 6.1.5 Keuangan
  • Cyber Merchants Exchange (http://www.c-me.com)
  • The Development Capital Exchange (http://www.equity-invest.com)
  • First USA Bank (http://www.firstusabank.com)
  • Insurance Bridge (http://www.insurancebridge.com)
  • TFC Commodity Charts (http://tfc-charts2.w2d.com)
  • Wallstreet:Online (http://www.wallstreet-online.de)
  • 6.1.6 Games
  • Battle - a PBeM Game (http://battle.pbem.net)
  • BEETLE MANIA (http://www.beetlemania.de)
  • GamePoint Shop (http://shop.gamepoint.net)
  • Mplayer (http://www.mplayer.com)
  • Worms2 (http://www.worms2.com)
  • 6.1.7 Pemerintahan
  • City of Escondido (http://www.ci.escondido.ca.us)
  • National Institute of Ecology in Mexico (http://www.ine.gob.mx)
  • City of Sibiu - Romania (http://www.primbsb.ro)
  • West Virginia Department of Education (http://wvde.state.wv.us)
  • 6.1.8 Internet Service
  • FAST MP3 Search (http://mp3.lycos.com)
  • Infoseek Investor Relations (http://www.ir-infoseek.com)
  • MegaDownload (http://megadownload.de)
  • 6.1.9 Militer
  • US Army Publishing Agency (http://www.usapa.army.mil)
  • 6.1.10 Majalah & Koran
  • Børsen - Danish Business Daily (http://www.borsen.dk)
  • CADALYST Magazine (http://www.cadonline.com)
  • The German Linux Magazine (http://www.linux-magazin.de/newsflash)
  • Maximum PC Magazine (http://www.maximumpcmag.com)
  • 6.1.11 Lembaga Nirlaba
  • Association of Internet Professionals (http://www.association.org)
  • The Jazz Journalists Association (http://www.jazzhouse.org)
  • PoloniaNet - Polish community of the Internet (http://www.PoloniaNet.com)
  • 6.2 Year 2000 Compliance (y2k)

    Ada isu seputar masalah tanggal dalam cookies([footnote] Cookies adalah informasi yang terdapat dalam browser. Webserver biasanya menggunakan informasi ini untuk mengetahui perihal client-nya.) . Netscape sebenarnya menerapkan format 2 digit untuk tanggal kadaluarsa cached file. Hingga muncul ke permukaan masalah y2k, mereka memutuskan untuk mengubahnya mulai Netscape versi 4. Namun bukan berarti bahwa format tahun 2 digit tidak y2k compliant. Sebagai contoh, tahun 14 diartikan sebagai tahun 2014 oleh Netscape. Seluruh browser dapat memahami format 2 digit ini, sehingga ini menjadi format default di PHP3. Meski begitu mereka yang waspada tidak menerapkan format 2 digit ini (melainkan 4 digit). Untuk mereka PHP3 telah menyiapkan file konfigurasi di php3.ini.

    6.3 Tim Pendukung

    PHP3 adalah proyek dengan kode sumber yang tidak dirahasiakan. Ini juga bisa berarti siapapun boleh mengubah, menambahkan, melakukan debugging terhadap PHP3. Mereka yang ingin bergabung dengan tim PHP3 bisa mengkontribusikan kemampuannya dan ikut ambil bagian untuk menyempurnakan PHP3 ini. Sistem kerja seperti ini telah terbukti ampuh untuk mempercepat proses debugging dan peningkatan performa program, sehingga kita tidak perlu termakan mitos bahwa yang gratis itu tidak handal dan tidak ada yang bertanggungjawab.

    7 Referensi

    1. http://www.php3.org/
    2. Sugiana, Owo, Perpustakaan On -Web, Universitas Gunadarma, Depok, 1997
    Ditulis dengan text processor LyX versi 0.12.0pre8 BETA, gambar dengan StarOffice 5.0 di atas sistem operasi Linux distribusi SuSE 6.0

    Oleh: Owo Sugiana (sugiana@rab.co.id)



    | SAMBA sebagai File Server dan Print Server Windows | Melihat Traffic Router dengan MRTG pada Linux |

    Email : jakarta@jakarta.linux.or.id


    | Home | Halaman Muka
     © 1999 ELEKTRO Online
    All Rights Reserved.