10 Hal yang Harus Dilakukan Mahasiswa Komputer Sebelum Lulus

August 29, 2010

Diambil dari http://ifnubima.org/10-hal-yang-harus-dilakukan-mahasiswa-komputer-sebelum-lulus-2/

Saya baca artikel di Joel on Software tentang saran-sarannya kepada mahasiswa ilmu komputer. Sarannya dituangkan dalam sebuah daftar “hal-hal yang harus dilakukan mahasiswa ilmu komputer sebelum lulus”. Sayatertarik untuk membuat daftar saya sendiri yang disusun berdasarkan pengalaman saya sebagai mahasiswa dan sebagai programmer. Daftar ini saya susun berdasarkan urutan dari yang paling penting hingga yang kurang penting.

1. Belajar Menulis
Terus terang selama karir saya sebagai mahasiswa, yang berlangsung cukup lama, belum pernah sekalipun kebagian tugas untuk membuat dokumentasi program. Dari dulu, jaman-jaman masih mengerjakan tugas kuliah, kerjaan saya cuma satu : Coding. Oke, ini mbantu banyak dalam meningkatkan skill programming. Tapi setelah saya terjun di dunia kerja kerja, ada satu hal yang saya sadari : Programmer yang menginspirasi saya, kebanyakan bukan programmer yang jagooo banget, yang sampai bisa membuat kernel OS (Linus Tordsvald atau Andrew Tannebaum), tetapi blogger-blogger yang rajin menulis.

Roman StroblSamuel FranklynJeff AttwoodEndy MuhardinFrans Thamura dan Joel Spolsky adalah blogger-blogger dan aktivis komunitas yang sangat rajin menulis. Mereka mempunyai blog dan postingan di komunitas yang bagus sekali. And they inspire me a lot!

Penting buat kita untuk membuktikan eksistensi kita sebagai “Profesional” dan membagikan pikiran kita kepada orang lain. Manfaatnya banyak sekali, terutama untuk mengasah skill kita dalam menyampaikan pendapat dan menjelaskan ide. Programmer adalah Knowledge Worker, kita dihargai dari level Knowledge yang kita punyai. Jika kita tidak dapat menyampaikan “Knowledge” yang kita punyai, ya resikonya kita bisa dinilai “undervalued”, dinilai lebih rendah dari level kita sebenarnya.

Ada ungkapan “Software doesn’t exist, if it doesn’t have documentation”. Dalam dunia IT documentation menempati posisi yang sangat penting. Bukan formal development documentation yang isinya requirement, UML Design dan sebagainya, tetapi user documentation. User tidak akan bisa menggunakan software kita kalau tidak ada dokumentasi bagaimana menggunakan softwarenya, apalagi kalau software kita berupa Framework Library. Spring, Framework Library dari komunitas yang paling sukses, mempunyai dokumentasi yang exhaustive ( baca semua dokumentasinya bisa gak selesai-selesai), dan ini benar-benar menjadi strong pointnya Spring.

Menulis dokumentasi juga merupakan bagian dari profesionalisme programmer. Membuat aplikasi, apalagi aplikasi berbasis produk, tidak hanya menulis kode program semata, tetapi juga mencakup: marketing, support, dokumentasi dan sebagainya sampai aplikasi tersebut benar-benar dipakai user. Hanya programmer amatir yang menulis program kemudian “abandon it”. Kita ini membuat program untuk digunakan oleh user, kalau itu menghendaki kita menulis dokumentasi yha tulis, kalau harus support dan menjawab pertanyaan di forum ya kerjakan, karena ini bagian dari profesionalisme kita sebagai programmer. “We dont create application and abandon it, we create application and ship it!!”.

Write something ordinary, and you will be appreciated by other people more than you create smart, tricky, owesome code which propably no one in this world would ever see it.

2. Kuliah yang benar
Dari pengalaman saya wawancara kerja, sebenarnya pewawancara cukup memahami bahwa freshgrade itu tidak mempunyai skill kerja yang bagus. Tetapi pewawancara harus menilai apakah yang diwawancara tersebut mempunyai pemahaman yang cukup baik tentang IT. Pewawancara akan menanyakan hal-hal fundamental seperti konsep algoritma, konsep sql dan memberikan sedikit test programming yang sederhana. Kalau setiap praktikum diikuti dengan baik, seharusnya semua hal tersebut dapat dijawab dengan lancar.

Penting juga untuk memahami konsep-konsep dasar Ilmu Komputer dengan baik sebagai pengetahuan wajib untuk programmer seperti konsep Operating System, Jaringan dan Relational Database. Kita kuliah bertahun-tahun, masak konsep dasar Ilmu Komputer ga ngerti? ngapain aja boz?

