Rabu, 16 September 2020

Struktur Data Pertemuan 9 LINEAR SINGLY LINKED LIST

 TUGAS

Buat program animasi Linear Singly Linked List untuk mengelola data mahasiswa dengan struktur mahasiswa sbb : NAMA, NIM, GENDER,NILAI STRUKTUR DATA. Program dibuat dalam bentuk menu dengan pilihan : INSERT DATA, HAPUS DATA, CETAK DATA, EXIT.

Ket :

INSER DATA : menyisipkan satu simpul pada akhir linked list

HAPUS DATA :menghapus satu simpul pada akhir linked list

CETAK DATA : mencetak seluruh isi linked list

 EXIT : Keluar/selesai

 

Tampilan menu :

                  LIN. SINGLY LINKED LIST

                  ==========================

1. INSERT DATA

2. HAPUS DATA

3. CETAK DATA

4. EXIT

Pilihan (1 – 4) :



#include <iostream>

#include <conio.h>

#include <stdio.h>

#include <windows.h>

using namespace std;

 

int pilih; void pilihan();

void insert_data();

void hapus_data();

void cetak_data();

struct node

{

 int nomorinduk;

 char nama [40];

 char gender [20];

 float nilai;

 node *prev, *next;

};

node *baru, *head=NULL, *tail=NULL,*help,*del;

main()//interface monitor

{

 do

 {

  system("cls");

  cout<<"\tLIN. DOUBLY LINKED LIST"<<endl;

  cout<<"\t=========================="<<endl;

  cout<<"\t1. INSERT DATA"<<endl;

  cout<<"\t2. HAPUS DATA"<<endl;

  cout<<"\t3. CETAK DATA"<<endl;

  cout<<"\t4. EXIT"<<endl;

  cout<<"\tPilihan (1 - 4) : ";

  cin>>pilih;

  cout<<endl<<endl;

  pilihan();

  cout<<"==============================="<<endl;

 }

 while(pilih!=4);

}

void pilihan()//fungsi "pilihan" untuk pemrosesan

{

 if(pilih==1)

 insert_data();

 else if(pilih==2)

 hapus_data();

 else if(pilih==3)

 cetak_data();

 else

 {

  cout<<"EXIT";

  cout<<"\nSampai Jumpa lagi"<<endl;

 }

}

void buat_baru()//fungsi membuat data baru

{

 baru = new(node);

 cout<<"Masukkan Nomor Induk : ";cin>>baru->nomorinduk;

 cout<<"Masukkan Nama : ";cin>>baru->nama;

 cout<<"Masukkan Gender : ";cin>>baru->gender;

 cout<<"Masukkan Nilai : ";cin>>baru->nilai;

 cout<<"\n\t---Data telah dimasukkan---";

 cout<<"\n\nPRESS ENTER TO CONTINUE...";

 getch();

 baru->prev=NULL;

 baru->next=NULL;

}

void insert_data()

{

 buat_baru();

 if(head==NULL)

 {

  head=baru;

  tail=baru;

 }

 else

 {

  baru->next=head;

  head->prev=baru;

  head=baru;

 }

 cout<<endl<<endl;

}

void hapus_data()//fungsi penghapusan data

{

 int hapus,nomorinduk;

 if(head==NULL)

 {

  cout<<"\nLinked List kosong, \nPenghapusan tidak dapat dilakukan"<<endl;//data yang habis maka tampilannya

 }

 else

 {

  hapus=head->nomorinduk;

  cout<<"\nData yang dihapus adalah ";//pemilihan data yang akan dihapus

  cin>>nomorinduk;

  del = head;

  head = head->next;

  delete del;

 }

}

void cetak_data()

{

 if (head==NULL)

 cout<<"\nData tidak dapat ditemukan!"<<endl;//data yang kosong

 else

 {

  help=head;

  while(help!=NULL)

  {

   cout<<" Nomor Induk : "<<help->nomorinduk;//data akan muncul dengan tampilan

   cout<<" Nama : "<<help->nama;

   cout<<" Gender : "<<help->gender;

   cout<<" Nilai : "<<help->nilai<<endl;

   help=help->next;

  }

 }

getch();

}







Readmore → Struktur Data Pertemuan 9 LINEAR SINGLY LINKED LIST

