Rabu, 29 Mei 2013

Input (scanf) Character dan String pada Bahasa Pemrograman C

Artikel PintarCoding.com kali ini akan membahas tentang cara menggunakan scanf pada tipe data karakter dan string. Agak sedikit berbeda dengan artikel-artikel sebelumnya pada artikel kali ini kita akan coba membuat suatu sourcecode yang berisi kuis pilihan ganda untuk penerapan character dan jawaban yang berupa keterangan untuk penerapan string. Yuks mari kita belajar sama-sama soal input data dengan menggunakan variable character dan string.



Contoh sourcecode sederhana tentang input variable string dan character, tidak jauh berbeda dengan cara print variable yang pernah kita pelajari sebelum-sebelumnya, ya dengan menggunakan %s dan %c untuk identifier pada scanf. Berikut contoh sourcecode untuk memasukan data karakter pada bahasa pemrograman C:
#include <stdio.h>

int main() {
    char data;

    printf("Masukan 1 Karakter :");
    scanf("%c", &data);
    printf("\nKarakter yang anda masukan adalah: %c", data);
    
    return 0;
}
Bagaimana, mudahkan input data dengan tipe data karakter???... :) coba liat untuk tipe data string berikut ini, untuk sementara yang bisa diterima hanya untuk input 1 kata saja jika ada pemisah spasi maka data yang akan terambil hanya kata pertama saja, karena spasi dipergunakan untuk hal lain dalam bahasa pemrograman C:
#include <stdio.h>

int main() {
    char data[100] = "";
    
    printf("Masukan 1 Kata (tanpa spasi):");
    scanf("%s", data);
    printf("\nKalimat yang anda masukan adalah: '%s'\n", data);
    
    return 0;
}
Perhatikan untuk penulisan variable yang terdapat pada scanf, berbeda halnya dengan tipe-tipe data yang lain, pada tipe data string tidak menggunakan tanda "&" pada awal variable, penjelasan secara teknisnya saya kurang begitu paham, mungkin ada yang bisa membantu???... :)

Oke mari kita terapkan pada aplikasi survey sederhana yang membutuhkan data nama dan 1 soal yang disurvey, berikut sourcecodenya.
#include <stdio.h>
#include <string.h>

int main() {
    char nama[100] = "";
    char pilihan;
    char jawaban[100] = "";
    
    printf("1. Apakah Tanggapan Anda Tentang Bahasa Pemrograman C:");
    printf("\n   a) Bagus");
    printf("\n   b) Lucu");
    printf("\n   c) Menyenangkan");
    printf("\n   d) Bagus, Lucu dan Menyenangkan :)");

    printf("\n\nMasukan Nama Depan (tanpa spasi) <spasi> jawaban anda:");
    scanf("%s ", nama);
    scanf("%c", &pilihan);
    
    switch (pilihan) {
        case 'a':
            strcpy(jawaban, "Bagus");
            break;
        case 'b':
            strcpy(jawaban, "Lucu");
            break;
        case 'c':
            strcpy(jawaban, "Menyenangkan");
            break;
        case 'd':
            strcpy(jawaban, "Bagus, Lucu dan Menyenangkan :)");
            break;
        default:
            strcpy(jawaban, "Jawaban yang anda pilih tidak ada");
            break;
    }

    
    printf("\n-------\n%s Memilih: '%s'\n", nama, jawaban);
    
    return 0;
}
Berikut contoh tampilan dari sourcecode diatas:
1. Apakah Tanggapan Anda Tentang Bahasa Pemrograman C:
   a) Bagus
   b) Lucu
   c) Menyenangkan
   d) Bagus, Lucu dan Menyenangkan :)

Masukan Nama Depan (tanpa spasi) <spasi> jawaban anda:dio a

-------
dio Memilih: 'Bagus'
Ada beberapa hal yang belum saya pelajari lebih dalam dan jika ada masukan-masukan yang lebih baik mohon dituliskan pada komentar dibawah. Contohnya pada sourcecode diatas tidak bisa di input satu per satu, antara lain, melakukan input pertanyaan nama kemudian setelah dienter baru akan muncul soal dari survey baru kemudian muncul baris untuk melakukan input data lagi.

Saya rasa sekian dulu untuk artikel kali ini, kita ketemu lagi minggu depan dengan pembahasan baru dan menarik tentunya... :) Semoga bisa bermanfaat bagi kita semua. Terima Kasih.

10 komentar:

  1. strcopy itu fungsinya apa ya? :)

    BalasHapus
    Balasan
    1. halo clara...
      strcopy itu buat menyalin data yang berbentuk string ke dalam variable... setauku sih gitu... karna untuk bahasa pemrograman C gk bisa langsung dibuat misal jawaban = "Bagus"... :)

      Thanks...

      Hapus
    2. artikel sebelumnya uda sempat kita bahas sih : http://www.pintarcoding.com/2013/04/manipulasi-data-string-dan-operator.html

      Hapus
  2. saya mau nanya tapi kodingan java :)
    inputnya tipe String, tapi permintaan untuk input akan looping selama dalam inputan ada spasi

    itu gimana kodingnya ya?
    makasih banyak sebelumnya

    BalasHapus
  3. gan mau nanya , kenapa agan pakai case kenapa enggak pakai if atau else if gan
    mhon penjelasannya ??

    mhon penjelasannya

    BalasHapus
    Balasan
    1. saya mau nanya lagi 1 gan kenapa harus menggunakan strcpy kenapa tidak menggunakan printf

      Hapus
    2. karena si admin ingin mengganti nilai yang ada dalam variabel jawaban

      Hapus
  4. kk mau nanya..kalo mau mencari kata dalam sebuah kalimat pake string , bahasa c gimana ya kk?

    BalasHapus
  5. kak kalo biar spasi bisa terbaca gimana?

    BalasHapus
    Balasan
    1. numpang bantu jawab,

      pakai gets(), gampangnya coba kamu ganti scanf("%s ", nama) diatas menjadi gets(nama)

      #CMIIW :)

      Hapus