Yani’s Weblog

it’s all about software engineering…

Yang asik di SAB…

Apa yang asik di SAB ?

Buat Kiki (Kelas 3):

  • saat panen; karena bisa membuat markas di kolong saung dengan jerami bekas panen…
  • saat punya kambing peliharaan; karena jadi harus ‘ngarit’  rumput buat si kambing…
  • saat kebagian tugas menangkap kodok untuk makanan burung elang (sayang, sekarang sudah tidak ada)…
  • saat perang-perangan dengan senapan pelepah daun pisang…
  • saat diajarin memanah dan melempar pisau sama gurunya…
  • dan masih banyak lagi…

Buat Didit (Kelas TK-A):

  • saat berendam di selokan yang airnya deras tapi jernih…
  • saat naik kuda di lapangan sekolah…
  • saat jalan-jalan ke sawah dan menangkap ‘keuyeup’…
  • saat perosotan di turunan tanah (celananya sampai kotor tidak karuan)…
  • saat berayun ala tarzan di tangga rumah pohon…
  • dan jelas… masih banyak lagi…

Belajarnya kapan ? Belajar di SAB bisa dilakukan disela-sela yang asik-asik itu… :D

Didit lari ke sekolah:

Foto0800

Saung kelas Didit (Saung Mentawai):

Foto0802

May 27, 2009 Posted by yaniwid | Uncategorized | | 2 Comments

Sudah besar…

Rabu 6 Mei lalu, Kiki outing ke TMII bersama sekolahnya. Biasanya, kalau ada outing ke tempat yang agak jauh, Kiki akan ditemani saya atau ayahnya. Tapi kali ini kami tidak ada yang bisa mengantar. Jadilah Kiki pergi sendiri. Cukup banyak temannya di kelas 3B yang ditemani orang-tuanya. Syukurlah Kiki tetap mau pergi sendiri. “Nggak apa-apa lah…  (Kalau ada apa-apa) aku udah kenal sama ibu-ibu yang lain kok…,” kata Kiki. Memang di beberapa acara bermalam di sekolah pun, Kiki sudah berani ikut tanpa harus ditemani lagi…

Ada perasaan senang dan bangga, Kiki sudah semakin mandiri. Tapi tenyata ada sedikit perasaan ’sedih’ juga. Tak terasa, Kiki memang sudah semakin besar. Ketergantungan pada orang-tuanya sedikit demi sedikit mulai berkurang. Dan terseliplah sedikit perasaan ‘tidak dibutuhkan lagi’…

Waktu akan terus berlalu, anak-anak akan terus bertambah besar dan mandiri. Mudah-mudahan, waktu yang singkat ini bisa diisi dan dimanfaatkan dengan sebaik-baiknya…

Foto0685 Foto0680

May 19, 2009 Posted by yaniwid | Uncategorized | | 6 Comments

Inheritance di JavaScript

Berbeda dengan pada C++ dan Java, implementasi konsep inheritance di JavaScript tidak hanya ada satu, tapi ada beberapa. Secara umum, pola-pola tersebut dapat dikelompokkan menjadi dua: berbasis fungsi konstruktor dan berbasis objek. Pada kelompok pertama, kita akan memanfaatkan properti fungsi konstruktor parent object agar bisa diwariskan menjadi properti fungsi konstruktor child object (ingat, di JavaScript, fungsi adalah object yang punya properti dan bahkan method). Pada kelompok kedua, kita akan melakukan ‘cloning‘ terhadap object yang sudah ada (yang akan jadi parent). Selanjutnya, object baru hasil ‘cloning’ (yang jadi child) bisa kita tambah-tambahi dengan properti baru.

Inilah kedua-belas cara implementasi inheritance di JavaScript (implementasi inheritance sesuai standard ECMAScript adalah yang pertama):

  • Prototype chaining (constructor)
  • Inherit only the prototype (constructor)
  • Temporary constructor (constructor)
  • Copying the prototype properties (constructor)
  • Copy all properties (shallow copy)    (object)
  • Deep copy (object)
  • Prototypal inheritance (object)
  • Extend and augment (object)
  • Multiple inheritance (object)
  • Parasitic inheritance (object)
  • Borrowing constructors (constructor)
  • Borrow a constructor and copy the prototype (constructor)

