Tags:

10 Hal yang Harus Dilakukan Mahasiswa Komputer Sebelum Lulus

Posted on 29 August 2010 by abrari

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!


Comments Off

Tags:

Ide Skripsi

Posted on 25 August 2010 by abrari

“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 :)


Comments Off

Tags:

Tahapan loading halaman web

Posted on 19 July 2010 by abrari

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.


Comments Off

Tags:

Proyek-proyekan

Posted on 30 October 2009 by abrari


Beberapa minggu ini, ane mencoba menyibukkan diri dengan membuat semacam “proyek”. “Proyek” ini sebenarnya hanya iseng mencoba menerapkan ilmu baru tentang PHP, yaitu sebagai lahan penerapannya, karena belajar tanpa “praktikum” tidaklah efektif. Karena hanya iseng, maka ini sebenarnya tidak layak disebut proyek. Karena itu ane sebut proyek-proyekan :D

Proyek-proyekan ini hanyalah sebuah database online. Ya, sangat sederhana, cuma menampilkan biodata dari teman-teman sekelas dengan beberapa fitur searching standar. Yang membuatnya cukup spesial (bagiku) adalah bahwa dia tidak lagi statis. Kalau dulu, untuk membuat sebuah halaman web, ane hanya bisa dengan kode HTML tradisional. Nah, mumpung sekarang udah agak sedikit bisa PHP, maka halaman itu pun ane coba buat secara dinamis. Ditambah database dengan MySQL dan sedikit JavaScript.

(Dinamis bukan berarti bergerak-gerak, dengan gambar-gambar animasi dan sebagainya, namun lebih kepada interaksinya dengan pengunjung. Coba lihat penjelasan Wikipedia tentang halaman web dinamis.)

Proyek-proyekan ini masih dalam tahap belum jadi. Dan karena sifatnya hanya media iseng belajar belaka, maka insyaallah akan terus coba diutak-atik. Saat ini masih ane sebut tahap pre-alpha, dengan beberapa fitur terencana yang belum (bisa) diimplementasikan. Karena belum siap rilis, maka saat ini proyek-proyekan ini masih tinggal di dalam komputer, belum di-online-kan. Berikut beberapa spoilernya:

Prototipe halaman beranda

Prototipe halaman depan

coding

Coding session ^^

 

Karena masih dalam tahap belajar, wajar saja kalau kodenya masih berantakan dan algoritmanya masih naif :D Tampilan yang ane pakai juga meniru situs Digg.com (ngambil CSS punya mereka ^^) dengan sedikit modifikasi. Hitung-hitung membangkitkan kembali ilmu CSS yang sudah lama terkubur.

Rencana ke depan untuk proyek-proyekan ini antara lain:

  • User login (khusus teman-teman sekelas)
  • Admin login (khusus admin)
  • Perbaikan buku tamu
  • Penambahan fitur “berita”
  • Upload foto
  • Fasilitas untuk mengedit profil (biodata)
  • Zona khusus bagi admin
  • Mem-valid-kan XHTML
  • Mem-valid-kan CSS
  • Sedikit AJAX
  • Installer
  • Dan lain-lain

Wah, ternyata masih sangat banyak tugas yang harus dikerjakan. Dan semua sepertinya akan sulit. Tapi tak apalah. Bukan belajar namanya kalau tidak menemui kesulitan.

Baiklah. Semoga proyek-proyekan ini bisa dijalani dengan baik dan bisa memberi manfaat, baik bagi author maupun bagi teman-teman satu kelas yang biodatanya ane coba online-kan. Dan bagi Anda yang memiliki saran atau ingin ikut bergabung, silakan saja, sekalian menambah pengetahuan…

Comments Off

Mari belajar PHP!

Posted on 10 October 2009 by abrari

