Kesalahan Umum dalam Pemrograman C# Reza Pahlava
[email protected] :: http://blog.rezapahlava.com
Abstrak Pada saat seseorang memulai mempelajari sebuah bahasa pemrograman, umumnya akan melakukan kesalahan-kesalahan yang sama. Pada postingan kali ini, saya akan merangkum kesalahan-kesalahan yang umum dilakukan oleh programer, khususnya yang menggunakan bahasa C#. Oleh karena bahasa C# sendiri mengadopsi bahasa C/C++ dan Java, ada beberapa item yang juga berlaku pada bahasa pemrograman tersebut.
Pendahuluan Menjadi ahli/profesional dalam suatu bidang tentu tidak bisa diperoleh secara instan, melainkan melalui proses pembelajaran yang panjang. Seorang profesional dulunya juga adalah pemula yang tentunya melakukan banyak kesalahan. Bedanya antara yang sukses menjadi profesional dan yang gagal adalah pada ketekunan, pada kemauannya untuk belajar dan tidak mengulangi lagi kesalahan yang sama. Hal ini juga berlaku pada profesi programer. Pada saat seseorang (termasuk saya) memulai mempelajari sebuah bahasa pemrograman, umumnya akan melakukan kesalahan-kesalahan yang sama. Pada postingan kali ini, saya akan merangkum kesalahan-kesalahan yang umum dilakukan oleh programer, khususnya yang menggunakan bahasa C#. Oleh karena bahasa C# sendiri mengadopsi bahasa C/C++ dan Java, ada beberapa item yang juga berlaku pada bahasa pemrograman tersebut.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Pembahasan Kesalahan Umum dalam Pemrograman C#: 1. Kesalahan Sintak Berikut ini adalah beberapa kesalahan yang sering dilakukan pada saat seseorang mulai belajar pemrograman dengan C#. 1.1 Penggunaan HURUF BESAR dan Huruf Kecil Pada bahasa C# (dan juga C/C++, Java) penggunaan huruf besar dan huruf kecil dibedakan. 1
int panjang, lebar;
2
panjang = 20;
//OK
3
Lebar = 30;
//ERROR
1.2 Penamaan Dalam bahasa pemrograman dikenal keywords dan identifier. Keywords(kata kunci) adalah kata-kata yang mempunyai makna khusus bagi compiler, biasanya untuk menandai suatu fungsi atau operasi tertentu. Keywords yang ada pada C# bisa dilihat di situs MSDN ini. Sedangkan identifier adalah pengenal yang didefinisikan oleh programer, untuk menandai nama namespace, class, method maupun variabel. Ada aturan khusus untuk identifier yaitu: 1. Merupakan kombinasi antara huruf, angka dan garis bawah (_). 2. Tidak boleh sama dengan keywords (Sebenarnya diperbolehkan asal dimulai dengan @, tapi tidak disarankan) 3. Dimulai dengan huruf, garis bawah atau @. 1
double rata_rata;
// OK
2
double rataRata;
// OK
3
double rata-rata;
// ERROR, - tidak diperbolehkan
4
double nilai ujian;
// ERROR, spasi tidak diperbolehkan
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
1.3 Penggunaan ; : , . ()[]{}’ dan “ Seperti item 1.1, berbeda dengan Visual Basic, bahasa C# banyak menggunakan simbolsimbol seperti titik koma, titik dua, kurung kurawal dan sebagainya. Pada saat seseorang mulai belajar C#, akan bingung dengan penggunaan simbol-simbol tersebut, sehingga menyebabkan error pada source code yang ditulisnya. Berikut adalah rangkuman fungsi dari beberapa simbol.
1. Titik koma ; digunakan untuk mengakhiri pernyataan (kalau dalam bahasa kita, sama dengan fungsi titik untuk mengakhiri sebuah kalimat). 2. Titik dua : menandai bahwa pernyataan tersebut diikuti oleh beberapa pernyataan, biasanya digunakan pada struktur switch-case atau label. 3. Koma , digunakan untuk memisahkan beberapa identifier, variabel atau nilai dalam sebuah pernyataan. 4. Titik . digunakan untuk mengakses anggota dari sebuah objek atau tanda pemisah desimal pada bilangan (mengikuti sistem pada bahasa inggris). 5. Kurung siku [] digunakan untuk menandai array 6. Kurung () digunakan pada method untuk mengelompokkan parameter, mengelompokkan ekpresi pada if, for, while, foreach, switch, mengelompokkan ekspresi matematis contoh: 2 * (1 + 3). 7. Kurung kurawal {} digunakan untuk mengelompokkan beberapa pernyataan atau inisialisasi varibel array 8. Tanda petik „ digunakan untuk karakter atau huruf. 9. Tanda petik dua ” digukanan untuk string atau kumpulan huruf. Yang sering terjadi adalah, titik koma tertukar dengan titik dua, titik tertukar dengan koma, kemudian kelupaan menulis pasangannya pada tanda kurung dan tanda petik, atau dengan kata lain kalau ada kurung buka ([{ dan '" harus ada juga kurung tutup )]} dan „” sebagai penanda akhir dari pengelompokan.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
1.4 Kesalahan Seputar Tipe Data dan Operator Berbeda dengan script seperti Python, Perl, atau JavaScript, bahasa C# sifatnya statis. Dalam artian, sebuah variabel hanya bisa menyimpan satu jenis data sesuai dengan tipe data dari variabel tersebut. 1
int angka;
2
angka = 30;
//OK, karena angka tipenya bilangan bulat.
3
angka = 30.5;
//ERROR, tidak kompatibel
Lebih detil mengenai tipe data dan variabel, bisa dilihat di: http://msdn.microsoft.com/en-us/library/ms173104.aspx
Kesalahan-kesalahan diatas sifatnya kesalahan sintaks dan bisa dideteksi oleh Compiler dimana letak kesalahannya. Hanya saja, letak kesalahan kadang tidak sama persis dengan nomor baris yang dilaporkan oleh kompiler. Error yang dilaporkan pada baris tertentu, bisa disebabkan oleh kesalahan pada baris tersebut atau baris sebelumnya, tapi tidak pernah disebabkan oleh baris sesudahnya. Oleh karena itu, jika compiler melaporkan beberapa kesalahan pada source code anda, perbaikilah secara berurutan dari kesalahan yang dilaporkan lebih awal, jangan ngacak.
1.5 Penggunaan Titik Koma yang Tidak Tepat Titik koma (;) berfungsi untuk mengakhiri sebuah pernyataan. Umumnya tiap pernyataan akan diakhiri titik koma, tapi tidak untuk percabangan dan pengulangan. Apabila titik koma dibubuhkan setelah if, for, while dan foreach, maka makna program akan berubah (khusus do-while, perlu diakhiri dengan titik koma). Dan, berbeda dengan yang sebelumnya, kesalahan ini tidak terdeteksi oleh compiler. 1
int a = -1;
2
//1. Kesalahan pada if.
3
if (a > 0);
4 5
Console.WriteLine("Bilangan a adalah bilangan positif"); //pernyataan diatas sama dengan:
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
6
if (a > 0)
7
{
8
;
9
}
10
Console.WriteLine("Bilangan a adalah bilangan positif");
11 12
//2. Kesalahan loop
13
int idx = 0, N = 10;
14
while (idx < N);
15 16 17 18
Console.WriteLine("Idx = {0}", idx++); //sama dengan:
while (idx < N) {
19 20 21
; } Console.WriteLine("Idx = {0}", idx++);
Kesalahan penggunaan titik koma (;) seperti contoh diatas akibatnya fatal. Pada contoh nomor 1, apapun nilai a, program akan selalu mencetak: “Bilangan a adalah bilangan positif”. Sedangkan pada contoh nomor 2, program tidak akan pernah selesai (terjadi endless loop), karena nilai idx tidak pernah di-update.
Penutup Hampir tidak ada aplikasi yang berjalan sempurna sebelum melewati berbagai rentetan kesalahan, semakin besar aplikasi yang dibuat, semakin banyak kesalahan yang dapat timbul. Sukar dibayangkan jika Anda dapat mengetikkan ratusan baris kode program tanpa ditemukan kesalahan pada saat dijalankan atau dikompilasi untuk pertama kalinya.
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org
Referensi Putusgr, „Kesalahan Umum dalam Pemrograman C#‟, http://ipsusila.wordpress.com/2011/09/06/kesalahan-umum-dalam-pemrograman-cs /
Biografi Reza Pahlava lahir pada tanggal 15 Juli 1990 di Tangerang, sedang melanjutkan kuliah di STMIK Raharja Tangerang pada jurusan Teknik Informatika konsentrasi Software Engineering. Saat ini bekerja sebagai IT Infrastructure di PT IMS Logistics. Hobi membaca dan bercita-cita menjadi “ITPreneur” di usia muda. Web : blog.rezapahlava.com Email :
[email protected]
Lisensi Dokumen: Copyright © 2008-2014 ilmuti.org Seluruh dokumen di ilmuti.org dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang, kecuali mendapatkan ijin terlebih dahulu dari ilmuti.org