File Input Dan Output Pada Pemrograman Bahasa C
NAMA : ALFAT SUGIARTO
KELAS : 1ID07
NPM : 30419462
MAPEL : DASAR KOMPUTER DAN PEMROGRAMAN 2A
DOSEN : KURNIAWAN B.PRIANTO, S.KOM.SH.MM
KELAS : 1ID07
NPM : 30419462
MAPEL : DASAR KOMPUTER DAN PEMROGRAMAN 2A
DOSEN : KURNIAWAN B.PRIANTO, S.KOM.SH.MM
- FILE INPUT DAN OUTPUT
Sebuah file yang merupakan urutan byte pada disk mana sekelompok data terkait disimpan. File dibuat untuk penyimpanan data permanen. Ini adalah struktur yang sudah jadi.Dalam bahasa C, kami menggunakan pointer struktur tipe file untuk mendeklarasikan file.
FILE *fp;
C menyediakan sejumlah fungsi yang membantu untuk melakukan operasi file dasar. Berikut adalah fungsinya,Fungsi | deskripsi |
---|---|
fopen () | buat file baru atau buka file yang sudah ada |
fclose () | menutup file |
getc () | membaca karakter dari file |
putc () | menulis karakter ke file |
fscanf () | membaca sekumpulan data dari suatu file |
fprintf () | menulis satu set data ke file |
getw () | membaca bilangan bulat dari file |
putw () | menulis bilangan bulat ke file |
fseek () | atur posisi ke titik keinginan |
ftell () | memberikan posisi saat ini dalam file |
rewind () | atur posisi ke titik awal |
Membuka File atau Membuat File
The fopen()Fungsi ini digunakan untuk membuat file baru atau membuka file yang ada.
Sintaks Umum:
*fp = FILE *fopen(const char *filename, const char *mode);
Di sini, *fpadalah pointer FILE ( FILE *fp), yang akan menyimpan referensi ke file yang dibuka (atau dibuat).
nama file adalah nama file yang akan dibuka dan mode menentukan tujuan membuka file. Mode dapat dari tipe berikut,
mode | deskripsi |
---|---|
r | membuka file teks dalam mode membaca |
w | membuka atau membuat file teks dalam mode penulisan. |
Sebuah | membuka file teks dalam mode tambahkan |
r + | membuka file teks dalam mode membaca dan menulis |
w + | membuka file teks dalam mode membaca dan menulis |
a + | membuka file teks dalam mode membaca dan menulis |
rb | membuka file biner dalam mode membaca |
wb | membuka atau membuat file biner dalam mode penulisan |
ab | membuka file biner dalam mode append |
rb + | membuka file biner dalam mode membaca dan menulis |
wb + | membuka file biner dalam mode membaca dan menulis |
ab + | membuka file biner dalam mode membaca dan menulis |
Menutup File
The fclose()Fungsi ini digunakan untuk menutup file yang sudah dibuka.Sintaks Umum:
int fclose( FILE *fp);
Di sini fclose()fungsi menutup file dan mengembalikan nol jika berhasil, atau EOF jika ada kesalahan dalam menutup file. EOF ini adalah konstanta yang didefinisikan dalam file header stdio.h .
Operasi Input / Output pada File
Pada tabel di atas kita telah membahas tentang berbagai fungsi I / O file untuk melakukan membaca dan menulis pada file. getc()dan putc()merupakan fungsi paling sederhana yang dapat digunakan untuk membaca dan menulis karakter individu ke file.#include<stdio.h>
int main()
{
FILE *fp;
char ch;
fp = fopen("one.txt", "w");
printf("Enter data...");
while( (ch = getchar()) != EOF) {
putc(ch, fp);
}
fclose(fp);
fp = fopen("one.txt", "r");
while( (ch = getc(fp)! = EOF)
printf("%c",ch);
// closing the file pointer
fclose(fp);
return 0;
}
Membaca dan Menulis ke File menggunakan fprintf()danfscanf()
#include<stdio.h>
struct emp
{
char name[10];
int age;
};
void main()
{
struct emp e;
FILE *p,*q;
p = fopen("one.txt", "a");
q = fopen("one.txt", "r");
printf("Enter Name and Age:");
scanf("%s %d", e.name, &e.age);
fprintf(p,"%s %d", e.name, e.age);
fclose(p);
do
{
fscanf(q,"%s %d", e.name, e.age);
printf("%s %d", e.name, e.age);
}
while(!feof(q));
}
Dalam program ini, kami telah membuat dua pointer FILE dan keduanya merujuk ke file yang sama tetapi dalam mode yang berbeda.
fprintf()fungsi langsung menulis ke dalam file, sambil fscanf()membaca dari file, yang kemudian dapat dicetak pada konsol menggunakan printf()fungsi standar .
Perbedaan antara Mode Tambah dan Tulis
Mode tulis (w) dan mode Tambah (a), saat membuka file hampir sama. Keduanya digunakan untuk menulis dalam file. Dalam kedua mode, file baru dibuat jika belum ada.
Satu-satunya perbedaan yang mereka miliki adalah, ketika Anda membuka file dalam mode tulis , file tersebut diatur ulang, yang mengakibatkan penghapusan semua data yang sudah ada dalam file. Saat dalam mode tambahkan ini tidak akan terjadi. Mode tambahkan digunakan untuk menambahkan atau menambahkan data ke data file yang ada (jika ada). Oleh karena itu, ketika Anda membuka file dalam mode Tambah (a), kursor diposisikan di akhir data saat ini dalam file.
Membaca dan Menulis dalam File Biner
File Biner mirip dengan file teks, tetapi hanya berisi data numerik besar. Mode Pembukaan disebutkan dalam tabel untuk mode pembukaan di atas.
fread()dan fwrite()fungsi yang digunakan untuk membaca dan menulis adalah file biner.
fwrite(data-element-to-be-written, size_of_elements, number_of_elements, pointer-to-file);
fread()juga digunakan dengan cara yang sama, dengan argumen yang sama seperti fwrite()fungsi. Disebutkan di bawah ini adalah contoh sederhana dari penulisan ke dalam file biner
const char *mytext = "The quick brown fox jumps over the lazy dog";
FILE *bfp= fopen("test.txt", "wb");
if (bfp)
{
fwrite(mytext, sizeof(char), strlen(mytext), bfp);
fclose(bfp);
}
fseek(), ftell()dan rewind()fungsi
- fseek(): Digunakan untuk memindahkan kontrol baca ke posisi berbeda menggunakan fungsi fseek.
- ftell(): Ini memberitahu lokasi byte posisi kursor saat ini di file pointer.
- rewind(): Ini memindahkan kontrol ke awal file.
-
STANDARD FILE
Objek yang berisi informasi untuk mengontrol aliranJenis objek yang mengidentifikasi aliran dan berisi informasi yang diperlukan untuk mengendalikannya, termasuk pointer ke buffernya, indikator posisinya dan semua indikator statusnya.Objek FILE biasanya dibuat oleh panggilan ke fopen atau tmpfile , yang keduanya mengembalikan pointer ke salah satu objek ini.
Konten objek FILE tidak dimaksudkan untuk diakses dari luar fungsi header <cstdio> dan <cwchar> ; Bahkan, program portabel hanya akan menggunakannya dalam bentuk pointer untuk mengidentifikasi aliran, karena untuk beberapa implementasi, bahkan nilai dari pointer itu sendiri dapat menjadi signifikan untuk mengidentifikasi aliran (yaitu, pointer ke salinan FILEobjek dapat diartikan berbeda dari pointer ke aslinya).
Alokasi memorinya dikelola secara otomatis: dialokasikan oleh fopen atau tmpfile , dan merupakan tanggung jawab perpustakaan untuk membebaskan sumber daya begitu aliran ditutup menggunakan fclose atau program berakhir secara normal.
Pada penyertaan file header <cstdio> , tiga objek jenis ini secara otomatis dibuat, dan pointer ke mereka dinyatakan: stdin , stdout dan stderr , masing-masing terkait dengan aliran input standar, aliran output standar, dan aliran kesalahan standar
|
|
- FUNGSI INPUT DAN OUTPUT
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():
"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:
Ada beberapa hal yang perlu di perhatikan…
Pada fungsi printf() kita menggunakan simbol %s, %d, dan \n untuk format teks.
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.
Simbol | Arti atau Fungsi |
---|---|
%c | untuk menampilkan karakter |
%s | untuk menampilkan teks (string) |
%d , %i | untuk menampilkan bilangan desimal |
%f | untuk menampilkan bilangan pecahan |
%o | untuk menampilkan bilangan oktal |
%x | untuk menampilkan bilangan heksadesimal |
\t | untuk membuat tabs |
2. Fungsi puts()
Fungsi puts() adalah fungsi untuk menampilkan output. Fungsi ini juga terdapat pada library stdio.h.Perbedaanya dengan printf(), fungsi puts() tidak memerlukan format.
Fungsi puts() akan selalu membuat baris baru. Jadi tidak perlu menggunakan simbol \n seperti pada printf().
#include <stdio.h>
int main(){
puts("Hello World");
puts("Nama Saya Dian");
return 0;
}
Hasilnya:
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 unutk 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().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:
Tapi saat kita menginputkan teks yang mengandung spasi, hasilnya akan dipecah menjadi dua seperti ini:
printf("Nama: ");
scanf("%[^\n]s", name);
Maka fungsi
Dalam menggunakan scanf(), kita dianjurkan menggunakan simbol & sebelum nama variabel.scanf()
akan menerima spasi.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);
}
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. Fugnsi gets() tidak memerlukan format seperti scanf().
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:
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:
Fungsi fgets() lebih aman dibandingkan gets(), karena kita bisa menentukan ukuran buffer dan sumber inputan.
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.
Kita juga bisa mengambil input dari file dengan fgets() dengan memasukan 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:
Pada contoh program di atas, kita menggunakan fungsi sizeof() untuk mengambil ukuran buffer dari variabel.
Ukuran ini akan menjadi batas maksimum dari inputan.
DAFTAR PUSTAKA:
https://www.studytonight.com/c/file-input-output.php
https://www.petanikode.com/c-input-output/
http://www.cplusplus.com/reference/cstdio/FILE/
Komentar
Posting Komentar