Indahnya Clean Code Programming!

Kevin Prakasa
PPL SeLaw
Published in
5 min readFeb 25, 2019
Clean Code

Apa itu Clean Code? Sederhananya Clean code adalah sebuah kebiasaan kita sebagai developer dalam menulis kode yang sesuai dengan kaidah tertentu. Clean code sendiri bertujuan agar kode yang sudah kita buat dapat lebih mudah kita maintenance, sehingga setiap kode yang ada memiliki makna yang ringkas dan jelas. Hal ini juga menyebabkan agar kode yang kita buat dapat dengan mudah dimengerti oleh developer lain yang ingin mengembangkan atau mengamati kode kita.

Pernahkah kalian, ketika kalian sudah menulis kode berbulan-bulan lalu ingin melihat kode yang sudah kalian buat beberapa bulan yang lalu, lalu kalian merasa bingung melihat kode tersebut (“Hmm, ini fungsi ngapain ya?”). Nah ketika kamu merasa bingung dengan kode kamu sendiri, berarti kamu belum menerapakan clean code di kode yang kamu tulis. Karena sejatinya, clean code bertujuan memudahkan kita untuk menginspeksi kode yang telah kita buat.

Lalu kenapa clean code merupakan sebuah “kebiasaan”?

Clean code sebenarnya bukanlah task khusus yang harus kamu lakukan dalam mendevelop suatu software. Melainkan konsep clean code ini harus kita mulai sebagai kebiasaan yang diusahakan setiap kali kita menulis kode. Seringkali kita berpikir “Yang penting bikin dulu deh sampe bisa jalan, refactor kode nanti belakangan aja”. Pola pikir seperti begitu akan merugikan kita sebagai developer, karena tentunya untuk merefactor kode yang buruk atau dirty code membutuhkan waktu yang cukup lama untuk memahami kodenya dan memperbaikinya. Akan lebih baik apabila clean code ini menjadi suatu good habit yang dijadikan mindset kita dalam menulis kode.

Bagaimana cara kita implementasi Clean Code?

Penamaan yang mempunyai makna yang jelas

Penamaan yang dimaksud disini mencakup tiga hal yaitu penamaan variable, method/function , class. Makna yang jelas yang dimaksud disini adalah ketika kita melihat suatu penamaan tersebut, kita langsung terbayang apa yang seharusnya dilakukan dengan penamaan tersebut.

difference = date.now() - date(self.created_at)

Seperti contoh diatas penamaan variable “difference” kurang baik karena tidak langsung menunjukkan makna sebenarnya dari variable tersebut. Pasti kita berpikir terlebih dahulu difference apa yang dilakukan. Maka dari itu lebih baik penamaan variable nya bisa diganti dengan “time_difference”, karena sudah jelas maknanya yaitu perbedaan waktu.

Penamaan variable yang baik biasa dapat menjelaskan kenapa ada variable tersebut.

Penamaan method yang baik biasa diawali dengan kata kerja untuk memperjelas sebenarnya apa yang dilakukan oleh method tersebut. Contohnya “getDateNow()”, maka method ini akan membalikkan tanggal sekarang.

Penamaaan class yang baik biasa berbentuk sebagai kata benda seperti Lawyer, Case, dll. Yang seharusnya sesuai dengan atribut yang dimiliki oleh class tersebut (cohetion).

Konsisten

Konsisten penerapannya bisa berbagai macam contohnya adalah:

  • Memberikan gaya penamaan variable yang konsisten seperti menggunakan camelCase atau snake_case.
  • Hindari penggunaan kata yang memiliki makna yang sama tapi digunakan di berbagai fungsi atau tidak konsisten, seperti “get”, “fetch”, “retrieve”. Jika diawal memang sudah menggunakan “get” maka tetaplah konsisten dengan menggunakan kata “get” selalu agar konsisten.

Penerapannya masih banyak, intinya selalu konsisten dengan kode yang kita buat saja.

Pembuatan fungsi yang baik

