ALGO PART 2 #QUEUE ( DIKI WAHYU NUGRAHA - 1154059 - D4 TI 1B )

22:58 Pemrograman Web 0 Comments



500 KATA :

ANALISA TENTANG QUEUE

Queue bisa disebut dalam Bahasa indonesianya adalah ( antrian ) ini adalah suatu ataupun sebuah data yang dimananya penambahan data / elemen yang dapat dilakukan dari sisi belakang sedangkan penghapusannya / pengeluarannya dilakukan pada elemen sisi depan .

Jenis struktur pendataan antrian yang kita sering gunakan untuk menimulasikan dalam keadaan nyata guys , antrian atau gue nyebutnya sih antrean hahaha banyak kita jumpai setiap harinya misalnya kita antrian di bank bri , pendaftaran mahasiswa , tiket kereta api guys itu sering banget bahkan tiap detik .
Berbeda dengan stack guys antrean adalah FIFO ( First In First Out ) dengan penggunaan kata lain urutan keluar suatu elemen akan sama dengan suatu pengurutan pemasukannya

Sekarang saya sendiri akan menjelaskan fungsi dari codingan yang saya buat dan saya kerjakan berikut inilah contoh dan fungsinya guys kalian bisa nyimak , bisa baca , bisa mengikutinya guys :

Pertama nih mengenai include , include ini adalah relasi use case guys penambahan dimana si use case memerlukan use case ini supaya menjalankan fungsinya
Char adalah sebuah angka atau digit-digit sebagai persatuan data
Void adalah sebuah fungsi ( function’s) yang berada dalam sebuah perbahasaan pemrogramannya C entahlah C++ baru tau ini ketika gue masuk kuliah guys hehe harap maklum fungsi inipun bisa disebut dengan prosedur
Printf nih yang bikin gue bingung waktu make ini syntax fungsinya itu simple guys Cuma menampilkan ga kurang ga lebih minimal bilangan dari 45 sepanjang 7 karakter dan 20 karakter guys .. mudah diingat juga
Case sendiri ialah ( Computer’s Aided Software Engineering ) fungsi case tersendiri ialah yang mampu menyelesaikan proses tentang analisa / analisisnya pemrograman
Create ialah untuk membuat atau menciptakan Queue dengan alhasil membuat Head and Tail
IsEmpty ini guys berfungsi untuk cek atau meriksa apakah didalam antrian tersebut sudah penuh atau belum , dengan cara ini guys aka nada pemeriksaan nilai tail , apabila jika nilai tail nya 1 maka kosong ( empty guys )
Kita tidak memeriksa kepala ya guys dalam berbahasa inggris sebut saja dia ( head ) ialah sebuah tanda dalam dari kepala antrian ( elemen yang pertama kali muncul didalam antrian ) yang tidak akan pernah berubah-ubah masanya.
IsFull ini berfungsi untuk memeriksa apabila antriannya sudah full atau belum full dengan cara kita mengecek jika tail itu = MAX-1 berarti si MAX-1 tersebut sudah penuh alias full
Enqueue ( datanya queue ) berfungsi menambahkan sebuah element kedalam antrian , penambahan element tersebut selalu dan selalu ditambahkan di element yang paling belakang guys , jadi jika element tersebut sudah singgah di datanya maka element baru akan antri di element yang sudah singgah di dalam datanya . penambahannya selalu menggerakan atau mengkontrol suatu variable tail dengan caranya increment counter’s tail.
Dan Dequeue ialah berfungsi untuk menghapuskan suatu elemen paling depan/utama dari suatu antrian dengan caranya tersebut mengurangi counter’s tail dan menggeser ( memindahkan ) semua element antrian terdepan , pergeseran tersebut dilakukan dengan cara menggunakan looping ( perulangan ) perulangan memang selalu dan harus digunakan guys .
Clear tersebut untuk menghapus element-element antrian dengan caranya membuat atau create tail and head = dari min -1 , penghapusan atau ( delete ) antrian sebenarnya tidak menghapus array , akan tetapi mengeset indeks dalam pengaksesan-nya
Terakhir Tampil , berfungsi untuk menampilkan suatu nilai-nilai dari element antrian sama hal nya dengan menggunakan looping .

