Clean Code (Bebenah kode kuy)

Ilham Darmawan
PPL D7 — Fasilkom UI
3 min readMar 9, 2019

Halo, kembali lagi bersama saya Ilham DeCePe. Jangan bosen yaa bikin blog terus, karena saya memang sangat suka menulis :)… Nah mau cerita-cerita sedikit tentang PPL. Per hari ini saat saya menulis blog ini, saya sedang menjalani sprint yang kedua. Sejauh ini sih lancar-lancar saja kok alhamdulillah. Pada sprint kali ini, kelompok kami juga sudah mulai mengimplementasikan aspek penting dalam pengembangan perangkat lunak khususnya membuat kode. Aspek penting tersebut adalah clean code. Ya, pada tulisan saya kali ini, kita akan membahas sedikit banyak tentang clean code. Yuk kita sama-sama renungi…

Clean Code (The definition)

Nah, to the point, apa sih clean code itu? Sebenarnya banyak dari developer memiliki pandangan yang berbeda mengenai clean code sendiri, sebagai contoh kode yang tidak berbelit-belit, kode yang tidak berbentuk spaghetti code, dan masih banyak lagi. Namun, sebenarnya dari yang saya baca, semua pandangan tersebut sebenarnya mengerucut ke definisi ini:

Clean code is code that is easy to understand and easy to change.

Ya, mudah dimengerti dan mudah untuk diganti, atau istilah developer-nya mudah di-refactor. Memangnya kenapa kode itu harus mudah dimengerti sih? Bukannya udah pada S.Kom yaa? Eits eits, ternyata tidak sesimple itu kawan, dalam dunia industri sendiri tahu kan kalau baris kodenya itu pasti sudah banyak banget dan juga kita tentunya berkolaborasi dengan sesama developer. Nah aspek seperti clean code itu sendiri sangat penting diterapkan dalam dunia industri itu sendiri, karena apabila kodenya saja sudah berantakan, nanti ketika teman kita membaca kode kita, dia akan pusing sendiri dan bete sendiri tentunya. Nah produktivitas jadi terganggu dong, bagaimana kasusnya kalau itu sudah mendekati deadline delivery dari produk tersebut, wah bisa-bisa delivery-nya terlambat dan juga mempengaruhi perusahaan tersebut nantinya. Begitulah pentingnya aspek clean code dalam dunia industri yang tentunya tidak boleh kita sepelekan. Sekarang kita lanjut ke implementasi dari clean code itu sendiri

How to

Sebenarnya banyak sekali aspek dari clean code. Kali ini saya hanya akan mengupas sebagian kecil dari implementasi clean code yang sudah saya lakukan:

  • Low coupling: maksud dari istilah ini adalah suatu objek tidak boleh memiliki ketergantungan dengan objek yang lain. Sebagai contoh, misal ada sebuah Class A yang tidak bisa berjalan tanpa adanya class B, nah ini yang dimaksud high coupling, sebaiknya dihindari dengan mengimplementasikan class atau potongan kode yang low coupling
  • High cohesion: istilah ini menjelaskan bahwa suatu fungsi atau class hanya berfokus kepada satu hal dan satu hal itu saja. Misal ada fungsi menghitung nilai mahasiswa, jangan sampai dalam fungsi tersebut terdapat potongan kode yang bertugas untuk mencari mahasiswa berdasarkan NPM. Hal ini menandakan bahwa fungsi tersebut melakukan dua hal yang berbeda, sebaiknya dipisah menjadi dua fungsi. Fungsi yang satu untuk mencari mahasiswa berdasarkan NPM dan fungsi lainnya menghitung nilai mahasiswa
  • Consistency: maksudnya adalah adanya keseragaman dalam kode kita, misal dalam penamaan suatu variable harus menggunakan camel case, atau dalam penamaan suatu fungsi harus verb seperti doSomething().
  • Intuitive code: dalam penamaan sebuah fungsi, class, variable harus mudah dimengerti kegunaannya untuk apa misal ada variable x = 3, nah ini adalah contoh penamaan yang buruk karena kita tidak tahu x itu untuk apa. Contoh penamaan yang baik adalah nilaiRerataSementara, dimana menjelaskan bahwa variable tersebut berfungsi untuk menyimpan nilai rata-rata sementara
  • Comment when needed: kita diharuskan membuat comment dalam kode apabila jika implementasi kode tersebut sangat panjang sehingga butuh penjelasan ekstra. Namun, apabila hampir setiap potongan kode kita dirasa perlu ditambahi komentar, maka di saat itu kita harus memikirkan apakah kode kita sudah cukup intuitif atau belum. Refactor time!

Implementasi dalam PPL

Implementasi clean code dalam proyek kami adalah menerapkan aturan penamaan fungsi yang intutitif. Salah satu contoh, fungsi yang saya buat adalah getOrderNameByVariantID(). Fungsi tersebut bertujuan untuk mengambil tanggal pembelian berdasarkan variantID. Lalu kami juga menggunakan code linter ESLint untuk menstandarisasi kode kami, seperti contohnya standarisasi indentasi menjadi 2 space dan apabila suatu variable tidak akan diubah, maka harus menggunakan const. Demikian contoh implementasi dari clean code dalam proyek kami. Sampai ketemu!!

--

--