Fungsi yang baik adalah fungsi yang memiliki argumen kurang dari tiga, dan cukup ringkas implementasinya (badan kode). Jika argumen dari sebuah fungsi lebih dari tiga, maka itu waktunya kita untuk membungkus kumpulan argumen tersebut dengan suatu kelas objek. Dan jika fungsi kita sudah terlalu panjang badan kodenya, bisa jadi fungsi yang kita buat merupakan gabungan dari beberapa task yang bisa dipecah menjadi beberapa fungsi.

Pemecahan fungsi menjadi sebagian-bagian kecil memudahkan kita membuat kode yang modular, dan bisa memudahkan kita untuk mendebug kode kita.

Contoh kode test

Contoh diatas adalah pemecahan fungsi unit test yang dipecah-pecah menjadi bagian kecil. Lalu apabila dilihat dari nama fungsinya, sudah dapat terlihat jelas setiap fungsinya berguna buat apa. Bagaimana jika tiga fungsi test diatas digabung menjadi satu? Bisa sih bisa, namun akan lebih sulit mendeteksi kesalahan dari kode tersebut.

Tingkat kohesi yang tinggi pada suatu class

Suatu class harus memiliki attribut dan method yang terkait dengan class tersebut. Contohnya apabila terdapat class Client, maka attribut yang ada dan method yang dimiliki dari class tersebut harus ada hubungannya dengan behaviour client itu sendiri.

Cohetion

Komentar

Jika kita merasa kode kita perlu komentar, maka berarti itu pertanda bagi kita untuk me-refactor kode kita. Sintaks kode yang ada sekarang sudah menggunakan bahasa inggris, yang mana seharusnya kode yang baik tidak memerlukan komentar lagi untuk memperjelas apa yang dilakukannya.

DRY (Don’t Repeat Yourself)

Jangan pernah membuat kode yang sifatnya redundan atau berkali-kali dibuat. Ingat didunia programming kita mengenal yang namanya function, bungkus lah kode yang redundan tersebut dengan sebuah function. Sehingga nanti kita tidak perlu menulis beberapa baris kode secara berulang di tempat yang berbeda, cukup dengan memanggil fungsi yang sudah anda buat saja.

Contoh kode modular

Bisa dilihat contoh kode test diatas yang mana memiliki fungsi generate_user(), yang berguna untuk mengembalikkan object User yang sudah disimpan di database. Fungsi generate_user() selalu dipanggil setiap kali kita ingin membuat object Client, yang mana sangat mempermudah kita. Bayangkan apabila tidak ada fungsi generate_user maka kita harus mengetik kode tersebut berulang kali dengan field username yang berbeda-beda (karena username harus unik ya). Akan sangat melelahkan bukan?

Review kode anda sendiri dan minta kolega anda untuk review juga(kalau bisa)

Mulai dari review dari diri sendiri, apabila kita merasa kebingungan dengan kode yang kita buat, maka waktunya untuk me-refactor kode kita sesuai dengan kaidah clean code diatas agar dapat mudah dimengerti. Apabila anda sudah cukup mengerti dengan kode anda, maka waktunya untuk kolega anda mencoba untuk review kode anda, apabila dia kebingungan maka refactor kode anda . Karena mungkin saja kode anda hanya jelas di perspektif anda sendiri namun tidak bagi perspektif orang lain.

Kesimpulan

Percayalah masih banyak tips-tips agar kita bisa menerapkan clean code programming yang belum saya masukkan disini, karena jumlahnya sebenarnya cukup banyak. Namun beberapa tips yang sudah saya masukkan diatas bisa dibilang merupakan cara major atau wajib yang harus kita terapkan.

INGAT! Clean code programming adalah sebuah kebiasaan kita as developer, jadi janganlah menunda-nunda untuk menerapkannya, selalu terapkan tiap kita menulis kode. Jika anda ingin menjadi programmer yang lebih baik, maka terapkanlah Clean Code.

Sekian dari saya mengenai clean code, semoga bermanfaat bagi kalian semua! Silahkan tinggalkan komentar ataupun pertanyaan dibawah agar dapat memotivasi saya lagi. Terimakasih atas perhatiannya ! Happy coding, happy life!

--

--

Kevin Prakasa
PPL SeLaw

Studying CS at University of Indonesia | Front-End Developer at my own company