Di zaman serba internet seperti sekarang, seorang anak ilkom sebaiknya memiliki kemampuan web programming. Salah satu yang esensial adalah pemrograman server-side scripting seperti PHP (Php Hypertext Preprocessor). Memang, PHP bukan satu-satunya bahasa server-side scripting yang ada di muka bumi ini. Masih banyak bahasa lainnya seperti ASP, JSP, dan teman-temannya. Namun, salah satu yang paling populer adalah si PHP ini. Coba lihat, Fesbuk dan WordPress pun menggunakan PHP sebagai mesinnya. Nggak percaya? Coba lihat address bar browser Anda saat membuka Fesbuk, dan carilah huruf “php”.

Selain itu, dari nasihat seorang teman, di masa mendatang dunia IT akan semakin serba internet, dan web pun semakin berkembang ke generasi berikutnya. Prospek profesi di bidang per-web-an pun *katanya* semakin besar. Sebuah keuntungan bagi mereka yang memiliki kemampuan web programming.

Nah, sebelum memulai belajar PHP, kita sebaiknya (sebenernya harus) memiliki kemampuan dasar HTML terlebih dahulu. Sebabnya adalah karena script PHP yang kita buat itu akan ditanamkan ke dalam sebuah dokumen HTML, dan akan digunakan untuk membuat dokumen HTML pula. Kalau tidak, ibaratnya seperti kita hendak membuat program komputer, tetapi kita tidak mengerti cara menggunakan komputer itu sendiri. Jadi, sebelum memulai PHP, kita harus mengerti paling tidak dasar-dasar HTML.

Belajar PHP bisa dibilang tidak lengkap kalau tidak sekalian belajar database-nya. Database yang sering digunakan bersama PHP adalah MySQL. Karena itu, pelajaran PHP sering dibarengi dengan MySQL. Keduanya memang tak terpisahkan, walaupun MySQL bukanlah suatu kewajiban.

Ehm… Sebenarnya hal-hal yang saya sebutkan di atas hanyalah beberapa bagian dari kemampuan yang harus dimiliki dalam web programming. Masih banyak lagi yang lain, misalnya dalam hal client-side scripting yang didominasi oleh JavaScript, kemudian AJAX untuk menciptakan web yang interaktif, kemudian ini, kemudian itu, kemudian anu, dan seterusnya. Singkat kata, semua itu tidak mudah!

Kalau tidak dimulai dari sekarang, kapan lagi?

Makanya, mari (mulai) belajar PHP!

Comments Off

Tidak semua Linux gratis

Posted on 03 October 2009 by abrari

Ya, memang demikian.

Linux-nya sendiri (sebagai kernel, bukan sebagai OS utuh) memang masih gratis dan akan tetap gratis dan bisa didownload secara gratis pula di www.kernel.org. Namun yang bisa menjadikannya tidak lagi gratis adalah jika sudah dalam bentuk OS utuh, atau lebih dikenal dengan sebutan distro.

Sebenarnya, ane sendiri agak salah mengartikan kata “free” yang selama ini melekat pada Linux. Setelah saya baca beberapa artikel, kata “free” pada Linux dan software-software berlisensi GPL lainnya sebenarnya lebih merujuk pada “freedom” atau kebebasan. Bebas di sini berarti bebas untuk memodifikasinya, menyebarluaskannya, serta membuat salinannya. Hal yang tidak bisa dilakukan pada software berlisensi. Jadi “free” pada Linux bukan selalu berarti gratis.

Baiklah, lupakan paragraf di atas karena saya sendiri juga bingung. Intinya, kalau sudah berada di tangan para pembuat distro, Linux itu bisa juga dikomersilkan. Salah satu contoh distro Linux komersial adalah Red Hat yang dikeluarkan oleh Red Hat Inc. Harga OS Red Hat ini tidak kalah mahalnya dengan OS propietary semacam Windows karena ditujukan untuk kalangan korporat. Red Hat ini mensponsori proyek distro turunannya yang gratis, yaitu Fedora.

