Canteen Program - C++ Language
Laporan Tugas Proyek
Dasar Pemrograman (C++)
(Program Kantin Unida)
Oleh:
Wildan
Putra Pamungkas
362015611039
Program Studi Teknik Informatika
Fakultas Sains dan Teknologi
Universitas Darussalam Gontor
2015
A. Penjelasan Program
Program ini adalah program untuk
memesan makanan maupun minuman pada sebuah kantin yang berfungsi untuk memudahkan
para pelanggan dalam memesan menu-menu makanan maupun minuman. Di dalamnya
terdapat banyak fasilitas, fasilitas yang pertama adalah input menu yaitu untuk
menampilkan menu-menu yang ada dan meng-inputkan menu makanan atau minuman yang
akan kita pesan. Fasilitas kedua adalah tampil data, yang berfungsi untuk
menampilkan menu yang telah kita pesan lengkap dengan total harga yang harus
dibayarkan. Fasilitas yang ketiga adalah cari data yang berfungsi untuk mencari
data pengunjung yang telah terdata dan tersimpan dalam database. Fasilitas yang
keempat adalah edit data tang berfungsi untuk memperbarui data pengunjung yang
sebelumnya telah terdata. Fasilitas ini juga berfungsi apabila pengunjung
kantin ternyata salah memesan, lalu dapat diperbarui kembali dengan pesanan
yang akan pengunjung pesan. Fasilitas yang kelima adalah delete data yang
berfungsi untuk menghapus data pengunjung yang telah tersimpan pada database.
Berikut adalah gambar pada
fasilitas-fasilitas menu utama yang ada pada program “Kantin UNIDA”.
B. Source Code
Source Code “Program Kantin Unida”
|
#include <iostream>
#include <windows.h>
#include <fstream>
#include <conio.h>
using namespace std;
COORD coord= {0,0};
void gotoxy(int x,int y)
{
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
void garis()
{
gotoxy(15,3);
cout<<char(201);//pojok kiri atas
gotoxy(61,3);
cout<<char(187);//pojok kanan atas
gotoxy(15,20);
cout<<char(200);//pojok kiri bawah
gotoxy(61,20);
cout<<char(188);//pojok kiri bawah
for(int
x=16; x<61; x++) //garis horizontal atas 1
{
gotoxy(x,3);
cout<<char(205);
}
for(int
x=15; x<62; x++) //garis horizontal atas 2
{
gotoxy(x,5);
cout<<char(205);
}
for(int
y=4; y<20; y++) //garis vertikal kiri
{
gotoxy(15,y);
cout<<char(186);
}
for(int
y=4; y<20; y++) //garis vertikal kanan
{
gotoxy(61,y);
cout<<char(186);
}
for(int
x=16; x<61; x++) //horizontal paling bwh
{
gotoxy(x,20);
cout<<char(205);
}
}
void garis2()
{
gotoxy(15,3);
cout<<char(201);//pojok kiri atas
gotoxy(70,3);
cout<<char(187);//pojok kanan atas
gotoxy(15,25);
cout<<char(200);//pojok kiri bawah
gotoxy(70,25);
cout<<char(188);//pojok kanan bawah
for(int
x=16; x<70; x++) //garis horizontal atas 1
{
gotoxy(x,3);
cout<<char(205);
}
for(int
x=15; x<70; x++) //garis horizontal atas 2
{
gotoxy(x,5);
cout<<char(205);
}
for(int
y=4; y<25; y++) //garis vertikal kiri
{
gotoxy(15,y);
cout<<char(186);
}
for(int
y=4; y<25; y++) //garis vertikal kanan
{
gotoxy(70,y);
cout<<char(186);
}
for(int
x=16; x<70; x++) //horizontal paling bwh
{
gotoxy(x,25);
cout<<char(205);
}
}
int input();
int update();
int hapus();
int cari();
void lihat(void);
int main()
{
system("color 7C");
int a;
system("cls");
garis();
for(int
x=16; x<28; x++) //tengah
{
gotoxy(x,15);
cout<<char(177);
}
for(int
x=51; x<61; x++) //tengah
{
gotoxy(x,15);
cout<<char(177);
}
gotoxy(32,4);
cout<<" KANTIN UNIDA"<<endl;
gotoxy(25,7);
cout<<"[1] Input Menu"<<endl;
gotoxy(25,8);
cout<<"[2] Tampilkan Menu Yg Telah di
Pesan"<<endl;
gotoxy(25,9);
cout<<"[3]
Cari Menu Yg Telah di Pesan"<<endl;
gotoxy(25,10);
cout<<"[4] Edit"<<endl;
gotoxy(25,11);
cout<<"[5] Hapus"<<endl;
gotoxy(25,12);
cout<<"[6] Exit"<<endl;
gotoxy(30,15);
cout<<"Masukkan pilihan: ";
cin>>a;
if
(a==1)
{
input();
}
else if
(a==2)
{
lihat();
}
else if
(a==3)
{
cari();
}
else if
(a==4)
{
update();
}
else if
(a==5)
{
hapus();
}
}
class NAa //class=fungsi yg dpt dpggil dmna2
{
public: //sub menu dr class
char
nama[500], makanan[500], minuman[500];
int
nomeja;
float
harga_makanan, harga_minuman;
void
inputNama()
{
system("cls");
for(int x=15; x<70; x++) //garis horizontal atas 3
{
gotoxy(x,7);
cout<<char(205);
}
garis2();
gotoxy(38,4);
cout<<"PILIH MENU";
gotoxy(24,6);
cout<<"MENU MAKANAN";
gotoxy(17,8);
cout<<"1. Capcay
>> Rp. 10.000";
gotoxy(17,9);
cout<<"2. Pecel
>> Rp. 5.000";
gotoxy(17,10);
cout<<"3. Rawon
>> Rp. 5.000";
gotoxy(17,11);
cout<<"4. Soto
>> Rp. 5.000";
gotoxy(17,12);
cout<<"5. Sate
>> Rp. 15.000";
for(int y=6; y<13; y++) //garis tengah
{
gotoxy(43,y);
cout<<char(179);
}
gotoxy(50,6);
cout<<"MENU MINUMAN";
gotoxy(45,8);
cout<<"1. Aqua
>> Rp. 1.000";
gotoxy(45,9);
cout<<"2. Coffee >> Rp. 2.000";
gotoxy(45,10);
cout<<"3. Tea
>> Rp. 2.000";
gotoxy(45,11);
cout<<"4. Soda
>> Rp. 5.000";
gotoxy(45,12);
cout<<"5. Susu
>> Rp. 2.000";
for(int x=16; x<70; x++) //garis horizontal atas 4
{
gotoxy(x,13);
cout<<char(205);
}
gotoxy(17,15);
cout<<"Nama :
";
cin>>nama;
gotoxy(17,16);
cout<<"Nomer Meja :
";
cin>>nomeja;
gotoxy(17,17);
cout<<"Pilih Menu Makanan : ";
cin>>makanan;
gotoxy(17,18);
cout<<"Pilih Menu Minuman : ";
cin>>minuman;
gotoxy(17,19);
cout<<"Harga Makanan: ";
cin>>harga_makanan;
gotoxy(17,20);
cout<<"Harga Minuman: ";
cin>>harga_minuman;
cout<<endl;
}
void
outputNama()
{
cout<<"Pesanan yang Anda
Pilih"<<endl<<endl;
cout
<<"Nama :
"<<nama<<endl;
cout
<<"No. Meja :
"<<nomeja<<endl;
cout
<<"Nama Makanan :
"<<makanan<<endl;
cout
<<"Nama Minuman :
"<<minuman<<endl;
cout
<<"Total Harga :
"<<harga_makanan+harga_minuman<<endl;
cout<<"==================================="<<endl;
}
int
getNAa()
{
return nomeja;
}
};
NAa makan; //nama class
ifstream fi; //menampilkan
ofstream fo; //menyimpan
fstream fa;
int n;
char namaFile[30]="cobalagi.txt";
int input ()
{
nambah:
string
z;
makan.inputNama();
fo.open(namaFile, ios::binary | ios::app);
fo.write((char*) &makan, sizeof (makan));
fo.close();
gotoxy(17,23);
cout<<"Apakah anda ingin menambah menu lagi?(Y/N)";
cin>>z;
if(z=="Y" || z=="y")
{
goto
nambah; //nambah menu - balik ke daftar menu
}
else
{
main(); // balik ke menu awal
}
}
void lihat (void)
{
string
z;
system("cls");
fi.open(namaFile, ios::binary);
while (fi.read(
(char*) &makan, sizeof(makan)))
{
makan.outputNama();
}
fi.close();
cout<<"Apakah anda ingin kembali ke menu Awal
lagi?(Y/N)";
cin>>z;
if(z=="Y" || z=="y")
{
main(); // menu awal
}
}
int cari ()
{
string
z;
system("cls");
gotoxy(15,3);
cout<<char(201);//pojok kiri atas
gotoxy(62,3);
cout<<char(187);//pojok kanan atas
gotoxy(15,5);
cout<<char(200);//pojok kiri bawah
gotoxy(62,5);
cout<<char(188);//pojok kiri bawah
gotoxy(62,4);
cout<<char(186);
gotoxy(15,4);
cout<<char(186);
for(int
x=16; x<62; x++) //garis horizontal atas 1
{
gotoxy(x,3);
cout<<char(205);
}
for(int
x=16; x<62; x++) //garis horizontal atas 2
{
gotoxy(x,5);
cout<<char(205);
}
int
cari_meja, ketemu=0;
gotoxy(31,4);
cout<<"Cari No. Meja : ";
cin>>cari_meja;
system("cls");
fi.open(namaFile, ios::binary); //membuka file dengan format binary
while(fi.read(
(char*)&makan, sizeof(makan))) //while=penyeleksi
{
if(makan.getNAa()== cari_meja)
{
ketemu = 1;
break;
}
}
if(ketemu == 0)
{
cout<<"NO. Meja "<<cari_meja<<" TIDAK
DI TEMUKAN!"<<endl;
}
else
{
cout<<"NO. Meja "<<cari_meja<<"
DITEMUKAN"<<endl;
makan.outputNama(); //manggil class output nama
}
fi.close();
cout<<endl;
cout<<"Apakah anda ingin kembali ke menu Awal
lagi?(Y/N)";
cin>>z;
if(z=="Y" || z=="y")
{
main(); //menu paling awal
}
}
int update ()
{
string
z;
system("cls");
int
cari_meja, ketemu=0;
cout<<"Cari No. Meja : ";
cin>>cari_meja;
fa.open(namaFile, ios::in | ios::out); //ios::in=input >>
ios::out=membuka
while
(fa.read((char*) &makan, sizeof (makan)))//while=penyeleksi
{
if(makan.getNAa() == cari_meja)
{
makan.outputNama();
cout<<"Silahkan Masukkan Perubahan Data:"<<endl;
makan.inputNama();
int pos=-1*sizeof(makan);
fa.seekp(pos, ios::cur); //seekp = mencari file secara acak||ios::cur
= utk mncari file hingga akhir.
fa.write((char*) &makan, sizeof (makan)); //menulis, lalu menyimpan
setlh diupdate
break;
}
}
fa.close();
gotoxy(17,23);
cout<<"Apakah anda ingin kembali ke menu Awal
lagi?(Y/N)";
cin>>z;
if(z=="Y" || z=="y")
{
main(); //nambah menu - balik ke daftar menu
}
}
int hapus()
{
string
z;
system("cls");
gotoxy(15,3);
cout<<char(201);//pojok kiri atas
gotoxy(62,3);
cout<<char(187);//pojok kanan atas
gotoxy(15,5);
cout<<char(200);//pojok kiri bawah
gotoxy(62,5);
cout<<char(188);//pojok kiri bawah
gotoxy(62,4);
cout<<char(186);
gotoxy(15,4);
cout<<char(186);
for(int
x=16; x<62; x++) //garis horizontal atas 1
{
gotoxy(x,3);
cout<<char(205);
}
for(int
x=16; x<62; x++) //garis horizontal atas 2
{
gotoxy(x,5);
cout<<char(205);
}
int
cari_meja, ketemu=0;
gotoxy(32,4);
cout<<"Cari No. Meja : ";
cin>>cari_meja;
fi.open(namaFile, ios::binary);
fo.open("cadangan.txt", ios::out | ios::binary); //ios::out
= menampilkan, lalu menghapus
while
(fi.read((char*)&makan, sizeof(makan)))//while=penyeleksi
{
if
(makan.getNAa() != cari_meja)
{
fo.write((char*)&makan, sizeof(makan));
}
else
{
ketemu=1;
}
}
fi.close();
fo.close();
remove(namaFile);
rename("cadangan.txt", namaFile);
system("cls");
if(ketemu==1)
{
cout<<"No. Meja "<<cari_meja<<" TELAH
DIHAPUS!"<<endl;
}
else
{
cout<<"No. Meja "<<cari_meja<<" TIDAK
DITEMUKAN!"<<endl;
}
cout<<"Apakah anda ingin kembali ke menu Awal
lagi?(Y/N)";
cin>>z;
if(z=="Y" || z=="y")
{
main(); //menu awal
}
lihat();
getch();
}
|
Gambar 1.0. Menu Utama/Cover
Gambar
1.1. Input Menu
Gambar 1.2.Tampil Data
maka akan ketemu:
Gambar 1.3. dan 1.4. Cari Data
maka akan ketemu datanya dan akan langsung diperbarui:
maka data yang teah diperbarui akan tampil seperti dibawah ini:
Gambar
1.5., 1.6. dan 1.7. Update Data
maka data pada meja nomor 7 akan dihapus, seperti gambar dibawah ini:
Gambar 1.8. dan 1.9. Hapus Data
Komentar
Posting Komentar