BERITA PROGRAMMING Perhatian Programmer! Inilah Pentingnya Menerapkan Clean Code

Perhatian Programmer! Inilah Pentingnya Menerapkan Clean Code


#clean code #programming #developer #web developer #app developer #game developer #coding
Perhatian Programmer! Inilah Pentingnya Menerapkan Clean Code

Mungkin teman-teman programmer sudah pernah mendengar istilah clean code, tetapi kita harus tahu betapa pentingnya clean code dan mengapa menerapkannya menjadi sebuah kewajiban

Aktivitas di kantor membosankan?
Karyawan engangement kurang?
GAMIFIKASI-IN aja!

Pertama-tama, mari kita kenal dahulu apa itu clean code supaya teman-teman yang masih asing dengan istilah ini bisa tahu terlebih dahulu. Clean Code adalah bagian dari salah metode pengembangan perangkat lunak (web, aplikasi, games atau sejenisnya) yaitu Agile. Clean Code sendiri dapat diartikan kode program yang :

  1. formatnya benar,
  2. disusun dengan baik dan rapi,
  3. mengikuti standard.

Tujuan Clean Code

Nah sekarang, sebelum membahas mengapa clean code itu penting dan bagaimana cara penerapannya. Kita harus tahu beberapa tujuan clean code itu sendiri : 

  1. Agar kode program mudah dimengerti programmer lain
  2. Agar kode program mudah dibaca dan ditelusuri
  3. Agar memperlancar proses pengembangan perangkat lunak secara tim
  4. Agar pengembangan perangkat lunak dapat dilakukan dalam jangka panjang

Perhatikan contoh kode program berikut ini : 

public class SukaSuka
{
    public void jalanGaYa() {
        Jalankan();
    }

    public void Jalankan()
    {
        System.out.println("Jalan");
    }
}

Jika kita lihat kode program di atas, tentu kita akan pusing. Setidaknya ada beberapa hal sebagai berikut : 

  • Nama kelas "SukaSuka", ini maksudnya apa? Programmer lain yang membaca akan pusing dan harus menerka-nerka.
  • Nama method "jalanGaYa" ini maksudnya apa? Programmer lain yang membaca atau ke depan programmer itu sendiri yang sudah lama tidak membuka project tersebut akan pusing sendiri. hehehe
  • Tanda {} yang tidak konsisten, apakah dibuka di akhir baris atau membuat baris baru? 
  • Penamaan method yg tidak konsisten yaitu ketika menulis method diawali dengan huruf besar dan ada yang diawali dengan huruf kecil

Menerapkan Clean Code

Kalau tidak mau pusing ke depannya di dalam pengembangan perangkat lunak atau lancar bekerja sama dengan tim, berikut dari tim Game Lab Indonesia punya 7 tips ampuh cara menerapkan clean code di dalam program yang sedang kamu kembangkan: 

1. Pemberian Komentar

Memberikan komentar pada setiap awal fungsi (method) dan perintah-perintah yang penting. Komentar ini sering diabaikan dan dianggap tidak penting. Padahal ya,,, kalau kita sudah lama tidak buka proyek tersebut dan kemudian client minta kita mengembangkan lagi, komentar ini bisa jadi kompas. Berikut contoh-contoh komentar pada kode program: 

/*
* Author : Andi Taru
* Created at : Dec 28, 2018
* Updated at : Dec 12, 2019
* A class to get information of Siswa
*/
public class ReportSiswa
{
    /*
    * an initial method
    * start - end : report date range
    */
    public ReportSiswa(Date start, Date end)
    {
         
    }

    /*
    * a method to generate report 
    * fileType = PDF, EXCEL, etc
    */
    public void generateReport(String fileType)
    {

    }
}

 

2. Penamaan Variable, Method dan Kelas Harus Standard

Biasanya di Educa Studio dan Game Lab kami menerapkan kesepakatan bersama sebagai berikut : 

  • Nama variable harus diawali dengan huruf kecil
  • Nama variable untuk setiap kata dipisahkan dengan tanda underscore (_)
  • Nama method harus diawali dengan huruf kecil
  • Nama method untuk setiap kata selain paling awal harus diawali dengan huruf besar
  • Nama kelas harus diawali dengan huruf besar
  • Nama kelas untuk setiap kata harus diawali dengan huruf besar

Berikut contoh penerapannya : 

// contoh variable
String nama_variable = "";
int umur_sekolah = 30;
float kecepatan_gerak = 20.0f;

// contoh method
public void putarRoda(int kecepatan)
{

}

public void tembakRudal(int jumlah_rudal)
{

}

// contoh kelas
public class MobilBalap
{

}

public class GameDesigner extends MobilBalap
{

}

 

3. Scope Variable

Kesepakatan penggunaan tanda bracket ({  }) untuk penerapan score variable penting. Selain menyamakan semua kode program, juga akan mempermudah di dalam melihat kode program apabila sudah mencapai ribuan baris. Berikut pilihannya ada 2 (dua) kalau di tempat kami: 

// contoh pertama
class MobilBalap {

}

// contoh kedua
class MobilKeluarga
{

}

Dan kami sepakat untuk menggunakan yang nomor 2 sebagai standard.

 

4. Percabangan 

Pada model percabangan baik itu If atau Switch sebaiknya kita menggunakan kode program yang jelas. Berikut adalah contohnya: 

// contoh bad code
if (index == 0)
{
    variabel = "0";
}
if (index == 1)
{
    variable = "1";
}

// contoh clean code
if (index == 0)
{
    variable = "0";
}
else if (index == 1)
{
    variable = "1";
}

// contoh bad code
if (user.index == 0 || user.status == "OK")
{

}