3. Ambil kursus pemrograman, terutama OOP
Kita dididik, terutama, untuk menjadi programmer. Mungkin ada juga senior sejurusan kita yang bekerja di bidang lain disamping sebagai programmer. Tetapi coba lihat dengan teliti jalur karir yang mereka tempuh dari awal lulus kuliah, kemungkinan awalnya mereka adalah programmer. Freshgrade sebagian besar tidak mempunyai banyak pilihan jalur karir. Kalau IPnya tidak cum laude, lulusan IT akan susah memasuki area management. Kalaupun bisa, prosesnya sangat panjang, berbulan-bulan. Jangan sampai dalam masa penantian menemukan pekerjaan impian tersebut, kita menganggur, ini akan jadi handicap(kelemahan) yang besar dimata pewawancara.

Jadi kesimpulanya, apapun nanti jalur karir yang ingin anda tekuni, menjadi programmer adalah batu pijakan pertama yang cukup mudah dilalui. Jangan sia-siakan waktu lu yang berharga dengan terus menunggu berbulan-bulan tawaran terbaik datang ke depan pintu. “Start earlier, take a grip and start to build our skill”.

Bagi orang-orang sevisi dengan saya, coding sampai tua :D , mengambil kursus pemrograman OOP sangat penting. Gap antara freshgrade dan kebutuhan skill di industri sangat jauh. Kalau kita lulus dari kuliah tanpa punya skill apapun kita akan dihadapkan resiko dapet kerjaan yang underpaid, ya mau gimana, skill ga punya masak mau overpaid?

Bahasa pemrograman (baca : Platform) yang sangat populer sekarang ini nyaris semuanya berbasis OOP. Kita tinggal memilih salah satu platform yang dirasa terbaik sebagai basis kompetensi kita di masa mendatang (baca artikel saya tentang why java?). Pemahaman akan konsep OOP sudah menjadi skill yang wajib untuk tetap eksis sebagai programmer.

Kursus yang saya maksud disini bukan kursus sehari dua hari yang levelnya pengenalan (baca: maen-maen), tetapi kursus yang serius untuk menguasai platform pengembangan aplikasi. Pengalaman saya memberikan gambaran jelas pentingnya kursus ini, saya dulu kerja sebelum lulus karena keterpaksaan finansial (baca: kere :D ). Karena saya blom lulus dan skill == 0, saya harus menghadapi kenyataan dapet kerjaan underpaid, alias gaji cukup sampe tanggal 20, sisanya ya puasa!. Dengan kursus yang serius, kita bisa mengejar gap antara freshgrade dan kebutuhan industri, sehingga ga perlu dapet masa-masa underpaid kayak saya dulu :D

4. Cari tempat magang yang bagus
Magang adalah kesempatan pertama mahasiswa Ilmu Komputer berhadapan dengan proyek pengembangan perangkat lunak yang serius. Gak ada lagi main-main seperti ketika mengerjakan tugas kuliah. Semua langkah dalam SDLC dilaksanakan dengan sangat teliti, ga boleh ada kesalahan. Disinilah pengalaman akan mengajarkan kita bagaimana sebenarnya dunia industri dijalankan, pengalaman saya sih cuma satu : shock!. Ternyata apa yang saya pelajari di bangku kuliah benar-benar ga cukup. Sindrom panik merajalela di antara temen-temen seangkatan, milis angkatan yang biasanya sepi-sepi aja tiba-tiba rame dengan pertanyaan ini itu :D .

Kalau anda bisa mendapatkan tempat magang yang bagus, misalnya perusahaan IT yang bonafid, pengalaman magang akan mengajarkan  banyak hal. Pengalaman ini akan jadi wake-up call bagi mahasiswa-mahasiswa bahwa mereka ini benar-benar unskillful dan masih belum siap masuk dunia kerja, disini sikap positif diperlukan untuk mengambil hikmah dari pengalaman. Jika anda benar-benar shock dan ga bisa bersikap positif, maka bisa jadi karir sebagai programmer mati sebelum berkembang :D .

5. Belajar bahasa inggris
Ini sih ga perlu dijelaskan juga pada tahu kalau help, dokumentasi dan buku IT nyaris 95% bahasa inggris. Mencari tutorial komprehensif yang ditulis dalam bahasa indonesia seperti mencari kelereng dalam bak truk penganggkut pasir. “Learn english or know nothing!”.

