LAPORAN
TUGAS
PROYEK DASAR PEMROGRAMAN
(Mesin
Pendataan Barang Dagang)
Dosen Pengampu : Muhammad Nugraha,M.Eng

Disusun Oleh :
Nama :Armuser
Dimas Saputra
NIM :372016611499
PROGRAM
STUDI TEKNIK INFORMATIKA
FAKULTAS
SAINS DAN TEKNOLOGI
UNIVERSITAS
DARUSSALAM GONTOR
2016
- Deskripsi ProgramPada program kali ini saya membuat alat yang digunakan untuk mendata barang-barang yang akan dijual oleh produsen. Kegunaan dari barang ini adalah sebagai : Mencatat harga, kode barang, jenis barang, dan nama barang tersebut. Dalam program sayaa ini masih memiliki banyak sekali kekurangan yang butuh diperbaiki meskipun sudah selesai saya akn berusaha membuat yang lebih baik lagi. Dalam program ini tersendiri terdapat tiga pilihan : Penjual, Pembeli, Keluar. Dalam pilihan pembeli saya berharap agar pembeli dapat memesan barang diinginkannya.
- Penggunaan programDisini saya akan menjelaskan bagaimana cara saya menjalankan program saya yang telah saya buat dengan menampilkannya dilayar pc.
- Berikut adalah layar utama dari program saya yang akan saya jelaskan dengan terperinci.

Setelah menekan code diatas kita akan langsung menuju
ke menu utama yang berisi mengenai program yang telah saya buat. Disini
terdapat tiga pilihan yang akan dijalankan oleh user yang pertama adalah
pemilik, pembeli, dan keluar.

- Disini saya akan menjelaskan tentang nomor satu (1) yaitu menjadi pemilik yang akan memasukkan dan mensata barang-barang yang akan dijualnya, Setelah memilih nomor yang pertama akan kita lihat untuk memasukkan username dan passwornya jika passwornya benar maka akan menuju ke step yang berikutnya dan jika password/user namenya salah maka akan mengulang dengan otomatis

Setelah apa yang ditulis benar maka akan muncul layar
seperti ini, yaitu menu pilihan.

Misalnya
kita memilih nomor pertama yang berisikan input data. Maka akan muncul layar
yang menanyakan jumlah barang yang ingin dimasukkan oleh user disini kita akan
memasukkan 1 barang maka akan mengisi sebanyak satu kali.

Dan
berikut adalah rincian dari pendataan barang yang akan dimasukkan oleh user.
Disini user akan ditanyakan dengan apakah user ingi memasukkan data lagi/tidak
jika kita menjawab tidak kita akan kembali ke menu utama.

Dan
sekarang saya akan menjelaskan tentang delee data. Dalam operasi ini pertama
kita akan disuruh untuk memasukkan kode barang yang telah kita masukkan tadi
dengan begitu barang yang akan kita cari akan langsung terhapus dan apabila
kode barang tidak ditemukan maka program akan error dan langsung memberitahu
bahwa data user tidak ada.

Beranjak
ke program berikutnya yaitu view data. Seperti program lainnya view data hanya
bias untuk melihat apakah data user sudah dimasukkan atau sudah di hapus.

Kemudian
yang ke empat yaitu search data. Di program ini kita akan disuruh untuk
memasukkan kodebarang yang sudah di masukkan barusan jika data user ada maka
akan ketemu dan apabila tidak ada maka program akan memberitahu. Setelah
selesai user akan ditanyakan apakah ingin mencari lagi/tidak.

Dan
inilah barang yang ditemukan oleh program jika memasukkan kodenya dengan benar.

Yang
kelima yaitu tentang update. Yaitu barang yang akan diperbarui oleh user sama
seperti delete dan search sebelumnya kita harus memasukkan kode barang itu
terlebih dahulu sebelum memperbaruinya, missalnya kita akan memasukkan kode
barang nomor 33.

Dan
setelah kodenya dimasukkan dengan benar maka akan keluar data yag sudah
dimasukkan oleh user dan apabila belum dimasukkan maka program akan error dan
tidak menemukannya. Setelah memasukkannya kita akan mengubahnya satu persatu
seperti gambar di bawah ini :

Dan
yang terakhir adalah keluar dari menu pemilik.
- Sekarang kita akan menuju menu pembeli yang terdiri dari tiga pilihan yaitu : view data, search data, dan keluar. Dari menu pembeli memiliki kemungkinan persamaan besar seperti pemilik yang sudah saya jelaskan di atas. Dan inilah tampilan layar yang terdapat didalamnya.

