Hubungan antara Pemrograman dengan Murphy’s Law

murphys-law

murphys-lawJika anda sekilas membaca dulu artikel ini, mungkin anda berpikir bahwa mungkin judulnya dikira pemrograman dengan Moore’s law. Artikel ini tidak salah judul, Artikel ini memang membahas tentang pemrograman dan Murphy’s Law. Bagi yang belum tahu, berikut ini adalah definisi murphy’s Law.

“If Something bad Could Happen, It WILL happen!”

Dengan bahasa sederhana, Jika sesuatu yang buruk mungkin terjadi, hal tersebut (cepat atau lambat) PASTI AKAN TERJADI ! Bentuk lain (variasi)  dari kalimat daitas adalah sbb:

If Anything can Go Wrong, It Will

Contoh di dunia nyata

Contoh murphy’s law banyak terjadi di dunia nyata berikut ini adalah contoh umumnya

  1. Jika seseorang belajar naik sepeda (motor), dia bisa jatuh, dan PASTI (CEPAT ATAU LAMBAT) dia jatuh.
  2. Seorang yang pinter bisa gagal dalam ujian . Cepat atau lambat orang ini gagal dalam ujian, entah ujian test, ujian tertulis, ujian CPNS dan sebagainya.
  3. Seorang pemain bola bisa cidera, Cepat atau lambat PASTI pemain bola cedera, tergantung apakah cidera ringan atau berat.

Sekarang kita persempit dalam dunia komputer, berikut ini adalah contoh kejadiannya

  1. Jika komputer ngehang, kemungkinan data yang belum disave akan hilang!
  2. Jika komputer panas, kemungkinan komputer akan shutdown dengan sendirinya.
  3. Jika program berjalan lancar dimasa sekarang, kemungkinan akan terjadi error di masa depan.

Perhatikan contoh diatas, benar kan?  Sekarang kita fokus ke pemrograman dan hubungannya dengan murphy’s law. Namun sebelum lebih jauh, apa manfaat yang kita bahas ? Manfaat utama memahami murphy laws adalah kita lebih teliti dalam koding, validasi, exception handling dan lebih sabar dalam testing karena segala kemungkinan bisa terjadi.

Validasi input dan Murphy Laws

Ciri khas programer pemula adalah cepat dalam membuat kode dan mengambil keputusan. namun tidak tiliti dalam masalah validasi. Saya beri contoh masalah validasi email saat user mendaftar. Banyak programer yang asal program jalan dan tidak memikirkan pemakaian  aplikasi dari sisi user. Hukum validasi input dalam murphy laws adalah sebagai berikut :

Jika sebuah input tidak divalidasi, maka (PASTI) ada input yang tidak valid(cepat atau lambat).

Perhatikan contoh email ini, mungkin sebagian orang lupa mengisi form email, sebagian lagi mengisi kolom email dengan nama, sebagian lagi mengisi kolom email dengan input asal dan sebagainya. Seorang programer harus memperhatikan validasi jika ingin memperkecil efek murphy laws. Akan lebih bagus lagi sudah memperhitungkan jika sesuatu yang buruk terjadi sudah ditangani oleh kode. Misalkan jika input email tidak valid muncul peringatan, atau jika ada orang salah tulis email candra@gnail.com, sistem secara otomatis memberi saran apakah yang anda masuk candra@gmail.com?

Sekali lagi, hanya karena program tidak ada error saat di compile atau di run, bukan berarti tidak ada Bug. Teliti dan tangani segala kemungkinan dalam masalah validasi anda ,jika ingin membuat program yang handal.

Exception dan Murphy Laws

Exception adalah kondisi dimana Murphy Laws terjadi. Contohnya anda membuat program untuk mendapatkan lokasi user di Android. Code anda cuma memikirkan bagaimana mendapatkan lokasi dengan sensor TANPA memikirkan apakah Device  tersebut menyediakan GPS, kemungkinan yang lain bisa saja device GPSnya a da tapi belum di aktifkan.

Sebagai seorang programmer, exception adalah bentuk kejadian buruk di murphy laws dan tugas kita sebagai programmer untuk membuat exception dan menangani dengan benar , biasanya dalam bahasa pemroraman ada itur Try…Catch ….Finally yang menggambarkan hukum murphy laws itu sendiri.

bentuk  kalimat dari kasus diatas adalah sebaai berikut :

Jika sebuah aplikasi android membutuhkan GPS, maka ada kemungkinan GPS tidak tersedia atau belum di aktifkan.

Bentuk try catchnya adalah

Try {

apakah GPS ada?

apakah GPS aktif?

jika aktif, maka dapatkan lokasi user

} catch{

wah gagal mendeteksi device GPS

wah gagal mengaktifkan GPS

waduh, gagal mendapatkan lokasi user

} finally {

tampilkan pesan eror

}

Testing dan Murphy Laws

Jika sebuah program tidak dilakukan testing, maka akan terjadi error saat dipakai di client (PASTI). Sering banget kan kita melihat program asal jadi lalu langsung dilempar ke client? efeknya ya tahu sendiri, bukan hanya client kecewa, namun image perusahaan akan ambruk. Salah satu efek dari tidak adanya testing atau testing yang asal asalan karena mengejar deadline adalah produk Apple maps.

Saat pertama kali di luncurkan, banyak terjadi ketidakakuratan dan banyaknya orang tersesat saat berkendara karena mengandalkan apple maps. Testing adalah bagian paling penting dalam pemrorgraman.  Pengelaman saya sendiri, testing itu memakan waktu lebihvdari 50% dari total pengerjaan proyek. Membuat program yang bagus memang susah, sudah seharusnya perkara testing di nomor satukan.

Testing sendiri sebenarnya mempercepat ‘murphy’s law ‘ terjadi. Agar error yang di alami oleh user sudah diprediksi dan ditangani oleh programmer. Konsep penting disini , kita tidak bisa menjegah murphy laws terjadi, yang kita lakukan adalah menangani jika murphy’s law terjadi. Jika anda membuat aplikasi android yang butuh koneksi internet, cek apakah program error saat koneksi tidak ada? saat koneksi lambat? atau saat server down? itu semua adalah bagian dari murphy laws yang harus diperhatikan bagian testing.

Akhirnya, sebagai programmer, saya mengajak agar perkara testing dijadikan perkara utama dan mendapat porsi besar dalam ‘software development life cycle’. Jika anda tidak perhatian dengan hal ini maka anda akan kena hukum murphy’s law dari sisi client

 Hubungan antara client dan Murphy’s Law

  1. Jika anda tidak memperdulikan masukan client, maka client akan meningalkan anda!
  2. jika hasil kerja anda jelek, maka kemungkinan client akan menjelek2an pekerjaan anda ke rekan bisnisnya
  3. Jika program melebihi deadline pekerjaan, maka client akan kecewa!

Penutup

Ide menulis artikel ini datang dari website http://www.murphys-laws.com dan Trailler “INTERSTELLAR” yang akan tayang di bulan november tahun ini. Semoga artikel ini bermanfaat!

Author: Candra Adi Putra

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

Tinggalin komentar dong!