Banyak orang mengira jika program berhasil dikompilasi berarti kodenya sudah benar. Padahal tidak selalu begitu. Ada jenis kesalahan yang tidak menghentikan program, tetapi di logikanya gagal.
اَلسَّلَامُ عَلَيْكُمْ وَرَحْمَةُ اللهِ وَبَرَكَاتُهُ
Yuk, kita bahas bareng Bu Mawar.
Program bahasa C tidak menampilkan pesan error, berhasil dijalankan, tetapi hasilnya aneh?
Input yang dimasukkan seperti diabaikan, variabel tidak terisi, atau muncul angka acak.
Banyak yang mengira komputernya bermasalah (error), padahal penyebabnya bisa sesederhana salah menulis scanf().
Kesalahan kecil ternyata bisa membuat program berjalan dengan hasil yang salah tanpa memberi peringatan apa pun.
Penulisan yang benar :
int angka;
scanf("%d", &angka);
Artinya:
-
%ddigunakan untuk membaca bilangan bulat (integer) -
&angkamenunjukkan alamat variabel tempat menyimpan input
Namun bagaimana jika tertukar menjadi: scanf("d%", &angka);
Sekilas terlihat mirip. Hanya posisi % yang berpindah. Banyak pemula mengira ini hal kecil. Padahal dampaknya cukup besar.
scanf("d%") Bisa Bermasalah?scanf() membaca input berdasarkan pola tertentu yang disebut format specifier.
Saat menulis: scanf("%d", &angka);
program memahami:
"Tunggu input angka dari pengguna"
Tetapi ketika ditulis: scanf("d%", &angka);
program justru memahami:
"Tunggu pengguna mengetik karakter
d%"
Jadi jika pengguna memasukkan: 25
input tersebut tidak sesuai dengan yang diharapkan.
Akibatnya:
-
scanf()gagal membaca input - variabel tidak terisi
- nilai menjadi acak atau tidak sesuai
Contoh program:
#include <stdio.h>
int main() {
int angka;
scanf("d%", &angka);
printf("%d", angka);
return 0;}
Input:
25
Output:
0- atau angka acak lain.
Hal ini terjadi karena variabel angka sebenarnya tidak pernah menerima data.
Tidak ada komentar:
Posting Komentar