Pilih yang mana ? Masing-masing tentu punya kelebihan dan kekurangan…

(sumber: Object-Oriented JavaScript, Create scalable, reusable high-quality JavaScript applications, and libraries, Stoyan Stefanov, 2008)

May 19, 2009 Posted by yaniwid | oop | | No Comments Yet

Musim hujan di SAB

Akhir-akhir ini hujan kerap turun lagi. Bukannya malas sekolah, anak-anak SAB -termasuk Kiki dan Didit- lebih semangat lagi ke sekolah. Ya, inilah saat-saat dimana jas hujan yang biasanya tersimpan di dalam tas sekolah, jadi sering dipakai. Lokasi sekolah yang terbuka membuat anak-anak harus memakai jas hujan saat akan berkunjung ke saung lain (kelas-kelas di SAB berupa saung dua lantai semi permanen, tanpa dinding), atau sekedar ke toilet. Dan Didit dengan senangnya akan selalu memakai jas hujan kuningnya…

Isi tas sekolah anak-anak SAB memang ‘lain’. Bukannya buku-buku dan alat tulis seperti biasanya, isi tas sekolah Kiki (kelas 3) adalah baju ganti, bekal makan siang, jas hujan, dan Al-Qur’an. Didit juga sama, kecuali Al-Qur’an (karena masih TK-A). Perlengkapan belajar sudah disiapkan di sekolah dan jarang sekali harus dibawa pulang.

Hujan ? Bukan masalah untuk selalu bergembira di SAB…

May 16, 2009 Posted by yaniwid | Uncategorized | | 3 Comments

Resume Kuliah RPL

Hari Kamis lalu adalah hari terakhir kuliah Rekayasa Perangkat Lunak (RPL) di Prodi Teknik Informatika ITB. Kuliah ditutup dengan presentasi tugas OOAD dari kelompok terakhir dan sedikit review materi kuliah sepanjang satu semester ini. Apa saja ?

Kuliah diawali dengan uraian singkat tentang apa itu software, apa yang melatar-belakangi berkembangnya software engineering, dan beberapa topik introduction lainnya. Materi berlanjut ke berbagai model software process, termasuk Agile Process Model. Setelah bahasan singkat tentang system engineering dan requirement engineering, barulah dibahas metode terstruktur untuk tahap analisis dan design. Setelah UTS, mulai dibahas metode berorientasi-objek. Dari berbagai metode OOAD yang ada, Unified Process-lah yang dipilih. Bahasan mencakup workflow: requirement dan analysis and design.

Apa tujuan yang ingin dicapai ? Bisa dilihat di sini. Mudah-mudahan jadi bekal dan modal yang bermanfaat untuk terus meningkatkan jam terbang di kuliah lainnya…

Satu lain hal yang perlu diingat, effort terbesar membangun software bukan pada tahap coding tetapi pada tahap design. Jadi, pastikan hasil design yang dibuat sudah lengkap dan tidak ada pekerjaan design yang masih harus dilakukan programmer…

May 16, 2009 Posted by yaniwid | lecture | | No Comments Yet

Dia dan Sepeda

Beberapa hari terakhir ini, suami saya banyak menghabiskan waktu dengan sepeda barunya. Ya, olah raga rutinnya memang bersepeda. Dua atau tiga kali seminggu belasan km ditelusuri. Rute rutinnya adalah rumah – Dago Pakar – sampai ke SAB  (atau kadang-kadang sampai Warung Bandrek). Dan karena sepeda lamanya mulai tidak layak, dibelilah sepeda barunya itu…

Begitulah… Sekarang ini, bangun tidur liat sepeda. Pulang kerja nengok sepeda. Habis makan malam liat sepeda lagi. Bahkan kadang-kadang bersepeda di dalam rumah. Sampai kapan ya ??

(wuaaaa…. cemburu kok sama sepeda ya … :D )

May 14, 2009 Posted by yaniwid | Uncategorized | | 6 Comments

Resume Kuliah PBO

Kemarin sore adalah kuliah terakhir PBO (Pemrograman Berorientasi Objek) di Prodi Teknik Informatika ITB. Apa saja yang sudah kita pelajari sepanjang satu semeter ini ?

