LAPORAN PRAKTIKUM IV QUEUE Disusun untuk Memenuhi Matakuliah Praktikum Algoritma dan Struktur Data Dibimbing oleh Ibu Triyanna Widyaningtyas
Oleh: MUHAMMAD BAKHRUR RIZKI 150533604505 S1 PTI-C /2015
UNIVERSITAS NEGERI MALANG FAKULTAS TEKNIK JURUSAN TEKNIK ELEKTRO PRODI S1 PENDIDIKAN TEKNIK INFORMATIKA April 2016
A.
TUJUAN 1.
Mahasiswa mampu menjelaskan pengertian queue dan dequeue
2.
Mahasiswa mampu menjelaskan dan menunjukkan cara pembuatan queue, operasi push dan pop pada array
3.
Mahasiswa mampu menjelaskan dan menunjukkan program dengan ADT (Abstract Data Type) queue dan dequeue dengan array Latihan Praktikum I Pemrograman C++
Nama Program
: Single Stack
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
#include <stdio.h> #include
#include <stdlib.h> #define max 10 using namespace std; int antrian[1000]; int head=0,tail=0,cur=0; bool full(); bool empty(); int push(int data); int pop(); int print(); int main() { int pilihan,data; do{ system("cls"); printf("\n--------MENU--------\n"); printf("1. puh data ke antrian\n"); printf("2. pop data dari antrian\n"); printf("3. print data di antrian\n"); printf("4. exit\n\n"); printf("tentukan pilihan mu : "); scanf("%d",&pilihan); switch(pilihan){ case 1: if(!full()){ printf("------PUSH DATA------\n"); printf("masukkan data : "); scanf("%d",&data);
push(data); } else{ printf("antrian penuh !!!\n"); getch(); } break; case 2: if(!empty()){ printf("------POP DATA------\n"); printf("data yang dihapus : %d\n",pop()); getch(); } else{ printf("antrian kosong !!!\n"); getch(); } break; case 3: printf("DATA ANTRIAN : \n"); print(); break; case 4: printf("Keluar....\n"); break; default : printf("PILIHAN TIDAK ADA !!!\n"); getch(); break; } }while(pilihan !=4); getch(); } bool full(){ return (cur >= max) ? true : false; } bool empty(){ return (cur == 0) ? true : false; } int push(int data){ antrian[tail]=data; tail++; cur++; } int pop(){ int data = antrian[head]; head++; cur--; return data; getch(); } int print(){
for(int i = head; i
Output Program
:
Algoritma
:
1.
Mulai
2.
Deklarasi variabel global
3.
Deklarasi Fungsi full
4.
Deklarasi Fungsi empty
5.
Deklarasi Fungsi psuh
6.
Deklarasi Fungsi pop
7.
Deklarasi Fungsi print
8.
Masuk menu utama
9.
Deklarasi variabel
10. Masuk proses do while 11. Masuk proses switch case 12. selesai Penjelasan Program
:
Program di atas digunakan untuk membuat suatu program antrian, dimana di dalam program terdapat menu untuk memasukkan data kedalam antrian yang didalamnya nanti ada proses pemanggilan fungsi push, mengeluarkan data dari antrian yang didalamnya nanti ada proses pemanggilan fungsi pop, print data dari antrian yang didalamnya nanti ada proses pemanggilan fungsi print, dan menu untuk keluar dari program. Tugas Praktikum I Pemrograman C++ Nama Program
: Program Bank
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
#include #include #include <windows.h> #define max 10 int antrian[100]; int depan=0,belakang=0,posisi=0; bool full(){ return (posisi >= max) ? true : false; } bool empty(){ return (posisi == 0) ? true : false; } int push(int data){ antrian[belakang]=data; belakang++; posisi++; } int pop(){ int data = antrian[depan]; depan++; posisi--; return data;
getch(); } int print(){ for(int i = depan; i>a; cout<<"ÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ\n"; system("cls"); switch(a){ case 1: tanda2: int b; cout<<"ÉÉÉÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ¼¼¼"<<endl; cout<<"ºººº MENU UNTUK NASABAH ºººº\n"; cout<<"ÈÈÈÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ¼¼¼"<<endl<<endl; cout<<"1. Masukkan No Nasabah kedalam Antrian\n"; cout<<"2. Lihat No Nasabah dari Antrian\n"; cout<<"3. Keluar Dari menu Nasabah\n"; cout<<"Masukkan Pilihan anda : "; cin>>b; system("cls"); switch(b){ case 1: if(!full()){ cout<<"Masukkan No Nasabah Kedalam Antrian : "; cin>>data; push(data); } else{ cout<<"Maaf Antrian Sudah Penuh"; getch(); } system("cls"); goto tanda2; case 2: cout<<"Lihat No Nasabah dari Antrian\n";
print(); getch(); system("cls"); goto tanda2; case 3: goto tanda1; default: cout<<"®®®®®®®®®®®®®®®®®®®®®®®®®®®®¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ "< <endl; cout<<"®®®® Pilihan Anda Tidak Teridentifikasi Oleh Program ¯ ¯ ¯ ¯ \n"; cout<<"®®®® Tekan Sembarang Tombol Untuk Kembali Ke Menu ¯ ¯ ¯ ¯ \n"; cout<<"®®®®®®®®®®®®®®®®®®®®®®®®®®®®¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ "< <endl; getch(); system ("cls"); goto tanda2; } case 2: tanda3: int c; cout<<"ÉÉÉÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ¼¼¼"<<endl; cout<<"ºººº MENU UNTUK TELLER ºººº\n"; cout<<"ÈÈÈÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ¼¼¼"<<endl<<endl; cout<<"1. Hapus No Nasabah kedalam Antrian\n"; cout<<"2. Lihat No Nasabah dari Antrian\n"; cout<<"3. Keluar dari Menu Teller\n"; cout<<"Masukkan Pilihan anda : "; cin>>c; system("cls"); switch(c){ case 1: if(!empty()){ cout<<"Menghapus No Nasabah Kedalam Antrian\n"; cout<<"No Nasabah yang dihapus : "; cout<<pop(); getch(); } else{ cout<<"Antrian Sudah Kosong\n"; getch(); } system("cls"); goto tanda3; case 2: cout<<"Lihat No Nasabah dari Antrian\n"; print(); getch(); system("cls"); goto tanda3; case 3:
goto tanda1; default: cout<<"®®®®®®®®®®®®®®®®®®®®®®®®®®®®¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ "< <endl; cout<<"®®®® Pilihan Anda Tidak Teridentifikasi Oleh Program ¯ ¯ ¯ ¯ \n"; cout<<"®®®® Tekan Sembarang Tombol Untuk Kembali Ke Menu ¯ ¯ ¯ ¯ \n"; cout<<"®®®®®®®®®®®®®®®®®®®®®®®®®®®®¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ "< <endl; getch(); system ("cls"); goto tanda3; } case 3: cout<<"ÉÉÉÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ¼¼¼"<<endl; cout<<"ºººº TERIMAKASI TELAH MENGGUNAKAN PROGRAM KAMI ºººº\n"; cout<<"ºººº CREATE BY MUHAMMAD BAKHRUR RIZKI ºººº\n"; cout<<"ÈÈÈÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍͼ¼¼¼"<<endl; getch(); return(0); default: cout<<"®®®®®®®®®®®®®®®®®®®®®®®®®®®®¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ "< <endl; cout<<"®®®® Pilihan Anda Tidak Teridentifikasi Oleh Program ¯ ¯ ¯ ¯ \n"; cout<<"®®®® Tekan Sembarang Tombol Untuk Kembali Ke Menu ¯ ¯ ¯ ¯ \n"; cout<<"®®®®®®®®®®®®®®®®®®®®®®®®®®®®¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ "< <endl; getch(); system ("cls"); goto tanda1; } }
Output Program
:
Algoritma
:
1.
Mulai
2.
Deklarasi variable gelobal
3.
Deklarasi fungsi full
4.
Deklarasi fungsi empty
5.
Deklarasi fungsi push
6.
Deklarasi fungsi pop
7.
Deklarasi fungsi print
8.
Masuk menu utama main
9.
Buat tanda1
10. Deklarasi variabel 11. Masuk menu switch case 12. Selesai Penjelasan Program
:
Program di atas digunakan untuk membuat suatu program bank yang digunakan untuk menu Nasabah dan Teller, dengan menggunakan fungsi Queue, di dalam program terdapat menu utama yang didalamnya terdapat menu nasabah dan teller, di menu nasabah terdapat proses penambahan no nasabah kedalam antrian, dan terdapat proses melihat no nasabah dari antrian, di menu teller terdapat proses hapus no nasabah di dalam antrian, dan proses melihat no nasabah dari antrian. Tugas Rumah Pemrograman C++ Nama Program
: Menghitung Waktu Antrian
Bahasa Pemrogramam
: C++
Compiler
: MinGW Developer Studio
Script program
:
Output Program
:
Algoritma
:
1.
Mulai
2.
Deklarasi variabel
3.
Proses perulangan
4.
Input waktu periksa per pasien
5.
Input no antrian anda
6.
Proses perulangan
7.
Proses perhitungan waktu tunggu
8.
Output waktu tunggu dari no antrian anda
Penjelasan Program
:
Program di atas digunakan untuk membuat suatu program menghitung waktu antrian yang digunakan untuk menghitung waktu tunggu anda dari antrian, pada program ini data dari sebuah antrian dimasukkan kedalam array, lalu data tersebut ditampilkan menggunakan proses perulangan, setelah itu terdapat proses input waktu periksa per pasien dan input no urut anda dari antrian, lalu menampilkan no antrian sebelum anda dengan menggunakan proses perulangan, setelah itu program akan masuk ke proses perhitungan waktu tunggu, dan menampilkan waktu tunggu anda dari antrian. KESIMPULAN Queue atau antrian adalah suatu kumpulan data yang penambahan elemennya hanya bisa dilakukan pada suatu ujung (disebut dengan sisi belakang atau rear), dan penghapusan atau pengambilan elemen dilakukan lewat ujung yang lain (disebut dengan sisi depan atau front). Kalau tumpukan dikenal dengan menggunakan prinsip LIFO (Last In First Out), maka pada antrian prinsip yang digunakan adalah FIFO (First In First Out). Queue atau antrian bisa diimplementasikan dengan menggunakan array atau menggunakan pointer. DAFTAR RUJUKAN 1.
Tim Asisten Dosen. 2016. Modul 1 Struct, Array, Pointer. Malang: Universitas Negeri Malang.
2.
Tim Asisten Dosen. 2016. Modul 2 Sorting (pengurutan). Malang: Universitas Negeri Malang.
3.
Tim Asisten Dosen. 2016. Modul 3 Searching. Malang: Universitas Negeri Malang.
4.
Tim Asisten Dosen. 2016. Modul 4 Strack (Tumpukan). Malang: Unversitas Negeri Malang.
5.
Tim Asisten Dosen. 2016. Modul 5 Queue (Antrian). Malang: Unversitas Negeri Malang.