Cubluk Top Articles  
             
 
     
         
             
 
Cubluk Maps
Proyek IT*
LDAP Pages*
PHP Pages*
Cari Kerja*
Lihat Artikel*
Cari Kost Bdg*
Hacker Stuff*
Kota Bandung*
Film & Musik*

About Me*

Cubluk Links
Buat Proyek IT*
Cari Ilmu IT*
Web Terbaik
*
Ketawa Ketiwi*
Berita Bola*
Rancang Web*
Portal Tebaik*
Rileks*
Gamer's Stuff*
Music Only*
Download*
e-Commerce*

Cubluk Linux
sourceforge.net
linux.com
linuxtoday.com
linuxplanet.com
linuxstart.com
linuxcare.com
ldp.linux.or.id
davecentral.com
linux.web.id
linuxjournal.com
linuxworld.com
linuxcentral.com











































































































































































































































































































































     
Cubluk Top Articles


15 Januari 2000, ESSAYS

Perl/CGI, PHP, ASP ..
atau Platform Lainnya?
Oleh : Steven Haryanto

Pendahuluan, Situs web yang dinamik?
Sebelum mulai, terlebih dulu perlu dijelaskan apa arti situs web dinamik.

  • Di masa awal web (awal 1990-an), web server yang ada praktis berfungsi hanya sebagai file server (bedanya, protokol yang dipakai adalah HTTP).
  • Yang dikerjakan oleh web server saat itu hanyalah mentransfer file, terutama file-file HTML dan gambar GIF atau JPEG, kepada klien yang memintanya.
  • Tampilan dan isi halaman web, selama file yang bersangkutan tidak diubah oleh pembuat situs, akan tetap dari request ke request.

Jenis halaman-halaman web seperti ini disebut statik.

Mekanisme seperti ini pada waktu itu sudah memadai.
Bahasa markup hiperteks (HTML) telah membedakan Web dari layanan internet yang lain, karena informasi yang diberikan lewat Web terasa saling terkait melalui hiperlink.

Namun karena situs web semakin kompleks, terutama berkat kalangan komersial yang berbondong-bondong online, di sisi server Web mulai berubah.

Muncullah kebutuhan-kebutuhan baru untuk:

  • Berinteraksi lebih dengan pengunjung situs.
  • Menampilkan informasi perusahaan yang berasal dari database.
  • Menampilkan halaman yang memproses informasi dari klien, terupdate otomatis, berbeda tampilan sesuai kondisi tertentu,
  • dan sebagainya.

Apa yang harus berada di sisi server kini tak cukup lagi hanya kumpulan file statik, tapi program aplikasi dan database. Situs web seperti ini yang disebut situs web dinamik.

Platform Pengembangan Situs Web Dinamik

PERL/CGI
Salah satu protokol gateway yang pertama diciptakan, dan tersukses, untuk menghubungkan web server dan aplikasi adalah Common Gateway Interface, atau CGI.

Bagaimana cara kerja CGI?

  • Aplikasi CGI, yang berupa file skrip, ditaruh di lokasi direktori yang dapat diakses oleh web server.
  • Jika ada permintaan terhadap aplikasi dari klien, web server akan membaca skrip dan menjalankan program.
  • Web server memberi program ini masukan (termasuk masukan yang diberikan klien) dari masukan standar (stdin) serta beberapa environment variable.
  • Web server menunggu program berjalan hingga selesai lalu menangkap keluaran standar program (stdout).
  • Keluaran inilah yang diberikan ke klien.

Apa Kelebihan CGI?

  • Skrip CGI dapat ditulis dalam bahasa apa saja, namun barangkali sekitar 90% program CGI yang ada ditulis dalam Perl.
  • Protokol CGI yang sederhana, serta
  • Kefasihan Perl dalam mengolah teks, menjadikan menulis sebuah program CGI cukup mudah dan cepat.
  • Meski tertua, hingga saat ini menurut survei dari Netcraft sekitar 70% aplikasi di web masih menggunakan CGI. Ini berarti, lebih dari separuh situs web dinamik yang ada dibangun dengan CGI.

Apa kelemahan CGI?

  • Kecepatan (istilah kerennya: skalabilitas).
    Untuk menghasilkan keluaran program CGI, overhead yang harus ditempuh cukup besar.

Dalam kasus CGI Perl, prosesnya sbb:

  • Web server terlebih dahulu akan menciptakan sebuah proses baru dan menjalankan interpreter Perl.
  • Perl kemudian mengkompilasi script CGI tersebut, baru kemudian menjalankan skrip.

Keseluruhan siklus ini terjadi untuk setiap request. Dengan kata lain, terlalu banyak waktu dibuang untuk menciptakan proses dan tidak ada cache skrip yang telah dikompilasi.