6. Belajar mikroekonomi
Dalam perjalanan hidup manusia yang naik turun, banyak sekali masa-masa dimana kita harus memilih untuk menjadi pengusaha atau profesional. Namun saya yakin apapun pilihan bidang karir kita nanti, ilmu ekonomi sangat dibutuhkan, terutama mikroekonomi. Kita perlu tahu bagaimana mengolah keuangan, bagaimana merancang bussiness plan, bagaimana menyusun budget, bagaimana menyusun laporan keuangan dan bagaimana mengatur rencana keuangan. Semua tugas-tugas tersebut lambat laun akan harus kita kerjakan, baik di level pribadi, keluarga atau perusahaan.

7. Jangan meremehkan mata kuliah non IT hanya karena membosankan
Saya pertama kali dapet nilai C pada waktu kuliah “Pengantar Ilmu Pertanian”, kemudian disusul oleh “Sosiologi Umum”, dilanjutkan dengan “Bahasa Indonesia II”. Dan anda tahu? saya sangat menyesal kenapa dulu nggak sedikit lebih keras belajar. Sekarang IPK ancur-ancuran, dan yang pasti saya dah ga bisa masuk perusahaan gede seperti Nokia yang menyaratkan IPK diatas 3.5.

Oke, mungkin analogi diatas tidak selalu benar untuk banyak kasus. Banyak temen-temen bisa berhasil dengan IPK tiarap, tapi anda harus mendengar dulu cerita ini.

Ada sebuah perusahaan A yang hendak melakukan rekruitmen pegawai freshgrade. Pak Wahyu, kepala bagian personalia bertugas untuk melakukan “pitching” dengan memasukkan iklan lowongan pekerjaan di beberapa media. Kemudian setelah batas waktu pendaftaran, ada banyak sekali pelamar yang mengirimkan lamaran pekerjaan.
Office boy datang melapor ke pak wahyu,
“Lapor pak, surat lamaran pekerjaan sudah selesai saya pack, mau diletakkan di mana nih pak?”,
“oh, silahkan letakkan di meja saya!”,
“wah, itu mustahil pak!”,
“lho, gimana maksudnya?”,
“lapor, lamarannya ada 10 dus ukuran kulkas tuju pintu pak!”
“hoh? oke-oke ga perlu panik, coba saya minta tolong disaring ya surat lamarannya, yang IPKnya dibawah 2.75 dipisahin”,
“siap pak, laksanakan”.
….
“Pak, lapor, sudah selesai dipisahkan”,
“oke, sekarang tinggal berapa?”,
“masih ada seribu pelamar lagi pak!”
“hmmm masih terlalu banyak, tolong yang IPKnya dibawah 3.5 disaring… , oh iyah kalo udah selesai disaring, lamaran sisanya kamu pack trus jual ke tukang kertas, uangnya buat kamu, mayan buat beli rokok, makasih dah mbantuin :D ”
“sama-sama pak”
Nah dari cerita diatas, lamaran pekerjaan saya akan jadi bungkus kacang rebus :D

Menyebalkan sihbelajar matakuliah non IT, tapi anda harus sadar, IPK adalah nilai evaluasi paling jelas menggambarkan kemampuan kita. Pertama, karena dinilai oleh banyak dosen. Kedua, dinilai dalam tenggang waktu yang lama. Ketiga, dinilai dari berbagai macam matakuliah yang berbeda-beda. Keempat, IPK mencerminkan bagaimana anda menyelesaikan masalah, asal-asalan atau perfeksionis. Bagi banyak perusahaan IPK menjadi tolok ukur paling berpengaruh untuk menilai profile seorang freshgrade. So? dont blow non IT course because it’s boring!

8. Berhentilah mengkhawatirkan nanti akan kerja di mana
Beberapa temen saya, terutama dari jurusan non IT, banyak bertanya-tanya kemana nanti kerjanya setelah lulus. Karena lapangan pekerjaan untuk mahasiswa IPB yang sesuai dengan disiplin ilmu di bangku kuliah sangat terbatas. Sebagaian besar teman-teman saya bekerja di bidang yang berbeda jauh dengan jurusanya pada waktu kuliah dahulu. Tetapi hal ini sedikit berbeda dengan Ilmu Komputer, lapangan kerja sebagai programmer dan IT profesional masih sangat terbuka lebar. Berhentilah mengkhawatirkan nanti mau kerja di mana, pasti dapet kerjaan. Bagi lulusan IT “Nyari kerjaan itu gampang, nyari kerjaan yang gampang itu susah” :D

