file input dan output
Operasi File pada bahasa C
· Membuka dan Menutup File
File menurut wikipedia yaitu identitas dari data yang disimpan di dalam berkas sistem yang dapat diakses dan diatur oleh pengguna. Penggunaan dan pengoperasian file pasti selalu dibutuhkan terutama bagi seorang programmer untuk mengolah sebuah data pada file.
Terdapat 3 mode utama pada file yaitu r (read), w (write), dan a (append). Operasi utama pada file diantaranya membaca, menutup, menghapus, dan mengubah (truncate).
Berikut struktur dan cara mendeklarasikan file :
FILE *fp; //nama variabel file fp
fp = fopen("data.txt", w); //membuka file fp mode w
statement;
fclose(fp); //menutup file
|
Mode pada file :
Mode
|
Fungsi
|
r
|
Membaca file ( file harus sudah ada )
|
w
|
Menulis file ( file yang sudah ada akan dihapus )
|
a
|
Membuka file yang sudah ada dan pada prosesnya dilakukan penambahan saat menulis ( jika file belum ada, otomatis akan dibuat )
|
r+
|
Membaca file, tetapi juga memiliki fungsi lain yaitu dapat menulis
|
w+
|
Menulis file tetapi juga dapat membaca (file yang sudah ada akan dihapus)
|
a+
|
Membuka file yang sudah ada dan prosesnya dilakukan penambahan saat menulis dan dapat membaca file
|
Membuat file :
Untuk membuat sebuah file yang kita perlukan hanyalah menggunakan fungsi FILE yang dilanjutkan pointer nama variabel file tersebut, FILE *nama variabel;. contohnya yaitu :
FILE *fp;
Membuka file :
Untuk membuka sebuah file dibutuhkan sebuah fungsi fopen, directory serta nama file dan mode file, nama variabel file = fopen("nama file", "mode file");. Contohnya :
fp = fopen("data.txt", "r");
Menulis data ke file :
Terdapat banyak fungsi untuk menulis sebuah file diantaranya ada fungsi fputs ada fprintf. Untuk menggunakan fputs deklarasinya yaitu fputs (namavariabel,namafile);. Sedangkan untuk menggunakan fprintf deklarasinya yaitu fprintf(namafile, "kontanta char", nama variabel);.
Contohnya :
fputs(data,fp);
fprintf(fp, "%s", data);
Contoh program :
#include <stdio.h>
int main()
{
char data[50];
int i=0;
FILE *fp;
fp=fopen("data.txt", "w");
for(i=0; i<5; i++)
{
printf("Masukkan data ke-%d : ", i+1); fflush(stdin); gets(data);
fprintf(fp, "%s\n", data);
}
fclose(fp);
printf("\n\nData berhasil ditulis");
return 0;
}
|
Membaca data dari file :
Jika kita bisa menulis tentu saja kita juga perlu membaca, sama halnya menulis ada beberapa fungsi untuk membaca diantaranya adalah fgets yang hanya bisa membaca string dan fscanf bisa membaca string maupun bilangan. Untuk mendeklarasikan fgets yaitu fgets(namavariabel, jumlahstring, namafile);, sedangkan untuk fscanf yaitu fscanf(namafile, "konstanta char", &nama variabel);.
Contohnya :
fgets(data, 50, fp);
fscanf(fp,"%s",&data);
Contoh Programnya :
Contoh Programnya :
#include <stdio.h>
int main()
{
char data[50];
int i=1;
FILE *fp;
fp=fopen("data.txt", "r");
while(fgets(data,50,fp)!=NULL) //membaca dan mengulang sampai data habis
{
printf("Data ke-%d : %s", i, data);
i++;
}
fclose(fp);
printf("\n\nData berhasil dibaca");
return 0;
}
|
Menutup file :
Untuk menutup file kita hanya perlu fungsi fclose(namavariabel), contohnya :
fclose(fp);
· Standard File
File Standar adalah perpustakaan sinkronisasi dan enkripsi untuk aplikasi web dan asli. Ini memungkinkan pengembang untuk fokus membangun aplikasi yang menghadap ke pengguna, dan membiarkan sinkronisasi, server, dan enkripsi ujung ke ujung ke perpustakaan ini.
Untuk membangun aplikasi yang berkualitas, sebagian besar pengembang aplikasi saat ini harus mengimplementasikan tidak hanya klien front-end mereka sendiri, tetapi juga arsitektur backend untuk menangani penyimpanan model untuk skema spesifik mereka. Dengan tren yang berkembang dari aplikasi 'eksperimental' dan 'sekali pakai', menjadi tidak praktis untuk membangun infrastruktur server baru untuk setiap aplikasi.
File Standar adalah sistem klien dan server yang dapat digunakan kembali yang memungkinkan Anda untuk menyebarkan server backend "bodoh" yang tidak tahu atau peduli tentang skema data Anda, dan memungkinkan Anda untuk mengenkripsi data di sisi klien dan menyinkronkannya dengan server jarak jauh .
File Standar memanfaatkan kemajuan dalam kinerja dan kapasitas perangkat konsumen untuk mengaktifkan enkripsi ujung ke ujung pada setiap platform. Seseorang dapat membangun segala jenis aplikasi aman dan pribadi dengan server File Standar, seperti aplikasi catatan terenkripsi seperti Catatan Standar, atau segala jenis todo atau aplikasi data pribadi.
Protocol Specification
Version 0.0.3
Walaupun sebagian besar spesifikasi protokol sulit dibaca dan rumit, File Standar bertujuan untuk menjadi sistem sederhana yang dapat dipahami dan diterapkan oleh pengembang mana pun.
Server Implementations
Ruby Implementation
Go Implementation
Client Libraries
SFJS - JavaScript Library
Introduction
Dokumen ini menguraikan spesifikasi untuk komunikasi klien-server dari sistem File Standar. Setiap klien dapat berkomunikasi dengan server File Standar selama ia memahami persyaratan server.
Models
Protokol terdiri dari model di sisi server dan apa yang dikenal sebagai struktur di sisi klien.
Server Models
- User
- Item
Client Structures
- Arbitrary
Model Item memiliki bidang konten. Bidang konten menyimpan objek yang dikodekan JSON yang dapat berupa apa saja yang dibutuhkan klien untuk beroperasi. Dalam model client-server ini, server harus diperlakukan bodoh dan tidak informasi.
Hubungan ditangani oleh klien dan bukan server, yang saat ini klien tidak memiliki masalah penanganan. Hal ini memungkinkan untuk dilakukan perbaikan pada model data pada tingkat klien, dan bukan pada tingkat server yang sulit diubah. Ini juga memungkinkan hubungan dienkripsi.
1. User
User model memiliki sifat-sifat berikut:
name
|
type
|
description
|
email
|
String
|
Email pengguna.
|
password
|
String
|
Kata sandi untuk pengguna ini..
|
pw_cost
|
String
|
Jumlah iterasi yang digunakan untuk KDF.
|
pw_nonce
|
String
|
Dihasilkan oleh klien selama pendaftaran.
|
version
|
String
|
Versi spesifikasi SF yang digunakan saat membuat akun pengguna ini
|
2. Item
Item memiliki sifat-sifat berikut :
name
|
type
|
description
|
uuid
|
String (or uuid for some databases)
|
Pengidentifikasi unik untuk model ini
.
|
content
|
Text
|
Struktur disandikan JSON dari item, dienkripsi
.
|
content_type
|
String
|
Jenis struktur yang terdapat di bidang konten
|
enc_item_key
|
Text
|
Kunci enkripsi terenkripsi secara lokal untuk item ini.
|
deleted
|
Bool
|
Apakah model sudah dihapus.
|
created_at
|
Date
|
Tanggal item ini dibuat.
|
updated_at
|
Date
|
Tanggal item ini diubah.
|
Client Structures
Client Structures disimpan di bidang konten model Item. Struktur klien dapat memiliki properti apa pun yang dipilih klien, serta yang berikut:
name
|
type
|
description
|
appData
|
Dictionary
|
Kamus berbasis domain yang isinya harus dilestarikan antar platform. appData [domain] berisi data yang disimpan klien di item.
|
references
|
Array
|
Array metadata dari Item uuids lain yang terkait dengan model ini dan masing-masing content_type. Lihat contoh di bawah ini.
|
sampel array referensi:
[
{
uuid: xxxx,
content_type:
"Tag"},
{
uuid: xxxxx,
content_type:
"Tag"},
]
· Fungsi Input dan Output
Input adalah sesuatu data yang kita masukan ke dalam program.
Input biasanya diambil dari perangakat 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.
Fungsi Output pada C++
C++ memiliki empat fungsi dasar untuk menampilkan output:
- cout untuk menampilkan teks ke layar;
- cerr untuk menampilkan error;
- clog untuk menampilkan log;
- printf() untuk menampilkan output, fungsi ini dari C;
Kita akan fokus memabahas yang dua saja, yakni cout dan printf().
Soalnya cerr dan clog, cara pakainya sama seperti cout.
Bedanya sih pada konteks penggunaanya, yakni untuk error dan log.
1. Fungsi cout
Fungsi cout adalah fungsi standar pada C++ untuk menampilkan output ke layar.
Berikut ini struktur dasar fungsi cout:
Setelah simbol << kita bisa menuliskan teks yang akan ditampilkan ke layar.
Teks harus diapit dengan tanda petik dan untuk membuat baris baru bisa menggunakan endl atau simbol \n.
Pembuatan baris baru bersifat opsional, terserah kita mau ditambahkan atau tidak.
Contoh:
cout << "Namaku adalah ";
cout << "Petani kode";
Maka outputnya akan ditampilkan dalam satu baris:
Namaku adalah Petani Kode
Sedangkan kalau kita menggunakan endl atau \n.
cout << "Namaku adalah " << endl;
cout << "Petani kode";
Hasilnya akan ditampilkan dalam dua baris:
Namaku adalah
Petani kode
Apapun setelah simbol << akan ditampilkan ke layar. Jika kita ingin menampilkan variabel, kita bisa menulisnya seperti ini:
string nama = "Petani Kode";
cout << "Hello " << nama << endl;
Hasilnya:
Hello Petani Kode
Gampang ‘kan?
Mari kita coba berlatih.
Buatlah program bernama program_output.cpp, kemudian isi dengan kode berikut:
#include <iostream>
using namespace std;
int main(){
cout << "=========== PROGRAM OUTPUT ===========" << endl;
cout << "Progarm ini adalah program untuk\n";
cout << "Menampilkan output ke layar komputer.\n";
cout << "Output sangat penting buat menampilkan\n";
cout << "informasi kepada user.\n";
cout << "======================================" << endl;
cout << endl;
cout << "Program ini dibuat oleh Dian" << endl;
return 0;
}
Coba compile dan jalankan, maka hasilnya:
2. Fungsi printf()
Fungsi
printf()
merupakan fungsi yang aslinya dari bahasa C, tapi bisa juga dipakai pada C++.
Fungsi
printf()
merupakan fungsi untuk menampilkan output ke layar komputer.
Fungsi ini terdapat pada library
<stdio.h>
dan juga <iostream>
.
Berikut ini struktur dasar fungsi
printf()
:
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
program_output_printf.cpp
, lalu isi dengan kode berikut.#include
<iostream>
using
namespace
std;
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
|
Fungsi Input pada C++
Sementara untuk mengambil input, C++ memiliki fungsi
cin
dan bisa juga menggunakan scanf()
dari bahasa C.
1. Fungsi cin
Fungsi
cin
(c input) adalah fungsi untuk mengambil input dari keyboard.
Berikut ini bentuk dasar fungsi
cin
:
Fungsi
cin
membutuhkan variabel untuk menyimpan data yang diinputkan.
Intinya variabel berfungsi untuk meyimpan data saat program berjalan.
Mari kita coba menggunakan fungsi
cin
.
Buatlah program baru bernama
program_input.cpp
, kemudian isi dengan kode berikut:#include
<iostream>
using
namespace
std;
int
main
(){
string nama;
cout
<<
"Tuliskan nama: "
;
cin
>>
nama;
cout
<<
"Hi "
<<
nama;
cout
<<
" elamat datang di club!"
<<
endl;
return
0
;
}
Setelah itu, coba compile dan jalankan.
Maka hasilnya:
2. Fungsi scanf()
Fungsi
scanf()
sebenarnya dari bahasa C, tapi bisa juga digunakan pada C++.
Fungsi
scanf()
adalah fungsi untuk mengambil input dari keyboard. Fungsi ini memiliki format seperti fungsi printf()
.
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
<iostream>
using
namepsace std;
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:
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()
.
Sumber :
https://www.materipelajaran.web.id/2017/05/operasi-file-pada-bahasa-c.html
https://standardfile.org/
https://www.petanikode.com/cpp-input-output/
https://standardfile.org/
https://www.petanikode.com/cpp-input-output/
Komentar
Posting Komentar