Selasa, 08 September 2020

Struktur Data Pertemuan 8 Double Ended Queue

Kontruksi Data Pertemuan 8 Double Ended Queue.


Soal

1. Buatlah suatu program Animasi Deque dengan 6 buah pilihan :

INSERT KIRI, INSERT KANAN, DELETE KIRI, DELETE KANAN, CETAK ANTRIAN, QUIT.

 

#include<iostream>

#include<conio.h>

#include<stdlib.h>

#define n 10

using namespace std;

 

void INSERT();

void DELETE();

void CETAKLAYAR();

void Inisialisasi();

void RESET();

int PIL,F,R;

char PILIHAN [1],HURUF;

char Q[n];

int main ( )

{

     Inisialisasi();

     do

     {

           cout<<" ANIMASI QUEUE"<<endl;

           cout<<"=============="<<endl;

           cout<<"1. INSERT"<<endl;

           cout<<"2. DELETE"<<endl;

           cout<<"3. CETAK QUEUE"<<endl;

           cout<<"4. QUIT"<<endl;

           cout<<"PILIHAN : "; cin>>PILIHAN;

           PIL=atoi(PILIHAN);

           switch (PIL)

           {

           case 1:

                INSERT ();

                break;

           case 2:

                DELETE();

                break;

           case 3:

                CETAKLAYAR ();

                break;

           default:

                cout<<"TERIMA KASIH"<<endl;

                break;

           }

           cout<<"press any key to continue"<<endl;

           getch();

           system("cls");

     }

     while (PIL<4);

}

void INSERT()

{

      if(R<n-1)

      {

           cout<<endl<<"MASUKAN 1 HURUF : ";

         cin>>HURUF;

         Q[++R]=HURUF;

}

else

    cout<<"Antrian Penuh"<<endl;

}

 

void CETAKLAYAR()

{

     if(F<R+1)

     {

           for (int i=F;i<=R;i++)

                cout<<"Q["<<i<<"] = "<<Q[i]<<endl;

     }

     else

           cout<<"Antrian Kosong"<<endl;

}

void DELETE()

{

     if(F<=R+1)

     {

           HURUF=Q[F];

           Q[F++]=HURUF;

           cout<<"Data yang diambil : "<<HURUF<<endl;

           if(F==n)

                RESET();

     }

     else

           cout<<"Antrian Kosong"<<endl;

}

void Inisialisasi()

{

     F=0;

     R=-1;

}

 

void RESET()

{

     F=0;

     R=-1;

}

 

 

 

 








Readmore → Struktur Data Pertemuan 8 Double Ended Queue

Struktur Data Pertemuan 7 Circular Queue

Struktur Data Pertemuan 7 Circular Queue

 

Soal

1. Buatlah suatu program Animasi Antrian dengan 4 buah pilihan : INSERT,DELETE, CETAK ANTRIAN, QUIT.

Jika dipilih INSERT : program akan meminta user untuk menginput sebuah karakter yang akan dimasukan kedalam antrian

Jika dipilih DELETE : maka karakter pertama masuk akan dikeluarkan dari antrian

Jika dipilih CETAK ANTRIAN : komputer menampilkan karakter yang ada pada antrian

Jika dipilih QUIT : program keluar

 

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

using namespace std;