9. Buatlah sebuah aplikasi sederhana sampai selesai
Kultur perusahaan IT adalah “Result Oriented”. Artinya perusahaan ga peduli gimana kita ngerjainya asalkan selesai!. Mau siang tidur, malem begadang, atau berangkat kerja jam 10 balik jam 7 malam, terserah. Perusahaan hanya peduli bahwa tugas yang diberikan diselesaikan dengan baik dan dalam tenggang waktu yang ditentukan, “get things done!”. Dengan membuat aplikasi sederhana sampai selesai, pada waktu wawancara kita bisa menunjukkan kepada pewawancara bahwa kita bisa produktif menghasilkan sesuatu, tidak hanya bisa omdo.

Pengalaman menyelesaikan aplikasi dari awal sampai akhir bisa menjadi poin yang sangat berguna dalam wawancara. Ada juga perusahaan yang menyaratkan kita berpengalaman terlibat dalam project, minimal dua kali, dari awal sampai akhir. Pengalaman seperti ini akan memberikan gambaran yang sangat penting untuk seorang programmer bagaimana proses SDLC berjalan.

10. Aktif di komunitas
Komunitas bisa menjadi media yang sangat penting untuk mengembangkan skill kita sebagai programmer. Disana kita bisa bertanya jika ada kesulitan, dan menjawab jika ada yang bertanya. Menjawab pertanyaan anggota milis lain sangat berguna untuk mengetaui sejauh mana pemahaman kita tentang masalah technical. Dengan menjawab juga, kita akan mendapatkan feedback tentang konsep yang sudah kita pahami, kalau salah pasti ada yang menjelaskan dimana salahnya.

Anggota komunitas sangat bervariasi dari profesional senior sampai newbie, jika kita sangat aktif, komunitas akan menyadari “kehadiran” kita. Saya sendiri merasakan dampak signifikan dari aktivitas di komunitas, terutama pengakuan banyak orang terhadap eksistensi kita sebagai profesional. Tentu saja hal ini akan sangat memperlancar karir kita, jadi orang terkenal itu enak lho, hahhahaha :D

Nah, setelah membaca saran-saran diatas, terserah anda mau mengikuti atau tidak. Tapi ingat, saran ini tanpa garansi, kalau berhasil ya selamat, gw ikut senang, kalau gagal, plis saya jangan dibata ya!


Ide Skripsi

August 25, 2010

“Penggunaan algoritma shortest path dalam sistem informasi keruangan gedung Fakultas Pertanian IPB”

Sederhananya, sistem seperti peta ruang-ruang di blok bangunan Fakultas Pertanian (Faperta), sekaligus diterapkan algoritma shortest path (misal Dijkstra’s) untuk mencari path atau jalur terpendek dari satu tempat tempat/ruang kuliah ke tempat/ruang kuliah lainnya di blok gedung Faperta (termasuk Fateta dan FMIPA) . Sebaiknya dibuat web-based agar bisa diakses dengan mudah, dan bisa diintegrasikan dengan sistem informasi IPB lainnya (seperti KRS, jadi mahasiswa bisa melihat jalur/denah menuju tempat kuliah tertentu).

Output dari sistem bisa berupa teks yang menunjukkan jalur terpendek dari tempat asal ke tempat tujuan, dan bisa juga berupa denah secara visual (seperti peta). Peta mungkin bisa menggunakan seperti pada sistem GIS. Atau dengan cara lain? Entahlah, teknisnya nanti saja, yang penting ada idenya terlebih dahulu :)


Tahapan loading halaman web

July 19, 2010

Jika kita menggunakan browser Mozilla Firefox, biasanya akan tampak tahapan loading halaman web yang terlihat pada bagian statusbar jendela browser itu (biasanya di kiri bawah. Namun, pernahkah Anda memerhatikan tahapan-tahapan itu? Mungkin suatu kali Anda melihat tulisan “Connecting”, “Waiting”, “Transferring data”, dan sebagainya. Ya, itulah tahapan loading halaman yang ditampilkan Firefox. Bila dirinci, seperti inilah tahapan-tahapannya (sejauh yang saya tahu) :

1. Looking up …

Pada tahapan ini, sang browser sedang berusaha me-resolve alamat ya ng kita ketikkan dengan menghubungi DNS. Maksudnya adalah menerjemahkan dari alamat yang biasa kita gunakan (misalnya www.google.com) menjadi alamat IP dari Google itu (misalnya 72.14.254.104). Hal ini memang harus dilakukan, karena hanya alamat dengan angka (IP address) inilah yang bisa diterjemahkan oleh komputer untuk menghubungi Google.

Kegagalan pada proses “Looking up …” ini biasanya disebabkan oleh DNS yang bermasalah, atau karena memang alamat yang Anda ketikkan salah.

2. Connecting to …

Setelah proses “Looking up …” selesai dilaksanakan, tugas selanjutnya adalah menghubungi server tujuan. Tahapan ini ditandai dengan munculnya “Connecting to …” di status bar Firefox. Pada tahap ini, browser sedang menghubungi server tujuan untuk meminta halaman yang kita inginkan (misalnya homepage Google).

Kegagalan pada tahapan ini biasanya disebabkan server yang hendak kita hubungi sedang tidak menyala (down), baik karena memang mati atau sedang kelebihan beban.

3. Waiting for …

Setelah server sukses dihubungi (yang berarti servernya aktif dan siap menerima pesanan), tahap selanjutnya adalah memesan kemudian menunggu. Ya, browser memang menunggu pesanannya selesai, dalam artian menunggu halaman web yang kita inginkan itu diproses oleh server dan dikirimkan kembali ke browser. Mungkin saat inilah yang paling membosankan bagi si Firefox :)

