Perkembangan teknologi
informasi yang kian pesat memacu munculnya situs baru yang dapat diakses
melalui jaringan internet. Data dari survey yang dilakukan oleh Netcraft (http://news.netcraft.com/archives/web_server_survey.html) menunjukkan bahwa sampai pada bulan Maret 2008 ini
jumlah website telah mencapai angka 162.662.052 situs dengan 4,5 juta situs
baru pada bulan ini. Hal ini memungkinkan jumlah situs baru pada tahun 2008 ini
mencapai 60 juta situs atau meningkat 20% dari perkembangan tahun 2007 yang
mencapai 50 juta situs baru. Perkembangan jumlah situs ini tidaklah
mengherankan karena semakin banyaknya orang yang melakukan blogging baik
melalui Google, blogspot.com, ataupun MySpace. Namun demikian, situs yang
benar-benar aktif pada bulan Maret 2008 hanyalah 65,6 juta atau 40,33% dari
jumlah total situs.
Dengan perkembangan jumlah situs yang luar biasa besar
ini menuntut para pemrogram web (web
programmer) untuk selalu berkreasi
menciptakan ide-ide baru baik dalam desain layout, penggunaan aplikasi server
web, maupun operating system yang dipakai, agar situs yang dibangunnya tidak kandas
dalam persaingan.
Saat ini banyak sekali bahasa pemrogaraman web yang
dipakai untuk membangun sebuah situs. Bahasa pemrograman yang dipakai antara
lain Hyper Text Markup
Language (HTML), Dynamic HTML (DHTML), eXtesible
Markup Language (XML), XHTML, PHP (PersonalHome Page: Hypertext Preprocessor), CGI (Common
Gateway Interface), Perl (Practical Extraction and Report Language), ColdFusion, ASP (Active Server Page), Java, JHTML.
HTML sebenarnya bukanlah
bahasa pemrograman namun hanyalah bahasa markup. Bahasa
HTML adalah bahasa yang sederhana dan hanya memiliki sedikit kesulitan. Bahasa yang
merupakan dasar dari framework Internet ini ditemukan oleh Tim BernersLee pada
tahun 1989. Hampir setiap situs web menggunakan bahasa ini,
entah sekedar menampilkan teks, animasi, tampilan grafis, ataupun suara. Bahasa
HTML sebenarnya berasal dari bahasa lama yang
disebut dengan SGML (Standard Generalized
Markup Language). Namun perkembangan HTML
sudah dimulai sejak kurang lebih 10 tahun bahasa tersebut diperkenalkan.
Sedangkan DHTML adalah bahasa yang bisa diakses dan dimodifikasi
oleh bahasa script seperti Vbscript, Javascript. DHTML sering dimanfaatkan untuk
menampilkan animasi-animasi seperti efek text, perubahan warna, dan lain
sebagainya. Bahasa ini sering juga disebut sebagai versi objek dari HTML. XML
adalah bahasa yang sifatnya lebih terbatas daripada elemen-elemen HTML. Dengan
XML, orang bisa menentukan elemen-elemennya sendiri lalu kemudian
mengembangkannya. XML saat ini biasa dijumpai pada aplikasi RSS (Really Simple Syndication).
Bahasa ini masih dalam pengembangan. XHTML merupakan
gabungan dari bahasa HTML dan XML. Seperti halnya XML, bahasa ini juga masih
tergolong baru namun diramalkan akan sangat berperan dalam mewarnai dunia web
di masa depan. Info selengkapnya mengenai bahasa ini bisa ditemukan di www.w3r.org. Bahasa pemrograman web yang paling populer saat ini
adalah PHP. PHP ditulis oleh Rasmus Lerdorf pada tahun 1994 yang pada awalnya
ia gunakan untuk mencatat jumlah pengunjung situs yang membuka halaman resumenya.
Ia kemudian menulis ulang kode-kodenya dengan bahasa C yang kemudian menjadikan
bahasa itu menjadi lebih kaya kemampuan. Barulah setelah itu banyak bermunculan
tokoh-tokoh yang berjasa dalam perkembangan PHP seperti Zeev Suraski dan Andi
Gutmans yang menulis kembali parsing
engine unuk menciptakan PHP
versi 3. PHP kemudian menjadi modul Apache yang paling sering digunakan. Saat
ini sedang dikembangkan PHP versi 5.2.5 dan PHP 4.4.8.
CGI (Common
Gateway Interface) merupakan standar
internet tertua dan paling berkembang sebagai suatu alat lewatnya informasi
dari web server ke suatu program dan mengembalikan hasilnya ke browser. Suatu
program CGI dapat ditulis dengan bahasa-bahasa Perl, Java, C, C++, Scriptscript
UNIX, Visual Basic, MacOS atau AppleScript. Karena itulah CGI sebenarnya kurang
tepat jika dikategorikan sebagai bahasa karena program CGI sendiri dapat
ditulis menggunakan beragam bahasa. PERL merupakan bahasa pemrograman tingkat tinggi yang ditemukan oleh Larry Wall (1987). PERL
memiliki kemampuan untuk dapat diterapkan pada
hampir semua jenis Operating System dan yang terpenting, PERL bisa didapatkan secara free. Dalam aplikasinya eksekusi PERL biasa dijalankan dengan
CGI (Common Gateway Interface) sebagai mekanisme untuk menampilkan output text ke browser.
Coldfusion adalah sistem
pengembangan aplikasi yang dikembangkan oleh Alaire. File Coldfusion ini memiliki ekstensi CFM. File-file CFM disimpan dalam bentuk plain text, sama halnya seperti PERL dan PHP sehingga siapapun dapat
melihat isinya. ASP diciptakan khusus bagi
server IIS milik microsoft, namun demikian saat ini server Apache::ASP yang
ditulis dengan bahasa Perl sudah dapat
menangani file ASP. Bahasa ini merupakan bahasa pemrograman web yang dinamis. ASP dapat digunakan untuk
mengeksekusi beragam request terhadap suatu database
atau perintah-perintah pada system lokal.
JHTML adalah bahasa standard JavaSoft keluaran
SUN yang diciptakan untuk mengikutsertakan Java dalam sebuah file HTML. Bahasa ini memiliki tag tersendiri yang diproses sebelum
mengirimkan output pada browser. JHTML hampir
mirip dengan HTML, hanya saja memiliki tambahan tag <Java>.
Selain
bahasa pemrograman yang harus dipilih, untuk membangun sebuah website yang dinamis diperlukan sebuah basis data (database). Saat ini tersedia
berbagai database yang dapat diaplikasikan
untuk pemrograman web baik yang berbayar seperti Oracle, Microsoft Access, Microsoft SQL Server maupun yang gratis (free) seperti MySQL,
PostgreSQL. Banyak programer web yang saat ini
memilih database gratis seperti MySQL karena kemudahan akan penggunaan, referensi, dan di samping karena faktor
ketenarannya. Tatacara dan mekanisme penggunaan database dalam pemograman web
tidak akan dijelaskan dalam makalah ini.
Kriteria Web dan Aspek Keamanan
Website yang baik harus memenuhi kriteria dalam aspek
fungsionalitas, desain, konten, orisinalitas, profesionalisme dan keefektivan.
Sesuai dengan kriteria dalam penghargaan website terbaik tingkat dunia (World Best Website Awards), aspek fungsionalitas yang dinilai meliputi: keteraksesan, kecepatan dan
bandwidth, kualitas HTML, navigasi dan link, dan legalitas. Sedangkan dalam
aspek desain, subaspek yang dinilai adalah desain grafis, user friendliness, beauty, layout, dan integritas.
Dari segi konten, termasuk aspek yang dinilai adalah tujuan, interaktivitas
manusia, proses informasi, ekspresi verbal, ketersediaan konten secara detail.
Dalam aspek orisinalitas, subaspek yang dinilai adalah inovasi, kreativitas,
teknologi, dan visi. Untuk aspek profesionalisme dan keefektivan meliputi customer service dan respon client, nilai, focus, komponen tambahan, dan keefektifan situs
secara keseluruhan. Kriteria-kriteria tersebut dinilai untuk penilaian level 1.
Untuk penilaian level berikutnya aspek yang paling penting adalah sekuritas
server dan rangking search engine. Dengan demikian aspek aspek tersebut di atas dapat
dijadikan acuan dalam pembangunan sebuah website yang baik, sehingga peran programer web dalam hal ini
sangat penting.
Konsistensi dalam Basis Data
Banyak
programer yang kurang menyadari konsistensi data ketika membangun sebuah
aplikasi berbasis web. Padahal konsistensi data adalah sesuatu yang sangat
penting agar output yang dikeluarkan sesuai dengan yang diharapkan. Hal ini
akan semakin bertambah sensitif jika aplikasi kita berhubungan dengan nasib
seseorang atau paling tidak berkaitan dengan masalah uang. Sebagai sebuah
ilustrasi, maka akan dikemukakan sebuah contoh kasus pengisian KRS yang terjadi
di Unnes pada tiap semester.
Unnes
menggunakan sistem rombel (rombongan belajar), sebuah sistem yang kurang lebih
sama dengan sistem kelas pada jaman dahulu. Dengan sistem rombel, peserta yang
mengikuti suatu mata kuliah X dibatasi sesuai dengan kapasitas ruang yang
tersedia. Misalkan mata kuliah X tersebut memiliki kapasitas maksimum 50 orang.
Pengambilan MK dilakukan dengan melakukan request ke server tentang MK yang
akan diambil dengan mengklik link yang disediakan. Dengan model ini, maka besar
kemungkinan dalam satu waktu yang bersamaan terdapat sejumlah banyak user mahasiswa
yang melakukan klik mata kuliah yang sama. Jika itu terjadi pada saat jumlah pengikut baru mencapai kurang dari 49
peserta, maka konsistensi data mungkin masih terjaga. Masalah akan timbul jika
peserta sudah mencapai 49 orang sehingga masih ada sisa 1 orang yang bisa
tertampung, padahal dalam satu waktu tersebut terdapat 10 orang yang sedang
klik MK X. Jika semua counter untuk seluruh mahasiswa mengatakan peserta baru
49 orang, maka apakah kesepuluh tersebut akan dicatat sebagai peserta MK tersebut?
Tentu tidak. Jika semua diterima, maka peserta yang
terdaftar sebanyak 59 orang yang sudah barang tentu melebihi kapasitas ruang.
Jika tidak semua peserta diterima sebagai peserta mata kuliah X, maka siapa
yang harus diterima? Jawabnya adalah sistem transaksi basis data (database
transaction). Masalah yang hampir sama dapat terjadi dalam banyak kasus dalam
kehidupan seharihari, seperti yang terjadi saat 'transaksi' di bank.
Idealnya,
sebuah basis data harus memenuhi syarat ACID yaitu: atomicity (transksi
dikerjakan semua atau tidak sama sekali), consistency (seluruh transaksi harus
terintegral sesuai dengan konsistensinya), isolation (suatu proses tidak boleh
mencampuri proses yang lain), durability (transaksi tidak dapat dibatalkan
kemudian atau hasil yang diperoleh diabaikan). MySQL sebagai salah satu
database yang sangat populer dipakai oleh para pemrogram web telah mendukung
transaction. Agar proses transction dalam sebuah tabel berjalan, maka tabel
tersebut harus bertipe InnoDB. Untuk itu pada saat membuat tabel yang
diperlukan dalam aplikasi perlu didefinisikan tipe dari tabel tersebut, karena
secara default tipe tabel di MySQL adalah MyISAM.