Senin, 30 November 2015

TUGAS 6 (QUEUE)

1.   Sebutkan pengertian Queue!
Jawab :
Suatu kumpulan data yang mana penambahan data atau elemen hanya dapat dilakukan pada sisi belakang sedangkan penghapusan atau pengeluaran elemen dilakukan pada sisi depan. Jenis dan struktur data antrian sering digunakan untuk menstimulasikan keadaan dunia nyata. Antrian banyak dijumpai dalam kehidupan sehari-hari. Misal antrian registrasi mahasiswa, tiket kreta api dan lain-lain. 

2.   Sebutkan dan jelaskan karakteristik penting pada Queue (antrian)!
Jawab :
·        Elemen antrian yaitu item data yang terdapat di elemen antrian.
·        Head / front ( elemen terdepan dari antrian )
·        Tail/rear (elemen terakhir dari antrian)
·        Jumlah elemen pada antrian (count)
·        Status / kondisi antrian.

3.   Sebutkan perbedaan  Queue dengan Stack!
Jawab : 
í Stack (tumpukan) => LIFO (Last In First Out yang terakhir masuk yang duluan keluar).
Contoh : kamu punya buku A,B,C. Yang disimpan pertama buku A, kemudian kamu tumpuk buku B diatasnya, kemudian buku C. Nah, ketika kamu mau ngambil buku pasti dari yang teratas dulu yaitu buku C. Jadi buku C keluar duluan.

í Queue (barisan) => FIFO (First In First Out yang pertama masuk yang duluan keluar).
Contoh : kamu mengantri ketika beli tiket bioskop. Kamu pertama datang, kemudian ada orang yang datang, dia pasti berdiri di belakang kamu, begitu seterusnya. Nah, yang duluan selesai kamu kan? Jadi
kamu duluan yang keluar dari barisan itu.



4.   Sebutkan Operasi-operasi pada Queue!
Jawab :
¨      Create () => untuk menciptakan dan menganalisasi queue
¨      IsEmpty () => untuk memeriksa apakah antrian sudah penuh atau belum.
¨      IsFull () => Untuk mengecek apakah antrian sudah penuh atau belum.
¨      Enqueue () => untuk menambahkan elemen ke dalam antrian, penambahan elemen selalu ditambahkan di elemen paling belakang. Penambahan elemen selalu menggerakan variabel Tail dengan cara increment counter Tail terlebih dahulu.
¨      Dequeue () => digunakan untuk menghapus elemen terdepan / pertama (head) dari antrian. Dengan cara menggeser semua elemen antrian kedepan dan mengurangi Tail. Dengan 1 penggeseran dilakukan dengan menggunakan looping.
¨      Clear () => Untuk menghapus elemen-elemen antrian dengan cara membuat tail dan head = -1
¨      Tampil () => untuk menampilkan nilai-nilai elemen antrian menggunakan loopingdari head s/d tail.

5.   Buatlah program tentang Queue!
Jawab  :
#include “stdio.h”
void main()
{ int queue[5];
int depan = -1;
int belakang = -1;
int pilihan, data, i;
do{
printf(“MENU\n”);
printf(“1. ENQUEUE\n2. DEQUEUE\n3. VIEW\n4. EXIT\n”);
printf(“Pilihan = “); scanf(“%d”, &pilihan);
switch (pilihan)
{
case 1: //enqueue
//apakah queue belum penuh?
if (belakang < 4 )
{ printf(“Data Masuk = “); scanf(“%d”, &data);
queue[belakang+1] = data;
belakang++;
if (belakang == 0)
depan = 0;
}
else
printf(“Queue penuh!\n”);
break;
case 2: //dequeue
//apakah queue belum kosong?
if (depan <= belakang)
{ printf(“Data keluar = %d\n”, queue[depan]);
depan++;
}
else
printf(“Queue kosong!\n”);
break;
case 3:
for(i=depan; i<=belakang; i++)
printf(“%d “, queue[i]);
printf(“\n”);
break;
}
}while (pilihan != 4);
}



Senin, 23 November 2015

TUGAS 5 (OPERASI PADA STACK)

1.   Bagaimanakah cara mengimplementasikan operasi push dan pop?
Jawab :
      Dengan menjalankan operasi PUSH, berarti kita menyimpan data pada posisi top didalam stack. Langkah selanjutnya yang dapat kita tempuh adalah :

a)   Melakukan increment terhadap top sebesar 1
b)   Menyimpan nilai/value pada index top didalam array


      (Sekarang top mengandung index dari elemen yang paling atas)
      Untuk menerapkan stack menggunakan array, tentunya kita harus mendeklarasikan array terlebih dahulu. Misalkan :
      int stack[10];      Pendeklarasian diatas berarti kita membuat sebuah array dengan ukuran/size sebesar 10, dan hanya dapat menampung maksimal 10 nilai integer.
      Setelah mendeklarasikan array, kita perlu mendeklarasikan variabel untuk menyimpan index terakhir (top position), misalnya kita deklarasikan seperti ini :
      int top;      Untuk kondisi stack yang masih kosong, mari kita set top = -1      Nah, baru setelah ini kita akan mengimplementasikan operasi PUSH dan POP.


 2.   Jelaskan cara mengimplementasikan konsep stack menggunakan array?
Jawab :