Jika situs web Anda menerima kurang dari sepuluh hingga dua puluh ribu hit CGI per hari, rata-rata mesin web server Unix yang ada sekarang ini mampu menanganinya dengan baik.

Angka ini relatif, bergantung pada:

  • Tingkat pembebanan mesin web server untuk melakukan pekerjaan lain (misalnya, mengirim mail dan menjalankan server database) dan juga
  • Aplikasi CGI itu sendiri (sebab beberapa aplikasi CGI berupa skrip tunggal berukuran besar hingga waktu loading-nya cukup lama; umumnya aplikasi CGI yang rumit memecah diri menjadi skrip-skrip terpisah untuk mengurangi waktu loading).
  • Cepat atau lambatnya penampilan halaman web yang diterima klien akan lebih bergantung pada koneksi jaringan.

MOD_PERL
Mod_perl adalah sebuah modul Apache. Mod_perl menempelkan interpreter Perl ke dalam Apache, sehingga Apache mampu menjalankan kode/skrip Perl secara langsung.

Apa Kelebihan Mod_Perl ?

  • Mod_perl dapat memecahkan masalah skalabilitas CGI, karena dapat men-cache skrip dalam memori. Dengan mod_perl pun kita dapat membuat aplikasi web dalam gaya embedded (kode ada di file yang sama dengan HTML, seperti Javascript).

    Ada beberapa modul yang bisa dipakai untuk ini, antara lain HTML::Embperl dan HTML::Mason.

    Dengan mod_perl sebuah mesin server tunggal mampu menangani beban hingga jutaan hit per hari.

    Contoh site yang memakai mod_perl:
    Slashdot.org
    Valueclick.com


    Di Indonesia ada
    Berpolitik.com
    Satunet.com

Apa Kelemahan Mod_Perl
Masalah utama memakai mod_perl ada dua.

  • Dari segi teknis, penggunaan memori yang besar.
    Ukuran Perl cukup besar, sehingga jika Perl ditempelkan kepada Apache akan dihasilkan proses Apache yang berukuran besar. Dengan model Apache yang multiproses saat ini, jumlah memori total yang dibutuhkan cukup banyak.

    Umumnya mesin instalasi mod_perl sekarang rata-rata dilengkapi memori minimal 256MB. Jika mesin ini dipasangi juga server database, jumlah memori perlu ditambah. Dalam kondisi hit tinggi, dapat terbentuk proses Apache yang banyak sekaligus sehingga kebutuhan memori membludak.

    Masalah ini dipecahkan
    dengan menaruh sebuah web server lain yang kecil, apakah itu Apache biasa berproksi atau Squid. Hubungan dengan klien ditangani oleh web server yang kecil, sementara Apache besar dengan mod_perl hanya bertugas memproduksi halaman dinamik.
  • Dari segi nonteknis, relatif lama dan sulit menguasai mod_perl (bukan lagi steep, tapi "vertical learning curve," demikian pernah disebutkan oleh Stas Bekman, penulis tutorial mod_perl mod_perl Developer’s Guide).

    Meski program CGI tetap dapat dijalankan lewat mod_perl (melalui modul Perl Apache::Registry) sehingga kita tetap dapat membuat program bergaya CGI, ada beberapa perbedaan yang perlu diperhatikan, terutama karena sekarang CGI Anda di-cache oleh web server.

    Administrasi server mod_perl
    pun perlu dipahami dan dikuasai dengan baik.

Pecinta Perl saya anjurkan tetap mencoba dan memakai mod_perl, karena :

  • Tingkat Kontrol yang ditawarkan amat tinggi.
    Karena menyediakan antarmuka lengkap ke API Apache, dengan mod_perl kita dapat menyetel Apache secara rinci.
  • Berikrar sehidup-semati bersama Apache. Dengan memilih mod_perl, Anda bisa dibilang "bertukar cincin", berikrar sehidup-semati bersama Apache.

    Sebab mod_perl modul Apache, spesifik untuk Apache.

    Bukan masalah berarti, saya pikir, karena praktis semua pihak telah mengakui stabilitas dan kinerja web server yang satu ini.

    Menurut survei, web server yang paling banyak dipakai di internet adalah Apache.

    Beberapa produk komersial pun, seperti Stronghold (C2Net) dan WebSphere (IBM), menggunakan kode sumber Apache.

PHP
PHP adalah salah satu bahasa scripting yang ditaruh di dalam HTML (embedded).

Sintaks PHP mirip dengan Perl, namun lebih sederhana (tidak neko-neko, less idiomatic, less surprises :-).