Kegagalan pada saat menunggu ini biasanya ditandai dengan “request timed out”, yang berarti si browser sudah habis kesabarannya dalam menunggu hasil kiriman halaman web dari server. Kegagalan ini bisa disebabkan karena server sudah mati duluan sebelum sempat mengiriman pesanan browser.

4. Transferring data from …

Setelah server selesai memproses pesanan browser, maka tentu saja pesanan itu (yang berupa halaman web, plus gambar-gambar atau video, JavaScript, dan sebagainya) harus dikirimkan kembali ke browser. Proses pengiriman ini tentu saja membutuhkan waktu, apalagi jika data yang dikirimkan cukup banyak. Pada tahapan inilah sang browser menerima semua hasil pesanannya dari server, untuk ditampilkan ke user jika sudah selesai.

Kegagalan pada tahap ini biasanya disebabkan karena koneksi jaringan yang bermasalah atau terlalu lambat, yang bisa juga berujung ke “time out” atau tidak tampil apapun di browser.

5. Done

Akhirnya selesai juga :).

Ya, pada tahap terakhir ini, semua konten halaman web yang kita pesan sudah selesai dikirimkan dan sudah diterima dan diproses oleh browser. Pesanan selesai, dan koneksi ke server pun diputus (kecuali jika memang dirancang untuk terus berhubungan, misalnya aplikasi chatting). Dan akhirnya semuanya hidup bahagia selamanya…

Jadi begitulah sedikit cerita mengenai apa yang sebenarnya terjadi saat kita mengetikkan alamat di browser sampai semuanya siap tersaji di layar monitor. Sebenarnya ini hanya gambaran kasar saja, proses yang terlibat di dalamnya jauh lebih kompleks, apalagi yang berhubungan dengan jaringan. Namun semoga ini cukup untuk memberi gambaran mengenai sedikit cara kerja internet yang kita gunakan sehari-hari.


OS or compilers first?

June 21, 2010

Pertanyaan yang cukup iseng dari seorang senior saya di Ilmu Komputer. Ya, pertanyaannya cukup sederhana dan tidak penting, yaitu, manakah yang lebih dulu ada, OS (sistem operasi) atau compiler?

Pertimbangannya adalah sebagai berikut, untuk membuat suatu sistem operasi, jelas diperlukan suatu compiler untuk menerjemahkan kode dalam bahasa pemrograman menjadi kode yang dapat diproses oleh komputer. Sebailknya, untuk membuat suatu compiler, diperlukan lingkungan yang mendukung untuk menuliskan kodenya, karena itu kita memerlukan sistem operasi (OS). Karena kelihatannya saling membutuhkan dan seperti infinite loop, maka cukup wajar jika ditanyakan, mana yang harus dibuat terlebih dahulu, OS atau compiler?

Hmm, kalau diperhatikan, pertanyaan ini mirip dengan pertanyaan yang cukup terkenal, mana yang lebih dulu ada, ayam atau telur?

Ternyata pertanyaan ini dijawab sendiri (dengan perkiraan) oleh sang penanya. Menurutnya, OS pertama kali (yang paling primitif) dibuat hanya dengan assembler (bahasa assembly), atau justru langsung dengan bahasa mesin. Setelah OS primitif itu jadi, barulah orang membuat compiler di atasnya. Setelah compiler itu jadi, barulah orang membuat OS yang lebih canggih lagi, dan seterusnya.

Mungkin muncul pertanyaan. OS pertama dengan assembly? Bukankah assembly juga memerlukan compiler? Jawabannya tidak. Assembly hanya membutuhkan sebuah assembler, dan assembler tidak sama dengan compiler, karena pekerjaan sebuah assembler hanyalah men-translating, tidak seperti compiler yang juga harus mem-parsing (yah, memang cukup membingungkan).

