STRUKTUR DATA
DISUSUN OLEH :
NIM : 123180096
123180178
NAMA : MUHAMMAD AKBAR RIVALDO
MAHARDIKA RAHMAN RIZKY
KELAS/PLUG : B
NAMA ASISTEN : AGUNG NUR HIDAYAT
AYU NOVIRA SHINTA PERMATASARI
ii
HALAMAN PENGESAHAN
Disusun oleh :
Mengetahui,
Ka. Lab. Geoinformatika
iii
KATA PENGANTAR
Puji syukur saya panjatkan kepada Tuhan Yang Maha Esa yang senantiasa
mencurahkan rahmat dan hidayah-Nya sehingga saya dapat menyelesaikan praktikum Struktur
Data serta laporan proyek akhir praktikum yang berjudul Antrian Digital Printing. Adapun
laporan ini berisi tentang proyek akhir yang Saya pilih dari hasil pembelajaran selama
praktikum berlangsung.
Tidak lupa ucapan terimakasih kepada asisten dosen yang selalu membimbing dan
mengajari saya dalam melaksanakan praktikum dan dalam menyusun laporan ini. Laporan ini
masih sangat jauh dari kesempurnaan, oleh karena itu kritik serta saran yang membangun saya
harapkan untuk menyempurnakan laporan akhir ini.
Atas perhatian dari semua pihak yang membantu penulisan ini, saya ucapkan
terimakasih. Semoga laporan ini dapat dipergunakan seperlunya.
Penyusun
iv
DAFTAR ISI
Cover i
Halaman Pengesahan …………………………………………………...……. ii
Kata Pengantar ................................................................................................. iii
Daftar Isi …………………………………………………………………..…. iv
1. Judul Proyek Akhir ………………………………………………..…. 1
2. Pendahuluan ......................................................................................... 1
2.1. Latar Belakang Masalah…………………………………….... 1
2.2. Tujuan Proyek Akhir ……………………………………...…. 1
3. Pembahasan …………………………………………………………...1
3.1. Dasar Teori ......………………………………………………. 2
3.2. Deskripsi Umum Proyek Akhir………………………...…...... 2
3.3. Inti Pembahasan……….……………………………………... 2
4. Jadwal Pengerjaan dan Pembagian Tugas…...……………………… 7
5. Kesimpulan dan Saran ...............…………………………………..... 7
5.1. Kesimpulan ............................………………………………. 7
5.2. Saran .........................................…………………………….. 7
Daftar Pustaka ………………………………...……………………………... 8
v
BAB I
JUDUL PROYEK AKHIR
1
BAB II
PENDAHULUAN
1
BAB III
PEMBAHASAN
2
3.2 Deskripsi Umum Proyek Akhir
Program ini digunakan untuk memudahkan admin dalam melakukan
penginputan antrian digital printing karena dalam pengambilan antrian sudah ada input
berupa no transaksi, nama pelanggan, jenis yang akan di print serta jumlah yang akan
di print. Setelah diinputkan admin juga dapat mengedit jika antrian sudah selesai dan
hasil dari antrian tersebut dapat disimpan di file sehingga meminimalisir kesalahan
dalam rekap data.
#include <iostream>
3
#include <malloc.h>
#include <windows.h>
#include <fstream>
#include <conio.h>
#include <iomanip>
Listing 1 library
void buatqueue();
int queuekosong();
void enqueue(data IB);
void pop0();
void cetakqueue();
void buat_stack();
void stackkosong();
void push(data);
void pop();
void cetak_stack();
listing 3 deklarasi fungsi
int main(){
int pilih;char lagi;
buatqueue();
buat_stack();
data awal; do{
cout<< " ANTRIAN DIGITAL PRINTING\n";
cout<< "===========================================\n";
cout<< " MENU\n";
4
cout<< "-------------------------------------------";
cout<< "\n1. Ambil Antrian";
cout<< "\n2. Lihat Antrian";
cout<< "\n3. Hapus Antrian (Selesai Proses)";
cout<< "\n4. Log Antrian Telah Terproses";
cout<< "\n5. Hapus Arsip Antrian" ;//pop
cout<< "\n6. Hapus Arsip Log";//pop
cout<< "\n7. Exit";
cout<< "\n===========================================\n";
cout<< "Pilih : "; cin>>pilih; switch (pilih){
case 1:
system("cls");
cout<<"Antrian Ke-"<<antri<<endl;
awal.antrian = antri;
jumlah<<antri;
jumlah.close();
cout<<"Masukkan No Antrian\t: "; cin>>awal.id;
cin.ignore();
cout<<"Masukkan Nama Customer\t: "; cin.getline(awal.nama,30);
cout<<"Masukkan Tipe Print\t: "; cin.getline(awal.tp,50);
cout<<"Masukkan Jumlah order\t: "; cin>>awal.jumlah;
simpan.open("FileArsip.txt",ios::app);
simpan<<"====================================\n";
simpan<<"No antrian : "<<awal.id<<endl;
simpan<<"Nama customer : "<<awal.nama<<endl;
simpan<<"Tipe print : "<<awal.tp<<endl;
simpan<<"Jumlah order : "<<awal.jumlah<<endl;
simpan<<"====================================\n";
simpan.close();
enqueue(awal);
break;
case 2:
system("cls");
Listing 4 main()
cetakqueue();
break;
case 3:
pop0();
break;
case 4:
system("cls");
cetak_stack();
break;
case 5:
system("cls");
pop();
break;
case 6 :
pop2();
break;
default:
cout<<"\n SALAH PILIH QAMU";
break;}
5
cout<<"\nBalik Ke Menu (y/n)? "; cin>>lagi;
if (lagi == 'y'){
system("cls");}
}while(lagi == 'y' || lagi == 'Y');}
void buatqueue()
{ qdepan=(typequeue *) malloc(sizeof(typequeue));
qdepan=NULL;
qbelakang=qdepan;}
int queuekosong()
{ if(qdepan==NULL)
return(1);
else
return(0);}
void enqueue(data IB)
{ typeptr NB;
NB=(typequeue *) malloc(sizeof(typequeue));
NB->info=IB;
if (qdepan==NULL)
qdepan=NB;
else{
NB->prev=qbelakang;
qbelakang->next=NB;}
qbelakang=NB;
qbelakang->next=NULL;}
Listing 6 queue
void buat_stack()
{ typepointer NS;
NS=NULL;
awalstack=NS;
akhirstack=NS; }
int stack_kosong()
{ if(awalstack==NULL)
return(1);
else
return(0); }
void pop0(){
typeptr hapus;
if (queuekosong()){
cout << " antrian kosong !";}
else{
hapus=qdepan;
qdepan=hapus->next;
push(hapus->info);
6
free(hapus);
}}
void pop2()
{ typepointer hapus, bantu;
if (stack_kosong())
{ cout << "Arsip log sudah kosong !\n";} else
{ bantu=awalstack;
hapus=akhirstack;
if (hapus==awalstack)
awalstack=NULL;
else
{ while(bantu->next->next!=NULL)
bantu=bantu->next;
akhirstack=bantu;
akhirstack->next=NULL; }
free(hapus); }
simpan.open("log.txt");
bantu = awalstack;
while(bantu!=NULL){
simpan<<bantu->info.antrian<<endl;
simpan<<bantu->info.id<<endl;
simpan<<bantu->info.nama<<endl;
simpan<<bantu->info.tp<<endl;
simpan<<bantu->info.jumlah<<endl;
simpan<<"------------------------\n";
bantu=bantu->next; }
simpan.close();}
void cetak_stack()
{ typepointer bantu;
if(stack_kosong()){
cout<<"Stack Kosong";}
else{bantu = akhirstack;
Listing 7 stack
while(bantu!=NULL){
ofstream log;
log.open("log.txt");
7
4. Jadwal Pengerjaan dan Pembagian Tugas
a. Codingan : Mahardika (60%), Aldo (40%)
b. Laporan : Mahardika(50%), Aldo (50%)
5.1 Kesimpulan
Kesimpulan dari project akhir yang berjudul “Antrian Digital Printing” adalah sebagi
berikut:
1 Program antrian digital printing dibuat dengan bahasa C++
2 Unsur yang dipakai pada program ini adalah queue,stack.
3 Program ini dapat digunakan untuk mengetahui data serta nomer antrian pelanggan
5.2 Saran
Untuk pengembangan lebih lanjut penulis memberikan saran yang sangat bermanfaat dan
dapat membantu :
1. program antrian Digital Printing lebih ditingkatkan kualitasnya
Daftar Pustaka
https://www.kodedasar.com/belajar-cpp/
8
ii