File adalah kumpulan record-record yang sejenis. Sejenis yang dimaksudkan dapat juga disebut satu kelompok dalam contoh ini kelompok data Mahasiswa. Lihat table mahasiswa dibawah ini. Record adalah kumpulan dari field-field. Sedangkan field adalah kumpulan dari character. Satu character sama dengan satu simbol. Kumpulan dari beberapa file yang terkait secara logis disebut Database. Pengait antar file-file tersebut disebut primary key yaitu sebuah field yang memiliki nilai unique. Proses untuk menciptakan file didalam Database Concept disebut Normalization. File dalam programming disebut juga table.
Tabel Mahasisiwa dibawah ini terdiri dari field: NoBP, Nama, Alamat, dan Usia. Setelah data diinput terlihat ada empat record data mahasiswa. Berdasarkan itu pada materi kuliah kali ini akan dicreate class atau structure

Mari kita pahamkan masing-masing terminologi dari contoh table diatas akan dijelaskan satu per satu:
Perhatikan baris berwarna kuning, data-data: 07-401, Siraj Syafiq, Jl. Sutomo No. 1 Padang, 19 adalah record Siraj Syafiq. Selain record Siraj Syafiq masih ada record Mhd Rohiid L, Qathrunnada Syfa. Ketiga record diatas (dan akan terus bertambah ) kemudian akan membentuk file yang disebut file Mahasiswa.
Perhatikan kolom berwarna hijau berisi hanya data nama: Indah, Rahmad K, Siraj, dan Mutiara Rizky disebut field. Jada semuanya 4 field yaitu field: Nobp, Nama, Alamat, dan Usia. Kolom-kolom itulah yang membentuk Record.
Huruf yang membentuk Indah terdiri dari: I, n, d, a, h masing-masingnya disebut character. Dalam ASCII CODE ditemukan 256 character termasuk: huruf, angka, simbol khusus bahkan blank.
Kalau dikumpulkan record: Indah, Rahmad K, Siraj dan Mutiara Rizky akan membentuk File.
Record Mahasiswa dalam C programming disebut structure, sedangkan dalam C++ disebut class. Berikut ini adalah source code dari Mahasiswa. Setelah anda selesai membuat program ini, run, isikanlah beberapa record mahasiswa agar data tersimpan ke dalam file. File tempat menampung data disebut Mhs.dat. Data mahasiswa kemudian dibaca dan ditampilkan. Maka tampak data mahasiswa yang pernah anda input.
Record dalam C programming disebut struct, sedangkan dalam C++ programming disebut class. Field dalam C++ disebut member. Setiap mendeklarasikan class ikuti dengan nama class misal Mahasiswa, diikuti oleh lambang {, keyword private: dan keyword public, dan akhiri dengan simbol }. Pada bagian private dapat defenisikan filed (contoh: Nobp, Nama, Alamat, dan USIA) yang menjadi member dari sebuah class. Sedangkan pada bagian public deklarasikan function yang akan memanipulasi data yang dikandung oleh member, contoh: input_data(), dan output_data(). Jadi baik field maupun function keduanya adalah member dari class Mahasiswa.
Bagaimana jalan logika program dibawah ini, mari kita lihat dari program utama, void main():
Source code progam file Mahasiswa disebut fileMahasiswa.cpp
/* Author : M A Loebis, Ir. M.Sc
file : fileMahasiswa.cpp
Installation. Labor Komputer UPI YPTK Padang
*/
tolong tambahkan simbol lambang tanda kecil dan tanda besar pada setiap statement include pada program C dibawah ini
#include string.h
#include conio.h
#include stdio.h
#include iostream.h
#include fstream.h
#include ctype.h
class Mahasiswa {
private:
char Nobp[14];
char Nama[21];
char Alamat[50];
int USIA;
public:
void input_data();
void output_data();
};
void simpan_data(Mahasiswa mhs);
void tampil_data(Mahasiswa mhs);
void main()
{
Mahasiswa mhs_IF;
simpan_data(mhs_IF);
clrscr();
tampil_data(mhs_IF);
getche();
}
void Mahasiswa::input_data()
{
clrscr();
printf("\nSimpan Data Mahasiswa\n ");
printf("\nNO BP :");
cin.getline(Nobp, sizeof(Nobp));
printf("\nNAMA :");
cin.getline(Nama, sizeof(Nama));
printf("\nALAMAT :");
cin.getline(Alamat, sizeof(Alamat));
printf("\nUSIA :");
scanf("%d", &USIA);
}
void simpan_data(Mahasiswa mhs)
{
char lagi;
ofstream data_mhs("Mhs.dat", ios::app);
for (;;) {
mhs.input_data();
data_mhs.write((char *)&mhs, sizeof(mhs));
cout <<"Ingin tambah data Lagi [Y/T] ";
do {
lagi = toupper(getch());
}
while (! ((lagi == 'Y') || (lagi == 'T')) );
printf("%c",lagi);
if (lagi=='T')
break;
}
data_mhs.close();
}
void Mahasiswa::output_data()
{
print("\n %s %s %s %d", Nobp, Nama, Alamat, USIA);
}
void tampil_data(Mahasiswa mhs)
{
ifstream data_mhs("Mhs.dat");
data_mhs.read((char *)&mhs, sizeof(mhs));
printf("\nDaftar Nama Mahasiswa Teknik Informatika";
printf("\"Universitas Putra Indonesia YPTK Padang\n\n";
while (!data_mhs.eof()) {
mhs.output_data();
data_mhs.read((char *)&mhs, sizeof(mhs));
}
data_mhs.close();
getch();
}
Setelah program diatas di compile, kemudian di run maka tampak output seperti dibawah ini. Data mahasiswa yang diinput disimpan dalam file mhs.dat. Data ini disimpan dalam folder dimana source code program disimpan. Pada contoh ini disimpan pada folder C:\BC5\MALOEBIS. Data mahasiswa yang disimpan akan terus bertambah, data yang pernah disimpan akan tetap ada. Proses input data akan terus berlansung, silahkan input data mahasiswa satu per satu dan berhentilah dengan cara menjawab T untuk pertanyaan Ingin Tambah Data Lagi [/Y/T].
Output:

Gambar Input Data Mahasiswa
Setelah beberapa record data mahasiswa disimpan, kemudian program dapat membaca file Mhs.dat untuk menampilkan daftar nama-nama mahasiswa Teknik Informatika Univeristas Putra Indonesia YPTK Padang, seperti tampilakn dibawah ini. Tampak data Andika Sanjaya yang telah diinput pada Daftar Nama Mahasiswa Teknik Informatika Universitas Putra Indonesia YPTK Padang.

Gambar: Daftar mahasiswa Teknik Informatika UPI YPTK Padang
Menu
Setelah anda selesai membuat program File Mahasiswa untuk kegiatan Simpan dan Tampil, saat ini program dikembangkan, dibuat Menu proses agar mudah dikebalikan. Anda dapat melakukan Tampil dulu baru Simpan atau sebaliknnya. Program dikendalikan dari Menu. Menu dalam program ini ada 3 pilihan yaitu
1. Simpan Data Mahasiswa
2. Tampil Data Mahasiswa
3. Exit
Pilih [1.2.3]
Jika anda pilih 1 maka aktif program Simpan, anda dapat memasukkan data mahasiswa Teknik Informatika
JIka anda pilih 2 makan aktif program Tampil, anda dapat menampilkan data Mahasiswa Teknik Informatika
Jika anda pilih 3, maka program break kemudian berhenti
Berikut ini adalah source code Program File Mahasiswa yang telah dimodifikasi menggunakan Menu Pilihan
/* Author : M A Loebis, Ir. M.Sc
file : fileMahasiswa.cpp
Installation. Labor Komputer UPI YPTK Padang
*/
#include string.h
#include conio.h
#include stdio.h
#include iostream.h
#include fstream.h
#include ctype.h
class Mahasiswa {
private:
char Nobp[14];
char Nama[21];
char Alamat[50];
int USIA;
public:
void input_data();
void output_data();
};
void simpan_data(Mahasiswa mhs);
void tampil_data(Mahasiswa mhs);
void main()
{
Mahasiswa mhs;
char cPilih;
for (;;) {
clrscr();
printf("\n MENU PILIHAN \n\n)";
printf("\n1. Masukkan Data Mahasiswa )";
printf("\n2. Cetak Laporan Mahasiswa) ";
printf("\n3. Exit )";
printf("\nPilih [1.2.3] )";
do {
cPilih = toupper(getch());
}
while (! ((cPilih == '1') || (cPilih == '2') || (cPilih == '3')) );
printf("\ncPilih)";
if (cPilih=='1')
simpan_data(mhs);
else if (cPilih=='2')
tampil_data(mhs);
else if (cPilih=='3')
break;
}
}
void Mahasiswa::input_data()
{
clrscr();
printf("\nSimpan Data Mahasiswa\n ");
printf("\nNO BP :");
cin.getline(Nobp, sizeof(Nobp));
printf("\nNAMA :");
cin.getline(Nama, sizeof(Nama));
printf("\nALAMAT :");
cin.getline(Alamat, sizeof(Alamat));
printf("\nUSIA :");
scanf("%d", &USIA);
}
void simpan_data(Mahasiswa mhs)
{
char lagi;
ofstream data_mhs("Mhs.dat", ios::app);
for (;;) {
mhs.input_data();
data_mhs.write((char *)&mhs, sizeof(mhs));
printf("\nIngin tambah data Lagi [Y/T] )";
do {
lagi = toupper(getch());
}
while (! ((lagi == 'Y') || (lagi == 'T')) );
printf("\n%c", lagi);
if (lagi=='T')
break;
}
data_mhs.close();
}
void Mahasiswa::output_data()
{
printf("\n%s %s %s %d", Nobp,Nama, Alamat,USIA);
}
void tampil_data(Mahasiswa mhs)
{
clrscr();
ifstream data_mhs("Mhs.dat");
data_mhs.read((char *)&mhs, sizeof(mhs));
printf("\nDaftar Nama Mahasiswa Teknik Informatika)";
printf("\nUniversitas Putra Indonesia YPTK Padang");
while (!data_mhs.eof()) {
mhs.output_data();
data_mhs.read((char *)&mhs, sizeof(mhs));
}
data_mhs.close();
getch();
}
Selain tampak output seperti diatas akan tampak gambar Menu Pilihan seperti dibawah ini

Gambar Menu Pilihan
Masih program KARYAWAN, pada sesi ini ditambah program untuk menghitung Total Gaji yang letakkan pada bagian akhir dari laporan. Program, source code, secara lengkap dapat dilihat sebagai berikut:
/* Author : M A Loebis, Ir. M.Sc
file : fileMahasiswa.cpp
Installation. Labor Komputer UPI YPTK Padang
*/
#include string.h
#include conio.h
#include stdio.h
#include iostream.h
#include fstream.h
#include ctype.h
long nTOTAL;
class Karyawan {
private:
char NIK[14];
char Nama[21];
char Gol[50];
int USIA;
public:
void input_data();
void output_data();
};
void simpan_data(Karyawan Kary);
void tampil_data(Karyawan Kary);
long GAJIPOKOK(char []);
void main()
{
Karyawan Kary;
char cPilih;
for (;;) {
clrscr();
printf("\n MENU PILIHAN ");
printf("\n1. Masukkan Data Karyawan )";
printf("\n2. Cetak Laporan Karyawan )";
printf("\n3. Exit )";
printf("\nPilih [1.2.3] )";
do {
cPilih = toupper(getch());
}
while (! ((cPilih == '1') || (cPilih == '2') || (cPilih == '3')) );
printf("\n%c", cPilih);
if (cPilih=='1')
simpan_data(Kary);
else if (cPilih=='2')
tampil_data(Kary);
else if (cPilih=='3')
break;
}
}
void Karyawan::input_data()
{
clrscr();
printf("\nSimpan Data Karyawan\n ");
printf("\nNO BP :");
cin.getline(NIK, sizeof(NIK));
printf("\nNAMA :");
cin.getline(Nama, sizeof(Nama));
printf("\nGol :");
cin.getline(Gol, sizeof(Gol));
printf("\nUSIA :");
scanf("%d", &USIA);
}
void simpan_data(Karyawan Kary)
{
char lagi;
ofstream data_Kary("Kary.dat", ios::app);
for (;;) {
Kary.input_data();
data_Kary.write((char *)&Kary, sizeof(Kary));
cout <<"Ingin tambah data Lagi [Y/T] ";
do {
lagi = toupper(getch());
}
while (! ((lagi == 'Y') || (lagi == 'T')) );
printf("\n%c", lagi);
if (lagi=='T')
break;
}
data_Kary.close();
}
void Karyawan::output_data()
{
nTOTAL = nTOTAL + GAJIPOKOK(Gol);
printf("\n%s %s %s %i",NIK, Nama,Gol,GAJIPOKOK(Gol) );
}
void tampil_data(Karyawan Kary)
{
clrscr();
ifstream data_Kary("Kary.dat");
data_Kary.read((char *)&Kary, sizeof(Kary));
printf("\nDaftar Nama Karyawan Teknik Informatika)";
printf("\nUniversitas Putra Indonesia YPTK Padang)";
while (!data_Kary.eof()) {
Kary.output_data();
data_Kary.read((char *)&Kary, sizeof(Kary));
}
printf("\nTOTAL GAJI Rp. %i", nTOTAL);
data_Kary.close();
getch();
}
long GAJIPOKOK(char Gol[])
{
if (strcmpi(Gol, "III/A")==0)
return 900000;
else if (strcmpi(Gol, "III/B")==0)
return 1200000;
else if (strcmpi(Gol, "III/C")==0)
return 2000000;
else
return 0;
}
output

Gambar Laporan Gaji Karyawan Dengan Total Gaji
Mau Cari Uang Tambahan tanpa mengganggu jadwal kuliah anda ? mari ikutan
http://www.asiabersama.com/?id=loeby
http://www.muslimpromo.com/?ref=1186
Link lain yang dapat anda buka.
http://loevbprogramingeng.blogspot.com
http://loevbprograming.blogspot.com
http://loesurfing.blogspot.com
Soal latihan
1. Buatlah C programming yang dapat membuat laporan seperti dibawah ini. Program tersebut juga dapat digunakan untuk Input data Mahasiswa

Class diberikan disebut Nilai field yang diperlukan adalah: Nobp, Nama, NilaiAngka
Untuk menentukan nilai huruf mengacu kepada nilai angka sebagai berikut:
Jika nilaAngka 0 s/d 39 maka nilai Huruf E
Jika nilaAngka 40 s/d 54 maka nilai Huruf D
Jika nilaAngka 55 s/d 69 maka nilai Huruf C
Jika nilaAngka 70 s/d 82 maka nilai Huruf B
Jika nilaAngka 83 s/d 100 maka nilai Huruf A
Nilai angka diluar range diatas maka cetak lambang “-“
Diperlukan sebuah function NILAIHURUF
Perhatian
Situs ini akan terus di upadate sebelum ujian berlangsung, kunjungi web ini agar anda dapat terus memantau perkembangan materi dan contoh-contoh soal ujian akhir semester matakuliah Dasar Pemrograman.
Perhatikan Ekspresi logika untuk tipe data
1. String : char Gol[8]
if (strcmp(gol, “III/a“)==0)
return 900000;
2. Numeric : int, long int, float, dll
if ((NilaiAngka >=0) && (NilaiAngka <= 39))
return ‘E’;