Yah, untung saja kita hidup di zaman yang sudah maju, di mana compiler bahasa pemrograman tingkat tinggi sudah banyak “bertebaran”. Kita tidak perlu lagi berepot-repot menggunakan assembly untuk memprogram komputer. Sulit dibayangkan, bagaimana kehebatan para ahli komputer zaman dahulu dalam merancang sistem operasi atau compiler pertama kali.

Kalau kita mau lebih iseng, masih banyak pertanyaan yang bisa dibuat. Bagaimana orang pertama kali membuat assembler? Bagaimana komputer dapat mengerti kode dalam bahasa mesin? Apakah ada hubungannya dengan Mesin Turing?

Ya, memang pertanyaan-pertanyaan yang sangat iseng, dan hanya bagi mereka yang benar-benar iseng dan tidak ada pekerjaan =D

Diskusi asli dapat dilihat di sini.


Rahasiakah data Anda di internet?

June 6, 2010

Keamanan dan kerahasiaan data di Internet. Itulah isu yang dibawa salah seorang dosen beberapa waktu lalu, bahwa tidak ada yang bisa dirahasiakan di internet. Data-data user, seperti e-mail, posting blog, status di Facebook, bahkan SMS, pastilah tersimpan dalam suatu database agar dapat dibuka kembali. Data-data itu pasti ada di suatu tempat, lebih tepatnya di server-server penyedia layanan itu. Para e-mail di Gmail disimpan di server Google, status Facebook disimpan di server Facebook, SMS mungkin disimpan di server operator, dan sebagainya.

Yang menjadi masalah adalah, bagaimana keamanan dan kerahasiaan data-data itu?

Karena data-data itu tersimpan di server-server mereka, dan merekalah pemilik server-server itu, maka secara logika pastilah mereka yang berkuasa atas data-data kita. Mereka bisa saja melihat-lihat e-mail kita, memanipulasinya, bahkan menghapusnya kalau mereka menginginkannya. Namun, apakah mereka benar-benar melakukannya?

Wallahua’lam, tenang saja, mereka tidak akan melakukan hal-hal tidak etis seperti yang ditakutkan itu. Jadi perkataan dosen itu memang benar, tapi kekhawatirannya rasanya terlalu berlebihan :)

Kenapa saya katakan berlebihan? Banyak alasan yang bisa saya utarakan. Salah satu yang terkuat adalah, bahwa mereka (Google, Facebook, dll) adalah perusahaan-perusahaan besar yang mempunyai pengguna yang tersebar di seluruh dunia. Perusahaan sebesar mereka pastilah memiliki apa yang disebut “privacy policy” atau kebijakan privasi. Pernah saya baca, sewaktu pertama kali Google meluncurkan Gmail, mereka dikritik habis-habisan, bahkan melalui jalur hukum karena kekhawatiran para pengguna akan privasi e-mail mereka. Namun bagaimana sekarang? Ternyata Gmail menjadi salah satu provider e-mail gratis yang paling populer. Itu membuktikan bahwa mereka juga peduli dengan yang namanya privasi data.

Kemudian, dengan kebijakan privasi itu, para karyawan di sana tentu saja juga tidak bisa melihat-lihat data yang ada dengan bebas. Bahkan mereka bisa dipecat dari perusahaan karena mencoba melihat-lihat data yang dirahasiakan itu. Data-data yang masuk bisa mencapai jutaan buah tiap detiknya. Bagaimana mereka akan melihat-lihat itu semua?

Kecuali kita orang sangat-sangat penting, seperti presiden atau teroris yang sedang diburu, kita tidak perlu terlalu khawatir tentang kerahasiaan data kita. Apakah para administrator data di sana peduli jika misalnya kita mengirim e-mail pribadi kepada seseorang? Terlebih, apakah mereka mengenal kita dan orang yang kita kirimi e-mail? Kasarnya, ngapain coba mereka iseng buang-buang waktu melihat-lihat jutaan e-mail pribadi yang masuk tiap detiknya?

Jadi, tidak perlu terlalu khawatir dengan kerahasiaan data kita. Maksudnya, data kita memang tidak terlalu rahasia, tapi juga tidak penting bagi mereka. Namun, wallahua’lam juga jika misalnya ada maksud yang lebih terselubung dari para pemilik data itu.


Ekspresi regular dalam UNIX

June 2, 2010

Bagi kami mahasiswa Ilmu Komputer, ada mata kuliah Teori Bahasa dan Otomata. Mata kuliah ini terkenal sangat abstrak dan terkesan tidak bermanfaat. Salah satu bahasannya adalah “ekspresi regular” (regular expression – regex). Regex sendiri adalah metode pencocokan suatu string atau kata terhadap suatu pola tertentu.