Ya, memang banyak perusahaan-perusahaan software yang mensponsori atau bahkan mendedikasikan dirinya untuk distro Linux, baik yang gratis maupun yang komersil. Misalnya Fedora yang disponsori Red Hat, openSUSE yang disponsori oleh Novell dan didukung juga oleh Microsoft, serta Ubuntu yang dibuat dan didistribusikan oleh komunitas di bawah naungan Canonical Ltd.

Mungkin ada pertanyaan, darimana mereka mendapat pemasukan jika produknya adalah barang gratisan, misalnya pada Ubuntu? Jawabannya adalah support. Yang mereka jual adalah support atau layanan bantuan teknis bagi mereka yang membutuhkan. Layanan ini biasanya dibuat berlangganan per tahun. Situs ini menyebutkan bahwa harga support untuk Ubuntu adalah $250 per tahun untuk PC support. Selain menjual support, ada juga yang menambahkan aplikasi-aplikasi komersial tertentu pada distronya yang tidak terdapat di versi gratis.

Namun, apakah Linux-Linux komersil itu masih tetap open-source? Saya juga tidak tahu. Aneh rasanya jika software komersil bersifat open-source. Bagaimana mungkin orang harus membayar jika mereka juga bisa mendapatkannya dengan gratis?

Comments Off

Programmer seharusnya anti pembajakan

Posted on 11 September 2009 by abrari

Sedikit nulis gak jelas saja…

Setelah sedikit menjalani kuliah tentang pemrograman (sebenarnya dari dulu sih), saya jadi sedikit sadar, betapa sulitnya membuat program. Betapa sulitnya merangkai logika dan mengimplementasikannya ke dalam sebuah program yang fungsional. Program yang kami buat masih sangat sederhana sekali banget, mungkin bisa dibilang beberapa tingkat di atas “Hello World”. Namun sudah cukup memeras pikiran. Belum lagi dalam proses debugging alias mencari dan memperbaiki kesalahan program.

Dari perasaan itulah, timbul suatu kesadaran, bahwa membuat program itu memang sulit (dosennya juga bilang begitu). Dari situ pula timbul suatu kekaguman kepada para pembuat program aplikasi yang begitu hebatnya merancang dan menulis kode program sehingga menjadi apa yang kita lihat saat ini, ambil contoh Microsoft Office. Kode yang sudah mereka ketik mungkin sekali berjumlah jutaan baris untuk membuat aplikasi yang benar-benar berguna tersebut. Dibutuhkan waktu yang cukup lama pula dan sumberdaya manusia (baca: programmer) yang banyak untuk membuat aplikasi itu. Office 2007 membutuhkan waktu sekitar 4 tahun untuk rilisnya (dari Office 2003). Dana yang dibutuhkan untuk pengembangannya juga mungkin sangat besar. Ya, membuat sebuah software tidak jauh berbeda dengan membuat suatu peralatan elektronik. Perbedaannya mungkin hanyalah: pembuatan software “hanya” dilakukan dengan mengetik sedangkan membuat alat elektronik butuh komponen-komponen fisik yang harus dirangkai sedemikian rupa.

Lalu, kita yang ada di sini, seenaknya saja meng-copy aplikasi Office tersebut. Atau minta diinstalkan kepada tukang servis komputer terdekat seharga Rp25.000. Padahal harga aslinya bisa mencapai lebih dari 2 juta rupiah. Ini bisa disebut mendzalimi si Microsoft selaku pembuat software (kata seorang Ustadz).

Jika sudah demikian, di mana idealisme kita sebagai mahasiswa sekaligus (calon) programmer? Kapan kita bisa menghargai hasil karya orang lain yang kita “curi” seenaknya?

Mungkin kita juga akan marah jika seandainya, misalkan kita sudah membuat software yang berguna lalu kita komersilkan, lalu tiba-tiba ada orang lain yang tidak membelinya namun hanya meng-copy-nya begitu saja. Percayalah, mereka yang bekerja di Microsoft juga merasakan hal yang sama. Bahkan ini bisa memengaruhi pendapatan perusahaan raksasa tersebut.