// contoh clean code
if (user->getIndex() == 0 || user->getStatus().equals("OK"))
{

}

// contoh bad code
if (!$auth->isSignIn()) { return $rep->withStatus(200)->withHeader('Location'); } 

// contoh clean code
if (!$auth->isSignIn()) 
{
    return $rep->withStatus(200)->withHeader('Location'); 
} 

 

5. Hapus Kode Program yang Tidak Digunakan

Seringkali kita melakukan coba-coba dan sayang terhadap kode program panjang yang sudah kita buat. Akhirnya, kita meng-comment kode-kode program tersebut. 

// kode program lama
/*
Scanner scannerToReadAirlines = null;
        try{
            scannerToReadAirlines = new Scanner(new File("airlines.txt"));
        }
        catch(IOException e){
            System.out.println("Could not connect to file airlines.txt.");
            System.exit(0);
        }
        if(scannerToReadAirlines != null){
            ArrayList<Airline> airlinesPartnersNetwork = new ArrayList<Airline>();
            Airline newAirline;
            String lineFromFile;
            String[] airlineNames;
            
            while( scannerToReadAirlines.hasNext() ){
                lineFromFile = scannerToReadAirlines.nextLine();
                airlineNames = lineFromFile.split(",");
                newAirline = new Airline(airlineNames);
                airlinesPartnersNetwork.add( newAirline );
            }
            System.out.println(airlinesPartnersNetwork);
            Scanner keyboard = new Scanner(System.in);
            System.out.print("Enter airline miles are on: ");
            String start = keyboard.nextLine();
            System.out.print("Enter goal airline: ");
            String goal = keyboard.nextLine();
            ArrayList<String> pathForMiles = new ArrayList<String>();
            ArrayList<String> airlinesVisited = new ArrayList<String>();
            if( canRedeem(start, goal, pathForMiles, airlinesVisited, airlinesPartnersNetwork))
                System.out.println("Path to redeem miles: " + pathForMiles);
            else
                System.out.println("Cannot convert miles from " + start + " to " + goal + ".");
        }
*/

// kode program baru
Scanner scannerToReadAirlines = null;
try
{
    scannerToReadAirlines = new Scanner(new File("airlines.txt"));
}
catch(IOException e)
{
    System.out.println("Could not connect to file airlines.txt.");
    System.exit(0);
}

Bagaimana biasanya programmer menangani hal tersebut? Kalau masih menggunakan bad code maka biasanya tinggal dicomment. Kalau 1 kali 2 kali biasanya tidak masalah, tetapi bayangkan kalau ada 300 kelas dan kita tidak sadar melakukan 10% dari kelas tersebut (berarti kira-kira ada 30 kelas yang dalamnya banyak komentar kode panjang yang tidak jelas). Mengerikan bukan? Tips terbaik adalah hapus kode program yang tidak terpakai tersebut. Kalaupun memang kode program tersebut penting, maka kita bisa menyimpan kode program tersebut di file catatan. 

6. Dekomposisi Kode Program

Tips berikutnya adalah melakukan proses dekomposisi. Kode program yang terlalu panjang, dipisahkan berdasarkan fungsi dan jenisnya masing-masing. Berikut adalah contohnya agar lebih jelas : 

// contoh bad code
public class MobilBalap
{
     // inisialisasi mobil
     public MobilBalap()
     {
          // inisialisasi mesin
          mesin = new Mesin();
          mesin->cekBensin();
          mesin->cekOli();
          mesin->hidupkanMesin();


          // inisialisasi ban
          ban = new Ban(4);
          ban->cekPelek();
          ban->cekAngin();
          ban->putar();
     }
}

// contoh clean code
public class MobilBalap
{
     // inisialisasi mobil
     public MobilBalap()
     {
          inisialisasiMesin();
          inisialisasiBan();
     }

     private void inisialisasiMesin()
     {
          mesin = new Mesin();
          mesin->cekBensin();
          mesin->cekOli();
          mesin->hidupkanMesin();
     }

     private void inisialisasiBan()
     {
          ban = new Ban(4);
          ban->cekPelek();
          ban->cekAngin();
          ban->putar();
     }
}

 

7. Indent 

Tips terakhir adalah penggunaan indent. Biasanya ini dilanggar oleh banyak programmer pemula. Gunakan indent secara konsisten yang jelas. Perhatikan kode program berikut ini: 

// contoh bad code
public class MobilBalap
{
private int jumlah_ban;
private String nama_mobil;

     public void testBan()
     {
     System.out.println("Jumlah Ban : " + jumlah_ban);
     }

public void tesNama()
{
     System.out.println("Nama Mobil : " + nama_mobil);
}
}

// contoh clean code
public class MobilBalap
{
    private int jumlah_ban;
    private String nama_mobil;

    public void testBan()
    {
        System.out.println("Jumlah Ban : " + jumlah_ban);
    }

    public void tesNama()
    {
        System.out.println("Nama Mobil : " + nama_mobil);
    }
}

Penutup

Nah, sudah jelaskan sekarang? Ingat ya, clean code ini sifatnya adalah WAJIB! Karena clean code ini akan sangat berpengaruh terhadap : 

  • kualitas kita sebagai programmer
  • pengembangan perangkat lunak ke depannya
  • teamwork pengerjaan lebih dari 1 programmer

Semoga artikel ini bermanfaat ya! Semangat coding teman-teman! 

Hidupmu bahagia kalau pernah main game papan ini! Main game ULAR TANGGA sekarang bisa lewat HP dan bisa main rame-rame.


Andi Taru

Andi Taru

Jumat, 13 Desember 2019