Pada kesempatan kali ini, saya akan mencoba berbagi tentang kesalahan-kesalahan yang biasa terjadi pada seorang programmer pemula dalam menulis code C++. Saya akan menulis 6 hal yang sering biasanya terjadi. Berikut adalah ulasannya.
1. Variabel tidak dideklarasi
1: int main()
2: {
3: cin>>a;
4: cout<<a;
5: }
Apa yang salah pada program di atas? ya yang kurang adalah tidak dideklarasikannya variabel
a, seharusnya program di atas seperti ini
1: int main()
2: {
3: int x;
4: cin>>x;
5: cout<<x;
6: }
2. Variabel tidak diinisialisasi
1: int count;
2: while(count<100)
3: {
4: cout<<count;
5: count++;
6: }
Kesalahan pada sepenggal program di atas adalah tidak diinisialisasinya variabel
count. Kesalahan pada program di atas karena variabel
count nilainya akan terisi secara acak sesuai jangkauan tipe data integer, program itu mungkin tidak error jika dijalankan, tetapi output dari program itu dipastikan tidak akan sesuai harapan si penulis program.
3. Mengisi variabel dengan nilai variabel lainnya
1: int a, b;
2: int sum=a+b;
3: cout<<"Enter two numbers to add: ";
4: cin>>a;
5: cin>>b;
6: cout<<"The sum is: "<<sum;
Pada sepenggal program di atas, hampir sama kasusnya dengan poin ke 2, sama-sama belum diinisialisasikan. Baris ke 2 untuk variabel
sum inisialisasikan dengan penjumlahan 2 nilai variabel
a dan
b. Namun kedua nilai variabel tersebut belum diinisialisasikan terlebih dahulu, sehingga hasil dari nilai variabel
sum akan acak nilainya. Berikut sepenggal program di atas yang seharusnya.
1: int a, b;
2: int sum;
3: cout<<"Masukkan 2 angka untuk penambahan: ";
4: cin>>b;
5: cin>>a;
6: sum=a+b;
7: cout<<"Variabel sum : "<<sum;
Seperti di atas ini seharusnya sepenggal program tersebut. Maka hasilnya akan indah, karena jika sesuatu sesuai harapan akan indah dan baik.
4. Menggunakan "=" untuk membandingkan nilai variabel
1: char x='Y';
2: while(x='Y')
3: {
4: //...
5: cout<<"Lanjutkan? (Y/N)";
6: cin>>x;
7: }
Pada sepenggal program di atas, program akan menghadapi looping yang tidak ada hentinya, karena pada baris kedua variabel
x bukan dibandingkan dengan nilai
Y, melainkan variabel
x selalu diinisialisasikan dengan nilai
Y. Sehingga selalu dianggap true meskipun user memasukkan nilai selain
Y pada variabel
x. Berikut adalah sepenggal program yang seharusnya.
1: char x='Y';
2: while('Y'==x)
3: {
4: //...
5: cout<<"Continue? (Y/N)";
6: cin>>x;
7: }
Sekedar sedikit tips untuk menghindari kesalahan logic pada program di atas, sebaiknya variabel yang akan dibandingkan diletakkan disebelah kanan dari operator "==" dan nilai pembandingnya diletakkan di sebelah kiri dari operator "==". Agar jika kita seandainya lupa atau typo untuk mengetik operator perbandingan menjadi operator assign ("="), saat program dijalankan atau dicompile akan menampilkan error.
5. Semicolon berlebih
1: int x;
2: for(x=0; x<100; x++);
3: cout<<x;
Semicolon atau titik koma memang paling sering menjadi penyebab errornya program, kali ini juga program akan error tidak hanya di saat tidak menambahkan semicolon, melainkan saat menambahkan semicolon pun program menjadi error, karena pada penulisan
for tidaklah menggunakan semicolon seperti yang ada pada baris ke 2 di atas.
6. Index array berlebih
1: int array[10];
2: //...
3: for(int x=1; x<=10; x++)
4: cout<<array[x];
Pada pemrograman seperti C++, index terakhir adalah selalu dikurang satu dari jumlah seluruh element arraynya, jika element array berjumlah 10, maka index dari array tersebut maximal adalah 9. Program di atas jelas akan error karena pada saat program dijalankan, index array tersebut mencapai nilai 10, sedangkan jumlah element array pada program di atas adalah 10, seharusnya program di atas dibuat seperti berikut ini.
1: int array[10];
2: //...
3: for(int x=0; x<10; x++)
4: cout<<array[x];