Anda di halaman 1dari 14

BAB 11

LATIHAN PROYEK C++

11.1 Sistem Informasi Rental Mobil

#include <iostream.h>
#include <string.h>
#include <stdlib.h>

class mobil
{
private:
char merk[20];
int harga_sewa;

public:
void data(char *Merk, int Harga_sewa)
{
strcpy(merk,Merk);
harga_sewa=Harga_sewa;
}

void tampil()
{
cout << "Merk mobil = " << merk << endl;
cout << "Harga sewa mobil/hari = " << harga_sewa << endl;
}
};
mobil avanza, innova, APV, krista, taruna, xenia;

int main()
{

// Deklarasi Variable
char inpmenu, inp[4], any;
int st, stat, x, y;
char nama[12] = {' '};

// Dumping Data CD
char cd[6][4] = { {'0','1','A','V'},{'0','2','I','N'},
{'0','3','A','P'}, {'0','4','K','R'},
{'0','5','T','A'}, {'0','6','X','E'}
};

// Dumping Data Peminjaman


char pinjam[6][16] = { {'0','1','A','V','R','a','t','i','h'} ,
{'0','2','I','N',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
{'0','3','A','P','R','i','r','i','z'},
{'0','4','K','R',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
{'0','5','T','A',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '},
{'0','6','X','E',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' ',' '}
};
// Menu Label
menu :

// Clear Screen
system("clear");

// Greeting

cout << "+= = = = = = = = = = = = = = = +" << endl;


cout << " Sistem Rental Mobil " << endl;
cout << "+= = = = = = = = = = = = = = = +" << endl << endl;

// Menu
cout << "Silakan masukkan pilihan Anda :" << endl;
cout << "1. Transaksi Peminjaman" << endl;
cout << "2. Transaksi Pengembalian" << endl;
cout << "3. Data Mobil" << endl;
cout << "4. Rekapitulasi" << endl;
cout << "5. Keluar" << endl;

// Input Menu
cout << "\n>> Pilihan Anda : ";
cin >> inpmenu;
cout << endl;
//inpmenu adalah masukkan untuk memilih menu yang akan dijalankan.
// Casting Input Menu
switch(inpmenu)
{
case '1' :
// Clear Screen
system("clear");

// Greeting, jika kita memilih ‘1’ maka muncul tampilan ‘Transaksi peminjaman’
cout << "+= = = = = = = = = = = = = = = +" << endl;
cout << " Sistem Rental Mobil " << endl;
cout << " Transaksi Peminjaman " << endl;
cout << "+= = = = = = = = = = = = = = = +" << endl << endl;

// Input Kode Mobil


pinjam :
cout << "Masukkan Kode Mobil : ";
cin >> inp;
//inp sebagai masukkan kode mobil

// Validasi Input - Check Apa Mobil Tersedia


x = 0; st = 0;
do
{
for (y=0; y<4; y++)
{
if (inp[y]==pinjam[x][y])
{ st++; }
else
{ st = 0; }
}
if (st==4)
{ if (pinjam[x][4]!=' ')
{ cout << "\n(!) Mobil sedang dipinjam\n" << endl; goto pinjam; }
else
{
cout << "\nMobil tersedia, dapat dipinjam\n" << endl;
cout << "Masukkan nama peminjam : ";
cin >> nama; cout << endl;
for (int z = 0; z<11 ; z++)
{
pinjam[x][z+4] = nama[z];
}
stat=1;
x=1;
}
}
x++;
if (x==10)
{ cout << "\n(!) Kode Mobil tidak ditemukan\n" << endl; goto
pinjam; }
} while (stat!=1);

// Clearing variable
stat=0; x=0;
for (int b=0; b<6; b++)
{ nama[b] = ' '; }

// Press any key to continue


press : cout << "Tekan sembarang tombol + enter untuk melanjutkan .. ";
cin >> any; goto menu;

break;

case '2' :
// Clear Screen
system("clear");

// Greeting, jika memilih ‘2’ maka akan muncul tampilan ‘Transaksi


pengembalian.

cout << "+= = = = = = = = = = = = = = = +" << endl;


cout << " Sistem Rental Mobil " << endl;
cout << " Transaksi Pengembalian " << endl;
cout << "+= = = = = = = = = = = = = = = +" << endl << endl;

// Input Kode Mobil


kembali :
cout << "Masukkan kode Mobil : ";
cin >> inp;

// Validasi Input - Check Apa Mobil Tersedia


x = 0; st = 0;
do
{
for (y=0; y<4; y++)
{
if (inp[y]==pinjam[x][y])
{ st++; }
else
{ st = 0; }
}
if (st==4)
{ if (pinjam[x][4]==' ')
{ cout << "\n(!) Mobil tersebut belum dipinjam\n" << endl;
goto kembali; }
else
{
for (int z = 0; z<6 ; z++)
{
pinjam[x][z+4] = ' ';
}
stat=1;
x=1;
}
}
x++;
if (x==10)
{ cout << "\n(!) Kode Mobil tidak ditemukan\n" << endl; goto
kembali; }
} while (stat!=1);

cout << "\nTransaksi pengembalian berhasil" << endl;

// Clearing variable
stat=0; x=0;
for (int b=0; b<6; b++)
{ nama[b] = ' '; }

// Press any key to continue


press2 : cout << "\nTekan sembarang tombol + enter untuk melanjutkan .. ";
cin >> any; goto menu;

break;
case '3' :
// Clear Screen
system("clear");

// Greeting
cout << "+= = = = = = = = = = = = = = = +”<< endl;
cout << " Sistem Rental Mobil " << endl;
cout << " Data Mobil " << endl;
cout << "+= = = = = = = = = = = = = = = +" << endl << endl;

//pemanggilan class mobil.


avanza.data("Avanza ", 400000);
innova.data("Kijang Innova ", 600000);
APV.data("APV ", 550000);
krista.data("Kijang Krista", 400000);
taruna.data("Taruna ", 300000);
xenia.data("Xenia ", 40000);

avanza.tampil();cout<<endl;
innova.tampil();cout<<endl;
APV.tampil();cout<<endl;
krista.tampil();cout<<endl;
taruna.tampil();cout<<endl;
xenia.tampil();cout<<endl;

// Press any key to continue


press3 : cout << "\nTekan sembarang tombol + enter untuk melanjutkan .. ";
cin >> any; goto menu;
break;

case '4' :
// Clear Screen
system("clear");

// Greeting, jika memilih ‘4’ maka akan muncul tampilan ‘Rekapitulasi’


cout << "+= = = = = = = = = = = = = = = +" << endl;
cout << " Sistem Rental Mobil " << endl;
cout << " Rekapitulasi " << endl;
cout << "+= = = = = = = = = = = = = = = +" << endl << endl;

// Tampilkan data peminjaman


for (int m=0; m<6; m++)
{
if (pinjam[m][4]!=' ')
{
cout << " X ";
for (int n=0; n<4; n++)
{
cout << pinjam[m][n];
}
cout << " dipinjam oleh ";
for (int n=4; n<16; n++)
{
cout << pinjam[m][n];
}
cout << endl;
}
else
{
cout << " V ";
for (int n=0; n<4; n++)
{
cout << pinjam[m][n];
}
cout << " masih tersedia" << endl;
}
}
cout << endl;

// Press any key to continue


cout << "Tekan sembarang tombol + enter untuk melanjutkan .. ";
cin >> any; goto menu;
break;

case '5' :
// Clear Screen
system("clear");

// Greeting, jika memilih ‘5’ maka akan muncul tampilan keluar dari program.
cout << "+= = = = = = = = = = = = = = = +" << endl;
cout << " Sistem Rental Mobil " << endl;
cout << " Selesai " << endl;
cout << "+= = = = = = = = = = = = = = = +" << endl << endl;
cout << "Terima kasih Anda telah menggunakan\nSistem Rental Mobil.\n\n" <<
endl;
break;

default : goto menu;


}

Hasil Program
11.2 Sistem Informasi Perpustakaan.
KODE:
#include <iostream.h>
#include <string.h>

int main()
{
char nama[30];
int cd1, cd2;
char ti1[30];
char ti2[30];
char au1[20];
char au2[20];
int fe1, fe2;
char st1, st2;
st1 = 'N';
st2 = 'N';
int day1, day2, day3, month1, month2, month3, year1, year2, year3;
int totfee;
int denda;

//INPUT USER
//Pada bagian ini user diminta untuk memasukkan nama.
cout << "Masukkan nama anda : ";
cin >> nama;
cout << endl;
cout << "Selamat datang " << nama << " di Sistem informasi Perpustakaan." <<
endl;
cout << endl;

//INPUT BARANG
//User menginputkan dua buah buku.
cout << "BUKU 1" << endl;
cout << "Masukkan kode buku (angka) : ";
cin >> cd1;
cout << "Masukkan judul buku : ";
cin >> ti1;
cout << "Masukkan pengarang buku : ";
cin >> au1;
cout << "Masukkan biaya sewa buku : ";
cin >> fe1;
cout << endl;

cout << "BUKU 2" << endl;


cout << "Masukkan kode buku (angka) : ";
cin >> cd2;
cout << "Masukkan judul buku : ";
cin >> ti2;
cout << "Masukkan pengarang buku : ";
cin >> au2;
cout << "Masukkan biaya sewa buku : ";
cin >> fe2;
cout << endl;

//TAMPILAN PRODUK
//Bagian ini menampilkan informasi buku yang tadi diisikan oleh user.
status1:
cout << "BUKU 1" << endl;
cout << "Kode : " << cd1 << endl;
cout << "Pengarang : " << au1 << endl;
cout << "Biaya sewa : " << fe1 << endl;
cout << "Status : " << st1 << endl;
cout << endl;

cout << "BUKU 2" << endl;


cout << "Kode : " << cd2 << endl;
cout << "Pengarang : " << au2 << endl;
cout << "Biaya sewa : " << fe2 << endl;
cout << "Status : " << st2 << endl;
cout << endl;

goto menu;
goto status1;

//MENU
//User diminta untuk memilih menu, disini terdapat 5 buah menu, digunakan if condition
untuk menentukannya, jika masukan user salah akan muncul pesan yang memberitahukan
bahwa input user salah.
menu:
char input;
cout << "MENU" << endl;
cout << "Tekan tombol A untuk lihat." << endl;
cout << "Tekan tombol B untuk cari." << endl;
cout << "Tekan tombol C untuk pinjam." << endl;
cout << "Tekan tombol R untuk kembali." << endl;
cout << "Tekan tombol Q untuk keluar." << endl;
cin >> input;

if (input == 'A')
{
cout << endl;
goto status1;
}
else if (input == 'B')
{
cout << endl;
goto cari;
}
else if (input == 'C')
{
cout << endl;
goto pinjam;
}
else if (input == 'R')
{
cout << endl;
goto kembali;
}
else if (input == 'Q')
{
cout << endl;
cout << "Terima kasih " << nama << " telah mencoba SIM Inventory." <<
endl;
return 0;
}
else
{
cout << "Input salah, silakan ulangi" << endl;
goto menu;
}
cout << endl;

//CARI
//Pada bagian ini user dapat mencari buku dengan mengisi kode buku, jika kode tidak
dikenali, user diminta untuk mengisi ulang.
cari:
int sr;
cout << "Masukkan kode buku: ";
cin >> sr;
if (sr == cd1)
{
cout << "BUKU 1" << endl;
cout << "Kode : " << cd1 << endl;
cout << "Pengarang : " << au1 << endl;
cout << "Biaya sewa : " << fe1 << endl;
cout << "Status : " << st1 << endl;
cout << endl;
}
else if (sr == cd2)
{
cout << "BUKU 2" << endl;
cout << "Kode : " << cd2 << endl;
cout << "Pengarang : " << au2 << endl;
cout << "Biaya sewa : " << fe2 << endl;
cout << "Status : " << st2 << endl;
cout << endl;
}
else
{
cout << "Kode tidak dikenal, silakan masukkan lagi" << endl;
goto cari;
}

//PINJAM
//Bagian ini untuk proses peminjaman, user diminta untuk memasukkan kode buku yang
dipinjam, dan tanggal peminjaman.
//User juga ditanyakan apakah ingin meminjam lagi atau tidak, jika tidak maka akan
kembali ke menu utama.
pinjam:
int kode;
cout << "Masukkan kode buku yg dipinjam";
cin >> kode;
if (kode == cd1)
{
if (st1 == 'N')
{
st1 = 'R';
totfee = totfee + fe1;
cout << "Anda meminjam buku " << ti1 << endl;

}
else
{
cout << "Buku sedang dipinjam" << endl;
}
}
else if (kode == cd2)
{
if (st2 == 'N')
{
st1 = 'R';
totfee = totfee + fe2;
cout << "Anda meminjam buku " << ti2 << endl;
}
else
{
cout << "Buku sedang dipinjam" << endl;
}
}
else
{
cout << "Kode tidak dikenal, silakan masukkan lagi" << endl;
goto cari;
}

//CEK PINJAM
//Digunakan untuk menanyakan apakah user ingin meminjam lagi atau tidak.
lagi:
char p;
cout << "Pinjam lagi (Y/N)?";
cin >> p;
if (p == 'Y')
{
goto pinjam;
}
else if (p == 'N')
{
goto tanggalpinjam;
}
else
{
cout << "Masukkan salah, silakan ulangi lagi" << endl;
goto lagi;
}

//TANGGAL PINJAM
//Megisikan tanggal peminjaman.
tanggalpinjam:
cout << "Bulan: ";
cin >> month1;
if (month1 > 12)
{
cout << "Salah memasukkan bulan, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else if (month1 == 0)
{
cout << "Salah memasukkan bulan, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else
{}
cout << "Tanggal: ";
cin >> day1;
if ((month1 == 1)|(month1 == 3)|(month1 == 5)|(month1 == 7)|(month1 == 8)|
(month1 == 10)|(month1 == 12))
{
if (day1 > 31)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else if (day1 == 0)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else
{
}
}
else if (month1 == 2)
{
if (day1 > 28)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else if (day1 == 0)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else
{
}
}
else
{
if (day1 > 30)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else if (day1 == 0)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto tanggalpinjam;
}
else
{
}
}
cout << "Tahun: ";
cin >> year1;
cout << endl;
cout << "Anda meminjam pada tanggal " << day1 << "-" << month1 << "-" << year1
<< endl;
cout << "Biaya peminjaman: " << totfee << endl;
denda = totfee;
cout << "Keterlambatan selama satu minggu akan dikenakan denda 5% per hari." <<
endl;
goto menu;

//KEMBALI
Ada pengecekan status buku, jika status buku ”R” (sedang dipinjam), maka akan
dilanjutkan ke memasukkan tanggal kembali, jika tidak, akan muncul pesan bahwa tidak
ada buku yang dipinjam dan kembali ke menu utama.
if (st1 == 'R')
{
}
else if (st2 == 'R')
{
}
else
{
cout << "Tidak ada buku yang dipinjam" << endl;
goto menu;
}
cout << "Masukkan tanggal pengembalian." << endl;
cout << "Bulan: ";
cin >> month2;
if (month2 > 12)
{
cout << "Salah memasukkan bulan, silakan ulangi!" << endl;
goto kembali;
}
else if (month2 == 0)
{
cout << "Salah memasukkan bulan, silakan ulangi!" << endl;
goto kembali;
}
else
{}
cout << "Tanggal: ";
cin >> day2;
if ((month2 == 1)|(month2 == 3)|(month2 == 5)|(month2 == 7)|(month2 == 8)|
(month2 == 10)|(month2 == 12))
{
if (day2 > 31)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto kembali;
}
else if (day2 == 0)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto kembali;
}
else
{
}
}
else if (month2 == 2)
{
if (day2 > 28)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto kembali;
}
else if (day2 == 0)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto kembali;
}
else
{
}
}
else
{
if (day2 > 30)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto kembali;
}
else if (day2 == 0)
{
cout << "Salah memasukkan hari, silakan ulangi!" << endl;
goto kembali;
}
else
{
}
}
cout << "Tahun: ";
cin >> year2;
if (year2 < year1)
{
cout << "Salah memasukkan tahun, silakan ulangi!" << endl;
goto kembali;
}
else
{
}
cout << endl;
cout << "Anda mengembalikan pada tanggal " << day2 << "-" << month2 << "-" <<
year2 << endl;

//HITUNG HARI KEMBALI & PINJAM


//HITUNG HARI
if (day2 < day1)
{
if ((month2 == 1)|(month2 == 3)|(month2 == 5)|(month2 == 7)|(month2 == 8)|
(month2 == 10)|(month2 == 12))
{
day3 = ((day2 + 31) - day1);
month2 = month2 - 1;
}
else if (month2 == 2)
{
day3 = ((day2 + 28) - day1);
month2 = month2 - 1;
}
else
{
day3 = ((day2 + 30) - day1);
month2 = month2 - 1;
}
}
else
{
}
//HITUNG BULAN
if (month2 < month1)
{
month3 = ((month2 + 12) - month1);
year2= year2 - 1;
}
else
{
month3 = (month2 - month1);
}
//HITUNG TAHUN
year3 = (year2 - year1);

//CEK LAMA PINJAM


//Menghitung lama peminjaman.
cout << "Lama pinjam: ";
cout << day3 << " hari, " << month3 << " bulan, " << year3 << " tahun." << endl;
//CEK DENDA
//Menghitung total hari keterlambatan dan denda yang dikenakan.
//HARI
if (day3 >= 7)
{
totfee = (totfee + (totfee * day3));
}
else
{
totfee = totfee;
}

//BULAN
if (month3 >= 1)
{
totfee = (totfee + (totfee * 30));
}
else
{
totfee = totfee;
}
//TAHUN
if (year3 >= 1)
{
totfee = (totfee + (totfee * (year3 * 365)));
}
else
{
totfee = totfee;
}
//HITUNG DENDA
denda = totfee - denda;
denda = float(denda / 20);
cout << "Pengembalian terlambat, dikenakan denda: " << denda << endl;
st1 = 'N';
st2 = 'N';
goto menu;

return 0;
}

Anda mungkin juga menyukai