author Ahmad Muhardian

Belajar Pemrograman C #04: Mengenal Fungsi Input dan Output pada C


Tutorial Belajar Pemrograman C untuk Pemula

Pada dasarnya, program komputer hanya terdiri dari tiga bagian:

Struktur dasar program komputer

Input adalah sesuatu data yang kita masukan ke dalam program.

Input biasanya diambil dari perangkat inputan seperti keyboard, mouse, kamera, microphone, dll.

Proses adalah langkah-langkah yang harus dilakukan program untuk menghasilkan output.

Output adalah informasi yang dihasilkan setelah dilakukan proses. Output biasanya ditampilkan ke layar komputer.

Pada bahasa pemrograman C, terdapat beberapa fungsi dasar untuk menampilkan output dan mengambil input.

Apa saja itu?

Mari kita bahas…

Fungsi Output pada C

Ada dua macam fungsi yang bisa digunakan untuk menampilkan output:

1. Fungsi printf()

Fungsi printf() merupakan fungsi untuk menampilkan output ke layar komputer. Fungsi ini terdapat pada library stdio.h.

Oleh sebab itu, ketika kita diharuskan untuk menuliskan #include <stdio.h> di bagian atas program agar bisa menggunakan fungsi ini.

Berikut ini struktur dasar fungsi printf():

Fungsi printf di c

Perhatikan:

"format" adalah sebuah teks (string) untuk ditampilkan. Lalu tanda ... akan berisi sebuah variabel atau nilai untuk ditampilkan berdasarkan format yang diberikan pada teks "format".

Mari kita lihat contohnya:

Buatlah sebuah program C bernama output.c, lalu isi dengan kode berikut.

#include <stdio.h>

int main(){
    printf("Hello, ini adalah teks output\n");
    printf("Nama saya %s\n", "Dian");
    printf("Usia saya %d\n", 20);
    return 0;
}

Hasilnya:

Output program C

Ada beberapa hal yang perlu di perhatikan…

Pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks. Simbol-simbol ini disebut format specifier.

Mari kita bahas arti dari simbol tersebut:

  • %s adalah simbol untuk menampilkan nilai string;
  • %d adalah simbol untuk menampilkan nilai angka atau bilangan desimal;
  • \n adalah simbol untuk membuat baris baru.

Selain tiga simbol tersebut, masih banyak lagi simbol yang lain.

SimbolArti atau Fungsi
%cuntuk menampilkan karakter
%suntuk menampilkan teks (string)
%d, %iuntuk menampilkan bilangan desimal
%funtuk menampilkan bilangan pecahan
%ountuk menampilkan bilangan oktal
%xuntuk menampilkan bilangan heksadesimal
\tuntuk membuat tabs

2. Fungsi puts()

Fungsi puts() adalah fungsi untuk menampilkan output. Fungsi ini juga terdapat pada library stdio.h.

Perbedaannya dengan printf(), fungsi puts() tidak memerlukan format.

Fungsi puts() akan selalu membuat baris baru. Jadi tidak perlu menggunakan simbol \n seperti pada printf().

Fungsi Puts pada C

Contoh program: fungsi_puts.c

#include <stdio.h>

int main(){
    puts("Hello World");
    puts("Nama Saya Dian");
    
    return 0;
}

Hasilnya:

Program C dengan fungsi puts

Selain fungsi puts(), terdapat juga fungsi putchar() yang khusus untuk menampilkan satu karakter saja.

Contoh:

#include <stdio.h>

int main(){
    putchar('A');

    return 0;
}

Maka akan menghasilkan output:

A

Lalu pertanyaannya:

Fungsi manakah yang harus saya pakai?

Jawabannya, tergantung…

Tergantung dari teks apa yang akan ditampilkan.

Apabila di sana kita akan menampilkan teks dan nilai atau variabel, sebaiknya menggunakan printf() karena bisa membuat format.

Tapi kalau teks yang biasa saja, bisa pakai puts().

Fungsi Input pada C

Pada bahasa C, terdapat beberapa fungsi untuk mengambil input.

Oh iya, input yang akan kita bahas di sini adalah input dari keyboard.

Input juga bisa dari file, kamera, mikrofon, dan sebagainya.

Tapi kita fokus dulu bahas yang paling mudah…

Ini adalah fungsi untuk mengambil input dari keyboard:

1. Fungsi scanf()

