16.12.10

"Clean" Programming Check-List

Alhamdulillah, masih bisa mempertahankan (at least) one post per month...

Kali ini, seperti yang tertulis di judul, saya akan sedikit membahas mengenai checklist memprogram, atau dalam bahasa Bu Inge-nya, "Sudah seberapa 'bersih'-kah kamu memprogram?" Saya "berani" membawa topik "kebersihan" program karena, meski ada tulisan tentang Why can't programmers program, saya cukup yakin bahwa pembaca blog ini terdiri "hanya" dari dua tipe saja:
  1. Teman/saudara/kerabat/handai Taulan (TSKHT) saya
    • TSKHT saya yang pernah berurusan dengan dunia pemrograman. Anda pasti bisa memprogram!
    • TSKHT saya yang memang tidak berurusan dengan dunia pemrograman (kayanya sebentar lagi bakal nutup tab ini deh :( )
  2. Orang "lewat"... Jika Anda masuk kategori ini, saya yakin Anda bisa memprogram... Soalnya kalo nggak, gimana caranya bisa nyasar ke blog ini... Wong Page Rank-nya aja cuma 3/10...

Dengan asumsi demikian, Anda pasti bisa memprogram atau tidak pernah berurusan dengan dunia pemrograman... Oleh karena itu, tidak ada salahnya memeriksa kebersihan kode seseorang yang memprogram (!= programmer). Berikut ini daftar yang "dikeluarkan" oleh Bu Inge dalam memprogram: (dalam kasus ini, saya menggunakan Java)

  1. Tidak pernah menggunakan break ataupun continue, so instead of doing something like this:
    int ans = -999;
    for(int i = 0; i < strArr.length; i++){
        if(strArr[i].equals("elvi")){
            ans = i;
            break;
        }
    }
    akan jauh lebih baik jika memperbaikinya menjadi begini:
    int ans = -999;
    {
        boolean found = false;
        for(int i = 0; i < strArr.length && !found; i++){
            if(strArr[i].equals("elvi")){
                ans = i;
                found = true;
            }
        }
    }
    Ini memang "ujian" paling berat, apalagi dari segi panjangnya kode, kode kedua lebih panjang
  2. Tidak memberi return lebih dari satu di satu fungsi, so instead of doing something like this:
    if(i == 2)
        return i;
    return i+1;
    akan jauh lebih baik jika memperbaikinya menjadi begini:
    int ans;
    if(i == 2)
        ans = i;
    else
        ans = i+1;
    return ans;
    
    atau untuk memendekkan kodenya, menjadi seperti ini:
    int ans = i;
    if(i != 2)
        ans++;
    return ans;
    
  3. Tidak memberi return di prosedur (void), so instead of doing something like this:
    public void voidA(int x){
        if(x == 2) return;
        else {
            // do something
        }
    }
    akan jauh lebih baik jika memperbaikinya menjadi begini:
    public void voidA(int x){
        if(x != 2) {
            // do something
        }
    }
  4. Tidak melakukan kesalahan-kesalahan "konyol" memprogram, so instead of doing something like this:
    int i = 0;
    boolean found = false;
    while(!found){
        // do something
        if(/* something happened*/) found = true;
        i++;
    }
    i--;
    or this:
    int i = someFunction();
    if(i == 1){
        // doing something that doesn't change the value of i
    }
    if(i == 2){
        // doing something
    }
    akan jauh lebih baik jika bagaimana? Saya serahkan kepada pembaca untuk menjawabnya...
  5. Tidak cetak-cetek pulpen :D
    Karena cetak-cetek bulpen adalah awal dari kegilaan dunia... Hehehe...
Mungkin banyak, termasuk saya, terutama yang sudah masuk di dunia "nyata" mempertanyakan pentingnya "kebersihan" dari program, tapi saya sendiri sampai saat ini melihat hal diatas sebagai keindahan pemrograman... Meski sama sekali tidak menutup kemungkinan saya melakukan satu (atau lebih) kesalahan diatas, terutama saat kepepet dikejar deadline(eniwei, istilah yang bener untuk batas akhir pengumpulan (tugas, dkk) adalah deadline bukan dateline)


Terakhir... Pesan yang selalu disampaikan oleh Bu Inge kepada anak didiknya "Anakku, jadilah orang waras di dunia yang sudah gila ini"

27.11.10

Dream on dream on...

Keep on dreaming, friends...

Bermimpi memang tidak ada salahnya, masih berkaitan dengan KTT (Khayalan Tingkat Tinggi) (baca juga: Perusahaan Penerima Pekerja dan kehancuran dunia IT), kali ini saya memiliki ide lain, terutama berguna untuk orang dengan mobilitas tinggi dan lebih terutama lagi, untuk negara dengan kualitas internet pas-pasan (saya tidak akan menyebutkan contohnya) :D

Ide yang saya mimpikan ada 2, yang pertama adalah... TRANSFER BANDWIDTH...

Jadi, meski rekan-rekan sudah bisa membayangkan, saya akan menjelaskan sedikit.. Pada saat dua orang, yang satu kaya bandwidth (A) dan yang lainnya miskin bandwidth (B), sedang online bersama... Nah, si B bisa meminta bandwidth beberapa puluh kilobyte(atau ratus kilobyte, atau beberapa megabyte, atau sesukanya lah, tergantung keinginan dan kesepakatan antara A dan B) kepada si A, dan kemudian dia bisa memanfaatkannya... Andai teknologi ini benar-benar terlaksana, hmmm, mungkin bisa dijadiin lahan bisnis juga tuh, seperti "sedia bandwidth sampai 5 Megabit per second hari ini! langganan bandwidth hanya 100 ribu per bulan", sepertinya seru sekali yaaaa... Ihihihi...

Permasalahannya adalah, si penerima (B) masih memerlukan bandwidth (sedikit) untuk menerima transfer-an bandwidth dari si pengirim (A). Oleh karena itu, diciptakanlah ide kedua!! (kaya ide itu apa aja, harus diciptakan segala) Ide kedua dari saya ini adalah, BANDWIDTH STORE!!

Nah yang ini keliatannya jauh jauh lebih asik lagi... Jadi kita bisa menyimpan bandwidth ke dalam suatu drive (hard drive, flash drive, atau mungkin perlu dibuat drive khusus untuk penyimpanan bandwidth). Bahkan di wilayah dengan bandwidth pas-pasan pun, teknologi ini akan sangat membantu. Bayangkan saat kita tidur, kita menyimpan semua bandwidth yang bisa kita peroleh ke dalam drive, kemudian saat kita bangun, tiba-tiba kita mendapati drive kita sudah berisikan bandwidth sebesar 5 GB download dan 1 GB upload... Coba bayangkan jika ini terjadi saat kita mau pulang kampung, yang tidak ada koneksi internet... Kita tetap bisa berselancar di kampung halaman! Jika ide ini benar-benar bisa terealisasikan, sungguh kasian ISP-ISP yang bertebaran di luar sana, sepertinya gak banyak yang masih digunakan di dunia ini... Hwehehehe...

Andai dua ide ini terwujud, nikmatnya hidup ini... Wawawawawa

4.10.10

Caparica vs Bolzano

Walau gabaik membanding-bandingkan, tapi saya tetep pengen bandingin aja, gak untuk menyesal atau terlalu bersenang diri kedepannya, hanya perbandingan biasa saja... Sebelumnya untuk yang tidak tahu dimana itu Caparica dan Bolzano, Caparica itu adalah wilayah suburban Lisbon, jaraknya hanya sekitar 7 km dari ibukota Portugal tersebut, sedangkan Bolzano adalah sebuah kota bilingual di utara Italia, kota besar terdekat dengannya mungkin Milan, yang berada 200 km di tenggara dari Bolzano.

Iklim
Dari segi iklim, Caparica jelas jauh lebih "menggoda" untuk ditinggali... Alasan tidak lain adalah stabilitas (halah) cuaca di sepanjang tahun... Suhu disana (sepanjang satu tahun saya berada) berkisar antara 6-32 derajat celcius, sedangkan di Bolzano sepertinya panasnya mencapai 37-38 dan dinginnya sampai bersalju (yang berarti di bawah 0 derajat celcius)... Sebagai perbandingan, tahun lalu di Caparica suhu udara sampai pertengahan Oktober masih diatas 20 derajat celcius, sedangkan di Bolzano, saat ini (awal Oktober) suhu berkisar 10-17 derajat celcius...

Biaya hidup
Emang gak baik membandingkan biaya hidup (kalo dirupiahin dan dibandingin dengan biaya di Indonesia, atau Bandung pada khususnya). Akan tetapi perbandingan biaya hidup di Bolzano dan Caparica, yang notabene keduanya sama-sama memakai mata uang Euro, pun ternyata cukup terasa... Selain harga tiket bus di Bolzano yang lebih murah, harga barang dan kebutuhan-kebutuhan lainnya di Bolzano berkisar antara 10-80% lebih mahal daripada harga barang yang sama di Caparica. Menurut salah seorang Italia, Bolzano memang kota termahal di Italia, bahkan diatas Roma ataupun Milan biaya hidupnya...

Komunitas Indonesia, komunitas muslim, makanan halal
Untuk tiga hal ini... Bolzano unggul mutlak... Perlu diperhatikan bahwa saya HANYA memperhitungkan keadaan di Caparica vs Bolzano saja, tidak meliputi wilayah sekitarnya seperti Lisbon... Bahkan jika dibandingkan dengan Lisbon, sepertinya komunitas muslim dan makanan halal di Bolzano masih lebih unggul, terutama dalam masalah makanan halal.

Kampus
Tujuan utama pergi "jalan-jalan" ke Eropa kan kuliah, jadi hal ini harus jadi perhatian juga. Dari segi ranking dunia, Universidade Nova de Lisboa (UNL) yang berada di sekitar 500 dunia jelas jauh di atas Freie Universitaet Bozen/Libera Universita di Bolzano/Free University of Bozen-Bolzano (FUB) yang bahkan tidak masuk 1000 besar dunia, tapi buat saya itu bukan masalah utama dalam kehidupan :D

1. Bahasa: FUB yang merupakan kampus trilingual (Italiano, Deutsch, English) jelas jauh lebih memberikan kehidupan yang nyaman, terutama dalam hal pelayanan, kepada 100% mahasiswanya, mulai dari rektor kampus sampai staf sekretaris hampir semuanya bisa berbicara ketiga bahasa tersebut...
2. Fasilitas: Fasilitas yang paling terlihat luar biasa dari FUB adalah perpustakaannya, yang sangat besar, dibandingkan dengan UNL, jelas UNL kalah telak. Beberapa keunggulan UNL adalah adanya kafe-kafe kecil di hampir setiap bangunannya. Dari segi kantin, lab, dan lain-lain, keduanya bisa dikatakan seimbang lah.
3. Infrastruktur: Ini juga satu lagi keunggulan mutlak dari FUB. Student card disini jelas benar-benar bisa dipakai untuk apapun. Student card ini bisa diisi uang, yang kemudian bisa kita gunakan untuk makan di kantin atau ke unibar, masuk ke kampus, masuk ke ruangan-ruangan tertentu, pinjam buku secara otomatis (gak perlu berkomunikasi dengan pustakawan), melakukan aktivitas seperti nge-print, nge-scan, fotokopi... Semuanya bisa (dan hanya bisa) menggunakan student card ini. Bahkan vending machine saja menggunakan student card, benar-benar dimanjakan, tapi hati-hati student card hilang == siksaan hidup selama beberapa hari (dan denda).
4. Jam buka: Jika melihat jam buka perpustakaan saja, FUB jelas menang karena senin-jumat buka dari jam 8-24 dan hari sabtu buka dari jam 9-17 (serta bisa ada akses 24/7 terutama bagi mahasiswa yang mengejar pengerjaan tesisnya, dengan izin terlebih dahulu), UNL hanya buka dari 9-19, itu pun hanya hari senin-jumat saja. Tapi jika melihat jam buka kampusnya, FUB kalah karena hari minggu umumnya tutup (nasib kampus yang hanya berupa bangunan doang, bukan kompleks yang luas), sedangkan UNL selalu buka.

Area wisata
Kalo soal yang ini... susah dikatakan... Jika perbandingannya hanya kota Caparica vs kota Bolzano... Bolzano unggul karena banyak pegunungan yang bisa dikunjungi (dan dipanjat). Tetapi meluas sedikit, Caparica unggul karena dekat dengan Lisbon yang penuh dengan bangunan-bangunan bersejarah yang eksotis (halah). Tetapi meluas dikit lagi (30 menit - 3 jam perjalanan darat), pertandingan mungkin menjadi lebih seimbang... Caparica mendapat "dukungan" dari, bisa dibilang, semua wilayah Portugal (maklum Portugal negara kecil), sedangkan Bolzano meliputi kota seperti Milan yang berada di negeri sendiri, ataupun "sokongan" negara sebelah seperti Innsbruck (Austria) dan Muenchen (Jerman).

Kemungkinan berkunjung ke tempat kakak
Hahahaha... Ini jelas menjadi topik yang sangat PENTING! Okey, dalam hal ini... Kalo cuma dilihat dari segi waktu, mungkin Caparica sedikit lebih unggul... Mengingat hanya butuh 45 menit ke bandara dan 3 jam menuju bandara Koeln/Bonn serta 30 menit ke tempat kakak saya yang pertama... Kasusnya tidak akan jauh berbeda untuk menuju Rotterdam (sepertinya). Sedangkan dari Bolzano ada 2 kemungkinan, menggunakan pesawat berarti perlu ke Milan dulu yang membutuhkan waktu sekitar 3 jam, kemudian pesawat ke Koeln/Bonn (jika ada, mungkin sekitar 1 jam), dan seterusnya. Kemungkinan lainnya adalah menggunakan kereta yang membutuhkan waktu sekitar 9 jam.

Akan tetapi, jika memperhitungkan harga yang yang harus dibayar, Bolzano gantian memimpin karena biaya satu perjalanan (dengan kereta) "hanya" sekitar 40-60 euro, sedangkan dari Caparica membutuhkan setidaknya 80-90 euro...

Okey, sekian dulu perbandingan dua kota tempat saya menuntut ilmu masing-masing 1 tahun (amiiin, semoga tesis cepat kelar), semoga dimanapun saya berada, saya bisa menikmati setiap detik yang saya lewati... Amiiiiiiiiiiin...

31.8.10

Ternyata....

Hampir satu setengah bulan sudah saya menginjakkan kaki di bumi Indonesia tercinta ini. Satu hal yang saya rasakan, pikiran saya banyak sekali tercurahkan di berita-berita jelek yang hadir setiap waktunya. Kasus kedaulatan NKRI, kasus senior paskibraka yang anonoh, kasus pembunuhan maling helm oleh polisi, penyiksaan pengendara motor yang mengingatkan polisi karena ber-sms selama mengendarai motor, sampai yang terbaru ini, penembakan nelayan oleh polisi untuk melindungi pihak pemodal.

Berita yang terakhir ini membuat hati ini sangat miris, bagaimana tidak, kita merasa kedaulatan kita sedemikian terinjak-injaknya karena polisi Malaysia yang 'melindungi' warganya dengan melakukan penangkapan warga negara asing (dengan cara yang salah) telah dianggap menodai kedaulatan negara ini. Tapi justru di dalam negeri, polisi Indonesia 'melindungi' warga negara asing dengan cara mengorbankan warga negaranya sendiri, bukan sekadar ditangkap, tapi langsung ditembak mati. "Luar biasa" sekali, dan kita masih menganggap apa yang dilakukan polisi Malaysia itu cukup gila, bahkan melempari kedutaan Malaysia dengan kotoran...

Memang 'kejahatan' sudah benar-benar mengakar ke segala pelosok negeri ini. Termasuk tadi. Tadi saya berbelanja buku di Palasari, karena saya tahu, diskon di Palasari terkenal paling besar di seantero Bandung ini, apalagi jumlah buku yang saya beli cukup banyak. Untungnya saya sudah mencatat buku-buku apa saja yang mau saya beli, sebagian saya baca resensinya di internet dan karena masuk 'best seller'-nya Gramedia, dan juga harga buku-buku tersebut di Gramedia (yang setahu saya, tanpa diskon).

Sewaktu membeli buku-buku tersebut, saya melihat harga-harga yang ditulis oleh penjual disana di bon, kemudian dia memberi diskon 25%, yang sudah lumayan besar. Sebelum membayar, karena saya punya daftar harga di Gramedia-nya, saya bisa membandingkan harga 'tanpa diskon' Gramedia dengan harga 'tanpa diskon' di Palasari, dan ternyata saudara pemirsa, harga di Palasari sudah dinaikkan terlebih dahulu oleh sang pedagang! Sehingga jika dihitung-hitung, diskon yang kami (saya ke Palasari bersama ibu saya) hanya sekitar 5-10%. Saya pun protes kepada sang pedagang dan mengatakan kepadanya daftar harga di Gramedia untuk buku-buku tersebut. Pedagang tersebut pun berkilah bahwa buku-buku di Gramedia sebagian sudah didiskon, yang saya yakin adalah suatu kebohongan. Akhirnya saya meminta harga buku-buku tersebut dihitung ulang dengan harga dasar = harga di Gramedia.

Saya sama sekali tidak menyangka, bahkan Palasari, yang terkenal dengan kemurahan harganya, ternyata melakukan kecurangan semacam ini. Saya kira kecurangan penaikan harga sebelum diskon hanya dilakukan oleh supermarket-supermarket yang mengatakan "Diskon 50%", padahal harga si barang sudah dinaikkan hampir 2x lipat terlebih dahulu, sehingga diskon sebenarnya menjadi sangat kecil.

Akhirul kata, jika Anda semua berminat membeli buku di Palasari, ada baiknya mengecek 'harga asli'-nya di toko buku seperti Gramedia, Gunung Agung, atau semacamnya, sehingga menghindarkan dari kasus penipuan seperti ini. Memang ada-ada saja cara orang Indonesia untuk menipu orang lain, segala cara pun dihalalkan.

11.8.10

Cara mudah meraih beasiswa...


Sebelum kita masuk ke bagian intinya, saya akan memberikan sedikit pencerahan, supaya pembaca tidak salah tangkap maksud beasiswa disini. Jadi saya akan jelaskan dulu, baru pertanyaan utamanya akan dijawab belakangan.

Okey, beasiswa itu terdiri dari berbagai macam... Dilihat dari jenisnya, beasiswa umumnya dibagi menjadi beasiswa ekonomi lemah dan beasiswa prestasi. Cukup jelas bahwa untuk mendapatkan beasiswa ekonomi lemah, harus ada bukti ekonomi bahwa yang bersangkutan tidak dapat menjalani kuliah tanpa memperoleh bantuan, sedangkan beasiswa prestasi sendiri tentunya dibuktikan dari prestasi-prestasinya terdahulu dari si calon penerima beasiswa. Dilihat dari besarnya, beasiswa dapat terbagi dua, yaitu beasiswa parsial dan beasiswa total. Saya sendiri lebih cenderung mengklasifikannya demikian, beasiswa dianggap beasiswa total jika sang penerima beasiswa (secara normal) tidak perlu menyediakan uang lagi sama sekali untuk kebutuhan hidupnya selama masa beasiswa. Jadi beasiswa kuliah-gratis serta beasiswa uang dengan jumlah yang lumayan tapi masih memerlukan uang tambahan dari si penerima beasiswa saya kategorikan sebagai beasiswa parsial.

Terakhir, berdasarkan lingkupnya, saya membagi beasiswa menjadi tiga, yaitu beasiswa lokal, beasiswa nasional, dan beasiswa internasional. Beasiswa lokal adalah beasiswa yang diberikan suatu instansi hanya kepada orang-orang di dalam instansi tersebut. Beasiswa nasional adalah beasiswa dari suatu instansi kepada orang-orang dalam lingkup yang lebih luas, umumnya kepada orang-orang di negara yang sama dengan negara si instansi, dan dapat dipergunakan di negara tersebut. Sedangkan beasiswa internasional, pemberinya bisa dari mana saja, penerimanya bisa dari mana saja, dan penggunaannya di luar negara sang penerima beasiswa.

Okey, sekian untuk penjelasan singkat seputar beasiswa. Beasiswa yang saya terima, Erasmus Mundus (EM), secara jenis sendiri bisa dikategorikan beasiswa ekonomi lemah + beasiswa prestasi, meski mungkin sang pemberi beasiswa lebih menekankan pada beasiswa prestasi. Saya sendiri menambahkan ekonomi lemah di beasiswa ini karena umumnya, sebagian orang tidak bisa mengikuti perkuliahan program EM ini (yang berlangsung di setidaknya 2 negara eropa) tanpa pemberian beasiswa. Dari besarnya, beasiswa ini tergolong beasiswa total, sedangkan lingkupnya adalah beasiswa internasional.

Karena beasiswa yang saya terima adalah EM ini, saya akan menspesifikkan judul blog ini menjadi "cara mudah meraih beasiswa EM", supaya saya tidak terkesan ngasal tahu beasiswa yang lain (karena ada ratusan atau bahkan ribuan beasiswa di dunia). Dengan menulis ini saja, saya khawatir sudah agak sok tahu karena setiap program EM memiliki syarat, ketentuan, serta aturan penilaian yang berbeda-beda.

Oke, langsung masuk ke inti masalah. Bagaimana cara mudah meraih beasiswa Erasmus Mundus? Jawabannya adalah.... TIDAK ADA.... Hahahaha, kasian sekali Anda semua para pembaca yang membaca tulisan ini dan benar-benar serius merasa ada cara mudah meraih beasiswa. Tidak pernah ada yang mudah dalam persaingan memperebutkan beasiswa, semua harus diperjuangkan, sejak pencarian beasiswa, biaya-biaya yang diperlukan untuk aplikasi beasiswa, biaya-biaya untuk tes bahasa asing, dan lain-lain...

Tulisan ini sebenarnya saya maksudkan untuk menyindir orang-orang yang maunya "disuapin" terus... Silahkan buka situs ini, perhatikan berapa banyak pengunjung yang datang dan hanya bertanya "saya mahasiswa jurusan xyz, ada beasiswa Erasmus Mundusnya gak?" atau "kalo ada info pembukaan beasiswa tolong kasih tau yaa!", bahkan sampai "saya mahasiswa terbaik jurusan abc universitas abcdef, ada jurusan yang sesuai buat saya gak?" Fuuuh, saya sampai heran, ini orang bener-bener mahasiswa terbaik gak sih... Padahal jelas-jelas di tulisan atasnya sudah ada "LANGKAH SINGKAT MENDAFTAR ERASMUS MUNDUS (EMMC dan EMJD)" yang seharusnya sudah lebih dari cukup. Kalau untuk mencari beasiswanya saja tidak ada usaha, gimana mau dapetin beasiswanya...

Okey, sekian dari saya, sampai jumpa di lain kesempatan! :) Happy Ramadhan bagi yang menjalankan ibadah Ramadhan :)