int main() {

    int queue[10], i, head=-1, tail=-1, enqueue, pil, urut=0, tmp;

  

    do {

        system("pause");

        system("cls");

        printf("1. INSERT \n");

        printf("2. DELETE \n");

        printf("3. CETAK ANTRIAN \n");

        printf("4. QUIT \n");

        printf("Silahkan masukkan pilihan anda :  \n");

        scanf("%d", &pil);

        printf("\n");

 

      

        if(pil==1) {if(tail==9) {printf("Antrian Penuh ");}

                    else if(tail==-1) {head++;tail++;

                                       printf("Masukkan nilai : \n");

                                       scanf("%d", &enqueue);

                                       queue[tail]=enqueue;

                                       urut++;

                                       printf("Nomor urut : %d \n", urut);}

                    else {tail++;

                          printf("Masukkan nilai :  \n");

                          scanf("%d", &enqueue);

                          queue[tail]=enqueue;

                          urut++;

                          printf("Nomor urut : %d \n", urut);

                          printf("Anda harus menunggu %d antrian lagi \n", tail);}}

                        

        else if(pil==2) {if(tail==-1) {printf("Antrian kosong");}

                         else {printf("Data dengan nilai %d sudah dilayani \n", queue[head]);

                               tmp=queue[head];

                               for(i=head;i<=tail;i++) {queue[i]=queue[i+1];}

                               queue[tail]=tmp;

                               urut++;

                               printf("Data dengan nilai %d masuk antrian \n", queue[tail], urut);

                               if(tail==0) {printf("Yang bersangkutan langsung dilayani");}

                               else {printf("Yang bersangkutan harus menunggu %d antrian lagi", tail);}}}

                             

        else if(pil==3) {if(tail==-1) {printf("Antrian kosong \n");}

                         else {for(i=head;i<=tail;i++) {printf("Antrian ke-%d : %d \n", i+1, queue[i]);}

                         printf("\n");}}

                       

        else if(pil==4) {printf("Anda telah selesai menggunakan program Queue Circular \n");}

      

        else {printf("Pilihan yang anda masukkan tidak valid \n");}

        } while(pil!=4);

      

    getch();

}

 















Readmore → Struktur Data Pertemuan 7 Circular Queue

Struktur Data Pertemuan 6 LINEAR QUEUE

Struktur Data Pertemuan 6 LINEAR QUEUE  

Soal

1. Buatlah suatu program Animasi Antrian dengan 4 buah pilihan : INSERT,DELETE, CETAK ANTRIAN, QUIT.

Jika dipilih INSERT : program akan meminta user untuk menginput sebuah karakter yang akan dimasukan kedalam antrian

Jika dipilih DELETE : maka karakter pertama masuk akan dikeluarkan dari antrian

Jika dipilih CETAK ANTRIAN : komputer menampilkan karakter yang ada pada antrian

Jika dipilih QUIT : program keluar

 

#include<stdio.h>

#include<conio.h>

#include<stdlib.h>

using namespace std;

int main() {

    int queue[10], i, head=-1, tail=-1, enqueue, pil, urut=0, tmp;

  

    do {

        system("pause");

        system("cls");

        printf("1. INSERT \n");

        printf("2. DELETE \n");

        printf("3. CETAK ANTRIAN \n");

        printf("4. QUIT \n");

        printf("Silahkan masukkan pilihan anda :  \n");

        scanf("%d", &pil);

        printf("\n");

 

      

        if(pil==1) {if(tail==9) {printf("Antrian Penuh ");}

                    else if(tail==-1) {head++;tail++;

                                       printf("Masukkan nilai : \n");

                                       scanf("%d", &enqueue);

                                       queue[tail]=enqueue;

                                       urut++;

                                       printf("Nomor urut : %d \n", urut);}

                    else {tail++;

                          printf("Masukkan nilai :  \n");

                          scanf("%d", &enqueue);

                          queue[tail]=enqueue;

                          urut++;

                          printf("Nomor urut : %d \n", urut);

                          printf("Anda harus menunggu %d antrian lagi \n", tail);}}

                        

        else if(pil==2) {if(tail==-1) {printf("Antrian kosong");}

                         else {printf("Data dengan nilai %d sudah dilayani \n", queue[head]);

                               tmp=queue[head];

                               for(i=head;i<=tail;i++) {queue[i]=queue[i+1];}

                               queue[tail]=tmp;

                               urut++;

                               printf("Data dengan nilai %d masuk antrian \n", queue[tail], urut);

                               if(tail==0) {printf("Yang bersangkutan langsung dilayani");}

                               else {printf("Yang bersangkutan harus menunggu %d antrian lagi", tail);}}}

                             

        else if(pil==3) {if(tail==-1) {printf("Antrian kosong \n");}

                         else {for(i=head;i<=tail;i++) {printf("Antrian ke-%d : %d \n", i+1, queue[i]);}

                         printf("\n");}}

                       

        else if(pil==4) {printf("Anda telah selesai menggunakan program Queue Circular \n");}

      

        else {printf("Pilihan yang anda masukkan tidak valid \n");}

        } while(pil!=4);

      

    getch();

}

 

















Readmore → Struktur Data Pertemuan 6 LINEAR QUEUE