Kuliah dimulai dengan pembahasan beberapa konsep baru seperti objek dan kelas (ingat 4 sekawan plus satu dengan operasi stream ?), atribut, method, pewarisan (termasuk multiple inheritance dengan segala permasalahannya), dan polimorfisme. Selanjutnya, kita melihat C++. Bagaimana konsep-konsep tersebut diterapkan di C++ dan ada fitur khas apa di C++. Setelah UTS, kita berpindah ke Java. Diawali dengan beberapa perbedaan mendasar Java dari C++, kemudian kita lihat juga penerapan konsep-konsep OOP di Java.  Sebagai pelengkap, di Java kita bahas Reflection (menarik ya ?) dan Swing. Terakhir kita lihat JavaScript (the most misunderstood programming language) untuk melihat OOP di bahasa yang masuk kategori prototype-based (vs C++ dan Java yang class-based).

Kuliah yang singkat dengan bahan yang padat hanyalah titik awal untuk lebih memahami OOP. Latihan koding untuk mempertinggi jam terbang dan kegiatan mandiri lainnya jelas masih harus dilakukan…

Mudah-mudahan seluruh peserta kuliah berhasil belajar banyak hal semester ini, karena saya juga begitu… ;-)

May 14, 2009 Posted by yaniwid | lecture, oop | | 4 Comments

When I see you smile…

…. I can face the world…  I can do anything…

Foto0067 Foto0569

May 12, 2009 Posted by yaniwid | Uncategorized | | 2 Comments

Object di JavaScript

Object di JavaScript mirip dengan container biasa. Kita bisa mulai dengan membuat sebuah object kosong atau object dengan beberapa properti, kemudian kita tambah-tambah dengan properti baru jika diperlukan. Object di JavaScript mirip dengan associative array di C++, yaitu array dengan key yang bisa kita definisikan sendiri (tidak harus numerik).

Tidak seperti pada bahasa pemrograman berorientasi-objek yang masuk kategori class-based (seperti C++ atau Java), dimana untuk membuat sebuah object kita harus mendefinisikan class terlebih dahulu, maka di JavaScript yang masuk kategori prototype-based, kita bisa langsung membuat sebuah object. Atau kita bisa membuat sebuah fungsi constructor yang bisa digunakan untuk menghasilkan object. Atau kita bisa membuat fungsi biasa yang mengembalikan sebuah object.

Yang menarik adalah bahwa selain tipe primitif (number, boolean, dll), maka yang lainnya adalah object. Bahkan fungsi pun adalah object yang punya properti (baik data maupun method). Fungsi adalah first-class object. Karena itu, JavaScript juga dikatakan sebagai bahasa pemrograman fungsional.

Bagaimana inheritance di JavaScript ? Kita bahas nanti…

May 10, 2009 Posted by yaniwid | oop | | 4 Comments

Cost of Data Migration

Menyambung tulisan sebelumnya tentang migrasi data di sini dan di sini, ternyata kami berhadapan dengan data yang tidak bisa dimigrasi secara otomatis. Kenapa ?

Beberapa data ternyata punya struktur yang tidak normal sehingga perlu dipecah-pecah terlebih dahulu menjadi potongan-potongan kecil. Beberapa data disimpan dalam format teks panjang yang sebenarnya terdiri dari beberapa item data, sehingga perlu parsing terlebih dahulu. Format teks yang tidak seragam menyulitkan parsing otomatis. Belum lagi data yang belum terjamin validitasnya. Beberapa kode yang disimpan langsung dengan deskripsinya, dan tidak divalidasi saat di-entri dulu, menyulitkan kami untuk karena sistem yang baru menuntut validitas data yang tersimpan.

Jika saja proses migrasi dapat dilakukan otomatis, maka cost-nya hanya sebatas cost untuk membuat sejumlah program kecil. Tapi, dengan kondisi seperti ini, perlu effort yang cukup besar karena sejumlah pekerjaan perlu dilakukan manual, yang artinya sejumlah tenaga (orang) perlu direkrut untuk melakukannya…

May 9, 2009 Posted by yaniwid | maintenance, project | | No Comments Yet