Posting ini tidak akan membahas banyak hal waktu sama masih SMU. Posting akan membahas kisah cinta saya, cinta pada programming. Saya belajar komputer kali pertama kelas 2 SMP, tahun 1994. Waktu itu saya ikut kursus DOS, Wordstar dan Lotus 123. Nama tempat kursus saya waktu itu adalah Linggar jati, di dekat pertigaan jalan raya bogor ke arah Cibubur. Dari segi komputer dan pengajar, tempat itu sangat biasa, yang luar biasa adalah: semua siswa boleh belajar di luar jam kursus, dan bahkan jika ada kursus lain pun boleh menggunakan komputer yang di belakang (jika tidak dipakai), asalkan tidak menganggu yang lain.
Di situlah saya belajar sendiri memprogram dalam bahasa BASIC. Buku pegangan saya cuma buku panduan ujian bahasa BASIC. Bukunya tidak punya teori, cuma soal pilihan ganda dan kunci jawaban saja. Ternyata buku semacam itu mudah untuk dipelajari, misalnya ada pertanyaan “Fungsi LEFT$ berguna untuk?”, lalu saya cari jawabannya, misalnya “mengambil N karakter terkiri”, nah dari situ saya tahu apa gunanya fungsi LEFT$. Setahun kemudian ayah saya membelikan Apple II/e (komputer tua yang dibeli karena bapak saya tidak mengerti soal komputer, dan kebetulan ada yang menjual murah). Saya banyak memprogram BASIC di komputer itu, tapi sayang dalam beberapa bulan komputernya mulai rusak, dan saya tidak punya lagi arsip program-program lama saya.
Tanggal 10 Januari 1997, kelas 2 SMU saya dibelikan PC pertama saya: Pentium 120 Mhz, Ram 16 Mb, harddisk 1 GB. Itulah dimulainya petualangan memprogram. Hari ini saya menemukan beberapa program yang saya buat waktu itu. Melihat program-program tersebut, aneka hal muncul di pikiran saya:
- Melihat sebagian program, saya berpikir: wah kok saya dulu goblok banget ya, kan ini mestinya bisa begini
- Melihat sebagian program lain saya berpikir: wah hebat juga ya, dulu saya bisa ngerti ini, padahal cuma belajar sendiri
- Wah kok dulu kepikiran ya bikin program ini
- Ngapain coba bikin program ini, gak ada gunanya
- Wah ternyata dulu saya fans Sailor Moon
Sebelum kuliah di ITB, saya belajar memprogram otodidak. Waktu itu saya nggak kenal yang namanya TOKI (Tim Olimpiade Komputer Indonesia) atau IOI (International Olympiad in Informatics). Saya mencoba-coba ikut seleksi olimpiade Fisika, Kimia, dan Matematika. Semuanya lolos sampai Jakarta Timur, dan semuanya mentok di level DKI Jakarta :(. Masa-masa SMU dulu masa perjuangan biar bisa masuk universitas negeri yang bagus. Pengennya sih dulu bisa lolos seleksi olimpiade masuk level nasional, biar gampang mencari perguruan tinggi negeri. Tapi ya ternyata rencana Tuhan nggak begitu. Nyoba PMDK juga nggak diterima di Universitas Indonesia. Tapi syukurlah akhirnya di terima di ITB.
Di tengah perjuangan masa SMU, hal yang membuat saya senang adalah pulang ke rumah dan menyalakan komputer, dan mulai memprogram. Program yang saya buat bukan jenis problem solving seperti anak-anak TOKI. Program yang saya buat adalah for fun, tepatnya demi kesenangan saya sendiri. Misalnya dulu saya senang membuat game, aneka macam utility kecil.
Panjang banget ya intronya. Padahal intinya cuma mau memamerkan aja dulu bikin program apa aja :). Karena dulu saya cuma punya sedikit buku (seingat saya cuma punya: Pengenalan Komputer oleh Jogiyanto, Pemrograman Animasi dan Game Professional, oleh Agustinus Nalwan, dan buku Meningkatkan Dayaguna komputer dengan Turbo Pascal oleh Busono) plus majalah Mikrodata, maka banyak banget hal-hal ngaco yang saya lakukan. Catatan: waktu itu saya nggak punya akses internet sama sekali.
Ini game othello yang sederhana (AI-nya jelek deh). Dibuat Mei 1998, mendekati masa UMPTN
Dalam Gamenya seperti ini:
Berikutnya adalah game pesawat. Ini memakai sprite (gambar) dari buku Animasi dan Pemrograman Game Professional, soalnya nggak bakat nggambar, dan nggak seperti sekarang yang mudah mencari gambar di Internet. Ada editornya juga lho, editornya untuk meletakkan musuh di suatu lokasi (ada berbagai jenis musuh).
Berikutnya adalah game memory, game membuka dua kotak untuk mencari yang cocok. Saya lupa ini dapat gambarnya dari mana.
Kadang-kadang saya nggak ngerti kenapa terlalu iseng, misalnya membuat jam digital seperti ini:
Kalau tabel ASCII seperti ini, kadang-kadang masih berguna
Kadang-kadang hanya ingin menganimasikan sesuatu, misalnya tower of hanoi
Atau lintasan bola yang ditembakkan meriam:
Kadang-kadang pemilihan warna saya sangat jelek, seperti misalnya game reverse ini:
Kadang saya membuat komponen-komponen yang akhirnya tidak dipakai, atau tidak diteruskan. Misalnya saya punya komponen pemilih file:
Rencananya akan dipakai di editor diary saya, tapi akhirnya tidak diteruskan.
Padahal editornya sudah punya fitur HELP
Saya juga sudah memikirkan algoritma word wrap
Hasilnya seperti ini:
Saya juga membuat aneka utility. Tapi ini sulit ditunjukkan (interface command line). Misalnya saya pernah membuat pengubah nomor seri DISK. Ini berguna untuk membypass proteksi tertentu.
Program backup CMOS
Sebagian program kurang berjalan baik di DOSBox. Misalnya dulu saya punya program untuk membaca dan mengecek disket. Karena disket mudah rusak, dan disket yang mulai rusak akan lebih lama dibaca, saya bisa memprediksi jika disket mulai rusak. Di DOSBox semua sektor dianggap rusak.
Meski memakai Pascal, saya suka menggunakan inline assembly. Seperti ini:
Kadang-kadang saya cuma belajar struktur data, (misalnya stack menggunakan pointer):
Dan ternyata kadang-kadang saya membuat hal “bodoh” seperti “Kuis Sailormoon”. Kalo dipikir-pikir sih nggak “bodoh”, mengingat lebih banyak kuis di Facebook yang sangat bodoh (dan diikuti boleh banyak orang).
Ini cukup generik lho, ada editor kuisnya:
Nah itulah sebagian dari program-program yang saya buat. Masih banyak yang lain, tapi sebagian file datanya hilang :(, sebagian sulit ditunjukkan (kompresi huffman misalnya), sebagian unitnya hilang (misalnya program fractal), dan sebagian lagi ternyata programnya error (mungkin bukan versi backup terakhir, atau mungkin nggak saya terusin lagi).
bulan lalu saat sedang bebersih kotak CD, saya gak sengaja ketemu kumpulan program-program yang pernah saya buat masa SMP dan SMA.
ternyata reaksi kita gak berbeda jauh ya Pak. hehehe.
Salam kenal, om.
Program untuk memprediksi disket yang mulai rusak, belajarnya dari mana?
Saya mau refresh pelajaran Pascal saya waktu kuliah.
Belajar sendiri. Idenya kan sederhana: kalau misalnya membaca sebuah sektor butuh waktu lebih lama dari rata-rata, berarti disketnya udah mau rusak (biasanya artinya gagal dibaca sekali dan perlu dibaca berulang-ulang oleh hardwarenya).
Lagi googling gambar game pesawat dari Buku Seri Pemrograman Game nya Agustinus Nalwan, dan stumble upon this blog 🙂 itu buku yang ngajarin saya inline assembly di Turbo Pascal pas SMU dulu.
*going down the memory lane*