Program Queue (Antrian) Keberangkatan pesawat

Program Queue (Antrian) Keberangkatan pesawat

Pada tugas kali ini saya diminta untuk membuat suatu program bebas dan saya akan membuat program yang berjudul Antrian keberangkatan Kereta Api. Dalam program ini metode yang akan digunakan adalah dengan struktur data, array dan queue(antrian) yang dibuat dengan bahasa c++. Sedikit mengenai metode yang akan digunakan pertama mengenai struktur data. Struktur data adalah cara menyimpan atau merepresentasikan data didalam komputer agar bisa dipakai secara efisien. Lalu Array adalah sebuah struktur data yang terdiri atas banyak variabel dengan tipe data sama, dimana masing-masing elemen variabel mempunyai nilai indeks. Sedangkan queue atau antrian sekumpulan data yang jika ada data baru yang ditambahkan, maka data tersebut akan berada di bagian belakang antrian Jika ada data yang harus dihapus atau keluar dari antrian, maka data yang keluar adalah data yang berada di sisi depan antrian. Atau konsep ini sering juga disebut dengan konsep FIFO (First In First Out).

Berikut Screenshotnya :

Contoh Insert Data
#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
 {
    cout<<"|| Rofiq Nur Ikhsan    ||\n";
    cout<<"|| A710170023 / PTI-A  ||\n";
    cout<<"___________________________\n";
    cout<<endl;cout<<endl;cout<<endl;
    cout<<"||= = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = =||\n";
    cout<<"||              PROGRAM ANTRIAN KEBERANGKATAN PESAWAT                    ||\n";
    cout<<"||_______________________________________________________________________||\n";
    cout<<"||_______________________________________________________________________||\n";
    cout<<"||+++++++++++++++++++++++++++++++++++++++||\n";
    cout<<"||***            MENU UTAMA           ***||\n";
    cout<<"||---------------------------------------||\n";
    cout<<"|| 1. Pendaftaran pesawat lion air       ||\n";
    cout<<"|| 2. Exit                               ||\n";
    cout<<"||+++++++++++++++++++++++++++++++++++++++||\n";
    cout<<endl;

  cout<<"Masukkan Pilihan Anda ?: ";cin>>MENU;
     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 pesawat<KODE PESAWAT>   ||\n";
 cout<<"|| 2. Keberangkatan                          ||\n";
 cout<<"|| 3. Memberangkatkan Semua Antrian          ||\n";
 cout<<"|| 4. Lihat Daftar Antrian pesawat           ||\n";
 cout<<"|| 5. Exit                                   ||\n";
    cout<<"||+++++++++++++++++++++++++++++++++++++++++++||\n";
 cout<<endl;
}

//metode linked list
void LinkedList()
{
 char pilihMenu;
 int ulang = 1;

 do
 {
  menu();
  cout<<"Input Menu  : ";
  cin>>pilihMenu;
  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 Kode pesawat : ";
 cin>>angka;

 nodeBaru->data = angka;
 nodeBaru->next = NULL;

 if(tail == NULL)
 {
  head = tail = nodeBaru;
  tail->next = NULL;
 }
 else
 {
  tail->next = nodeBaru;
  tail = nodeBaru;
 }

 printf("pesawat %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("pesawat %i Diberangkatkan!\n\n", elDel);
 }
 else
 {
  puts("Data Kode pesawat Kosong! Tidak ada pesawat 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 Pesawat Diberangkatkan!\n");
 }
 else
  puts("Kode pesawat 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 pesawat lion air :");
  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\tTERIMA KASIH"<<endl;
    exit(0);
}

referensi : https://www.esokharinanti.com/2014/04/program-queue-linked-list-pada-antrian.html


Related Posts