Nah, tahukah Anda? Bahwa ternyata regex itu sangat bermanfaat dalam pemrograman. Banyak program yang secara intensif menggunakan regex (saya sudah melihatnya sendiri). Regex yang digunakan dalam pemrograman tentunya tidak menggunakan notasi-notasi matematis seperti yang ada di kuliah, namun menggunakan sintaks regex yang disebut POSIX. POSIX sendiri adalah sintaks baku yang ada pada sistem UNIX (kalau zaman sekarang Linux). Terlebih, implementasi regex pada bahasa pemrograman kebanyakan mengacu pada aturan POSIX ini.

Ada aturan-aturan tersendiri dalam notasi POSIX, yang kelihatannya cukup rumit juga. Tapi, di balik segala kerumitan itu, tersimpan sesuatu yang benar-benar powerful (khas Linux :). Berikut ini salah satu materi regex dalam UNIX, yang dibuat oleh salah seorang kakak tingkat satu jurusan. Silakan didownload sesuka Anda…

http://abrari.files.wordpress.com/2010/06/ekspresi-regular-dalam-unix.pdf

Dan berikut link untuk belajar regex lebih jauh:

http://labkom.bl.ac.id/ftp/Asisten/sidik%2008/java/tutorial-regex-1.html


Fanatisme sistem operasi

May 23, 2010

Ternyata fanatisme tidak hanya terbatas pada agama, kesukuan, dan lain-lain. Di zaman serba teknologi seperti sekarang, ada lagi satu fanatisme yang cukup unik, yaitu fanatisme sistem operasi.

Zaman sekarang, memang terdapat banyak sekali sistem operasi, katakanlah Windows dan Linux yang paling populer. Masing-masing pengguna ternyata memiliki semacam “fanatisme” pada sistem operasi yang digunakannya. Pengguna Windows yang sangat setia biasanya akan menjelek-jelekkan Linux, begitu pula sebaliknya.

Tapi, kalau saya perhatikan, fanatisme paling tinggi sebenarnya ada pada para pengguna Linux. Para fanatik Windows biasanya hanya menjelek-jelekkan Linux dari segi teknis saja, seperti sulit digunakan, penggunanya masih jarang, dan sebagainya. Tapi para fanatik Linux biasanya akan menjelek-jelekkan Windows (dan juga Microsoft) sampai ke akar-akarnya.

Ya, mereka memang dua dunia yang berbeda. Yang satu adalah dunia termonopoli tapi luas, dan satunya lagi dunia penuh kebebasan tapi masih cukup sempit. Sepertinya, perang fanatisme ini tidak akan pernah berakhir, karena dua dunia itu akan selalu ada dan berdampingan (baca: bersaing).

Bagaimana denganku?

Kalau aku, menurutku yang paling penting adalah legalitas. Ya, aku tidak terlalu fanatik kepada salah satu dari mereka berdua (Windows dan Linux). Yang mana pun, asal legal dan tidak membajak, maka itulah yang akan kupilih. Walaupun saat ini aku lebih menyukai bekerja dengan Linux daripada Windows (karena lebih banyak yang bisa dilakukan dengannya).

Namun, sekali lagi karena belum memiliki kemampuan untuk memiliki secara legal, maka alternatif software bebaslah yang menjadi pilihan saat ini. Walaupun terkadang aku juga menginginkan software-sotware berbayar itu karena dalam beberapa hal mereka memang lebih baik…

So, be legal, not fanatic…


Linux, sudah setahun lebih…

May 14, 2010

Setahun lebih, lebih tepatnya 15 bulan, sejak aku pertama kali menginstal Linux di komputer sendiri. Sejak saat itu, bisa dibilang aku jarang sekali menggunakan Windows, sampai-sampai sudah lupa beberapa cara penggunaannya :) Didasari rasa ingin tahu dan mencoba sesuatu yang baru, ternyata malah keterusan menggunakannya. Meskipun di komputer yang sekarang tetap ada Windows terinstal (dual-boot), tetap saja sistem operasi utamanya adalah Linux.

Dialah Linux Ubuntu versi 9.04, yang secara tidak disadari telah menemaniku selama hampir setahun. Walaupun sudah keluar versi yang lebih mutakhir, entah kenapa malas sekali meng-upgrade sistem, karena data dan aplikasi yang terinstal sudah cukup banyak. Banyak hal terjadi bersama Ubuntu yang satu ini, salah satunya yang telah mengakibatkan laptop baruku tidak bisa digunakan 7 jam setelah pembelian :)

