Antrian Rapid Tes Circular Array C++ (Queue) PDF

Title Antrian Rapid Tes Circular Array C++ (Queue)
Author Ripaldi Krisnanta
Pages 20
File Size 744.2 KB
File Type PDF
Total Downloads 316
Total Views 413

Summary

PROGRAM ANTRIAN RAPID TES DI PUSKESMAS ESA UNGGUL   MENGGUNAKAN CIRCULAR ARRAY C++      UJIAN AKHIR SEMESTER  STRUKTUR DATA          Disusun Oleh:            ‐Ripaldi krisnanta Hidayat   (20190801378)            ‐Sendriyana      (20190801197)            ‐M Zen Fikri      (20190801145)            ‐Ro...


Description

PROGRAM ANTRIAN RAPID TES DI PUSKESMAS ESA UNGGUL   MENGGUNAKAN CIRCULAR ARRAY C++      UJIAN AKHIR SEMESTER  STRUKTUR DATA 

        Disusun Oleh:   

 

 

 

 

‐Ripaldi krisnanta Hidayat  

(20190801378) 

 

 

 

 

 

‐Sendriyana 

 

 

(20190801197) 

 

 

 

 

 

‐M Zen Fikri 

 

 

(20190801145) 

 

 

 

 

 

‐Roffi Fadhurrahman 

 

(20160801196) 

   

 

TEKNIK INFORMATIKA  FAKULTAS ILMU KOMPUTER  UNIVERSITAS ESA UNGGUL JAKARTA  2020 

Konsep    Dalam  dunia  teknologi  informasi,  tentu  terjadi  pengolahan  data  atau  informasi.  Pengolahan data atau informasi dibagi berdasarkan struktur dari data atau informasi tersebut.  Salah  satu  bentuk  dari  pengolahan  data  adalah  antrian  atau  queue.  Queue  dapat  dilakukan  dengan  beberapa  cara  yaitu,  dengan  Linear  Array,  Circular  Array,  disini  kami  memilih  konsep  queue  circular  array.  queue  sendiri  struktur  datanya  meniru  antrian  orang‐orang  yang  sedang  menunggu  sebuah  pelayanan,  contohnya  sekarang  ini  dunia  sedang  mengalami  pandemi  virus  covid‐19 orang‐orang berbondong bondong untuk melakukan rapid tes yang disediakan di rumah  sakit, puskesmas atau instansi Kesehatan lainnya. otomatis mereka mengantri dalam melaukan  rapid  tes  .  Jika  kita  analisa  konsep  Queue  ini  dalam  penambahannya  selalu  dari  belakang  dan  pelayanan  yang  didahulukan  selalu  dari  depan,  dengan  begitu  kita  bisa  menyimpulkan  bahwa  konsep Queue ini menggunakan konsep First In First Out (FIFO) yang pertama mengantri maka dia  duluan yang dilayani.     

TEORI DAN PEMBAHASAN    1. Pengertian Queue  Queue (Antrian) adalah suatu kumpulan data yang mana penambahan data atau elemen  hanya  dapat  dilakukan  pada  sisi  belakang  sedangkan  penghapusan  atau  pengeluaran  elemen  dilakukan pada sisi depan. queue merupakan salah satu contoh aplikasi yang cukup sering kita  temui dalam kehiduypan sehari‐hari, misalnya antrian rapid tes di puskesmas . Istilah yang cukup  sering dipakai seseorang masuk dalam sebuah antrian adalah enqueue. Dalam suatu antrian, yang  dating terlebih dahulu akan dilayani lebih dahulu. Istilah yang sering dipakai bila seseorang keluar  dari antrian adalah dequeue. Walaupun berbeda implementasi, struktur data queue setidaknya  harus memiliki operasi‐operasi sebagai berikut :              

EnQueue Memasukkan data ke dalam antrian  DeQueue Mengeluarkan data terdepan dari antrian  Clear Menghapus seluruh antrian  IsEmpty Memeriksa apakah antrian kosong  IsFull Memeriksa apakah antrian penuh 

