01 Intro

Halo, selamat datang di kolom ScriptingWorld master.web.id. Setelah sekitar 5 bulan vakum menulis artikel berbahasa Indonesia—yakni sejak mwmag berhenti terbit akhir 2002 lalu—atas permintaan Dhiar, saya akan mencoba untuk menulis artikel baru di kolom online ini setiap 1–2 minggu. Alamat kolom ini adalah www.master.web.id/scriptingworld/. Artikel pertama ini akan menjelaskan sedikit latar belakang kolom ini, apa itu scripting, dan apa saja yang akan dibahas pada tulisan-tulisan mendatang.

Ada Apa Dengan mwmag?

Seperti bulan lelap tidur di hatimu; yang berdinding kelam dan kedinginan; Ada apa dengannya.—Rangga

mwmag adalah majalah cetak yang diprakarsai oleh beberapa orang dari master.web.id (Dhiar, saya, dan Ewing) dan kini dimiliki oleh PT Indolinux Inti Media, Tangerang, Jakarta. Selama sekitar 1 tahun masa beropeasinya sejak Okt 2001 hingga Okt 2002, telah diterbitkan 7 edisi + 1 edisi yang tidak dicetak dan bisa dibaca online. Di mwmag saya bekerja sebagai kepala editor + editor naskah tunggal: mencari naskah, menerima dan mengeditnya, dan juga mengisi majalah dengan tulisan-tulisan sendiri, antara lain kolom tutorial regex dan Python. Kini mwmag sedang vakum alias tidak terbit. Dan saya kini tidak sedang melakukan apa-apa dengan mwmag. Kegiatan utama saya saat ini hanyalah di PT Master Web Network (MWN) sebagai pengembang sistem, dan di PT Master Web Indonesia (MWI) sebagai penulis kolom ScriptingWorld.

Kenapa saya menyinggung mwmag? Karena meskipun sudah sempat dibahas di milis-masterweb dan ada wawancara yang menjelaskan mengenai nasib mwmag, dari waktu ke waktu selalu ada yang bertanya kepada saya; bahkan ke staf MWI dan MWN. Plus karena saya anggap ScriptingWorld kurang lebih sebagai salah satu saluran penerus buat saya menulis artikel, mungkin ada baiknya saya beri penjelasan juga di sini.

Salah satu penyebab orang bertanya ke tempat yang salah (MWI dan MWN) adalah terlalu banyaknya kata “master web” di sini. Padahal ada tiga “master web” yang berbeda—meskipun sebagian orangnya sama. Jadi ceritanya begini: mula-mula ada situs komunitas master.web.id yang menjadi popular dan akhirnya membentuk PT Master Web Indonesia (MWI). Pemiliknya Dhiar dan bidang usahanya seputar jasa pembuatan web, komik, dsb. Lalu ada PT Master Web Network (MWN). Pemiliknya Dhiar, Alex, dan saya. Bidang usahanya web hosting dan network integrator. Dan terakhir ada PT Masterweb Media (mwmag). Pemiliknya PT Indolinux (Edy Liu) dan bidang usahanya penerbitan majalah. PT Indolinux sendiri juga bergerak di bidang web hosting dengan merek Neocyber.

MWN dan MWI tidak terlibat sama sekali dan tidak tahu menahu soal majalah. Jadi mohon para pembaca atau pelanggan mwmag menghubungi PT Indolinux untuk segala sesuatu yang berhubungan dengan mwmag. Alamat kantor PT Indolinux adalah sbb.:

PT Indolinux Inti Media / PT Indolinux Inti Solusi
www.mwmag.com / www.indolinux.com / www.neocyber.net
Karawaci Office Park Blok A No. 9
Lippo Karawaci, Jawa Barat 15811
Telp: 021-5577-0581
Fax: 021-5577-0937

Penyebab lain orang masih bertanya-tanya adalah ketidakjelasan dari PT Indolinux selaku pemilik majalah mwmag dan Indolinux. Selain pengumuan di website mwmag, tidak ada lagi pernyataan pers atau penjelasan dari PT Indolinux. Bahkan saya sendiri selaku karyawan mwmag tidak memperoleh kejelasan status (termasuk soal gaji yang belum dibayarkan) dan sampai sekarang belum dapat menghubungi Bapak Edy Liu. Nampaknya sedang ada masalah di perusahaan yang satu ini.

Oke. Itu penjelasan saya. Semoga puas. Kalau belum puas, silakan menghubungi langsung kantor PT Indolinux lewat telepon atau datang langsung. Sekarang kita ke materi utama.

Apa Itu Scripting?

A script is what you give an actor, but a program is what you give an audience.—Larry Wall

