Program Queue Linked List Pada Antrian Kereta Api
Friday, April 18, 2014
Add Comment
Algoritma
1. Mulai
2. Mendeklarasikan header program
4. Deklarasi struktur untuk node linked list
5. Deklarasi fungsi inisialisasi queue linked list
6. Deklarasi fungsi isempty
7. Deklarasi fungsi push untuk menambah data
8. Deklarasi fungsi dequeue
9. Deklarasi fungsi printqueue
10. Deklarasi fungsi clear untuk menghapus semua node
11. Deklarasi fungsi masukmenu
12. Deklarasi fungsi utama
13. Selesai
Deskripsi
1. Headernya menggunakan iostream, stdlib, dan conio
2. Node linked list dideklarasikan lewat struktur Tnode
3. Fungsi isempty untuk mengecek apakah linked list antrian kereta api kosong
4. Fungsi init untuk menginisialisasi node linked list antrian kereta api agar awalnya NULL
5. Fungsi push untuk menambah data pada linked list antrian kereta api
6. Fungsi dequeue untuk mengeluarkan data yang pertama dimasukkan pada linked list
7. Fungsi printqueue untuk menampilkan data pada linked list antrian kereta api
8. Fungsi clear untuk menghapus linked list antrian kereta api
Script Program
#include<iostream>l
#include<stdio.h>
#include<conio.h>
#include<stdlib.h>
#include<ctype.h>
using namespace std;
//struct node
struct Node{
int data;
Node *next;
};
Node *head, *tail;
//fungsi
void menu();
void LinkedList();
void penutup();
void inisialisasi();
void insertData();
void removeData();
void bersih();
void tampil();
//pemanggilan fungsi
//fungsi utama
int main(){
char MENU;
int ulangMetode = 1;
do
{
printf("||=======================================================================||\n");
printf("|| MODUL VI - LINKED LIS ||\n");
printf("|| TUGAS RUMAH ||\n");
printf("||= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =||\n");
printf("|| PROGRAM ANTRIAN KEBERANGKATAN KERETA API ||\n");
printf("||_______________________________________________________________________||\n");
printf("||_______________________________________________________________________||\n");
printf("|| - - - - - - - - - - - - - - - - - - - - - - ||\n");
printf("|| - - - - - - - - - - - ||\n");
printf("|| - - - - - - - - - - - - - - - - - - - - - ||\n");
printf("|| - - - - - - - - - - - - ||\n");
printf("|| - - - - - - - - - - - - - - - - ||\n");
printf("||=======================================================================||\n");
//menu pilihan
cout<<"||+++++++++++++++++++++++++++++++++++||\n";
cout<<"||*** MENU UTAMA ***||\n";
cout<<"||-----------------------------------||\n";
cout<<"|| 1. Pendaftaran Kereta Api Rosie ||\n";
cout<<"|| 2. Exit ||\n";
cout<<"||+++++++++++++++++++++++++++++++++++||\n";
cout<<endl;
printf("Masukkan Pilihan Anda ?: ");
MENU = getche();
printf("\n");
getch();
system("cls");
switch(MENU)
{
case '1' :
LinkedList();
break;
case '2' :
penutup();
break;
default :
{
puts("\nKode yang dimasukkan salah!\n");
puts("Press any key for back to the menu");
getch();
}
break;
}
}
while(ulangMetode == 1);
}
//menu dari metode
void menu()
{
cout<<"||+++++++++++++++++++++++++++++++++++++++++++||\n";
cout<<"|| ***** PILIHAN MENU ***** ||\n";
cout<<"||-------------------------------------------||\n";
cout<<"|| 1. Daftar Antrian Kereta Api<KODE KERETA> ||\n";
cout<<"|| 2. Keberangkatan ||\n";
cout<<"|| 3. Memberangkatkan Semua Antrian ||\n";
cout<<"|| 4. Lihat Daftar Antrian Kereta ||\n";
cout<<"|| 5. Exit ||\n";
cout<<"||+++++++++++++++++++++++++++++++++++++++++++||\n";
cout<<endl;
}
//metode linked list
void LinkedList()
{
char pilihMenu;
int ulang = 1;
do
{
menu();
printf("Input Menu : ");
pilihMenu = getche();
printf("\n");
switch(pilihMenu)
{
case '1' :
insertData();
break;
case '2' :
removeData();
break;
case '3' :
bersih();
break;
case '4' :
tampil();
break;
case '5' :
penutup();
break;
default :
{
puts("Input menu salah!\n");
puts("Press any key for back to the menu");
getch();
}
break;
}
}
while(ulang == 1);
}
/*fungsi insialisasi bahwa
head dan tail bernilai NULL*/
void inisialisasi()
{
head = NULL;
tail = NULL;
}
//fungsi untuk memasukkan data
void insertData()
{
int angka;
Node *nodeBaru;
nodeBaru = new Node;
cout<<"Masukkan Data : ";
cin>>angka;
nodeBaru->data = angka;
nodeBaru->next = NULL;
if(tail == NULL)
{
head = tail = nodeBaru;
tail->next = NULL;
}
else
{
tail->next = nodeBaru;
tail = nodeBaru;
}
printf("Data %i masuk!\n\n", angka);
puts("Press any key for back to the menu");
getch();
system("cls");
}
/*untuk hapus elemen belakang
untuk metode LIFO*/
void removeData()
{
int elDel;
Node *del, *prevTail;
del = new Node;
if(tail != NULL)
{
del = tail;
elDel = del->data;
if(tail == head)
{
inisialisasi();
}
else
{
prevTail = head;
while(prevTail->next != tail)
prevTail = prevTail->next;
tail = prevTail;
tail->next = NULL;
}
delete del;
printf("Data %i Diberangkatkan!\n\n", elDel);
}
else
{
puts("Data Kosong! Tidak ada data yang dapat diberangkatkan!\n");
}
puts("Press any key for back to the menu");
getch();
system("cls");
}
//untuk hapus semua elemen
void bersih()
{
Node *clear, *point;
if(tail != NULL)
{
point = head;
while(point != NULL)
{
clear = point;
point = point->next;
delete clear;
}
inisialisasi();
puts("Semua Data Diberangkatkan!\n");
}
else
puts("Data Masih Kosong!\n");
puts("Press any key for back to the menu");
getch();
system("cls");
}
//untuk menampilkan list data
void tampil()
{
Node *see;
see = head;
if(tail != NULL)
{
puts("Daftar Data Antrian Kereta Api Rosie :");
puts("");
while(see != NULL)
{
printf("%i ", see->data);
see = see->next;
}
puts("\n");
}
else
puts("Data masih dalam keadaan kosong!\n");
puts("Press any key for back to the menu");
getch();
system("cls");
}
//fungsi penutup / keluar
void penutup()
{
cout<<"\n\tPROGRAM EXIT"<<endl;
cout<<"\n\tDANKE ^___^ "<<endl;
exit(0);
}
0 Response to "Program Queue Linked List Pada Antrian Kereta Api "
Post a Comment