Anggota Kelompok :
1. Ibu Ninik Tri Hartanti selaku dosen Mata Kuliah Struktur Data
kelas SI 05.
2. Asisten Praktikum.
3. Serta pihak-pihak yang tidak bisa kami sebutkan satu persatu.
Penyusun,
1
DAFTAR ISI
KATA PENGANTAR………………………………………………………… 1
DAFTAR ISI…………………………………………………………………... 2
BAB I PENDAHULUAN……………………………………………………... 3
2
BAB I
PENDAHULUAN
Program pendataan alat music Yamaha yang kami buat ini memiliki
tujuan, yaitu memudahkan karyawan dalam input, melihat, dan
menghapus data alat music dengan mudah dan cepat. Dikarenakan,
apabila input data secara manual sering terjadi kesalahan dalam input
data, entah itu dari kurangnya komunikasi ataupun salah tulis dalam
menginputkan data.
3
1.2 TUJUAN
BAB II
4
2.3 CODE PROGRAM
#include <stdio.h>//
#include <iomanip>//
string typekey[]={"EZ-300","PSR-EW310","PSR-E373","PSR-E273","PSS-E30","PSS-F30"};
string typegitar[]={"F370","F335","F310P","F310","FX310","FS100C"};
int hargagitar[]={1380000,1147000,1216000,1200000,1480000,1250000};
int hargadrum[]={10500000,9000000,14800000,9400000,10000000,19000000};
//dibuat terpisah supaya tidak bertabrakan dengan tumpukan lainnya, karena tiap
tumpukan memiliki data yang berbeda
struct keyboard{
int harga1;
struct gitar{
int harga2;
struct drum{
5
int harga3;
void header(){
cout<<"==================== P R O G R A M P E N D A T A A N A L A T M U
S I K =====================\n\n";
cout<<" \t Y A M A H A M U S I C S T O R E \n\n";
cout<<"***************************************************************************
********************\n";
void daftarharga(){
cout<<"Keyboard\t\t\t\tGitar\t\t\t\tDrum"<<endl<<endl;
// Keyboard
6
//membuat fungsi IsEmpty untuk mengecek stack kosong atau tidak
bool IsEmptykey()
if(penunjuk == -1)
return true;
else
return false;
bool IsFullkey()
if(penunjuk == maxim-1)
return true;
else
return false;
//membuat fungsi Push untuk memasukkan nilai kedalam stack yang sebelumnya dicek
terlebih dahulu apakah penuh atau belum
if(IsFullkey())
getch();
else
penunjuk++;
cin>>item1[penunjuk].datakeyboard;
cin>>item1[penunjuk].harga1;cout<<endl;
7
}
//membuat fungsi untuk melakukan sorting atau pengurutan data berdasarkan harga
terendah dengan metode ascending
void sortkey(){
//dinamis
for(int j=0;j<=penunjuk-1;j++){
tempHrg=item1[j].harga1;
item1[j].harga1=item1[j+1].harga1;
item1[j+1].harga1=tempHrg;//sorting dengan
metode ascending untuk menentukan harga terendah dari keyboard
tempTipe=item1[j].datakeyboard;
item1[j].datakeyboard=item1[j+1].datakeyboard;
item1[j+1].datakeyboard=tempTipe;
cout<<endl;
cout<<endl;
getch();
//statis
//sorting data untuk data yang telah di deklarasi di awal/sudah ada dalam
syntax pemrograman
8
for(int i=0;i<6;i++){
for(int j=i+1;j<6;j++){
if(hargakey[j]<hargakey[i])
int min=hargakey[i];
hargakey[i]=hargakey[j];
std::string plus=typekey[i];
typekey[i]=typekey[j];
typekey[j]=plus;
cout<<"Type : "<<typekey[i]<<endl;
cout<<"Harga : Rp "<<hargakey[i]<<endl;
//membuat fungsi Pop untuk mengambil nilai dari stack yang sebelumya dicek
terlebih dahulu apakah kosong atau belum
void popkey()
if (IsEmptykey())
else
9
}
void clearkey()
penunjuk = -1;
void viewkey()
if (!IsEmptykey())
cout<<"Type : "<<item1[a].datakeyboard<<endl;
cout<<"Harga : "<<item1[a].harga1<<endl;
cout<<"==============================="<<endl;
else
cout<<"Data Kosong";
void datatersimpankey()
system ("cls");
header();
cout<<endl<<endl;
10
void carikey(){
system("cls");
string pencari;
header();
//dinamis
if(item1[i].datakeyboard == pencari){
cout<<"Type = "<<item1[i].datakeyboard<<endl;
syrt = true;
if(syrt!=true){
getch();
//statis
for(int i=0;i<6;i++){
if(typekey[i] == pencari){
cout<<"Type = "<<typekey[i]<<endl;
syrt1 = true;
if(syrt1!=true){
11
}
// Gitar
bool IsEmptygitar()
if(penunjukgitar == -1)
return true;
else
return false;
bool IsFullgitar()
if(penunjukgitar == maxim-1)
return true;
else
return false;
//membuat fungsi Push untuk memasukkan nilai kedalam stack yang sebelumnya dicek
terlebih dahulu apakah penuh atau belum
if(IsFullgitar())
getch();
12
else
penunjukgitar++;
cin>>item2[penunjukgitar].datagitar;
cin>>item2[penunjukgitar].harga2;cout<<endl;
void sortgitar(){
//dinamis
for(int j=0;j<=penunjukgitar-1;j++){
tempHrg=item2[j].harga2;
item2[j].harga2=item2[j+1].harga2;
item2[j+1].harga2=tempHrg;//sorting dengan
metode ascending untuk menentukan harga terendah dari gitar
tempTipe=item2[j].datagitar;
item2[j].datagitar=item2[j+1].datagitar;
item2[j+1].datagitar=tempTipe;
cout<<endl;
13
}
cout<<endl;
getch();
//statis
for(int i=0;i<6;i++){
for(int j=i+1;j<6;j++){
if(hargagitar[j]<hargagitar[i])
int min=hargagitar[i];
hargagitar[i]=hargagitar[j];
std::string plus=typegitar[i];
typegitar[i]=typegitar[j];
typegitar[j]=plus;
cout<<"Type : "<<typegitar[i]<<endl;
cout<<"Harga : Rp "<<hargagitar[i]<<endl;
//membuat fungsi Pop untuk mengambil nilai dari stack yang sebelumya dicek
terlebih dahulu apakah kosong atau belum
void popgitar()
if (IsEmptygitar())
else
14
{
penunjukgitar--;
void cleargitar()
penunjukgitar = -1;
cout<<"Sudah Dikosongkan!"<<endl;
void viewgitar()
if (!IsEmptygitar())
cout<<"Type : "<<item2[a].datagitar<<endl;
cout<<"Harga : "<<item2[a].harga2<<endl;
cout<<"==============================="<<endl;
else
cout<<"Data Kosong";
void datatersimpangitar()
system ("cls");
header();
15
cout<<"Status Data Baru Masuk :"<<endl<<endl;
cout<<endl<<endl;
void carigitar(){
system("cls");
string carikan;
header();
//cin>>carikan;
cin.ignore();
getline(cin,carikan);
//dinamis
if(item2[i].datagitar == carikan){
cout<<"Type = "<<item2[i].datagitar<<endl;
syrtgitar = true;
if(syrtgitar!=true){
getch();
//statis
for(int i=0;i<6;i++){
if(typegitar[i] == carikan){
cout<<"Type = "<<typegitar[i]<<endl;
16
cout<<"Harga = Rp. "<<hargagitar[i]<<endl;
syrt1gitar = true;
if(syrt1gitar!=true){
// Drum
bool IsEmptydrum()
if(penunjukdrum == -1)
return true;
else
return false;
bool IsFulldrum()
if(penunjukdrum == maxim-1)
return true;
else
return false;
//membuat fungsi Push untuk memasukkan nilai kedalam stack yang sebelumnya dicek
terlebih dahulu apakah penuh atau belum
if(IsFulldrum())
17
getch();
else
penunjukdrum++;
cin>>item3[penunjukdrum].datadrum;
cin>>item3[penunjukdrum].harga3;cout<<endl;
void sortdrum(){
//dinamis
for(int j=0;j<=penunjukdrum-1;j++){
tempHrg=item3[j].harga3;//sorting dengan
metode ascending untuk menentukan harga terendah dari drum
item3[j].harga3=item3[j+1].harga3;
item3[j+1].harga3=tempHrg;
tempTipe=item3[j].datadrum;
item3[j].datadrum=item3[j+1].datadrum;
item3[j+1].datadrum=tempTipe;
18
cout<<" Harga = Rp. "<<item3[i].harga3<<endl;
cout<<endl;
cout<<endl;
getch();
//statis
for(int i=0;i<6;i++){
for(int j=i+1;j<6;j++){
if(hargadrum[j]<hargadrum[i])
hargadrum[i]=hargadrum[j];
hargadrum[j]=min;
std::string plus=typedrum[i];
typedrum[i]=typedrum[j];
typedrum[j]=plus;
cout<<"Type : "<<typedrum[i]<<endl;
cout<<"Harga : Rp "<<hargadrum[i]<<endl;
//membuat fungsi Pop untuk mengambil nilai dari stack yang sebelumya dicek
terlebih dahulu apakah kosong atau belum
void popdrum()
if (IsEmptydrum())
19
}
else
penunjukdrum--;
void cleardrum()
penunjukdrum = -1;
cout<<"Sudah Dikosongkan!"<<endl;
void viewdrum()
if (!IsEmptydrum())
cout<<"Type : "<<item3[a].datadrum<<endl;
cout<<"Harga : "<<item3[a].harga3<<endl;
cout<<"==============================="<<endl;
else
cout<<"Data Kosong";
void datatersimpandrum()
20
system ("cls");
header();
cout<<endl<<endl;
void caridrum(){
system("cls");
string cari;
header();
//cin>>cari;
cin.ignore();
getline(cin,cari);
//dinamis
if(item3[i].datadrum == cari){
cout<<"Type = "<<item3[i].datadrum<<endl;
syrtdrum = true;
if(syrtdrum!=true){
getch();
//statis
for(int i=0;i<6;i++){
if(typedrum[i] == cari){
21
cout<<"Data Ditemukan di index no- "<<i<<endl;
cout<<"Type = "<<typedrum[i]<<endl;
syrt1drum = true;
if(syrt1drum!=true){
//
//fungsi utama
main()
int jawab;
do
system("cls");
header();
cout<<"| 6. Exit
|"<<endl;
cout<<"***************************************************************************
********************\n";
cin>>jawab;
switch(jawab)
case 1:
22
system("cls");
header();
daftarharga();
getch();
break;
case 2:
int jawabpilihan;
system("cls");
header();
cout<<"1. Keyboard"<<endl;
cout<<"2. Gitar"<<endl;
cout<<"3. Drum"<<endl;
if(jawabpilihan==1)
system("cls");
header();
cin>>limit;
pushkey(limit);//menginputkan sejumlah
data dengan formula di dalam fungsi pushkey
else if(jawabpilihan==2)
system("cls");
header();
23
cin>>limit;
pushgitar(limit);//menginputkan sejumlah
data dengan formula di dalam fungsi pushgitar
else if(jawabpilihan==3){
system("cls");
header();
cin>>limit;
pushdrum(limit);//menginputkan sejumlah
data dengan formula di dalam fungsi pushdrum
else{
getch();
getch();
break;
case 3:
int jwb,pilihan;
system("cls");
header();
cout<<"1. Keyboard"<<endl;
cout<<"2. Gitar"<<endl;
cout<<"3. Drum"<<endl;
24
if(pilihan==1){
system("cls");
header();
if(jwb==1){
else if (jwb==2){
else{
getch();
else if(pilihan==2){
system("cls");
header();
if(jwb==1){
else if (jwb==2){
25
else{
getch();
else if(pilihan==3){
system("cls");
header();
if(jwb==1){
else if (jwb==2){
else{
getch();
else{
getch();
getch();
break;
case 4:
int pilih;
26
system("cls");
header();
cout<<"1. Keyboard"<<endl;
cout<<"2. Gitar"<<endl;
cout<<"3. Drum"<<endl;
if(pilih==1){
else if(pilih==2){
else if(pilih==3){
else{
getch();
getch();
break;
case 5:
int pil;
system("cls");
header();
cout<<"1. Keyboard"<<endl;
cout<<"2. Gitar"<<endl;
cout<<"3. Drum"<<endl;
if(pil==1){
27
datatersimpankey();//menampilkan data yang dimiliki
oleh keyboard
else if(pil==2){
else if(pil==3){
else{
getch();
getch();
break;
case 6:
getch();
break;
getch();
28
2.4 PEMBAHASAN
29
3. Pilihan ketiga :
Penghapusan data
30
4. Pilihan keempat :
Pencarian data statis
31
5. Pilihan kelima :
32
Menampilkan data statis dan melakukan pengurutan data
berdasarkan harga terendah ke harga tertinggi
6. Pilihan keenam :
Keluar dari program
33
BAB III
LAMPIRAN
34
3.2 ALAMAT LINK VIDEO FINAL PROJECT
https://www.youtube.com/watch?v=C6a9cEfkg2Y
35