2. Implementasi Queue dengan Linear Array     Linear array adalah suatu array yang seakan‐akan dibuat menjadi suatu garis lurus dengan  satu pintu masuk dan satu pintu keluar. Berikut ini diberikan contoh deklarasi kelas queue Linear  sebagai  implementasi  dari  queue  menggunakan  linear  array.  Dalam  prakteknya,  dapat  diganti  sesuai dengan kebutuhan. Data diakses dengan field data, dan indeks item pertama dan terakhir  disimpan dalam field head dan tail. Konstruktor akan menginisialisasikan nilai dari head dan tail  dengan ‐1 untuk menunjukkan bahwa antrian masih kosong dan mengalokasikan data sebanyak  MAX_QUEUE  yang  ditunjuk  oleh  data.  Destruktor  akan  mengosongkan  antrian  kembali  dan  mendealokasikan memori yang digunakan oleh antrian.  Operasi‐Operasi Queue dengan Linear Array  • IsEmpty  Fungsi IsEmpty berguna untuk mengecek apakah queue masih kosong atau sudah berisi  data. hal ini dilakukan dengan mengecek apakah tail bernilai ‐1 atau tidak. Nilai ‐1 menandakan  bahwa queue masih kosong.  • IsFull  Fungsi  IsFull  berguna  untuk  mengecek  apakah  queue  sudah  penuh  atau  masih  bias  menampung data dengan cara mengecek apakah nilai tail sudah sama dengan jumlah maksimal  queue. Jika nilai keduanya sama, berarti queue sudah penuh.  • EnQueue  Fungsi EnQueue berguna untuk memasukkan sebuah elemen dalam queue.  • DeQueue  Fungsi DeQueue berguna untuk mengambil sebuah elemen dari queue. Operasi ini sering  disebut juga serve. Hal ini dilakukan dengan cara memindahkan sejauh satu langkah ke posisi di  depannya  sehingga  otomatis  elemen  yang  paling  depan  akan  tertimpa  dengan  elemen  yang  terletak di belakangnya.  • Clear  Fungsi  Clear  berguna  untuk  menghapus  semua  lemen  dalam  queue  dengan  jalan  mengeluarkan semua elemen tersebut satu per satu hingga queue kosong dengan memanfaatkan  fungsi DEQueue.    3. Implementasi Queue dengan Circular Array  Circular array adalah suatu array yang dibuat seakan‐akan merupakan sebuah lingkaran  dengan titik awal (head) dan titik akhir (tail) saling bersebelahan jika array tersebut masih kosong.  Posisi  head  dan  tail  pada  gambar  diatas  adalah  bebas  asalkan  saling  bersebelahan.  Berikut  ini  diberikan deklarasi kelas Queue Circular sebagai implementasi circular array. Dalam prakteknya,  Anda  dapat  menggantikanny  sesuai  dengan  kebutuhan  Anda.  Data  diakses  dengan  field  data, 

sedangkan indeks itemn pertama dan terakhir disimpan dalam field Head dan Tail. Konstruktor  akan menginisialisasi nilai Head dan Tail dengan 0 dan MAX‐QUEUE‐1 untuk menunjukkan bahwa  antrian masih kosong dan mengalokasikan data sebanyak MAX‐QUEUE yang ditunjuk oleh Data.  destruktor akan mengosongkan antrian kembali dan mendealokasikan memori yang digunakan  oleh antrian.       Operasi‐Operasi Queue dengan Circular Array :  • IsEmpty  Fungsi IsEmpty berguna untuk mengecek apakah Queue masih kosong atau sudah berisi.  Hal ini dilakukan dengan mengecek apakah tail masih terletak bersebelahan dengan head dan tail  lebih besar dari head atau tidak. Jika benar, maka queue masih kosong.  • IsFull  Fungsi  IsFull  berguna  untuk  mengecek  apakah  queue  sudah  penuh  atau  masih  bias  menampung  data  dengan  cara  mengecek  apakah  tempat  yang  masih  kosong  tinggal  satu  atau  tidak  (untuk  membedakan  dengan  empty  dimana  semua  tempat  kosong).  Jika  benar  berarti  queue penuh.  • EnQueue  Fungsi  EnQueue  berguna  untuk  memasukkan  sebuah  elemen  ke  dalam  queue  tail  dan  head mula‐mula bernilai nol (0).  • DeQueue  DeQueue berguna untuk mengambil sebuah elemen dari queue. Hal ini dilakukan dengan  cara memindahkan posisi head satu langkah ke belakang.  Sumber:   https://elib.unikom.ac.id/files/disk1/468/jbptunikompp‐gdl‐fitridiani‐23353‐9‐pertemua‐9.pdf  http://blognyonyait.blogspot.com/2017/05/makalah‐sistem‐antrian‐queue‐dengan.htmlmodul  struktur‐data queue kelas online esa unggul             

STUDI KASUS    Antrian  merupakan  kejadian  yang  dapat  kita  ditemui  di  berbagai  tempat  yang  memberikan pelayanan kepada masyarakat diantaranya seperti studi kasus kami antrian dalam  melakukan  rapid  tes  covid  19.  Proses  mengantri  merupakan  hal  yang  membosankan  bagi  masyarakat  kita  karena  berbagai  hal,  antara  lain  proses  mengatri  yang  panjang,  ruang  tempat  menunggu antrian kurang nyaman dan sistem antrian yang kurang bisa memberikan pengaturan  antrian terhadap masyarakat.  Teori Antrian merupakan teori yang menyangkut studi matematis dari antrian‐antrian dan  barisbaris penengguan, yang formasinya merupakan suatu fenomena biasa yang terjadi apabila  kebutuhan  suatu  pelayanan  melebihi  kapasitas  yang  tersedia  untuk  menyelenggarakan  pelayanan. Sebuah system pelayanan yang mencakup fasilitas  pelayanan yang  terdiri dari satu  atau lebih pelayan, yang akan memberikan jenisjenis pelayanan khusus kepada pelanggan yang  datang  pada  fasilitas  pelayanan  tersebut.  Dalam  kasus  ini,  Sebuah  puskesmas  Esa  unggul  mengadakan rapid tes covid 19 massal. Namun, karena banyaknya orang yang ingin melakukan  rapid tes covid 19 di puskesmas Esa unggul  tersebut menimbulkan suatu masalah karena para  orang‐orang  yang  ingin  melakukan  rapid  tes  covid  19  harus  menghadapi  antrian  yang  panjang  ketika akan melakukan tes nya kebagian teller rekam medis .   Oleh karena itu, kelompok kami mencoba membuat sebuah program  aplikasi sistem antrian  yang memiliki fitur pemanggil nomor antrian berdasarkan nomor antrian yang mendapat giliran  untuk  dilayani.  Dengan  menggunakan  sistem  antrian  berbasis  Bahasa  pemrograman  c++  ,  pengguna akan dimudahkan dalam melakukan penambahan nama pasien dan dan umur pasien.  Aplikasi yang dibuat dapat menyesuaikan jumlah pasien rapid tes yang disediakan jika sewaktu‐ waktu dibutuhkan.                       