Sekian analisa yang saya buat semoga bermanfaat , ikutin terus channel youtube nya yaa guys Jangan lupa like , comment , and subscribe juga .. sekian dari saya semoga apa yang saya kerjakan ini bermanfaat buat kalian semua terutama buat diri saya sendiri hehe

Assalamu’alaikum wr.wb

Created by : Diki Wahyu Nugraha | 1154059 | D4 TEKNIK INFORMATIKA 1B

CODING QUEUE :
//header file
# include <stdio.h>
# include <conio.h>
# include <stdlib.h>
# include <string.h>
# define QSIZE 5

//deklarasi struct
typedef struct
{
      int count;
    int head,tail;
    char names[QSIZE][30];
}QUEUE; //nama struct

//deklarasikan prototype fungsi
char *enqueue(char *);
char *dequeue();
void tampil();
void inisialisasi();

//deklarasi Node
QUEUE *pq;

//fungsi main
int main()
{
      //deklarasi variabel
      int pil;
      char str[30];
      QUEUE q;
      pq=&q;
      inisialisasi(); //panggil fungsi inisialisasi
      do{
            system("cls"); //bersihkan layar
            printf("\tMENU PILIHAN : ");
            printf("\n\t______________");
            printf("\n[1] Input Data");
            printf("\n[2] Delete Data");
            printf("\n[3] Show data in queue");
            printf("\n[4] Exit\n");
            printf("\nPilihan anda : ");
            scanf("%d",&pil);
            switch(pil){
            case 1:
                  printf("\nSilahkan memasukkan sebuah kata : ");
                  fflush(stdin); //menghapus buffer data
                  gets(str);
                 puts(enqueue(str)); /*Mencetak string hasil penambahan data yang dilakukan oleh fungsi enqueue()*/
                  break;
            case 2:
                 puts(dequeue()); /*Mencetak string terhapus yang dilakukan oleh fungsi enqueue()*/
                  break;
            case 3:
                  tampil(); //panggil fungsi tampil()
                  break;
            case 4: exit(0);
            default: printf("\nMasukkan anda salah!!");
            }
            printf("\nPress Any Key to continue...");
            fflush(stdin); //membersihkan buffer data
            while(!kbhit());
      }
      while(1); //perulanagan dijalankan terus
    //return 0;
}

//fungsi untuk inisialisasi awal
void inisialisasi()
{
      pq->head = pq->tail = pq->count= 0;
}

//fungsi untuk menambah data string dalam queue
char* enqueue(char *p)
{
      if(pq->count==QSIZE)
            return "\n\n\t\t Error: Antrian penuh";
      pq->tail= (pq->tail)%QSIZE;
      strcpy(pq->names[(pq->tail)++],p);
      pq->count++;
      return "Data telah berhasil dimasukkan";
}

//fungsi untuk menghapus data string dalam queue
char* dequeue()
{
      if(pq->count==0)
            return "\n\n\t\t Error: Antrian kosong";
      pq->head= (pq->head)%QSIZE;
      pq->count--;
      printf("\nData yang telah dihapus adalah\n:");
      return pq->names[(pq->head)++];
}

//fungsi untuk menampilkan data yang berada dalam antrian
void tampil()
{
      int i=pq->head;
      int x=0;
      if(pq->count==0)
            printf("Antrian kosong\n");
      else
      {
            while(x<pq->count)
            {
                  if(i==QSIZE)
                        i%=QSIZE;
                  printf(":%s\n",pq->names[i]);
                  i++;
                  x++;
            }
      }
}


0 komentar: