Input Data Bahasa C menggunakan Scanf dan Fscanf
Penggunaan scanf()
#include <stdio.h>
int main() {
int num;
printf(
"Masukkan sebuah angka: ");
scanf("%d", &num);
printf(
"Angka yang dimasukkan: %d\n",
num);
return 0;}
- Mudah digunakan.
- Bisa membaca input dari keyboard.
- Rentan terhadap kesalahan pengguna.
Penggunaan fscanf()
#include <stdio.h>
int main() {
FILE *fp;
int num;
fp = fopen("data.txt", "r");
if (fp == NULL)
{printf(
"File tidak dapat dibuka.\n");
return 1;}
fscanf(fp, "%d", &num);
printf(
"Angka dari file: %d\n", num);
fclose(fp);
return 0;}
- Cocok untuk membaca dari file.
- Memisahkan input dari kode sumber.
- Memerlukan penanganan file yang tepat.
- Rentan terhadap kesalahan dalam penanganan file.
Input: “this is the value 100”,
Output: value read is 100
Input : “this is the value 21.2”,
Output : value read is 21.2
// Program bahasa C untuk
// mendemonstrasikan bahwa
// user dapat mengabaikan
// beberapa string dalam
// scanf()
#include <stdio.h>
int main()
{
int a;
scanf("Ini adalah nilai %d", &a);
printf("Nilai inputan yang"
" dibaca : a = %d", a);
return 0;
}
// Input : Ini adalah nilai
// 100
// Output : Nilai inputan yang
// dibaca : a = 100
// Contoh program bahasa C
// untuk mendemonstrasikan
// penggunaan dari *s
#include<stdio.h>
int main()
{
int a;
scanf("%*s %d", &a);
printf("Nilai yang terbaca :"
" a=%d",a);
return 0;
}
// Input: "blablabla 25"
// Output: Nilai yang terbaca
// : 25
Fakta tersebut mungkin terlihat seperti cara yang tidak terlalu berguna, namun untuk memahami kegunaannya, perhatikan fungsi fscanf() berikut ini.
fscanf(): Jika terlalu banyak menggunakan sintak seperti contoh sebelumnya, maka dapat digunakan pendekatan lain dengan menggunakan fscanf().
int fscanf(FILE *ptr, const char *format, ...)
fscanf menbaca dari sebuah file yang ditunjuk oleh FILE pointer (ptr), ketimbang membaca langsung dari input stream.
Perhatikan teks file abc.txt
NAME AGE CITY
abc 12 hyderbad
bef 25 delhi
cce 65 bangalore
Sekarang akan dilakukan read only city field dari teks file sebelumnya, mengacuhkan semua field yang lain.
// Program bahasa C untuk
// mendemonstrasikan fscanf
// dan kegunaannya pada
// program
#include<stdio.h>
int main()
{
FILE* ptr = fopen("abc.txt","r");
if (ptr==NULL)
{
printf("no such file.");
return 0;
}
// Diasumsikan bahwa file
// abc.txt memiliki beberapa
// isi konten sebagai berikut:
// NAME AGE CITY
// abc 12 hyderbad
// bef 25 delhi
// cce 65 bangalore
char* buf[100];
while (fscanf(ptr,"%*s %*s %s ",buf)==1)
printf("%s\n", buf);
return 0;
}
hyderbad
delhi
bangalore
- Menerima Input Pengguna: Baik scanf() maupun fscanf() memungkinkan aplikasi untuk menerima input dari pengguna atau dari file. Ini memungkinkan interaksi yang dinamis antara pengguna dan program, sehingga memungkinkan aplikasi untuk menanggapi input secara real-time.
- Fleksibilitas Format: Keduanya mendukung berbagai format input, termasuk integer, float, string, dan tipe data lainnya. Ini memungkinkan programmer untuk menangani berbagai jenis data dalam aplikasi dengan mudah.
- Pengolahan Data dari Sumber Eksternal: fscanf() khususnya berguna ketika memproses data dari file eksternal, seperti file teks atau file log. Dengan fscanf(), program dapat membaca data dari file dan melakukan operasi pengolahan data yang diperlukan.
- Pemisahan Input dari Kode Sumber: Dengan menggunakan fscanf(), input data dipisahkan dari kode sumber. Ini memungkinkan pengembang untuk memodifikasi atau memperbarui data tanpa harus mengubah kode program utama. Ini memisahkan perubahan data dari perubahan logika aplikasi.
- Pembelajaran dan Pengajaran: Penggunaan scanf() dan fscanf() adalah bagian integral dari belajar bahasa pemrograman C. Memahami cara kerja dan penggunaan kedua fungsi ini membantu dalam pemahaman dasar pemrograman dan konsep input/output.
- Kemudahan Penggunaan: Meskipun terkadang rawan kesalahan, scanf() dan fscanf() relatif mudah digunakan untuk membaca input. scanf() dan fscanf() tidak memerlukan perpustakaan eksternal atau konfigurasi tambahan, sehingga bisa digunakan dengan cepat dan mudah.
- Mendukung Pengembangan Aplikasi Multiformat: Dengan kemampuan untuk membaca berbagai format input, baik dari pengguna maupun dari file, scanf() dan fscanf() mendukung pengembangan aplikasi yang dapat menangani berbagai jenis data. Ini berguna dalam pengembangan perangkat lunak yang perlu berinteraksi dengan banyak jenis input.
- Rentan terhadap Kesalahan Pengguna: Salah satu kelemahan utama dari kedua fungsi ini adalah keduanya rentan terhadap kesalahan pengguna. Misalnya, jika pengguna memasukkan tipe data yang tidak sesuai dengan format yang diharapkan, ini dapat menyebabkan masalah pada program, seperti buffer overflow atau undefined behavior.
- Kesulitan dalam Menangani Masukan yang Tidak Terduga: Kedua fungsi ini sulit untuk menangani masukan yang tidak terduga atau tidak valid. Program harus memvalidasi input dengan hati-hati untuk menghindari masalah yang disebabkan oleh masukan yang tidak sesuai.
- Tidak Ada Perlindungan Otomatis terhadap Overflows: Kedua fungsi ini tidak memberikan perlindungan otomatis terhadap buffer overflows. Jika pengguna memasukkan data yang melebihi kapasitas variabel yang ditentukan, ini dapat menyebabkan masalah pada program, seperti segmentation fault.
- Keterbatasan dalam Pengolahan File: Meskipun fscanf() berguna untuk membaca data dari file, ada keterbatasan dalam pengolahan file yang lebih kompleks. Misalnya, jika struktur data dalam file kompleks, penggunaan fscanf() mungkin tidak cukup fleksibel atau efisien.
- Kesulitan dalam Memanipulasi Format Input: Format input dalam kedua fungsi ini terkadang sulit untuk dimanipulasi secara fleksibel. Misalnya, mengabaikan karakter newline (\n) dalam input pengguna atau mengabaikan spasi ekstra dalam file teks bisa menjadi tantangan.
- Kinerja yang Buruk pada Pengolahan String: Penggunaan scanf() untuk membaca string dari input pengguna dapat mengakibatkan kinerja yang buruk dalam beberapa kasus, terutama jika string yang dimasukkan sangat panjang.
- Tidak Ada Perlindungan terhadap Kegagalan Baca: Kedua fungsi ini tidak memberikan perlindungan otomatis terhadap kegagalan baca. Misalnya, jika file yang diharapkan tidak tersedia atau tidak dapat dibuka, ini dapat menyebabkan aplikasi menjadi tidak responsif atau menghasilkan kesalahan yang tidak diharapkan.
- Keterbatasan dalam Pengujian dan Debugging: Karena kedua fungsi ini menerima input dari pengguna atau dari file eksternal, pengujian dan debugging program yang menggunakan scanf() dan fscanf() dapat menjadi lebih sulit. Pengembang harus memperhitungkan berbagai kemungkinan masukan dan memastikan bahwa program dapat menangani masukan dengan benar dalam semua skenario.
Kesimpulan
- 5 Jenis Utama Operator Aritmatika Bahasa C dan C++
- 6 Jenis Utama Operator Relasi dan 3 Jenis Operator Logika pada Bahasa C
- 6 Jenis Utama Operator Bitwise pada Bahasa C, Beserta 3 Fakta Menariknya
- 5 Fakta tentang Operator Precedence dan Asosiatifitas pada Bahasa C
- Penjelasan Singkat, Perintah Evaluasi dari Operand dalam Bahasa C
- 3 Fungsi Utama Tanda Koma pada Bahasa C dan C++
- 2 Fungsi Utama Operator Sizeof pada Bahasa C
5 komentar untuk "Input Data Bahasa C menggunakan Scanf dan Fscanf"
Hubungi admin melalui Wa : +62-896-2414-6106
Respon komentar 7 x 24 jam, mohon bersabar jika komentar tidak langsung dipublikasi atau mendapatkan balasan secara langsung.
Bantu admin meningkatkan kualitas blog dengan melaporkan berbagai permasalahan seperti typo, link bermasalah, dan lain sebagainya melalui kolom komentar.
- Ikatlah Ilmu dengan Memostingkannya -
- Big things start from small things -
Dalam bahasa pemrograman C, fungsi scanf() adalah salah satu fungsi yang secara umum digunakan untuk mengambil inputan dari pengguna atau user. Fungsi scanf() membaca nilai inputan yang telah diformat dari input standar seperti keyboard.
BalasHapusDalam bahasa pemrograman C, scanf adalah fungsi yang digunakan untuk membaca data yang telah diformat dari stdin (yaitu, suatu stream dari input standar, yang biasanya berupa inputan keyboard) dan kemudian menuliskan hasilnya ke dalam argumen yang telah diberikan.
BalasHapusfscanf() adalah fungsi yang digunakan untuk membaca sekumpulan karakter dari file dalam bahasa pemrograman C. Fungsi tersebut membaca sebuah kata dari file dan mengembalikan EOF di bagian akhir file.
BalasHapusApa yang dilakukan fungsi fscanf() dalam bahasa pemrograman C?
BalasHapusFungsi fscanf() digunakan untuk membaca nilai inputan yang diformat dari file. Fungsi tersebut bekerja seperti halnya fungsi scanf() tetapi bukannya membaca data dari input standar, melainkan fungsi tersebut membaca data dari file secara langsung.
Hapus