Semester 2 kali ini aku nemuin bahasa pemrograman yang baru selain bahasa pascal yaitu bahasa C/C++, awalnya aku kebingungan dengan bahasa ini karena terdengar asing dan berbeda jauh dengan bahasa pascal yang hampir mirip ma bahasa inggris-lah.. di artikel ini akan sedikit dibahas mengenai fungsi input dalam bahasa C yang mudah-mudahan bermanfaat bagi anak informatika yang lagi kebingungan kayak aku dulu....
Fungsi input adalah fungsi yang digunakan untuk meminta masukan dari user.
Fungsi input ini akan membuat program kita menjadi interaktif. Berikut akan
coba kujelaskan fungsi-fungsi input dalam bahasa C yang sering digunakan.
1. getche()
Singkatan dari get character and echo. FUngsi ini meminta inputan satu buah
karakter dari keyboard tanpa diakhiri dengan tombol enter dan karakter yang
telah diketik oleh user akan ditampilkan di layar.
2. getch()
Fungsi ini sama halnya dengan getche. Hanya saja karakter yang diinputkan user
tidak akan ditampilkan di layar.
3. getchar()
Singkatan dari get character. Fungsinya sama dengan fungsi getche(), namun jika
kita menggunakan fungsi ini user harus mengakhiri inputan dengan tombol enter.
4. scanf()
Fungsi ini dapat menginput berbagai macam jenis data. Penggunaanya mirip dengan
printf(), yaitu harus menggunakan conversion specifier. Seperti halnya printf,
conversion specifier harus disesuaikan dengan jenis data yang ada pada
arguments. Dalam penggunaannya, scanf() hampir sama dengan printf(). Lalu
bedanya apa? Bedanya, scanf() digunakan menginput data sedangkan printf() digunakan
untuk mengoutput data. Haha, jelaslah. Masih ada perbedaan lainnya kok, yaitu
dalam penulisan arguments. Dalam scanf() kita harus menambahkan simbol '&'
sebelum variabel. Biar jelas liat contoh aja...
Penggunaan printf():
printf("%d", var);
Itu maksudnya kita akan menampilkan informasi nilai dari variabel yang bernama
var. Informasi tersebut berupa bilangan bulat (bisa dilihat dari conversion
specifier-nya).
Penggunaan scanf():
scanf("%d", &var);
Itu maksudnya kita akan menginput bilangan bulat yang nilainya akan dimasukkan
ke dalam alamat memori dari variabel var. Simbol '&' dalam bahasa C adalah
operator yang digunakan sebagai penunjuk alamat memori (coba baca artikelku
sebelumnya tentang operator dalam bahasa C). Ada sedikit perbedaan penulisan
syntax scanf() ini ketika kita akan menginput data bertipe string (kumpulan
karakter). Untuk menginput data bertipe string kita tidak perlu mencantumkan
simbol '&' lagi. COntoh:
scanf("%s", str);
Lihat! Di atas aku tidak menggunakan simbol '&' sebelum menuliskan variabel
str. Program tentu akan tetap berjalan dengan normal. Kelemahan dalam
penginputan string menggunakan scanf() adalah ketika user memasukkan string
yang mengandung spasi. Maka string akan terpotong di bagian spasi tersebut.
5. gets()
Fungsi ini adalah fungsi yang sempurna dalam penginputan string. Fungsi ini
seperti menambal kekurangan dari scanf() ketika menginput string. Tentu saja,
fungsi ini hanya bisa menginput string. Dengan fungsi ini kita bisa menambahkan
spasi dalam string inputan juga.
gets(str);
Jadi, jika user menginputkan "aku makan", maka yang tersimpan dalam
variabel str adalah "aku makan" juga. Tanpa terpotong gara-gara
spasi. Kelemahan fungsi ini
adalah ketika kita menggunakannya lebih dari sekali. Maka biasanya fungsi
gets() yang kedua atau yang ketiga tidak akan dieksekusi oleh program. Artinya
fungsi gets() yang kedua atau yang ketiga menjadi tidak berguna. Memang
kesalahan ini tidak selalu terjadi. Tapi aku cukup sering menemukan kesalahan
ini ketika aku menggunakan fungsi gets. Mengapa kesalahan seperti ini dapat
terjadi? Ini terjadi karena ketika user menginput pada fungsi gets() yang
pertama, buffer input akan terisi penuh. Karena buffer input ini penuh, maka
fungsi gets() yang kedua seakan-akan sudah diisi oleh user. Lalu bagaimana
caranya mengosongkan buffer input? Cara mengosongkannya adalah menggunakan
fungsi fflush(stdin).
gets(str1);
fflush(stdin);
gets(str2);
fflush(stdin);
Dengan begini buffer input akan selalu kosong setelah user melakukan inputan.
semester 3 dapet bahasa pemrograman apa lagi yaaa????
harus study hard nih biar IP nya ga nurun....
hhhee