Mereka yang tidak mengerti bagaimana sulitnya membuat program mungkin akan santai-santai saja meng-copy program aplikasi yang seharusnya tidak boleh di-copy tersebut. Namun, kita yang paham bagaimana sebuah aplikasi dengan susah payah dibuat harus bertanya pada diri sendiri, apa gak malu?

Ya, masalahnya kita hidup di negeri yang tidak terlalu memedulikan masalah tersebut. Negeri yang kebanyakan orangnya tidak mampu menghargai karya orang lain. Lagipula, harga software tersebut juga tidak terjangkau untuk pengguna komputer pada umumnya.

Maka, sebagai (calon) programmer, alangkah baiknya jika kita selalu berusaha untuk legal dan tidak membajak. Jika kita belum mampu membeli aplikasi yang berbayar, cari alternatif penggantinya yang gratis, kalau bisa yang open source supaya kita yang mampu memprogram bisa ikut mengembangkannya. Dengan demikian, tidak akan ada yang mendzalimi maupun terdzalimi, dan semuanya akan berjalan dengan damainya…

Comments Off

BloggerIPB Masuk Koran Kampus

Posted on 03 September 2009 by abrari

Yah, mungkin udah pada tahu, tapi mungkin saja ada yang belum tahu. Karena itu saya mencoba ceritakan di posting ini…

Semalam saya menemukan secarik serpihan koran kampus edisi terbaru (tertulis: 31 Agustus – September 2009). Di situ, ada ulasan pada rubrik komunitas mengenai BloggerIPB. Diawali dengan kutipan yang katanya dari Mas Nurussadad,

“Kalau nulis di kertas, kertasnya bisa ilang, kalau nulis di tembok, tulisannya gampang ilang. Kalau nulis di internet, tulisan kita bakal ada selamanya, bahkan bisa dibaca dan dikomentari banyak orang.”

Tulisan di koran kampus itu membahas sejarah dan pendiri BloggerIPB, perpindahan domain ke yang sekarang, serta para admin yang sekarang. Nama-nama yang disebut dalam tulisan itu antara lain: sang pendiri Mas Luthfi, Mas Willy a.k.a. Wongbagoes, Mas Auzi, serta Mas Nurussadad, sayang namaku tidak ada. Mas Nurussadad sendiri adalah narasumber dari artikel yang ditulis di koran kampus itu.

Selain membahas orang-orangnya, artikel itu juga membahas kegiatan yang telah dan hampir akan dilaksanakan, misalnya kofdar. Usaha BloggerIPB untuk menaikkan ranking situs web IPB di Webometrics juga dibahas (saya baru tahu kalo itu dinamakan tribute to IPB). Ada juga sedikit pembahasan mengenai saran BloggerIPB untuk website IPB mengenai moderasi komentar di buku tamu.

Kalau Anda ingin melihat artikel aslinya silakan klik di sini (JPG, 400KB).

Yah, semoga dengan publikasi yang lebih publik ini kita tidak lagi menjadi komunitas yang terasing dan terpinggirkan, dan semakin diakui eksistensinya dalam dunia jurnalistik di kampus…

Comments (4)

Bermain Bahasa C di Ubuntu Linux

Posted on 02 September 2009 by abrari

text-x-cPada mata kuliah algoritma dan pemrograman, kami mendapat materi pemrograman dalam bahasa C. Untuk memprogram dalam bahasa C, kami tentunya membutuhkan sebuah editor untuk mengetik kode program serta kompiler untuk kompilasi kode program agar dapat dieksekusi.