- Dan pilihan yang terakhir adalah keluar dari program itu sendiri. Mungkin sekian penjelasan dari program ini dan terima kasih.
C. Penjelasan
Sourch Kode
MENEMPATKAN TULISAN DIDALAM SOURCH CODE
|
COORD coord=
{0,0};
void gotoxy(int
x,int y)
{
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),coord);
}
|
Dengn menguunakan program diatas kita dapat
menempatkan tulisan menyesuaikan dengan koordina yang kita inginkan.
CLASS DALAM PENGELOMOKAN TIPE DATA
|
class database
{
public:
char name[50], jenis[50];
int no,code,harga;
void inputdata()
{
cout<<endl<<endl;;
cout<<"\tNO BARANG : ";
cin>>no;
cout<<"\tKODE BARANG : ";
cin>>code;
cout<<"\tNAMA BARANG : ";
cin>>name;
cout<<"\tJENIS BARANG :
";
cin>>jenis;
cout<<"\tHARGA BARANG :
";
cin>>harga;
}
void outputdata()
{
cout<<"\tNo barang
: "<<no<<endl
<<"\tKode barang
: "<<code<<endl
<<"\tNama barang
: "<<name<<endl
<<"\tJenis barang : "<<jenis<<endl
<<"\tHarga persatuan :
Rp "<<harga
<<endl<<endl;
}
int cari()
{
return code;
}
};
database data;
|
Didalam syntax ini tentang class yang meliputi input,
output, dan cari data.
VOID
|
void input();
void lihat();
void hapus();
void cari();
void update();
void tampilan();
void
tampilan2();
|
Dalam program ini saya menggunakan pemanggilan yang
terdiri dari : Input,Lihat,Hapus,Cari,Update,Tampilan,Tampilan2
TYPE DATA INPUT,OUTPUT,DAN SEARCH
|
ifstream fi;
ofstream fo;
fstream fa;
|
Type data dalam input, output, search.
TAMPILAN MENU UTAMA
|
tampilan();
tampilan2();
gotoxy(44,4);
cout <<"SELAMAT DATANG DI TIGA
A";
gotoxy(42,9);
cout <<"MASUK SEBAGAI APAKAH
ANDA ?";
gotoxy(51,11);
cout <<"1.
PEMILIK"<<endl;
gotoxy(51,12);
cout <<"2.
PEMBELI"<<endl;
gotoxy(51,13);
cout <<"3. KELUAR
"<<endl;
gotoxy(39,15);
cout <<"Pilih operasi yang
anda inginkan [ ]"<<endl;
gotoxy(73,15);
cin
>>in;
if (in == '1')
{
system("cls");
|
Didalam menu inikita akan tahu mengenai program apa
daja yang terdapat pada proyek saya dengan membaginya menjadi tiga bagian yaitu
pemilik, pembeli, dan keluar.
KODE USER PEMILIK
|
for (i=1;
i<=3; i++)
{
tampilan();
tampilan2();
string user = "";
string pass = "";
gotoxy(52,4);
cout <<" LOGIN PROGRAM
";
gotoxy(52,9);
cout << "Username anda
!";
gotoxy(55,10);
cout << "Username :
";
cin >> user;
gotoxy(55,11);
cout << "Password :
";
ps = getch();
while(ps != 13)
{
pass.push_back(ps);
cout << '*';
ps = getch();
}
system("cls");
|
Didalam sini saya memasukkan kata sandi yang hanya bias
dibuka oleh si pemilik toko dan tdak semua orang dapat mengoperasikannya dengan
lengkap tapi hanya pemilik toko saja yang bias melakukannya.
TAMPILAN MENU UTAMA PADA PEMILIK
|
tampilan();
tampilan2();
gotoxy(44,4);
cout <<"OPERASI APA
YANG ANDA INGINKAN";
gotoxy(15,9);
cout <<"1.INPUT
DATA "<<endl;
gotoxy(30,10);
cout <<"2.DELETE
DATA "<<endl;
gotoxy(45,11);
cout <<"3.VIEW
DATA "<<endl;
gotoxy(60,12);
cout <<"4.SEARCH
DATA "<<endl;
gotoxy(75,13);
cout <<"5.UPDATE
DATA "<<endl;
gotoxy(90,14);
cout
<<"6.KELUAR
"<<endl;
gotoxy(42,20);
cout <<"Pilih
operasi yang anda inginkan [ ]"<<endl;
gotoxy(76,20);
cin >>masuk;
|
Disini saya memasukkan 6 program yang akan digunakan
oleh si pemilik yaitu : Input data, Delete data, View data, Search data, Update
data, Keluar.
TAMPILAN GARIS PADA LAYAR SOURCH CODE
|
void tampilan()
{
for(int i = 1; i <=117; i++)
{
for(int j = 1; j <= 30; j += 27)
{
if(j >= 1 || i >= 1)
{
gotoxy(i, j);
cout << char(219);
}
}
}
for(int i = 1; i <= 28; i++)
{
for(int k = 1; k <= 120; k+=117)
{
gotoxy(k, i);
cout << char(219);
}
}
}
|
Dan ini adalah
tampilan garis pada layar program yang saya buat.
TAMPILAN GARIS KE DUA PADA LAYAR PROGRAM
|
void tampilan2()
{
for(int i = 1; i <=117; i++)
{
gotoxy(i,7);
cout << char(219);
}
}
|
Ini adalah tampilan garis pada terbentang
padalayar proram.
INPUT
|
void input()
{
int banyak;
char a;
system("cls");
g :
tampilan();
tampilan2();
gotoxy(51,4);
cout <<"OPERASI INPUT
DATA";
gotoxy(20,9);
cout<<"Jumlah Barang Yang
Ingin Anda Masukkan : ";
gotoxy(61,9);
cin>>banyak;
for(int a=1; a<=banyak; a++)
{
system("cls");
data.inputdata();
fo.open(namafile, ios::binary |
ios::app);
fo.write((char*) &data, sizeof
(data));
fo.close();
}
cout<<endl;
cout <<"\tApakah Anda Ingin
Input Data Lagi (Y/T): ";
cin
>>a;
if (a=='y'||a=='Y')
{
system("cls");
goto g;
}
else
{
cout <<"\tYakin
?"<<endl<<endl;
}
}
|
Dalam operrasi inpt data saya menggunakan perulangan
guna untuk mengetahui berapa banyak barang yang ingin dimasukkan oleh user. Dan
menyakinkan kembali apakah ingin memasukkan lagi atau tidak.
VIEW DATA
|
void lihat()
{
system("cls");
tampilan2();
gotoxy(51,4);
cout <<"OPERASI VIEW DATA";
gotoxy(5,9);
fi.open(namafile, ios::binary);
while (fi.read((char*) &data,
sizeof(data)))
{
data.outputdata();
cout<<"\t****************************************"<<endl;
}
fi.close();
}
|
Seperti operasi biasa view data hanya bias melihat
data yang telah dimasukkan dan memastikan datanya sudah masuk atau belum.
DELETE DATA
|
void hapus()
{
int kodebarang;
char mi;
system ("cls");
f :
tampilan();
tampilan2();
gotoxy(51,4);
cout <<"OPERASI DELETE
DATA";
gotoxy(51,9);
cout<<"Cari Kode Barang :
";
gotoxy(70,9);
cin>>kodebarang;
tampilan();
fi.open(namafile, ios::binary);
fo.open("pengganti.dat",
ios::out | ios::binary);
int ketemu=0;
while (fi.read((char*)&data,
sizeof(data)))
{
if (data.cari() != kodebarang)
fo.write((char*)&data,
sizeof(data));
else
ketemu=1;
}
fi.close();
fo.close();
remove(namafile);
rename("pengganti.dat",
namafile);
tampilan();
if(ketemu==1)
{
gotoxy(45,15);
cout<<"KODE BARANG "<<kodebarang<<"
TELAH DIHAPUS!"<<endl;
}
else
{
gotoxy(45,15);
cout<<"KODE BARANG "<<kodebarang<<"
TIDAK DITEMUKAN!";
}
getch();
lihat();
cout <<"\tApakah Anda Ingin
Menghapus Lagi (Y/T) ";
cin
>>mi;
if (mi=='y')
{
system("cls");
goto f;
}
else
{
cout <<endl;
cout <<"\tAnda Yakin
?"<<endl;
}
}
|
Didalam operasi delerte data saya menggunakan kode
untuk mencari barang yang akan di hapus dan apabila kode tepat dengan apa yang
terdapat dalam program maka akan terhapus secara langsung dan apabila tidak
maka program akan error dantidak menemukannya.
SEARCH DATA
|
void cari()
{
int kodecari, ketemu=0;
database data, nilaiketemu;
char mi;
system("cls");
l :
tampilan();
tampilan2();
gotoxy(51,4);
cout <<"OPERASI SEARCH
DATA";
gotoxy(51,9);
cout<<"Cari kode barang :
";
cin>>kodecari;
system("cls");
tampilan2();
gotoxy(51,4);
cout <<"OPERASI SEARCH
DATA";
cout
<<endl<<endl<<endl<<endl<<endl;
fi.open(namafile, ios::binary);
while(fi.read( (char*)&data,
sizeof(data)))
{
if(data.cari()== kodecari)
{
nilaiketemu = data;
ketemu = 1;
break;
}
}
if(ketemu == 0)
cout<<"\tKode Barang
"<<kodecari<<" TIDAK DITEMUKAN!"<<endl;
else
{
nilaiketemu.outputdata();
cout <<endl;
cout <<"\tKode barang
"<<kodecari<<" SUDAH DIMASUKKAN!"<<endl;
}
fi.close();
cout<<endl;
cout <<"\tApakah Anda Ingin
Mencari Lagi (Y/T)";
cin
>>mi;
if (mi=='y')
{
system("cls");
goto l;
}
else
{
cout <<endl;
}
}
|
Berikut adalah syntax dari program search yang saya
buat menggunakan ofstream dan ifstream guna untuk menyimpan dan menutup file
yang sudah kita masukkan.
UPADATE BARANG
|
void update()
{
int KodeCari;
char mi;
system("cls");
k :
tampilan();
tampilan2();
int kodecari;
gotoxy(51,4);
cout <<"OPERASI UPDATE
DATA";
gotoxy(51,9);
cout<<"Cari Kode Barang :
";
cin>>kodecari;
system("cls");
tampilan2();
gotoxy(51,4);
cout<<"OPERASI UPDATE
DATA";
cout<<endl<<endl<<endl;
fa.open(namafile, ios::in | ios::out);
while (fa.read((char*) &data, sizeof
(data)))
{
if(data.cari() == kodecari)
{
cout<<endl<<endl;
data.outputdata();
cout
<<"\t*********************************************************";
cout <<endl;
cout<<"\tSilahkan
Masukkan Perubahan Data !"<<endl;
data.inputdata();
int pos=-1*sizeof(data);
fa.seekp(pos, ios::cur);
fa.write((char*) &data,
sizeof (data));
break;
}
}
fa.close();
cout<<endl;
cout <<"\tApakah Anda Ingin
Memperbarui Lagi (Y/T)? ";
cin
>>mi;
if (mi=='y')
{
system("cls");
goto k;
}
else
{
cout <<"\tAnda Yakin
?"<<endl;
cout <<endl;
}
}
|
Dan kita sudah beranjak ke program yang terakhir yaitu
mengenai update data yang menggunakan fstream sebagai pemanggil data dan akan
diperbarui menggunakan input kedua. Dalam program ini menggunakan search code
untuk menemukan barang dan kemudian baru merubahnya .
PEMBELI
|
tampilan();
tampilan2();
system("cls");
tampilan();
tampilan2();
gotoxy(44,4);
cout <<"OPERASI APA YANG
ANDA INGINKAN";
gotoxy(15,11);
cout <<"1.VIEW DATA "<<endl;
gotoxy(55,12);
cout <<"2.SEARCH DATA "<<endl;
gotoxy(95,13);
cout <<"3.KELUAR "<<endl;
gotoxy(42,16);
cout <<"Pilih Operasi Yang
Anda Inginkan [ ]"<<endl;
gotoxy(76,16);
cin
>>in8;
if (in8 == '1')
{
lihat();
cout <<endl;
cout <<"\tApakah anda
ingin kembali ke menu utama (Y/T)? ";
cin >>in9;
if (in9 == 'y')
{
system("cls");
goto e;
}
else
{
system("cls");
goto r;
}
}
else if (in8 == '2')
{
cari();
cout <<endl;
cout <<"\tApakah Anda
Ingin Kembali Ke Menu Utama (Y/T)? ";
cin >>in10;
if (in10 == 'y')
{
system("cls");
goto e;
}
else
{
system("cls");
goto r;
}
}
else if (in8 =='3')
{
system("cls");
goto r;
}
else
{
gotoxy(48,15);
cout <<"INPUT YANG
ANDA MASUKKAN SALAH !"<<endl;
system("cls");
goto e;
}
|
Didalam pilihan pembeli hanya bias melakukan : View
data, Search data, Dan keluar Karena pembeli tidak memiliki hak untuk mengubah
barang yang ada dalam toko.
KELUAR
|
else if (in ==
'3')
{
system("cls");
tampilan();
gotoxy(44,13);
cout <<"TERIMA KASIH ATAS
KUNJUNGAN ANDA";
gotoxy(47,15);
cout <<"ANDA BELANJA ANDA
BERAMAL";
getch();
system("cls");
return 0;
}
|
Dan pilihan terakhir adalah keluar setelah
pemilik/pembeli menyelesaikan pilihannya akan dapat menutup program ini dengan
memilih angka 3(keluar).
D. PENUTUP
Mungkin sekian dari program yang saya buat saya
berharap bisa bermanfaat bagi pengguna dan pembacanya. Sekian dan terimakasih.