FLOWCHART DAN ALGORITMA       

start

   

Register

   

Menunggu 

Antrian

   

Rapid Tes 

   

End

                              

 

pengantri register dulu  setelah register pengantri pertama dapat tempat paling depan  pengantri selanjutnya berada dibelakangnya  setelah proses pengantri pertama selesai, antrian setelahnya maju  sehingga terdapat tempat kosong (paling belakang) untuk pengantri baru 

PROGRAM DAN PENJELASAN    1. Program ini di buat dengan tipe data String, integer,boolean dengan variable nama,umur dan meng inisilisasikan dengan constructor dan dibuat dengan struct supaya lebih efisien

2. Dan disini kami menginisilisasikan variable yang ingin dipakai

bool isEmpty = true; // penanda apakah antrian sedang kosong bool isFull = false; // penanda apakah antrian sudah penuh bool isOver = false; // penanda bahwa program selesai atau tidak

3. Membuat Fungsi utama

4. Program ini menggunakan dengan 7 prosedur

-void buatAntrian() = mengisi antrian kosong sebanyak MAX_ANTRIAN dengan variabel kontrol -void tampilkanMenu() = menampilkan menu yang ada -void eksekusiPilihan() = mengambil pilihan dari user dan eksekusi pilihan tersebut -void tambahAntrian() = menambah antrian paling belakang -void kurangiAntrian() = mengurangi antrian paling depan dan menampilkan orang yang keluar dari antrian -void printAntrian() = menampilkan seluruh antrian yang ada -void printOrang() = menampilkan data satu orang saja 5. untuk fungsi buatAntrian(), mengisi data awal untuk antrian data “null” untuk nama dan -1 untuk umur. Antrian dikatakan kosong apabila nama =”null” dan umur = 1

6. untuk prosedur tampilkanMenu(), dibuat pilihan, jika 1 untuk tambah antrian, jika 2 untuk kurangi antrian, jika 3 untuk menampilkan data antrian dan jika 4 untuk keluar dari program

7. untuk prosedur eksekusi Pilihan(), prosedur ini yang menjalankan hasil dari pilihan tampilkanMenu(). Dan pada pilihan ini ditambahkan submenu print semua atau satu saja.

8. untuk prosedur tambahAntrian(), untuk tambah antrian. syaratnya antrian yang ditambahkan pada antrian terakhir, jika antrian penuh akan ditampilkan peringatan.  diatur perulangan untuk memeriksa apakah ada antrian yang kosong jika ada antrian yang kosong, maka data bisa dimasukkan jika tidak ada yang kosong, maka tampilkan antrian penuh

9. untuk prosedur kurangiAntrian(), antrian yang dikurangi yaitu antrian terdepan, dan setelah antrian dikurangi, antrian yang dibelakangnya maju ke depan. Dan untuk mengurangi pengantri pertama, lalu antrian stelahnya maju

10. untuk prosedur printAntrian(), semua data antrian di print

11. untuk prosedur printOrang() menampilknanya hanya satu orang, dan menggunakan looping juga.

Full Souce Code    #include   #include   #include   #include   using namespace std;  const int MAX_ANTRIAN = 5;  struct orang  {      string nama;      int umur;  };    void buatAntrian(); // mengisi antrian kosong sebanyak MAX_ANTRIAN dengan variabel kontrol  void tampilkanMenu(); // menampilkan menu yang ada  void eksekusiPilihan(); // mengambil pilihan dari user dan eksekusi pilihan tersebut  void tambahAntrian(); // menambah antrian paling belakang  void kurangiAntrian(); // mengurangi antrian paling depan dan menampilkan orang yang keluar dari  antrian  void printAntrian(); // menampilkan seluruh antrian yang ada  void printOrang(); // menampilkan data satu orang saja 

//inisisalisasi variabel yang akan dipakai  orang antrian[MAX_ANTRIAN];  int tes, Korona, antri;  bool isEmpty = true;  bool isFull = false;  bool isOver = false;  int main()  {      buatAntrian();      while(!isOver)      {          tampilkanMenu();          eksekusiPilihan();      }      system("pause");      return 0;  }      //mengisi data awal dari antrian  void buatAntrian()  {      int i;      for(i=0; i...


Similar Free PDFs