Dosen kami merekomendasikan penggunaan software Bloodshed Dev-C++ sebagai editor dengan kompiler bawaannya. Bagi para pengguna Windows, mereka boleh berlega hati karena si Dev-C++ ini adalah program yang hanya berjalan di Windows. Bagi kami, para pengguna Linux yang terpinggirkan dan terasing, apalagi newbie seperti saya, mungkin agak sedikit kebingungan mencari penggantinya. Untunglah, ada seseorang yang baik hati dan bijaksana memberi tahu diriku cara bermain bahasa C di Linux, khususnya Ubuntu.

Pada dasarnya, kita tidak perlu kerepotan dalam masalah pemrograman di Linux. Setiap distribusi Linux, termasuk Ubuntu, sudah pasti dilengkapi dengan kompiler bahasa pemrograman, termasuk bahasa C. Alasannya adalah karena beberapa aplikasi untuk Linux hanya tersedia dalam bentuk kode programnya (ya, inilah open source) yang mewajibkan kita untuk meng-kompilasinya sendiri untuk menginstal aplikasi tersebut.

Karena kompilernya sudah ada dari bawaan, maka yang kita butuhkan selanjutnya adalah editor untuk mengetik kode programnya. Sebenarnya editor teks biasa sudah mencukupi untuk sekedar mengetik kode program. Namun, tentunya kurang nyaman, misalnya karena tidak adanya fitur syntax highlighting dan integrasi dengan kompiler dan linker. Oleh karena itu, dibutuhkan suatu aplikasi sebagai IDE (Integrated Development Environment) untuk memudahkan kita baik dalam proses mengetik kode program maupun kompilasinya.

Nah, pada Ubuntu, ada sebuah aplikasi yang sangat ringan dan sederhana, yaitu Geany. Geany ini adalah editor untuk beberapa bahasa pemrograman, namun lebih terfokus pada bahasa C dan C++. Untuk proses kompilasi programnya sendiri juga cukup mudah karena sudah langsung mengenali kompiler bawaan Linux dan hanya perlu mengeklik satu tombol (hampir mirip dengan Dev-C++). Kira-kira seperti ini penampakannya:

Tampilan Geany pada Ubuntu 9.04

Tampilan Geany pada Ubuntu 9.04

Aplikasi ini sudah tersedia dalam repository Ubuntu sehingga untuk menginstalnya cukup melalui Synaptic atau lewat terminal dengan perintah:

sudo apt-get install geany

Sayangnya, ada fitur yang tidak terdapat pada Geany, yaitu debugging program untuk men-trace proses eksekusinya. Namun, saya rasa untuk tahap pemrograman saat ini belum terlalu diperlukan.

Jika Anda menginginkan fitur yang lebih dari sebuah IDE, masih banyak aplikasi lain yang dapat digunakan untuk bermain bahasa C di Ubuntu. Di antaranya yang cukup terkenal adalah Code::Blocks dan Anjuta. Keduanya memiliki fitur yang jauh lebih lengkap dari Geany. Namun, rasanya terlalu kompleks kalau cuma untuk mata kuliah pemrograman tingkat dasar seperti ini. Tapi entahlah kalau ternyata memang diperlukan nantinya.

Lalu, apakah semua ini sudah ekuivalen dengan Dev-C++ pada Windows?

Berdasarkan penjelasan dari dosen, ternyata kompiler yang digunakan oleh Dev-C++ sama dengan yang terdapat pada Linux, yaitu GCC (GNU C Compiler/ GNU Compiler Collection). Sistem penilaian program (grader) juga menggunakan standar kompiler yang sama. Karena itu, insyaallah tidak ada masalah dalam hal kompatibilitas. Terlebih lagi, GCC ini satu keluarga dengan Linux. Jadi, bolehlah kami para pengguna Linux sedikit berbangga ^^

Comments Off

Attention

Posted on 29 August 2009 by abrari

This post needs to be pertamaxed

Because of some reason, this post needs to be pertamaxed heavily.
We recommend you to pertamax this post as soon as possible.

Be the first to pertamax it. Click the link below.

Pertamax it!

Comments Off

Advertise Here

RELATED SITES

Random Quotes