Tutorial Belajar C Part 13: Fungsi scanf dan Cara Penggunaan Perintah scanf

Dalam 2 tutorial sebelum ini kita telah mempelajari cara menampilkan sesuatu (output) menggunakan perintah printf dalam bahasa pemrograman C. Kali ini kita akan bahas tentang fungsi perintah scanf serta cara penggunaan perintah scanf sebagai sarana input program bahasa C.


Pengertian perintah scanf

Perintah scanf, atau lebih tepatnya function scanf() adalah perintah bahasa C untuk menerima masukan ke dalam program, yakni sebagai sarana input dari pengguna.

Dengan menggunakan perintah scanf, kita bisa membuat program yang lebih interaktif, yakni meminta data dari user / pengguna. Data ini nantinya bisa disimpan ke dalam variabel dan diolah lebih lanjut untuk kemudian ditampilkan kembali.

Sama seperti printf, perintah scanf juga merupakan function yang butuh beberapa argumen. Berikut format dasar penggunaan fungsi scanf:

scanf(kode_format, &nama_variabel_penampung)

Bagian kode_format adalah format untuk tipe data inputan. Kode format ini sama seperti yang dipakai untuk fungsi printf, misalnya kode "%d" untuk tipe data integer, atau "%c" untuk tipe data char.

Bagian nama_variabel_penampung adalah nama variabel yang digunakan untuk menampung nilai inputan. Variabel ini harus sudah di deklarasikan sebelumnya.

Perhatikan penambahan tanda '&' diawal variabel penampung. Tanda ini merujuk ke pointer untuk alamat memory dari variabel tersebut. Untuk tipe data dasar seperti int, float dan char, tanda '&' harus disertakan. Untuk beberapa tipe data seperti string, tidak perlu ditambahkan tanda '&'.

Sama seperti printf, fungsi scanf juga bukan bagian dari inti bahasa C, tapi berasal dari library stdio.h. Karena itu kode #include <stdio.h> harus ditulis agar bisa menggunakan perintah scanf.


Contoh Kode Program dengan scanf

Langsung saja kita lihat contoh kode program bahasa C untuk penggunaan perintah scanf:

#include <stdio.h>

int main(void)
{
  int harga;

  printf("Masukkan harga barang: ");
  scanf("%d",&harga);

  printf("\n");
  printf("Harga barang adalah: %d", harga);
  printf("\n");

  return 0;
}

Di awal kode program, saya mendefinisikan 1 buah variabel harga yang diset sebagai int. Artinya, variabel harga hanya bisa diisi dengan angka bulat.

Selanjutnya terdapat baris printf("Masukkan harga barang: "). Ini digunakan untuk menampilkan teks sebagai keterangan agar pengguna menginput sesuatu.

Proses pembacaan data di tangani oleh perintah scanf("%d",&harga). Disini, cursor akan berhenti dan menunggu kita menginput suatu nilai. Nilai ini akan disimpan ke dalam variabel harga. Tanda "%d" adalah sebagai kode format kalau nilai inputan harus berupa integer.

Terakhir, nilai dari variabel harga ini saya tampilkan kembali dengan perintah printf("Harga barang adalah: %d", harga). Berikut contoh hasilnya:

contoh kode program scanf bahasa C

Yang juga harus menjadi catatan, ketika karakter yang diinput bukan angka, bahasa C akan mengkonversi karakter tersebut. Misalnya diinput angka 2500.25 (pecahan), yang akan di ambil hanya angka 2500 saja. Karena variabel harga hanya bisa menampung angka bulat.

Sebagai contoh kedua, saya akan buat kode program untuk menampung 3 inputan sekaligus:

#include <stdio.h>

int main(void)
{
  int harga;
  float nilai_ip;
  char huruf;

  printf("Harga barang: ");
  scanf("%d",&harga);

  printf("Nilai IP: ");
  scanf("%f",&nilai_ip);

  printf("Huruf pertama nama anda: ");
  scanf("%c",&huruf);

  printf("\n");
  printf("harga = %d , nilai_ip = %f dan huruf = %c", 
          harga, nilai_ip, huruf);
  printf("\n");

  return 0;
}

Kode program ini mirip seperti sebelumnya, hanya saja kali ini saya membuat 3 variabel bertipe int, float dan char. Setelah itu terdapat 3 perintah scanf untuk menerima input untuk ketiga variabel ini.

Akan tetapi, jika anda menjalankan kode program diatas, terdapat 1 masalah. Ketika kita menekan tombol enter setelah menginput angka untuk variabel nilai_ip, program langsung berakhir tanpa sempat berhenti untuk menerima input untuk variabel huruf.

contoh kode program scanf bahasa C - masalah dengan input char

Hal ini terjadi karena karakter "Enter" akan dibaca sebagai inputan untuk variabel huruf yang di set sebagai char.

Solusinya, tambahkan 1 spasi di dalam baris scanf("%c",&huruf) menjadi:

scanf(" %c",&huruf);

Trik ini akan mengatasi masalah karakter "Enter" yang langsung terinput ke variabel huruf. Berikut perubahan kode programnya:

#include <stdio.h>

int main(void)
{
  int harga;
  float nilai_ip;
  char huruf;

  printf("Harga barang: ");
  scanf("%d",&harga);

  printf("Nilai IP: ");
  scanf("%f",&nilai_ip);

  printf("Huruf pertama nama anda: ");
  scanf(" %c",&huruf);

  printf("\n");
  printf("harga = %d , nilai_ip = %f dan huruf = %c", 
          harga, nilai_ip, huruf);
  printf("\n");

  return 0;
}

contoh kode program scanf bahasa C - tiga variabel

Sekarang, inputan untuk ketiga variabel sukses di jalankan.


Dalam tutorial ini kita telah membahas cara penggunaan perintah scanf dalam bahasa pemrograman C. Perintah scanf dan printf adalah sarana input / output standar di dalam bahasa C. Kedua perintah ini akan sering kita pakai dalam pembahasan nantinya.

Untuk tutorial selanjutnya kita akan masuk ke bahasan tentang jenis-jenis tipe data di dalam bahasa C.

12 Comments

  1. Aqilaziz
    28 Dec 17
    • Andre
      29 Dec 17
  2. ali mahardika
    17 May 19
  3. ipul
    13 Jun 19
  4. gf
    18 Nov 19
    • gf
      18 Nov 19
    • Andre
      18 Nov 19
  5. Jason W
    25 Aug 22

Add Comment