Saat ini PHP termasuk salah satu yang terpopular, setara dalam jumlah pemakaian dengan mod_perl, di bawah CGI dan ASP (lihat survei dari Netcraft).

Beberapa situs terkenal yang menggunakan PHP antara lain:

Di Indonesia ada:

PHP dapat dijalankan:

  • Lewat CGI atau
  • Sebagai modul Apache
    Meski untuk memperoleh kecepatan lebih Anda perlu menggunakan versi modul.

Ukuran PHP tidaklah sebesar Perl, sehingga kebutuhan untuk memasang proksi di depan web server ber-PHP tidaklah terlalu mendesak seperti halnya mod_perl.

Apa Kelebihan PHP?
Keuntungan utama memakai PHP saya pikir adalah:

  • Kemudahan dipelajari dibandingkan Perl/mod_perl. Karena itulah sampai saat ini jumlah pemakai PHP meningkat lebih banyak ketimbang pemakai mod_perl yang harus mempelajari Perl terlebih dahulu.

Apa Kekurangan PHP dibanding mod_perl?
Pertimbangan menggunakan mod_perl dibandingkan PHP adalah jika ingin:

  • Menyetel Apache lebih rinci dan
  • Menjalankan skrip-skrip lama CGI/Perl.

ASP
Di dunia NT/IIS, ASP merupakan pilihan yang paling banyak dipakai orang. ASP merupakan arsitektur rancangan Microsoft yang didasarkan pada COM untuk membuat halaman situs web dinamik.

Halaman ASP dapat dibuat dalam berbagai bahasa pemrograman, tapi yang dianjurkan oleh Microsoft adalah VBScript (subset dari Visual Basic) dan JScript (bahasa mirip C, Javascript versi Microsoft). Sebetulnya bahasa lain pun, seperti Perl, dapat digunakan.

Apa Kelebihan ASP?
Keuntungan memakai ASP adalah Kemudahan. Di ASP dikenal memiliki:

  • Session Variable yang dapat dipakai untuk menyimpan data kunjungan tunggal pengunjung. ASP pun terkenal cukup terintegrasi dengan database. Dan yang juga perlu dipertimbangkan,
  • Model Obyek yang bagus. Lewat model objek ini, Anda dapat mengakses dan memodifikasi header HTTP dan komponen dokumen melalui serangkaian method dan property.

Namun kemudahan-kemudahan ini bukan sesuatu yang tidak dapat dilakukan oleh mod_perl dan PHP. HTML::Embperl, misalnya, mendukung variabel session. Baik PHP dan mod_perl dapat memodifikasi header HTTP dan mendukung koneksi database persisten.

Apa Kelemahan ASP?
Kerugian memakai ASP yang paling perlu diperhatikan yaitu:

  • Masalah Keamanan
    Misalnya, bug ::$DATA yang memungkinkan pengunjung melihat kode sumber sebuah halaman (coba berkunjung ke sini.
    [Catatan] Saat artikel ini ditulis, URL ini masih bekerja.

    Namun masalah keamanan ASP cukup terkait dengan arsitektur di tingkat yang lebih bawah, yaitu IIS/NT, dan bukan sepenuhnya karena rancangan dan implementasi ASP.

[Catatan Penulis buat Pembaca]
Kalau ada yang bisa memberi informasi tambahan mengenai ASP atau koreksi tulisan yang ada di sini, akan sangat dihargai. Sebab saya tidak berpengalaman dengan ASP :-)

TOOL-TOOL LAIN
Selain yang telah disebutkan ada banyak alternatif yang tersedia.

Java
Anda dapat membuat situs web dinamik dengan Java, baik dengan servlet (non-embedded) maupun dengan JSP (embedded). Kecuali Anda sudah mengenal Java, saya pikir ini bukan pilihan yang tepat (Java relatif lebih sulit dari Perl, PHP, atau bahasa scripting lain).

FastCGI
Dengan protokol FastCGI, skrip Anda dapat berjalan persisten dari request ke request. Ini memecahkan masalah kinerja CGI yang lambat. Seperti halnya CGI, FastCGI adalah protokol terbuka, tidak spesifik untuk server atau bahasa pemrograman tertentu. Anda bisa menulis program FastCGI dengan Perl, Tcl, Python, atau yang lainnya. IBM Patent Server

Contoh situs yang menggunakan FastCGI:

Velocigen, Perl for ISAPI
Tool lain berbasis Perl pun dapat dijumpai, gratis maupun komersial. Misalnya Velocigen (Binary Evolution) dan Perl ISAPI (Activestate). Velocigen dapat juga menggunakan bahasa scripting Tcl. Untuk sekedar men-cache skrip CGI, terdapat modul Perl SpeedyCGI yang bisa dipakai.