Pencipta bahasa skripting Tcl, John Ousterhout, pernah membuat definisi yang cukup dikotomis antara bahasa pemrograman (bahasa “aplikasi”) dan bahasa skripting (bahasa “pengelem”). Menurutnya, bahasa aplikasi bersifat strongly typed, mengizinkan kita membuat struktur data kompleks, bersifat terkompilasi, dan dimaksudkan untuk membuat program yang independen. Contoh bahasa seperti ini yaitu C. Sementara bahasa skripting bersifat interpreted, weakly typed atau untyped, tidak mengizinkan atau hanya secara terbatas memungkinkan kita membuat struktur data kompleks, dan biasanya program hasilnya membutuhkan program-program lain agar dapat berfungsi. Contoh bahasa skripting paling popular adalah shell Unix seperti bash. Seperti kita tahu, skrip shell Unix umumnya hanya memanggil dan merangkai-rangkai program yang kecil-kecil menjadi satu. Bahkan untuk menampilkan isi file saja skrip shell memakai program lain seperti cat. Tanpa program-program lain, skrip shell tidak bisa apa-apa.

Tentu saja, definisi ini terlalu kaku dan tidak selalu sesuai dengan kenyataan. Pertama, bahasa aplikasi tidak selalu strongly typed: C sendiri sebetulnya weakly typed/untyped, karena bebasnya programer memakai casting dan pointer untuk membypass pemeriksaan kompiler. Bahasa-bahasa skripting seperti Python dan Ruby bersifat strongly typed, meskipun menggunakan dynamic (run-time) typing. Kedua, batas antara compiled dan interpreted pun sekarang tidak jelas. Lagipula sebuah bahasa bisa diimplementasi secara compiled maupun interpreted. Dulu zaman 80-an misalnya, bahasa C yang interpreted sempat cukup popular. Dan ketiga, yang disebut “bahasa skripting” sekarang sudah jauh lebih sempurna dan kaya fitur, tidak lagi menyerupai shell Unix yang seperti bahasa “mainan.” OOP, pemrograman modular, struktur data kompleks; semuanya bisa kita peroleh dari bahasa skripting. Sehingga bahasa skripting pun bisa dipakai untuk membangun sistem yang besar dan kompleks.

Jadi kita mungkin perlu mencari definisi yang lebih tepat. Sejak dua tahunan yang lalu, Lab AI MIT menggelar workshop tahunan berjudul “Lightweight Languages Workshop” sekaligus mempopularkan istilah “lightweight.” Barangkali istilah ini pula yang lebih cocok untuk menggambarkan bahasa-bahasa yang ingin saya bahas. Tapi untuk saat ini kita akan tetap memakai istilah “skripting”.

Apa itu bahasa yang lightweight? Sesuai arti katanya, bahasa yang lightweight yaitu yang ringan. Tidak [terlalu] kompleks, sehingga tidak perlu belajar terlalu lama untuk bisa menguasainya. Tidak banyak aturan, sehingga cepat dan tidak susah bikin program, apalagi yang pendek-pendek. Tidak kaku, sehingga programer bisa berekspresi bebas dan have fun menulis program.

Bahasa Mana yang Termasuk Scripting?

Pengkategorian orang mungkin berbeda-beda. Tapi menurut saya, ini contoh bahasa-bahasa skripting: Perl, Python, Ruby, VB, ASP/VBScript, Javascript, PHP, dan Tcl. Umumnya bahasa-bahasa ini memang dynamically typed, tidak mewajibkan kita mendeklarasikan variabel sebelum memakainya. Sebagian compiled (rata-rata ke bytecode), sebagian lagi interpreted. Semuanya bersifat lebih high level dari C dan lebih mudah menulis program yang portabel.

Ini contoh bahasa-bahasa yang tidak saya anggap skripting: Java, C, C++, Pascal/Delphi. Rata-rata bahasa ini lebih kaku. Lebih cerewet akan sintaks. Dan lebih banyak punya aturan. Misalnya saja, untuk menulis program “Hello, world!” kita mungkin harus membuat kelas dulu, memanggil modul lain dulu, dsb. Sementara di bahasa skripting, cukup dengan:

print "Hello, world!";

Apa Yang Akan Dibahas Di Kolom Ini?

Tujuan kolom ini adalah menunjukkan bahwa bahasa skripting bukanlah bahasa mainan yang bisa dipandang sebelah mata, melainkan bahasa-bahasa yang produktif dan juga tak kalah ampuh. Pembahasan paling banyak akan berkisar pada 3P+R (Perl, Python, PHP, dan Ruby) karena bahasa-bahasa inilah yang saya gauli sehari-hari. Tapi kita juga akan bermain-main dengan ASP, Javascript, .NET, dan juga mungkin Actionscript—andaikata suatu hari saya tertarik menjadi animator.

Kita juga akan banyak membahas regular expression (regex), MySQL/database lainnya, sistem administrasi (terutama di lingkungan Unix/Linux), dan Internet (HTTP, HTML, email, dsb) karena itu semua berkaitan erat dengan pemakaian bahasa skripting sehari-hari.

Untuk satu-dua artikel mendatang, kita akan bermain-main dengan MySQL. Jadi, saya tunggu kehadiran Anda sekitar minggu depan. Salam.

[Last-Modified: Wed Feb 26 19:50:50 2003]


Copyright © 2003 PT Masterweb Indonesia
Hak cipta dilindungi undang-undang.