Dua masalah dasar Pemrograman

Saya akan cerita panjang lebar tentang silver bulet, hamer dan Joke about two problem. Bagi yang suka coding dan sudah menjelajah banyak bahasa pemrograman, pasti tertarik karena 3 hal diatas adalah hal yang sangat berhubungan dengan profesi seorang programer. Bagi yang masih belajar satu atau dua pemrograman, dan anda tidak bisa tertawa pada bagian “joke about two problem”, mungkin anda perlu lebih banyak mengenal bahasa pemrograman dan suatu saat anda pasti akan tertawa kalau sudah mengalaminya.

No Silver Bullet

Masalah mendasar dari sebuah aplikasi yang sedang dibangun ada dua yaitu pertama, menemukan rumus/formula/solusi untuk masalah yang dihadapi dan yang kedua adalah mengimplementasikan solusi tadi kedalam bahasa pemrograman yang sesuai. Kata “Yang sesuai” harus di cetak tebal mengingat tidak ada bahasa pemrograman yang sempurna. Masing masing punya kelebihan dan kekurangan sendiri, Yang paling pas adalah mengatakan bahwa bahasa pemrograman A cocok untuk Masalah ini dan Bahasa pemrograman B cocok untuk masalah itu. COntoh realnya adalah jika anda ingin membuat web, pakailah PHP, namun jika anda ingin mengontrol robot atau membuat program system pakailah C/C++, hal ini jangan dibalik. Konsep dari hal ini tertuang dalam Paper dengan Judul “NO Silver Bullet” yang ditulis oleh Fred Brook ditahun 1986.

Dia menyatakan bahwa masalah pemrograman itu ada dua. Masalah inti dari aplikasi (bisnis logic) dan masalah yang timbul dari (kekurangan) bahasa pemrograman itu sendiri. Sebagai contoh, C++ sering bermasalah dengan Pointer, Java bermasalah dengan Pesan error bertumpuk (Try..catch..exception) dan PHP bermasalah dengan tipe data (PHP tidak membedakan integer/float/string). Jika kita analisia, Pointer di C++, Try Catch di Java dan Kesederhanaan PHP dalam menangani variabel merupakan kelebihan disatu sisi namun merupakan kelemahan disisi yang lain.Hal inilah yang sering di istilahkan dengan “No Silver Bullet”. Silver bullet sendiri digambarkan sebagai tool yang bisa mengatasi segala masalah secara tepat. Nyatanya didunia pemrograman “silver bulet” itu tidak pernah ada.

Hammer and Nail

Masalah berlanjut ketika seseorang yang sudah fanatik dengan bahasa andalanannya (baca:bahasa yang dia bisa). Sebagai contoh, seorang progammer C++ akan bilang. C++ juga bisa dipakai buat web kok, ya bisa tapi tidak efektif,atau sebaliknya, Bahasa pemrograman Web juga bisa kok untuk membuat aplikasi System, bisa tapi sekali lagi juga tidak efektif. Perang antara programer ini sering terjadi di forum forum dan menjadi Flamewar. Ego dari masing masing programer ini sering di ungkapkan dengan ” If someone only has a hammer, everything look like nails”. Jika seseorang hanya punya palu, maka semuanya terlihat seperti paku.

Joke about two problem

Dari Silver Bullet dan Hammer inilah muncul Joke pemrograman yang lucu, unik tapi memang mengandung kebenaran. Salah satu yang paling populer adalah

Some people, when confronted with a problem, think, “I know, I’ll use regular expressions.” Now they have two problems.-jwz

Quote ini benar, lucu dan sekaligus menarik. Singkatnya gini, asumsikanlah anda seorang programer web dan anda ingin membat validasi input email. lalu ada bilang” Wah, validasinya keknya pake regex aja deh. Nah sekarang anda punya dua masalah”. Lah masalahnya dimana? Pertama anda harus menemukan solusi untuk validasi, dan yang kedua anda harus menemukan format regex yang tepat untuk masalah yang anda pakai. Ini adalah humor clasic, bagi yang tidak bisa tertawa, silahkan belajar lagi :).

Untuk qoute yang lain, saya tulis disini tanpa saya jelaskan lagi. Bisa ketawa artinya anda pernah mengalami, ga bisa ketawa berarti anda tidak tahu saya sedang cerita apa.

Some people, when faced with a problem, think, “I know, I’ll use binary.” Now they have 10 problems.

Some people, when confronted with a problem, think, “I know, I’ll use threads,” and then two they hav erpoblesms.

Some people see a problem and think “I know, I’ll use Java!” Now they have a ProblemFactory.

Some programmers, when confronted with a problem, think “I know, I’ll use floating point arithmetic.” Now they have 1.999999999997 problems

Some people, wanting an escape from their full-time job, think “I know, I’ll contribute to open source.” Now they have two full-time jobs.

Some people, when confronted with a problem, think, “I know, I’ll use Shareware.” Now they have two trials.

“I’ll use PHP!” Now they have (“1 apple” + “1 orange”) problems

…”I’ll use Perl!” Now they have more than one way to have more than one problem….

Some people, when confronted with a problem, think, “I know, I’ll use delegations.” Now their problem is a problem of their problem.

Some people, when confronted with a problem, think “I know, I’ll use recursion!” Now now they now they have now they have two now they have two problems.

I think, “I Know why because I didn’t use try… catch and finally they got caught ….

“I know, I’ll use Crowdsourcing.” Now it’s your problem

Dan karena saya programer PHP murni, nih saya kasih quote buat para mahasiswa/pemula pHp yang ingin belajar framework!

Some people, when faced with a problem, think, “I know, I’ll use Framework .” Now they have more than 3 problems.

Masalah yang saya maksud adalah “Konvensi Framework”,”Library Framework” dan fitur framework komplek lain yang perlu dipelajari, belum termasuk masalah aplikasi anda sendiri, padahal seandainya dibuat pake PHP biasa, kodenya lebih pendek dan simple. Ya silahkan bagi para pemula PHP, silahkan pake framework dan sekarang anda akan mempunyai lebih dari 3 masalah yang anda hadapi.(Masalah tidak berlaku bagi yang sudah jago framework, Peace !”).

Selamat berpusing pusing ria. Saya tutup dengan quote

Some people, when confronted with a problem, think “I know, I’ll go check Stack Overflow!” Now they have a list of other peoples’ problems.

Reference :

  1. http://twoproblems.com
  2. http://nedbatchelder.com/blog/201204/two_problems.html
  3. http://en.wikipedia.org/wiki/No_Silver_Bullet

Author: Candra Adi Putra

Candra Adi Putra adalah Alumni STMIK AKAKOM Yogyakarta. Like Candralab Studio Di Facebook.

3 thoughts on “Dua masalah dasar Pemrograman”

  1. Ya begitulah,
    Selalu ada saja perdebatan antara ini dan itu, dan pada akhirnya tak satupun yang bisa menjawab kalau bilang “Why u not try to patch our system and make it better like you have talked about?”

  2. Some people, when confronted with a problem, think “I know, I’ll go check Stack Overflow!” Now they have a list of other peoples’ problems.

    ha ha ha… lucu yang ini gan…

  3. pikiran positif akan membuat semuanya lebih baik
    masalah jangan di lawan tapi ikuti arusnya arahkan ke arah yang lebih baik
    dan anda akan menjadi lebih baik

Tinggalin komentar dong!