ColdFusion
Di platform NT, terdapat sebuah tool komersial yang terkenal, ColdFusion (Allaire). Seperti PHP dan ASP, gaya penggabungan kode dan HTML di ColdFusion sama-sama embedded. Namun, jika di sisi lain PHP dan ASP menggunakan bahasa pemrograman, ColdFusion menggunakan tag-tag HTML tambahan. ColdFusion tumbuh di lingkungan NT, meski baru-baru ini Allaire membuat port Unix dan Linux-nya.

Contoh Situs yang menggunakan ColdFusion/NT adalah:

Content management
Beberapa produk lain menawarkan lingkungan pengembangan yang lebih lengkap, termasuk mengatur alur kerja dan pemversian dokumen (istilah kerennya: content management).

Umumnya produk ini ditujukan untuk perusahaan besar dan berharga mahal.

Contohnya

  • StoryServer (Vignette),
  • Dynabase (Inso), atau
  • Livelink (OpenText).

Contoh website pengguna Vignette Story Server di Indonesia adalah:

Namun ada juga produk Open Source seperti

  • Zope
    Yang kemampuannya secara teknis dapat ditandingkan dengan StoryServer (tapi minus tool GUI).
  • HTML::Mason
    Untuk Perl pun sudah mulai dikembangkan produk semacam ini, meski masih jauh dari saingan-saingannya yang terlebih dulu muncul. Untuk HTML::Mason misalnya ada Mason Content Management.

Barangkali di lain waktu sebagian tool ini bisa dibahas di Toekangweb…

KESIMPULAN
Sebagian besar tool pengembangan aplikasi saat ini mencampurkan kode dan HTML dalam satu file (HTML-embedded). Meski nyaman, dalam jangka panjang kemungkinan cara ini akan ditinggalkan karena terlalu low-level (mengurusi kode HTML). Saat ini pengembang situs web dinamik banyak menghabiskan waktu men-debug kode HTML atau membereskan masalah perbedaan antarbrowser.

Prediksi Penulis - [Visual]
Akan muncul lebih banyak lingkungan pengembangan aplikasi web GUI/visual seperti halnya lingkungan pengembangan aplikasi desktop visual seperti Visual Basic atau Delphi.

Lingkungan seperti ini relatif lebih mudah digunakan dan kemungkinan akan lebih produktif. Pengembang menggambar langsung form, screen, dan komponen-komponen interaksi lain, mendefinisikan event, event handler, property, dsb. lalu lingkungan pengembangan akan secara otomatis menghasilkan kode HTML yang bersesuaian (termasuk membereskan perbedaan antarbrowser).

Setidaknya sudah ada satu produk dalam pengembangan yang memiliki konsep demikian, meski minus tool GUI dan spesifik Apache/mod_perl, yaitu SmartWorker.

Wah, ternyata ada banyak pilihan ya?
Jika Anda masih asing dengan sebagian besar produk dan teknologi yang disinggung dalam tulisan ini, ada baiknya meluangkan waktu berjalan-jalan dan membaca FAQ, contoh-contoh skrip dan berbagai artikel perbandingan untuk mengetahui apa-apa saja yang disediakan.

Dari sekian banyak teknologi, bahasa pemrograman, dan produk yang ditawarkan, mana yang harus dipilih? Anjuran saya saat ini:

  • Jangan terpaku dengan produk komersial.
    Tidak semua produk komersial unggul (bahkan orang bisa berargumen bahwa produk Open-Source secara umum superior dalam hal kualitas/teknis). Mungkin hanya sedikit produk yang berguna bagi Anda.
  • Pilih yang paling familiar dengan Anda.
    Misalnya, saya memilih mod_perl karena sebelumnya familiar dengan Perl dan Apache. Jika memakai Unix/Linux, namun tidak memakai Perl, pilihan paling cocok saat ini rasanya PHP. Jika platform pilihan Anda NT, ASP dan ColdFusion sama-sama bisa dipertimbangkan.

    Memilih lingkungan pengembangan yang baru dengan tujuan eksperimen tentunya tidak masalah, tetapi akan merugikan dalam produksi karena akan membutuhkan waktu minimal beberapa bulan untuk mempelajarinya.

© 1999,2000 toekangweb
All rights owned by their respective owners


           
               
         
[Main Page*] [Proyek Cubluk*] [LDAP Gue*] [PHP Gue*] [Hacker Stuff*] [Kota Bandung*]         
[Lihat Artikel IT*] [Cari Kost Bdg*] [Cari Kerja*] [Film & Musik*] [About Me*]
         
       
Owned by
IT-Net Indonesia Corp.
All Rights Reserved.
© 2002