Artikel ini dapat digunakan, disalin, dan disebarluaskan. Cukup cantumkan sumber asli. Jika isinya mengandung kebenaran, semoga memberi kebaikan bagi kita yang memanfaatkannya. Jika ada yang salah, mohon kiranya penulis dimaafkan. Dan sangat baik, jika kesalahan tersebut dapat diberitahukan kepada penulis.
Yanmarshus, 21 Juli 2008, yan[at]daunsalam[dot]net

Saya Tidak Gila

Ini sebuah cerita.

Kang, saya mau mebuat sebuah program.
Demikian dimulai bincang2 di pinggir gang itu.
Lho, program apa? Untuk apa?

Demikian awalnya. Sederhananya, ketika membuat sebuah program, tentu ada asal usul mengapa membuat sebuah program. Mari saya buat menjadi sederhana cerita di atas. Saya mau membuat program yang menampilkan kalimat
"Saya tidak gila".
Itu saja.

Aha, jelas sekarang. Permintaannya cukup jelas dan mudah, sehingga memang tidak membuat si Akang gila beneran. Untuk membuat sebuah program pada komputer, menggunakan "bahasa pemrograman" tertentu. Ada banyak sekali bahasa pemrograman. Untuk contohnya : C, Pascal, Basic, Python, Perl, C++, Ruby, PHP, Java, Fortran,... Banyak sekali. Kalau mau tahu lebih banyak, lihat di wikipedia, alamat berikut bisa dikunjungi :
http://en.wikipedia.org/wiki/Alphabetical_list_of_programming_languages
http://en.wikipedia.org/wiki/Timeline_of_programming_languages
http://en.wikipedia.org/wiki/List_of_programming_languages_by_category

Setelah melihat halaman wikipedia di atas, ada kemungkinan hidup kelihatan lebih susah, karena daftarnya sangat panjang. Saya cuma mau menampilkan "Saya tidak gila" saja kok disuguhi daftar bahasa pemrograman yang demikian banyak. Ah, ribet.

Ha?, kalau begitu mari kita lupakan daftar di atas. Pilih saja satu, yaitu bahasa C. Mengapa bahasa C? Ya udah, pokoknya ikut sajalah. :-) Atau salah satu jawabannya, di Linux banyak program dibuat dengan bahasa C.

Baiklah, mari kita mulai. Jalankan satu program teks editor yang mudah digunakan. Bisa vi kan? Itu lagi! Itu susah. Ya pilih yang lain, misalnya gedit. Tulis program seperti di bawah ini.

void main() {
  printf("Saya tidak gila");
}

Setelah itu simpan dengan nama : saya.c
Sebaiknya simpan dalam sebuah direktori yang dipersiapkan untuk program luar biasa ini. Setelah disimpan, gunakan konsol/xterm, lalu masuk ke direktori dimana file saya.c tadi disimpan. Misalnya di direktori /home/ujang/coba

Setelah berada dalam direktori tersebut, jalankan command sebagai berikut :

gcc saya.c

Abaikan saja apa yang tampil di layar, selama tidak ada kata-kata yang menyebut ERROR. Setelah itu coba lihat isi direktori dengan perintah ls. Maka sekarang akan ada sebuah file baru dengan nama : a.out

Langkah terakhir, jalankan perintah berikut :

./a.out

Jika tidak ada yang salah, maka di layar akan tampil tulisan
Saya tidak gila.
Berhasil!

Sekarang kembali ke atas. File saya.c adalah file teks biasa yang di dalamnya berupa program yang ditulis dengan bahasa C. File saya.c belum bisa dijalankan, karena hanya sebuah file teks biasa. Agar program yang ditulis tersebut menjadi program, maka ada proses yang disebut dengan kompilasi. Proses kompilasi memproses file saya.c menjadi sebuah file yg sudah bisa dijalankan. Pada proses di atas, kompilasi saya.c dilakukan oleh program gcc. Karena gcc melakukan kompilasi, maka gcc biasa juga disebut dengan "compiler".

perintah : gcc saya.c menghasilkan file a.out
File a.out adalah program yang sudah bisa dijalankan. Dan terakhir, perintah ./a.out adalah perintah untuk menjalankan program a.out itu sendiri, yang kemudian menampilkan tulisan Saya tidak gila.

Jelas kan? Kalau belum, baca lagi dari atas. Begitu terus diulang sampai jelas. :-D

Selanjutnya, cari dokumen/buku/manual di internet yang berisi semua ketentuan bagaimana menulis program dalam bahasa C. Baca sampai paham semuanya, maka program apapun bisa dibuat dengan bahasa C. Demikian kejadiannya jika di alam mimpi.

Bolehkan saya menggunakan bahasa yang lain? Ya boleh saja kok. Belum ada larangan untuk menggunakan sebuah bahasa, sampai larangannya betul-betul dibuat. Terus caranya bagaimana? Ya sama dengan cara di atas. Tulis programnya, lakukan kompilasi, lalu jadilah program. Misalnya sekarang pakai bahasa Pascal, tulis programnya dengan teks editor, lalu kompilasi, maka jadilah program. Kalau program dengan bahasa C dikompilasi dengan gcc, maka pascal dikompilasi dengan freepascal. Kalau belum ada freepascal dalam komputer, ya instal dululah.
/* Masak duludong, Mulan aja jamilah, masak jamidong... Gariiing */

