1. scanf Function Overview
Dalam mempelajari bahasa pemrograman C, salah satu metode yang paling sering digunakan untuk memasukkan data ke dalam program adalah fungsi scanf. Fungsi ini berperan seperti “pendengar” program yang menyimpan data yang dimasukkan pengguna ke dalam variabel yang ditentukan.
Basic Syntax of scanf
scanf("formatSpecifier", &variable);
Di sini elemen kunci adalah “formatSpecifier” dan tanda ampersand (&) sebelum variabel. Penentu format menentukan tipe data yang akan dimasukkan, dan & menunjukkan alamat variabel tersebut. Dengan mengikuti aturan ini, scanf dapat memproses input pengguna dengan benar.
int num;
scanf("%d", &num);
Dengan cara ini, scanf memberikan input ke program dan membuat data tersebut dapat digunakan.
2. Commonly Used Format Specifiers
%d: untuk bilangan bulat%f: untuk tipefloat(bilangan titik mengambang)%lf: untuk tipedouble(bilangan titik mengambang presisi ganda)%s: untuk string (diakhiri oleh spasi)%c: untuk satu karakter
double val;
scanf("%lf", &val);
3. Processing Multiple Inputs Simultaneously
int age;
float height;
scanf("%d %f", &age, &height);
printf("Age: %d, Height: %.2fn", age, height);
4. Input Validation and Error Handling
int age;
printf("Please enter your age (0–120): ");
if (scanf("%d", &age) == 1 && age >= 0 && age <= 120) {
printf("The entered age is %d years.n", age);
} else {
printf("Invalid age.n");
}
5. Clearing the Input Stream
Saat menggunakan scanf, Anda mungkin merasa “input sebelumnya masih tersisa”. Hal ini terjadi karena karakter newline (\n) dan lain-lain tetap berada di stream input.
scanf("%*[^n]");
scanf("%*c");
Ini memungkinkan Anda melewati karakter newline atau karakter lain yang tersisa di buffer input. Namun, selama pemrosesan loop, Anda sebaiknya menghindari penggunaan fflush(stdin) yang tidak standar, dan gunakan metode seperti di atas untuk keamanan.
6. Common Pitfalls and Best Practices
- Mencocokkan spesifikator format: Sesuaikan tipe data dengan spesifikator
- Perhatian panjang string: Saat memasukkan dengan
%s, pertimbangkan ukuran buffer - Membersihkan stream: Hindari meninggalkan karakter newline
7. Advanced Usage | Sophisticated scanf Techniques
char name[20];
printf("Please enter your name: ");
scanf("%19s", name); // buffer-safe measure
printf("Hello, %s!n", name);
Summary
Fungsi scanf adalah metode input dasar dalam C. Setelah Anda memahami spesifikator format, pengecekan kesalahan, dan penanganan stream input, Anda dapat menggunakannya dengan aman. Perhatikan secara khusus buffer input yang tersisa dan potensi overflow buffer.