Sebuah array dapat kita manfaatkan untuk mengimplementasikan stack jika jumlah elemen maksimum diketahui. Ketika kita hendak meng- implementasikan stack menggunakan array, kita harus memastikan bahwa array yang dideklarasikan cukup untuk menyimpan data atau elemen maksimum pada stack. 

3.   Jelaskan pengertian ADT?
Jawab :

ADT adalah definisi TYPEdan sekumpulan  PRIMITIF (operasi dasar) terhadap TYPE tersebut. Selain itu, dalam sebuah ADT yang lengkap, disertakan pula definisi invarian dari TYPE dan aksioma yang berlaku. ADT merupakan definisi statikDefinisi type dari sebuah ADT dapat mengandung sebuah definisi ADT lain. 

4.   Apa yang dimaksud dengan primitif dalam tipe data?
Jawab :

Primitif, dalam konteks prosedural,diterjemahkan menjadi fungsi atau prosedur.

 5.   Buatlah contoh ADT dalam program ARRAY?
Jawab :

ADT Array
Sintaks umum deklarasi array sebagai berikut :  
Type var-name [ ] ; 
Atau  
Type [ ] var-name ;
Type mendeklarasikan tipe basis array. Tipe basis menentukan tipe data elemen pembentukan array. Tipe array menentukan tipe data yang dimuat array.  

Berikut adalah contoh deklarasi array di Java :  
Int numbers [ ] ; 
Char [ ] letters ; 
Long agrid [ ] [ ] ;      

Senin, 09 November 2015

TUGAS 4 (STACK)

1.   Jelaskan pengertian Stack?

Jawab :
Stack (tumpukan) adalah suatu struktur data yang terbentuk dari barisan hingga yang terurut dari satuan data. Pada stack, penambahan dan penghapusan elemennya hanya dapat dilakukan pada satu posisi, yaitu posisi akhir stack. Posisi ini disebut puncak atau top dari stack.

2.   Sebutkan dan jelaskan Operasi dasar Pada Stack ( Tumpukan ) beserta contohnya!
Jawab :
ü  Push => adalah operator yang berfungsi menambahkan elemen E ke Stack. Elemen E akan ditempatkan pada posisi TOP (S).

OPERASI PUSH

ü  Pop => adalah operator yang berfungsi mengeluarkan atau menghapus elemen TOP (S) dari dalm stack.

OPESASI POP


3.   Sebutkan fungsi push dan pop!
Jawab :
Ø  Fungsi Push
Untuk memasukkan elemen ke stack, selalu menjadi elemen teratas stack (yang ditunjuk oleh TOS=Top Of Stack)
Ø  Fungsi Pop
Untuk mengambil elemen teratas (data yang ditunjuk oleh TOS) dari stack.

4.   Buatlah contoh program stack!
Jawab :
#include "iostream"
#include "conio.h"
#define maksElemen 10//konstanta
using namespace std;
struct tumpukan
{
      short int isi[10];//isi
      int pos;//posisi dri stack
};
short int kosong(tumpukan &t)//periksa bahwa elemen stack kosong
{short int kos;
if(t.pos>0){
      kos=0;//blm kosong
      cout<<endl<<"belum kosong";
}
else
kos=1;//sudah kosong
return(kos);
}
void posisi(tumpukan t)//melihat posisi top stack
{
      if(kosong(t)!=1)//jika tdk kosong
      {
            cout<<endl<<"top sekarang pada indek = "<<t.pos;
            cout<<" dan elemennya adalah "<<t.isi[t.pos-1];
      }
}
void pop(tumpukan &t,short int &j)
{
      if(kosong(t)==1)//periksa stack
            cout<<endl<<"stack sudah kosong !";
      else
      {
            cout<<endl<<kosong(t)<<"stack blm kosong.";
            cout<<endl<<t.isi[t.pos-1]<<"  telah di pop!";
            t.pos=t.pos-1;
            j=t.pos;
      }
}
short int full(tumpukan &t)//periksa bhwa elemen stack sdah penuh
{short int penuh;
      if(t.pos<maksElemen)
            penuh=0;//blm penuh
      else
            penuh=1;//sdah penuh
      return (penuh);
}
void push(tumpukan &t, short int x, short int j)
{
      if(full(t)==1)//periksa stack
            cout<<endl<<"stack telah PENUH !";
      else{
            cout<<endl<<"stack blm PENUH !!";
            t.pos=j;
            t.isi[j-1]=x;
            cout<<endl<<t.isi[j-1]<<"  telah di PUSH!!";
      }
}
void main(){
      tumpukan t; short int n,i,x,komen;
      //n tdk lbih dri 10
      char pil;
      //memasukkan bil bulat
      t.pos=0; komen=0; i=1; t.isi[t.pos]=0;
      while(!(komen==1))
      {
            cout<<endl<<"1. PUSH dan 2.POP, mau pilih yang mana?";cin>>pil;
            switch(pil)
            {
            case'1': posisi(t);//lihat posisi top satack
                  cout<<endl<<"Bilangan ke-"<<i<<"="; cin>>x;
                  push(t,x,i);i++;break;//pemanggilan prosedur PUSH
           
            case'2': posisi(t);//lihat posisi top satack
                  pop(t,i);break;//pemanggilan prosedur pop
            }//end case
            cout<<endl<<"Tekan 1 untuk asphalt 8 :D..!!tekan: ";cin>>komen;
      }//end while
_getch();
}



5.   Sebutkan macam-macam stack!
Jawab :
·        Stack dengan Array


·        Double Stack dengan Array