Fungsi scanf() adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki format seperti fungsi printf().

Fungsi scanf di bahasa c

Format yang diberikan tergantung dari jenis tipe data apa yang ingin kita ambil.

Misalnya mau mengambil angka, maka kita bisa pakai %d atau %i.

Mari kita lihat contohnya:

#include <stdio.h>

int main () {
    // membuat variabel
    char name[20], web_address[30];

    printf("Nama: ");
    scanf("%s", &name);

    printf("Alamat web: ");
    scanf("%s", &web_address);

    printf("\n------------------------------\n");
    printf("Nama yang diinputkan: %s\n", name);
    printf("Alamat Web yang diinputkan: %s\n", web_address);
   
    return 0;
}

Hasilnya:

Program input dengan scanf di C

Tapi saat kita menginputkan teks yang mengandung spasi, hasilnya akan dipecah menjadi dua seperti ini:

Input scanf mengandung spasi

Untuk mengatasi masalah ini, kita bisa ubah format yang digunakan pada scanf() menjadi seperti ini:

printf("Nama: ");
scanf("%[^\n]s", name);

Maka fungsi scanf() akan menerima spasi.

Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum nama variabel.

Contoh:

#include <stdio.h>

void main(){

    int a, b, c;

    printf("Inputkan nilai a: ");
    scanf("%i", &a);

    printf("Inputkan nilai b: ");
    scanf("%i", &b);

    c = a + b;

    printf("Hasil a + b: %i", c);

}

Simbol & berfungsi untuk mengambil alamat memori dari sebuah variabel.

Fungsi scanf() membutuhkan tempat untuk menyimpan nilai yang akan diinputkan.

Karena itu kita memberikan simbol & di depan nama variabel untuk menentukan alamat memori yang akan digunakan oleh scanf().

Nanti ini akan kita bahas lagi pada Pointer.

2. Fungsi gets()

Fungsi gets() adalah fungsi untuk mengambil input dalam satu baris. Fungsi gets() tidak memerlukan format seperti scanf().

Fungsi gets di bahasa c

Contoh:

#include <stdio.h>

int main () {
   char name[50], web_address[50];

   printf("Nama: ");
   gets(name);
   
   printf("Alamat web: ");
   gets(web_address);

   printf("You entered: %s\n", name);
   printf("Web address: %s\n", web_address);

   return(0);
}

Hasilnya:

Program input dengan gets di C

Saat melakukan kompilasi, kita akan mendapatkan peringatan:

warning: the `gets' function is dangerous and should not be used.

Ini bukan error, melainkan hanya peringatan saja agar tidak menggunakan fungsi gets().

Mengapa?

Karena dapat menyebabkan masalah buffer overflow pada program. 1

Lalu bagaimana solusinya?

Kita bisa menggunakan:

3. Fungsi fgets()

Fungsi fgets() lebih aman dibandingkan gets(), karena kita bisa menentukan ukuran buffer dan sumber inputan.

Fungsi fgets di bahasa c

Ukuran buffer adalah batas ukuran panjang string yang diinputkan. Lalu stdin adalah sumber inputan dari keyboard.

Kita juga bisa mengambil input dari file dengan fgets() dengan memasukkan pointer FILE pada stdin.

Untuk lebih jelasnya, mari kita lihat contohnya:

#include <stdio.h>

int main(){
    char name[50], email[50];
    
    printf("Nama: ");
    fgets(name, sizeof(name), stdin);
    
    printf("Email: ");
    fgets(email, sizeof(email), stdin);
   
    printf("\n-------------------------\n");
    printf("Nama anda: %s", name);
    printf("Alamat email: %s", email);
    
    return 0;
}

Hasilnya:

Contoh program dengan fungsi fgets

Pada contoh program di atas, kita menggunakan fungsi sizeof() untuk mengambil ukuran buffer dari variabel.

Ukuran ini akan menjadi batas maksimum dari inputan.

Apa Selanjutnya?

Kita sudah mempelajari fungsi input dan output pada C. Ada banyak pilihan fungsi untuk melakukan input dan output.

Gunakanlah fungsi sesuai kebutuhan.

Oh iya, untuk fungsi gets() tidak disarankan karena dapat menimbulkan masalah buffer overflow. Sebaiknya gunakan fgets() saja.

Selanjutnya silakan pelajari tentang:

Selamat belajar…