Ya, saya juga mengakui bahwa menggunakan Linux itu sedikit lebih repot daripada Windows. Tapi pendapat seperti ini hanyalah bagi mereka yang tidak mau berusaha belajar dan mencari tahu hal yang baru. Justru sekarang saya cukup menikmati repotnya berkomputer dengan menggunaan Linux (ya, para geek memang suka yang repot-repot). Banyak hal yang bisa saya lakukan dengan Linux, tapi tidak dengan Windows (karena sudah agak lupa, mungkin?).

Meskipun di kampusku penggunaan Linux tidak terlalu gencar, alhamdulillah kami para pengguna Linux (yang masih pemula) bisa menyebarkan promosi kepada teman-teman, terutama yang satu jurusan (Ilmu Komputer). Di kelas saya sekarang juga sudah banyak yang menggunakan Linux, meskipun cuma sebagai sistem operasi kedua (sampingan). Bahkan sudah dibentuk semacam komunitas pengguna, meskipun tidak resmi dan hanya kecil-kecilan.

Yah, masa setahun lebih ini juga bisa memberikan suatu bukti, bahwa ternyata kami, yang notabene adalah mahasiswa Ilmu Komputer, masih bisa “bertahan hidup” tanpa Windows :) Bahwa ternyata Linux juga bisa digunakan untuk “menghasilkan” sesuatu oleh seorang mahasiswa Ilmu Komputer. Ya, terkadang juga kerepotan misalnya saat diwajibkan menggunakan aplikasi berbasis Windows. Namun itu bukanlah halangan yang cukup berarti, karena terkadang masih bisa “diakali”.

Baiklah, mari kita buktikan lebih lanjut bahwa kita bisa bertahan sampai lulus di jurusan Ilmu Komputer, dengan menggunakan Linux!

=)


Textbox keyboard navigation using jQuery

April 29, 2010

This script will turn your tabular HTML textbox into spreadsheet-like entry, with textbox navigation using your keyboard’s arrow keys. Please note that each textbox’s ID should be “field_(xpos)_(ypos)”. Those IDs can be generated automatically using PHP.


// KEYBOARD NAVIGATION

$(document).ready(function(){

	$('input[type=text]').each(function() {
		this.onfocus = function() {
			var cur_id = this.id.split('_');
			var cur_x = parseInt(cur_id[1]);
			var cur_y = parseInt(cur_id[2]);

			this.onkeydown = function(event) {
                    if(!event) event = window.event;
                    funcKeyDown(event,cur_x,cur_y);
            };
		};
	});
});

function funcKeyDown(evt, cur_x, cur_y) {

	switch(evt.keyCode) {
		case 39: 	// right key
			var next_x = parseInt(cur_x + 1);
			var next_y = cur_y;
			$('#field_' + next_x + '_' + next_y).focus();
			return false;		

		case 37: 	// left key
			var next_x = parseInt(cur_x - 1);
			var next_y = cur_y;
			$('#field_' + next_x + '_' + next_y).focus();
			return false;		

		case 38: 	// up key
			var next_x = cur_x;
			var next_y = parseInt(cur_y - 1);
			$('#field_' + next_x + '_' + next_y).focus();
			return false;		

		case 40: 	// down key
			var next_x = cur_x;
			var next_y = parseInt(cur_y + 1);
			$('#field_' + next_x + '_' + next_y).focus();
			return false;		

	}
}

Revolution OS

April 25, 2010

.

Revolution OS adalah judul sebuah film dokumenter yang berisi sejarah dan cerita tentang GNU, Linux, free software, dan segala hal yang terkait dengannya. Karena film dokumenter, jadi isinya cuma interview dari para ahlinya. Ya, mirip dengan film bergaya Discovery Channel. Isinya tidak terlalu teknis, lebih mirip cerita sejarah. Para “aktor”-nya tentu saja orang-orang yang berkecimpung di dunia itu, sebut saja Richard Stallman, pendiri GNU, dan Linus Torvalds, sang pembuat Linux.

Isinya cukup menarik (bagi orang yang tertarik dengan GNU/Linux tentu saja). Di situ dijelaskan juga tentang filosofi Stallman dalam mendirikan GNU, serta penjelasan singkat tentang kernel Linux yang dibuat oleh Torvalds. Termasuk penjelasan bagaimana para pengembang free software itu mendapatkan penghasilan.

Yah, pokoknya film ini adalah film wajib bagi mereka yang ingin mengenal lebih jauh tentang apa itu GNU, apa itu Linux, apa itu free software, dan apa pentingnya mereka bagi dunia ke depannya…


Next Page »

Comments are closed.