Dalam dua contoh di atas, selalu ada proses kompilasi, apakah tidak ada yang selesai ditulis programnya langsung dijalankan saja. Ada. Sama dengan cara sebelumnya, gunakan teks editor, lalu tulis seperti berikut ini.

print "Saya benar-benar tidak gila";

Lalu simpan di direktori yang disiapkan tadi dengan nama : lagi.pl
Masuk ke direktori tersebut melalui konsol/xterm, jalankan perintah berikut :

perl lagi.pl

Selama tidak ada yang aneh2, mudah-mudahan di layar akan tampil Saya benar-benar tidak gila

Nah, disini tidak ada proses kompilasi. Setelah program ditulis, bisa dijalankan langsung. Hanya saja tidak seperti sebelumnya, menjalankan program ini memerlukan cara yang agak berbeda, yaitu dengan perintah : perl lagi.pl

Kira2 begini maksudnya. Untuk menjalankan program yang ditulis dalam file lagi.pl, dilakukan oleh : perl
Jadi perl yang membaca isi file lagi.pl, kemudian si perl ini yang melakukan proses yang ada dalam file lagi.pl Cara seperti ini disebut dengan interpretasi. Jadi perl adalah "interpreter", karena dialah yang melakukan interpretasi, kemudian menjalankan apa proses yang ada dalam file lagi.pl Program yang ditulis dalam file lagi.pl tentu dalam bahasa yang dimengerti oleh interpreternya, yaitu Perl. Contoh interpreter selain Perl adalah : Python, Ruby, Php, Pike.

Apakah masih ada model lain lagi? Ada, yaitu seperti yang dilakukan oleh Java dan Mono. Dan karena penjelasannya bisa sangat panjang, menjadi PR saja bagi pembaca sekalian.

Mari kita lanjutkan.

Dua bulan setelah kejadian di atas. Ternyata susah sekali membuat program ya. Semuanya harus ditulis dengan detil, langkah demi langkah. Apa tidak ada sesuatu cara yang lebih mudah? Lho, emangnya bikin program apa sih. Itu... tetangga mau dibuatkan program untuk memainkan file mp3. Sudah 5000 baris program kok gak bisa juga :-( Mengapa membuat program lagi untuk memainkan file mp3? Kan sudah banyak, tinggal pakai. Ada xmms, mpg321, alsaplayer, dll. Abis dia maksa sih. Pakai ngancam mau diputusin segala...

Sini duduk dulu.
Daripada program untuk memainkan file mp3 itu ditulis semuanya, sebagian kode programnya kan bisa pakai yang sudah dibuat orang lain. Dalam program kita tinggal lakukan yang gampang2. Misalnya begini :
- Baca file mp3 dari harddisk
- Proses file mp3 tsb dengan libmad
- Bunyikan melalui alsa.
Nah selesai kan?
Lho libmad sama alsa itu?
Silahkan tanya ke google.
Singkatnya begini. Daripada melakukan proses decode yg rumit untuk file mp3, sudah ada fungsi yang cukup bagus, misalnya yang disediakan oleh libmad. Disitu dijelaskan bagaimana menggunakannya dalam program kita. kemudian untuk mengeluarkan bunyi, kita pakai juga cara yang sudah disediakan alsa. Menggunakan alsa, juga ada panduannya. Lalu fungsi2 itu kita pakai dalam program kita, jadilah program untuk memainkan file mp3. Ya toh?
Ah, itu kan gampang-gampangan kata sampeyan aja.

Seminggu setelah itu.

Kang! Gawat. Dia protes, masak program player mp3 itu tidak ada bagus2nya? Untuk membunyikan file mp3 masak harus mengetik nama programnya dulu. Apa tidak bisa yang klak-klik saja.

Ayo, sini duduk lagi.
Dulu kan sudah diceritakan pakai libmad sama alsa. Apa belum bisa juga? Lho emang bisa pakai libmad dan alsa jadi ada klak-kliknya? Ohooo, bukan. Sekarang kita cari juga fungsi yang menyediakan tampilan grafis yg bagus, lalu kita pakai lagi dalam program itu. Gitu lhooo.
Tapi pakai apa?
Nah itu gunanya google. Coba cari gtk, atau qt, atau fltk, atau fox toolkit. Barang-barang itu menyediakan fungsi untuk tampilan yang asik di layar.

Tiga minggu berlalu.

Kang, capek semua jari2ku, mata pegel, pinggang linu. Kenapa? ya itu, gara2 bikin program untuk mp3 player. Masak semuanya diketik, dikompilasi, diperiksa, ketik lagi, periksa lagi.

Ya itu, akibat semuanya pakai gergaji doang. Motong kayu pakai gergaji. Mau melobangi kayu, pakai gergaji. Kayunya mau dipaku pakai gergaji. Ya cari alat yang sesuai. Kan perlu palu, pahat, kuas, bor, handuk. Handuk? untuk apa?
Untuk ngelap keringat!

Mbok ya coba2 program seperti Kdevelop, Anjuta, Netbeans, Eclipse, Glade. Jangan vi melulu.

Udah ah, takut ada yang tersinggung.