Contact Form

Name

Email *

Message *

Apa itu fflush(stdin); dan Kegunaannya dalam Bahasa C

Post a Comment

Untuk kebutuhan Input data, bahasa C telah menyediakan berbagai macam fungsi standar.

Diantaranya yaitu fungsi scanf(); getchar(); gets(); maupun fgets();

Data-data yang telah diinputkan menggunakan fungsi diatas, disimpan di sebuah tempat didalam memori komputer.

Tempat yang digunakan untuk menyimpan data inputan disebut sebagai buffer.

Jadi, buffer merupakan memori yang digunakan untuk menyimpan data yang telah diinput oleh User, tetapi data tersebut belum diproses oleh program. 

Ibaratnya buffer ini merupakan tempat sementara untuk menampung data inputan dari user.

Jika, data yang ditampung didalam buffer ini tidak segera digunakan, maka ketika user menginputkan data lagi, data yang sebelumnya akan tertumpuki, dan hal inilah yang menyebabkan program menjadi error.

Perhatikan program berikut..

  	
  	#include <stdio.h> 
int main(){   char nama[10];   char alamat[10];   int umur;   char jKel;   printf("Masukkan Nama anda : ");   gets(nama);   printf("Masukkan umur anda : ");   scanf("%d", &umur);   printf("Masukkan Jenis kelamin (L/P) : ");   jKel = getchar();   printf("Masukkan Alamat anda : ");   fgets(alamat, sizeof(alamat), stdin);   printf("Nama : %s\n", nama);   printf("Umur : %d\n", umur);   printf("Jenis Kelamin : %c\n", jKel);   printf("Alamat : %s", alamat); return 0; }

Maka, terjadilah kesalahan dalam menampilkan data.

Yang seharusnya menginputkan menginputkan Jenis kelamin, program malh lompat menuju Input berikutnya.

Pada output dari Jenis Kelamin, terlihat kosong dan tidak menampilkan apa-apa.

Tapi, sebenarnya yang ditampilkan adalah karakter \n atau newline.

Terlihat bahwa, setelah output Jenis Kelamin terdapat satu line kosong.


. . .

Solusinya.. yaitu menggunakan fungsi fflush(stdin);

fflush(stdin); atau flush standard input merupakan fungsi yang digunakan untuk mengosongkan buffer input standar dan memindahkan semua data yang ada di dalamnya ke memori utama. 

Setelah buffer input standar dikosongkan, program akan dapat memproses input baru dari pengguna.

Perhatikan gambar berikut..

Gambar diatas merupakan ilustrasi cara kerja dari fungsi fflush(stdin);

Didalam program, penggunaan fungsi fflush(stdin); diletakkan diatara perintah input data. 

Perhatikan program berikut..

  	
  	#include <stdio.h> 
int main(){   char nama[10];   char alamat[10];   int umur;   char jKel;   printf("Masukkan Nama anda : ");   gets(nama);   fflush(stdin); // Penggunaan fungsi fflush(stdin);   printf("Masukkan umur anda : ");   scanf("%d", &umur);   fflush(stdin);   printf("Masukkan Jenis kelamin (L/P) : ");   jKel = getchar();   fflush(stdin);   printf("Masukkan Alamat anda : ");   fgets(alamat, sizeof(alamat), stdin);   printf("Nama : %s\n", nama);   printf("Umur : %d\n", umur);   printf("Jenis Kelamin : %c\n", jKel);   printf("Alamat : %s", alamat); return 0; }

Maka, tidak terjadi kesalahan dalam menampilkan data


Jadi.. Itulah tadi penjelasan singkat mengenai fungsi dari fflush(stdin); dalam bahasa C.

Usahakan dalam menginputkan berbagai macam data, selalu gunakan fungsi fflush(stdin);

Selain memudahkan komputer dalam mengorganisir data, hal ini juga bertujuan mengantisipasi terjadinya error yang penyebabnya susah untuk ditemukan.



Related Posts

Post a Comment