Belajar coding memang menyenangkan. Bagi pemula, bisa membuat program Hello World pertama merupakan momen yang sangat membahagiakan. Akan tetapi, sebagai programmer, khususnya pemula, mungkin sering menemui berbagai masalah saat coding, baik itu sintaks error, bug atau masalah dan kendala yang lain. Jika sudah begini, kadang bikin gak enak makan dan susah tidur selama berhari-hari sampe bug-nya kelar :-).
Walaupun banyak hal yang bisa menyebabkan bug atau error, akan tetapi beberapa kesalahan yang dilakukan programmer juga ikut andil dalam menyebabkan bug tersebut. Jika Anda bisa meminimalisir kesalahan, maka akan meminimalisir bug dan masalah yang muncul. Maka penting sekali untuk mengenali apa saja kesalahan yang sering dilakukan oleh programmer khususnya para pemula. Dengan mengetahui kesalahan-kesalahan tersebut, skill programming Anda akan semakin baik dan juga waktu Anda akan semakin produktif.
Berikut beberapa kesalahan yang paling banyak dilakukan oleh programmer pemula.
1. Tidak memiliki gaya penulisan yang konsisten
Coding itu sebenarnya adalah menuangkan isi pikiran ke dalam tulisan atau bahasan yang dimengerti oleh komputer. Tulisan tersebut merupakan instruksi kepada komputer untuk melakukan sebuah pekerjaan. Pada dasarnya, menulis kode itu bebas-bebas saja. Artinya seorang programmer itu bebas mau menulis kode dengan gaya apa saja.
Umumnya kode program yang ditulis oleh programmer pemula biasanya berantakan dan sulit dibaca. Kode program yang tidak tertata dengan baik akan berpotensi besar menghasilkan bug yang sulit diperbaiki.
Berikut beberapa contoh
a. Penggunaan indentation (tab) yang tidak konsisten.
Biasanya programmer pemula jarang sekali memperhatikan masalah ini. Padahal penggunakan indentation (tab) yang baik dalam coding itu sangat dibutuhkan. Penggunaan indentation itu harus konsisten, yaitu 4 spasi. Dan setiap blok kode harus diberikan indentation untuk membedakan antara kode di dalam blok dan di luar blok.
Berikut adalah contoh penggunaan indentation yang tidak konsisten:
for(int i = 0; i < 10; i++) { val = data[i] * 10; sum += val; }
Berikut adalah versi perbaikan dari kode di atas dengan penggunaan indentation yang lebih konsisten (4 spasi)
for(int i = 0; i < 10; i++) { val = data[i] * 10; sum += val; }
b. Tidak konsisten terhadap baris baru
Kesalahan ini juga sering terjadi. Terkadang antara satu baris kode dan baris kode yang lain terdapat lebih dari satu baris baru. Terlalu banyak baris baru membuat kode menjadi tidak rapih dan berpotensi menghasilkan bug yang sulit diperbaiki. Perhatikan contoh kode berikut:
int val = 0; int sum = 0; for(int i = 0; i < 10; i++) { val = data[i] * 10; sum += val; }
Contoh di atas adalah penggunaan baris baru yang salah, karena banyak baris baru yang tidak dibutuhkan, sehingga manjadikan kode terlihat jelek dan aneh.
Antara baris kode dengan baris kode yang lain seharusnya cukup dipisahkan dengan 1 baris baru. Untuk blok kode bs dipisahkan dengan 2 baris baru. Berikut adalah perbaikan dari kode di atas:
int val = 0; int sum = 0; for(int i = 0; i < 10; i++) { val = data[i] * 10; sum += val; }
c. Tidak memperhatikan aturan penamaan variabel atau object.
Pemberian nama variabel atau object sebenernya bebas-bebas saja sesuai keinginan programmer. Akan tetapi alangkah lebih baik jika Anda memiliki standar penulisan nama variable atau object sehingga tidak membingungkan. Misalkan nama variabel harus mengikuti standar CamelCase, nama variabel harus diawali dengan huruf kecil, nama variabel tidak boleh mengandung angka dan lain-lain.
d. Pemberian nama variabel atau object yang tidak sesuai dengan maksudnya.
Pemberian nama variabel, fungsi, object atau lainnya seharusnya sesuai dengan maksud dari variabel tersebut. Misal Anda membutuhkan variabel untuk menampung nilai total dari data. Maka berilah nama variabel yang baik yaitu total
, agar orang lain yang membaca kode Anda mudah memahami maksudnya. Begitu juga ketika Anda membaca kode Anda kembali, 1 atau 2 bulan berikutnya. Dari namanya, Anda sudah dapat memahami maksud dari variabel tersebut.
Berbeda jika Anda memberinya nama misal tl
atau t
. Pemberian nama seperti ini menyulitkan dan Anda atau orang lain harus menghabiskan waktu ekstra untuk memahami maksud dari variabel tersebut jika ingin maintenance kode tersebut kedepannya.
e. Jarang memberikan komentar pada kode
Ini merupakan kesalahan yang paling sering terjadi. Beberapa programmer pemula agak malas memberikan komentar pada kode yang mereka buat. Mereka lebih fokus pada kode itu sendiri ketimbang memberikan komentar. Konsisten memberikan komentar pada kode merupakan langkah yang baik agar kode lebih mudah dimengerti maksudnya. Hal ini penting karena akan memudahkan orang lain memahami kode yang Anda buat. Begitu juga jika suatu saat Anda perlu menelaah kembali kode tersebut. Anda tidak perlu pusing lagi menelusuri maksud dari kode tersebut yang tentu saja akan banyak membuang waktu. Cukup dengan memberikan komentar singkat, maka akan siapa pun bisa paham maksud dari kode tersebut.
2. Menulis fungsi yang terlalu besar
Fungsi memiliki peranan yang sangat vital dalam coding. Dengan memecah kode ke dalam fungsi-fungsi maka kode akan terlihat lebih tertata rapih. Akan tetapi dalam penulisan fungsi terkadang beberapa programmer banyak melakukan kesalahan, khususnya programmer pemula. Mereka menuliskan terlalu banyak baris dalam satu fungsi hingga melebihi batas yang seharusnya. Hal ini menyebabkan fungsi tersebut menjadi besar sekali dan menjadikannya sulit dipahami.
Berikut adalah beberapa acuan yang bisa Anda jadikan standar penulisan sebuah fungsi:
- Sebuah fungsi seharusnya tidak boleh lebih dari 50 baris
Meskipun ini bukan acuan baku, akan tetapi usahakan agar fungsi yang Anda buat tidak lebih dari 50 baris. - Fungsi tersebut dapat dijelaskan dalam satu kalimat singkat tanpa ada kata DAN atau ATAU
Fungsi yang Anda buat harus bisa dideskripsikan dengan satu kalimat singkat tanpa ada kata DAN atau ATAU. Maksudnya adalah bawah sebuah fungsi seharusnya fokus untuk mengerjakan satu pekerjaan. Jika fungsi yang Anda buat adalah untuk mengerjakan lebih dari satu pekerjaan, maka perlu dipecah menjadi beberapa fungsi Perhatikan deskripsi fungsi berikut.
Fungsi di atas terdiri dari dua pekerjaan, yaitu menghitung dan menampilkan. Maka Anda bisa memecah fungsi tersebut menjadi dua buah fungsi yaitu fungsiFungsi untuk menghitung dan menampilkan data nilai
menghitung
dan fungsimenampilkan
. - Secara total tidak boleh mengandung lebih dari 8 statemen blok
if
,switch
,loop
dan blok kode lainnya
Jika jumlah total semua blok kode lebih dari 8 blok kode, maka sebaiknya Anda memecah fungsi tersebut ke dalam beberapa fungsi yang lebih spesifik. Blok kode yang dimaksud adalah blokif
, blokswitch
, blokfor
loop dan lainnya.
Jika fungsi yang Anda buat melanggar salah satu dari tiga ketentuan di atas, maka sebaiknya Anda memecah fungsi tersebut menjadi beberapa sub fungsi. Perhatikan contoh berikut:
Buat fungsi yang tugasnya mengambil input nama file yang diinput oleh user kemudian buka file tersebut dan baca semua data student pada file tersebut kemudian hitung rata-rata siswa dan tampilkan hasilnya.
Dari penjelasan di atas, jika Anda membuatnya kedalam satu fungsi maka fungsi yang Anda buat akan panjang jumlah barisnya. Sebuah fungsi yang baik seharusnya fokus untuk mengerjakan satu task saja. Jadi dari penjelasan di atas, Anda bisa memecah fungsi tersebut menjadi beberapa sub fungsi berikut:
getFile()
: Fungsi untuk membaca file inputgetStudents()
: Fungsi untuk membaca data siswaavarageScore()
: Fungsi untuk mencari nilai rata-ratadisplayAvarageScore()
: Fungsi untuk menampilkan nilai hasil rata-rata.
3. Menulis kode tanpa perencanaan
Jika diberikan sebuah masalah, biasanya programmer pemula akan langsung coding tanpa melakukan perencanaan mengenai kode yang akan dibuat. Kode yang dibuat tanpa perencenaan biasanya tidak terstruktur dengan baik atau dengan kata lain asal running aja. Berikut adalah langkah-langkah merencanakan coding yang baik.
- Identifikasi Masalah dan Kebutuhan
Pada langkah ini, Anda harus bisa mengidentifikasikan masalah dengan baik. Apa saja scope dari masalah yang ingin diselesaikan. Apa saja yang dibutuhkan untuk menyelesaikan masalah tersebut. - Desain Program
Setelah masalah diidentifikasi dengan jelas dan semua hal yang dibutuhkan untuk menyelesaikan masalah telah siap, maka Anda bisa mulai mendesain program solusi untuk menyelesaikan masalah tersebut. Ingat sampai tahap ini, Anda belum mulai melakukan coding, hanya mendesain solusi yang akan Anda buat yang nantinya akan akan buat dalam bentuk program (coding). - Desain Tatap Muka
Jika program yang Anda buat membutuhkan sebuah tatap muka (user interface), Anda bisa melakukan desain tatap muka. Pada tahap ini, Anda bisa mulai mendesain bagaimana tampilan utamanya, navigasi, tampilan menu dan yang lainnya. - Desain Test
Testing dilakukan untuk menjami bahwa program yang Anda buat sudah menyelesaikan masalah. Dengan adanya test, maka bug akan bisa diminimalisir.
4. Terlalu sering menggunakan variabel global
Variabel global merupakan variabel yang dideklarasikan dalam skop global. Sebuah variabel yang dideklarasikan dalam skop global dapat diakses dari semua skop, baik dari dalam fungsi, class atau dari luar.
Sebaliknya, variabel lokal merupakan variabel yang dideklarasikan dalam skop lokal, misal dalam sebuah fungsi, class atau skop lokal yang lain. Variabel lokal hanya dapat diakses dari tempat dimana variabel tersebut dideklarasikan. Jika variabel tersebut dideklarasikan dalam sebuah fungsi, maka variabel tersebut hanya dapat diakses dari dalam fungsi tersebut. Jika variabel lokal diakses dari luar skop, maka akan menyebabkan error
Programmer pemula biasanya lebih senang membuat semua variabel dalam skop global. Alasannya tentu saja untuk mempermudah karena lebih simpel. Pemahaman seperti ini tentu saja salah karena akan menimbulkan beberapa masalah, di antaranya:
- Variabel global mungkin tidak terinisialisasi
- Salah melakukan inisialisasi variabel global
- Nilai variabel global direset/dirubah di fungsi yang lain
Masalah-masalah di atas biasa disebut dengan runtime problem. Artinya masalah hanya muncul saat runtime bukan saat program tersebut dicompile. Runtime problem biasanya lebih sulit dicari penyebab masalahnya ketimbang masalah yang muncul saat compile.
5. Tidak melakukan validasi terhadap input user
Gagal melakukan validasi terhadap input dari user merupakan faktor yang seringkali menyebabkan program error. Sebaiknya setiap input dari user itu selalu divalidasi karena user belum tentu melakukan input seperti yang Anda harapkan. User seringkali mekakukan input asal-asalan, jika program Anda tidak melakukan validasi dengan baik, sudah bisa dipastikan akan terjadi error.
Beberapa hal yang harus diperhatikan mengenai validasi input user adalah sebagai berikut:
- Memastikan tipe data yang diinput oleh user sesuai dengan tipe data variabel yang digunakan untuk menyimpan nilai input tersebut.
- Jika input berupa bilangan, pastikan nilai input tidak melebihi batas maksimal tipe data yang Anda gunakan untuk menyimpan nilai tersebut (overflow).
Berlanjut …