Вы находитесь на странице: 1из 10

COMPUTER LABORATORY

ELECTRICAL ENG. DEPARTMENT


ANDALAS UNIVERSITY

JOURNAL FORM
PRACTICUM COMPUTER PROGRAMMING
Name
BP
Module Practicum

: Irvan Zikri
: 1510951019
: Object Oriented Programming

N
o

Soal

Listing Program

Membuat
CRUD dengan
menggunakan
file txt sebagai
tempat
penyimpanann
ya + dengan
cara Object
Oriented
Programming
menggunakan
class

#include
#include
#include
#include
#include

<iostream>
<fstream>
<cstdlib>
<string>
<iomanip>

using namespace std;


bool InTheLoop = true;
class Database {
protected :
int nobp,x;
int number_of_lines;
string nama,tmp_dua,line;
float IPK;
char pilih, jk;
ofstream database_name,
database_nobp, database_IPK,
database_jk,database_name_tmp;
ifstream tmp_file_nobp,
tmp_file_name, tmp_file_ipk, tmp_file_jk;
bool open_data (int a) {
int pilihan_1 = a;
database_name_tmp.open
("E:\\database\\tmp_database.txt");
if (pilihan_1 == 1)
{
tmp_file_nobp.open
("E:\\database\\nobp.txt", ios::in); }
else if (pilihan_1 == 2) {
tmp_file_name.open
("E:\\database\\username.txt",

Screensh
ot
program

Nila
i

ios::in); }
else if (pilihan_1 == 3) {
tmp_file_ipk.open
("E:\\database\\ipk.txt", ios::in); }
else if (pilihan_1 == 4) {
tmp_file_jk.open
("E:\\database\\jk.txt", ios::in); }
return true;
}
void another_overwrite_data (int lk) {
string iz1, temporary_names;
number_of_lines = 0;
if ( lk == 1 ) { iz1 = "nobp";
tmp_file_nobp.close(); }
else if ( lk == 2 ) { iz1 =
"username"; tmp_file_name.close();}
else if ( lk == 3 ) { iz1 =
"ipk"; tmp_file_ipk.close();}
else if ( lk == 4 ) { iz1 = "jk";
tmp_file_jk.close();}
temporary_names =
"E:\\database\\"+iz1+".txt";
database_name_tmp.close();
remove(temporary_names.c_str());
char oldname[] =
"E:\\database\\tmp_database.txt";
rename(oldname ,
temporary_names.c_str());
}
void overwrites_data (int a) {
string iz;
if ( a == 1 ) { iz = "No.bp"; }
else if ( a == 2 ) { iz = "nama"; }
else if ( a == 3 ) { iz = "IPK"; }
else if ( a == 4 ) { iz = "jenis
kelamin"; }
if (x != number_of_lines) {
database_name_tmp << line
<< endl;
} else {
cout << "Data "+iz+" lama
adalah " << line <<endl;
cout << "Masukkan "+iz+"
baru \t"<< endl;
cin >> line;
database_name_tmp << line
<< endl;
cout << "Edit "+iz+" sukses"
<< endl;
}

public :
int pilih_1;
void garis(int a) {
for(int garis = 0; garis
<=a;garis++) { cout<< "="; }
}
void menu_header () {
garis(50);
cout << endl <<"|" << setw(10)<<"
" << "Selamat datang di Portal Unand"
<<setw(10)<<"|" ;
cout << endl <<"|" << setw(11)<<"
" << "Silahkan pilih menu yang ada"
<<setw(11)<<"|"<< endl;
garis(50);
cout << endl << endl;
cout << "1. Menambahkan data" <<
endl;
cout << "2. Mengedit data" << endl;
cout << "3. Menghapus data" <<
endl;
cout << "4. Tampilkan data" <<
endl;
}
};
class CreateData : public Database{
public :
bool database_output_open () {
database_name.open
("E:\\database\\username.txt",
ios::app);
database_nobp.open
("E:\\database\\nobp.txt", ios::app);
database_IPK.open
("E:\\database\\ipk.txt", ios::app);
database_jk.open
("E:\\database\\jk.txt", ios::app);
return true;
}
bool database_save (string
nama,int nobp,float IPK,char jk) {
database_name << nama
<< endl;
database_nobp << nobp <<

endl;
database_IPK << IPK <<
endl;
database_jk << jk << endl;
return true;
}
CreateData() {
database_output_open();
cout << "Tambahkan nama
mahasiswa \t";
cin.ignore(), getline(cin,
nama);
cout << endl;
cout << "Tambahkan nobp
mahasiswa \t";
cin >> nobp;
cout << endl;
cout << "Tambahkan IPK
mahasiswa \t";
cin >> IPK;
cout << endl;
cout << "Tambahkan Jenis
Kelamin mahasiswa \t";
cin >> jk;
cout << "Penambahan data
berhasil kembali ke menu" << endl;
system("CLS");
database_save(nama, nobp,
IPK, jk), cout << endl;
}
~CreateData () {
database_name.close();
database_nobp.close();
database_IPK.close();
database_jk.close();
}
};
class EditData : public Database {
public :
EditData() {
number_of_lines = 0;
system("CLS");
cout << " \n Pilihan edit
data \n \n 1. No bp \n 2. Nama \n 3. IPK \n 4.
Jenis Kelamin"<<endl;
cin >> pilih_1;
system("CLS");
cout << "Silahkan edit data

pada baris ke" << endl;


cin >> x;
open_data (pilih_1);
if (pilih_1 == 1) {
while (getline(tmp_file_nobp, line))
{
++number_of_lines;
overwrites_data (pilih_1);
}
another_overwrite_data(pilih_1);
}
else if (pilih_1 == 2) {
while (getline(tmp_file_name, line))
{
++number_of_lines;
overwrites_data (pilih_1);
}
another_overwrite_data(pilih_1);
}
else if (pilih_1 == 3) {
while (getline(tmp_file_ipk, line))
{
++number_of_lines;
overwrites_data (pilih_1);
}
another_overwrite_data(pilih_1);
}
else if (pilih_1 == 4) {
while (getline(tmp_file_jk, line))
{
++number_of_lines;
overwrites_data (pilih_1);
}
another_overwrite_data(pilih_1);
}
else {
cout << "Pilihan tidak valid, ulang
memilih ? (Y/N)";
cin >> pilih;
if(pilih == 'Y' || pilih == 'y') {
system("CLS");
InTheLoop = true;
} else {
InTheLoop = false;
}

}
cout << "Edit data sukses, Kembali
ke menu ? (Y/N)";
cin >> pilih;
if(pilih == 'Y' || pilih == 'y') {
system("CLS");
InTheLoop = true;
} else {
InTheLoop = false;
}
}
};
class DeleteData : public Database {
public:
DeleteData() {
cout << "Silahkan hapus data
pada baris ke" << endl;
cin >> x;
}
~DeleteData() {
open_data (1);
while (getline(tmp_file_nobp, line))
{
++number_of_lines;
delete_data ();
}
another_overwrite_data (1);
open_data (2);
while (getline(tmp_file_name, line))
{
++number_of_lines;
delete_data ();
} another_overwrite_data (2);
open_data (3);
while (getline(tmp_file_ipk, line))
{
++number_of_lines;
delete_data ();
} another_overwrite_data (3);
open_data (4);
while (getline(tmp_file_jk, line))
{
++number_of_lines;
delete_data ();
} another_overwrite_data (4);

cout << "Kembali ke menu ? (Y/N)";


cin >> pilih;
if(pilih == 'Y' || pilih == 'y') {
system("CLS");
InTheLoop = true;
} else {
InTheLoop = false;
}
}
private:
void delete_data () {
if (x != number_of_lines) {
database_name_tmp << line
<< endl;
} else {
cout << "Data "<<line<<"
telah dihapus" <<endl;
}
}
};
class ViewData : public Database {
public:
bool database_input_open () {
tmp_file_nobp.open
("E:\\database\\nobp.txt", ios::in);
tmp_file_name.open
("E:\\database\\username.txt",
ios::in);
tmp_file_ipk.open
("E:\\database\\ipk.txt", ios::in);
tmp_file_jk.open
("E:\\database\\jk.txt", ios::in);
return true;
}
bool database_input_close() {
tmp_file_nobp.close();
tmp_file_jk.close();
tmp_file_ipk.close();
tmp_file_name.close();
return true;
}
int counter () {
number_of_lines = 0;
tmp_file_nobp.open

("E:\\database\\nobp.txt", ios::in);
int s;
while (getline(tmp_file_nobp, line))
{
++number_of_lines;
}
tmp_file_nobp.close();
s = number_of_lines;
return s;
}
public:
ViewData() {
int z = counter();
cout << endl <<endl; garis(70);
cout <<endl<<"| "<< " ID
"<<"+"<<setw(7)<<
"Nobp"<<setw(7)<<"+ "<<setw(11)<<
"Nama"<<setw(17)<<"+
IPK"<<setw(22)<<"+ Jenis Kelamin
|"<<endl;
garis(70); cout << endl;
database_input_open();
for( int k = 0; k < z ; k++) {
getline(tmp_file_nobp, line);
cout <<"| "<<k+1<<" |
"<<setw(5) << line ;
for( int k = 0; k < 1 ; ++k) {
getline(tmp_file_name, line);
cout <<" |
"<<setw(17)<< line<<setw(7);
for( int k = 0; k < 1 ;
++k) {
getline(tmp_file_ipk, line);
cout <<"|
"<<setw(7)<< line<<" |";
for( int k = 0; k
< 1 ; ++k) {
getline(tmp_file_jk, line);
cout
<<setw(8)<< line<<setw(8)<<" |"<<endl;
}
}
}
}
database_input_close(); garis(70);
cout << endl;cout << "Kembali ke menu ?
(Y/N)";
cin >> pilih;

if(pilih == 'Y' || pilih == 'y') {


system("CLS");
InTheLoop = true;
} else {
InTheLoop = false;
}
}
};

int main() {
while (InTheLoop == true) {
//-----------------------Menu
Data----------------------------//
Database Mahasiswa;
Mahasiswa.menu_header ();
cin >> Mahasiswa.pilih_1;
if (Mahasiswa.pilih_1 == 1) {
CreateData
Buat_Mahasiswa;
} else if ( Mahasiswa.pilih_1 == 2 ) {
EditData
Edit_Mahasiswa;
} else if ( Mahasiswa.pilih_1 == 3 ) {
DeleteData
Delete_Mahasiswa;
} else if ( Mahasiswa.pilih_1 == 4 ) {
ViewData
View_Mahasiswa;
} else {
cout << " Menu tidak
valid ";
return false;
}
}
//-----------------------End ----------------------------//
return 29102013;
system("PAUSE");
}

Padang , 2016
Practicum Assistant

Вам также может понравиться