Minggu, 14 Desember 2014

Pengertian, Manfaat, Jenis dan Pemilihan Media Pembelajaran

A. Pengertian Media Pembelajaran
Perkembangan ilmu pengetahuan dan teknologi semakin mendorong upaya-upaya pembaharuan dalam pemanfaatan hasil-hasil teknologi dalam proses belajar mengajar.  Para guru dituntut agar mampu menggunakan alat-alat yang dapat disediakan oleh sekolah, dan tidak tertutup kemungkinan bahwa alat-alat tersebut sesuai dengan perkembangan dan tuntutan zaman. Guru sekurang-kurangnya dapat menggunakan alat yang murah dan bersahaja tetapi merupakan keharusan dalam upaya mencapai tujuan pengajaran yang diharapkan.

Disamping mampu menggunakan alat-alat yang tersedia, guru juga dituntut untuk dapat mengembangkan alat-alat yang tersedia, guru juga dituntut untuk dapat mengembangkan keterampilan membuat media pengajaran yang akan digunakannya apabila media tersebut belum tersedia.

Untuk itu guru harus memiliki pengetahuan yang cukup tentang media pengajaran, yang meliputi (Hamalik, 1994 : 6)

•    Media sebagai alat komunikasi guna lebih mengefektifkan proses belajar mengajar;
•    Fungsi media dalam rangka mencapai tujuan pendidikan;
•    Seluk-beluk proses belajar;
•    Hubungan antara metode mengajar dan media pendidikan;
•    Nilai atau manfaat media pendidikan dalam pengajaran;
•    Pemilihan dan penggunaan media pendidikan
•    Berbagai jenis alat dan teknik media pendidikan;
•    Media pendidikan dalam setiap mata pelajaran;
•    Usaha inovasi dalam media pendidikan.[1]

Dengan demikian, dapat disimpulkan bahwa media adalah bagian yang tidak terpisahkan dari proses belajar mengajar demi tercapainya tujuan pendidikan pada umumnya dan tujuan pembelajaran di sekolah pada khususnya.

Kata media berasal dari bahasa Latin medius yang secara harfiah berarti ‘tengah’, ‘perantara’ atau ‘pengantar’.  Dalam bahasa Arab, media adalah perantara atau pengantar pesan dari pengirim kepada penerima pesan.[2]

Apabila media itu membawa pesan-pesan atau informasi yang bertujuan instruksional atau mengandung maksud-maksud pengajaran maka media itu disebut Media Pembelajaran.[3]

B.   Manfaat Media Dalam Pembelajaran 
Dalam suatu proses belajar mengajar, dua unsur yang sangat penting adalah metode mengajar dan media pengajaran.  Kedua aspek ini saling berkaitan. Pemilihan salah satu metode mengajar tertentu akan mempengaruhi jenis media pengajaran yang sesuai, meskipun masih ada berbagai aspek lain yang harus diperhatikan dalam memilih media, antara lain tujuan pengajaran, jenis tugas dan respon yang diharapkan siswa kuasai setelah pengajaran berlangsung, dan konteks pembelajaran termasuk karakteristik siswa.  Meskipun demikian, dapat dikatakan bahwa salah satu fungsi utama media pengajaran adalah sebagai alat bantu mengajar yang turut mempengaruhi iklim, kondisi, dan lingkungan belajar yang ditata dan diciptakan oleh guru.

Hamalik (1986) mengemukakan bahwa pemakaian media pengajaran dalam proses belajar mengajar dapat membangkitkan keinginan dan minat yang baru, membangkitkan motivasi dan rangsangan kegiatan belajar, dan bahkan membawa pengaruh-pengaruh psikologis terhadap siswa.  [4]

Secara umum, manfaat media dalam proses pembelajaran adalah memperlancar interaksi antara guru dengan siswa sehingga pembelajaran akan lebih efektif dan efisien.  Tetapi secara lebh khusus ada beberapa manfaat media yang lebih rinci Kemp dan Dayton (1985) misalnya, mengidentifikasi beberapa manfaat media dalam pembelajaran yaitu :

1.    Penyampaian materi pelajaran dapat diseragamkan
2.    Proses pembelajaran menjadi lebih jelas dan menarik
3.    Proses pembelajaran menjadi lebih interaktif
4.    Efisiensi dalam waktu dan tenaga
5.    Meningkatkan kualitas hasil belajar siswa 
6.    Media memungkinkan proses belajar dapat dilakukan dimana saja dan kapan saja
7.    Media dapat menumbuhkan sikap positif siswa terhadap materi dan proses belajar
8.    Merubah peran guru ke arah yang lebih positif dan produktif. [5]

Selain beberapa manfaat media seperti yang dikemukakan oleh Kemp dan Dayton tersebut, tentu saja kita masih dapat menemukan banyak manfaat-manfaat praktis yang lain.  Manfaat praktis media pembelajaran di dalam proses belajar mengajar sebagai berikut :

1.    Media pembelajaran dapat memperjelas penyajian pesan dan informasi sehingga dapat memperlancar dan meningkatkan proses dan hasil belajar

2.    Media pembelajaran dapat meningkatkan dan mengarahkan perhatian anak sehingga dapat menimbulkan motivasi belajar, interaksi yang lebih langsung antara siswa dan lingkungannya, dan kemungkinan siswa untuk belajar sendiri-sendiri sesuai dengan kemampuan dan minatnya

3.    Media pembelajaran dapat mengatasi keterbatasan indera, ruang dan waktu

4.    Media pembelajaran dapat memberikan kesamaan pengalaman kepada siswa tentang peristiwa-peristiwa di lingkungan mereka, serta memungkinkan terjadinya interaksi langsung dengan guru, masyarakat, dan lingkungannya misalnya melalui karya wisata.  Kunjungan-kunjungan ke museum atau kebun binatang.[6]

C.   Jenis-Jenis Media Pembelajaran
Media Pembelajaran banyak sekali jenis dan macamnya.  Mulai yang paling kecil sederhana dan murah hingga media yang canggih dan mahal harganya.  Ada media yang dapat dibuat oleh guru sendiri, ada media yang diproduksi pabrik.  Ada media yang sudah tersedia di lingkungan yang langsung dapat kita manfaatkan, ada pula media yang secara khusus sengaja dirancang untuk keperluan pembelajaran

Meskipun media banyak ragamnya, namun kenyataannya tidak banyak jenis media yang biasa digunakan oleh guru di sekolah.  Beberapa media yang paling akrab dan hampir semua sekolah memanfaatkan adalah media cetak (buku).  selain itu banyak juga sekolah yang telah memanfaatkan jenis media lain gambar, model, dan Overhead Projector (OHP) dan obyek-obyek nyata.  Sedangkan media lain seperti kaset audio, video, VCD, slide (film bingkai), program pembelajaran komputer masih jarang digunakan meskipun sebenarnya sudah tidak asing lagi bagi sebagian besar guru.  

Anderson (1976) mengelompokkan media menjadi 10 golongan sbb :

No
Golongan Media
Contoh dalam Pembelajaran
I
Audio
Kaset audio, siaran radio, CD, telepon
II
Cetak
Buku pelajaran, modul, brosur, leaflet, gambar
III
Audio-cetak
Kaset audio yang dilengkapi bahan tertulis
IV
Proyeksi visual diam
Overhead transparansi (OHT), Film bingkai (slide)
V
Proyeksi Audio visual diam
Film bingkai (slide) bersuara
VI
Visual gerak
Film bisu
VII

Audio Visual gerak, film gerak bersuara, video/VCD, televisi
VIII
Obyek fisik
Benda nyata, model, specimen
IX
Manusia dan lingkungan
Guru, Pustakawan, Laboran
X
Komputer
CAI (Pembelajaran berbantuan komputer), CBI (Pembelajaran berbasis komputer).[7]

  . D.   Pemilihan Media Pembelajaran 
      Beberapa penyebab orang memilih media antara lain adalah :  a.  bermaksud mendemosntrasikannya seperti halnya pada kuliah tentang media;  b.  merasa sudah akrab dengan media tersebut, c. ingin memberi gambaran atau penjelasan yang lebih kongkrit; dan d.  merasa bahwa media dapat berbuat lebih dari yang bisa dilakukannya.  Jadi dasar pertimbangan untuk memilih media sangatlah sederhana, yaitu memenuhi kebutuhan atau mencapai tujuan yang diinginkan atau tidak.  Mc. Connell (1974) mengatakan bila media itu sesuai pakailah “If The Medium Fits, Use It!” [8]

Dari segi teori belajar, berbagai kondisi dan prinsip-prinsip psikologi yang perlu mendapat pertimbangan dalam pemilihan dan penggunaan media adalah sebagai berikut :

1.    Motivasi
2.    Perbedaan individual
3.    Tujuan pembelajaran
4.    Organisasi isi
5.    Persiapan sebelum belajar
6.    Emosi
7.    Partisipasi Umpan balik
8.    Penguatan (reinforcement)
9.    Latihan dan pengulangan
10.    Latihan dan pengulangan
11.    Penerapan.  [9]


[1] Azhar Arsyad,  Media Pengajaran, (Jakarta :  Raja Grafindo Persada, 2000) h. 2
[2] Ibid, h.3
[3] Azhar Arsyad, Media Pembelajaran.  (Jakarta :  Raja Grafindo Persada, 2007). h. 4
[4] Ibid. h.15
[5] ………., Media Pembelajaran,  (Jakarta : Departemen Pendidikan Nasional Direktorat Jenderal Pendidikan Dasar dan Menengah Direktorat Tenaga Kependidikan, 2003). h. 17
[6] Azhar Arsyad, Media Pembelajaran.  (Jakarta :  Raja Grafindo Persada, 2007), h.27
[7] ………., Media Pembelajaran,  (Jakarta : Departemen Pendidikan Nasional Direktorat Jenderal Pendidikan Dasar dan Menengah Direktorat Tenaga Kependidikan, 2003). h. 22
[8] Arief S. Sadiman, et al.  Media Pendidikan,  (Jakarta :  PT. Raja Grafindo Persada, 2007), hal. 84
[9] Azhar Arsyad, Media Pembelajaran.  (Jakarta :  Raja Grafindo Persada, 2007), hal.74

Queue

 QUEUE
A.          Tujuan
·         Mahasiswa mampu menjelaskan pengertian queue dan dequeue.
·         Mahasiswa mampu menjelaskan dan menunjukkan cara pembuatan queue, operasi push dan pop pada array.
·         Mahasiswa mampu menjelaskan dan menunjukkan program dengan ADT (abstract data type) queue dequeue dengan array.

B.           Dasar Teori
Queue adalah salah satu list linier dari struktur data. Queue beroperasi dengan cara First In First Out (FIFO) elemen pertama masuk merupakan elemen yang pertama keluar. Untuk penyisipan (INSERT) hanya dapat dilakukan pada satu sisi yaitu sisi belakang (REAR), sedangkan untuk penghapusan (REMOVE) pada sisi depan (FRONT) dari list.
Sebagai gambaran, cara kerja queue dapat disamakan pada sebuah antrean di suatu loket dimana berlaku prinsip ‘ siapa yang duluan antre dia yang akan pertama kali dilayani ‘ , sehingga dapat dikatakan prinsip kerja queue sama dengan prinsip sebuah antrean.

Representasi dari Queue

 


hapus elemen         1      2       ……..      ke – n               sisip elemen
front                           rear


Di bawah ini diperlihatkan suatu queue yang akan menempati N elemen array memori, serta cara pengurangan (delete) dan penambahan (added) elemen pada queue tersebut. 

A         B         C         D                                             .....      
 
Front   : 1       
Rear     : 4
                        1          2          3          4          5          6          7          .....       N




REMOVE(Q)
            B         C         D                                             .....      
 
Front   : 2       
Rear     : 4
                        1          2          3          4          5          6          7          .....       N

INSERT(INSERT(E),F)
            B         C         D         E          F                      .....      
 
Front   : 2       
Rear     : 6
                        1          2          3          4          5          6          7          .....       N

REMOVE(Q)
                        C         D         E          F                      .....      
 
Front   : 3       
Rear     : 6
                        1          2          3          4          5          6          7          .....       N


Dapat dilihat bahwa setiap terjadi penghapusan elemen pada queue nilai (index) dari Front bertambah satu (1) ; dapat ditulis FRONT := FRONT+1
Begitu pula bila terjadi penambahan elemen pada queue nilai (index) Rear bertambah satu (1) ; dapat ditulis REAR := REAR + 1

Akan terjadi ketidakefisienan bila penambahan elemen sudah pada posisi index N (Rear = N) maka tidak dapat lagi dilakukan penambahan elemen, sedangkan dilokasi memori yang lain (nilai di bawah N) masih terdapat memori array yang kosong.

Untuk mengatasi hal tersebut maka kita bayangkan bahwa memori dari queue tersebut berbentuk melingkar dimana kedua ujungnya saling bertemu atau disebut juga dengan Circular Queue




Circular Queue

Anggap Queue ini mempunyai ukuran m elemen. Karena sisip elemen di      lakukan pada satu sisi dan hapus elemen dilakukan pada sisi  yang lain, maka Q(m) disatukan dengan Q(1) {adjacent}.
Pada gambar di bawah, elemen-elemen queue menduduki tempat Q(f) sampai dengan Q(r) dimana pointer Front menunjuk ke Q(f)  dan pointer REAR menunjuk ke Q(r). Kondisi overflow terjadi  jika (r+1) mod m = f dan kondisi underflow terjadi jika  r = f = 0


Q(f+1)
 
Q(f)
 
. . .
 
Q(2)
 
Q(1)
 
Q(m)
 

                                                                                                            Front

Rear

 
. . .
 
. . .
 
 













Q(1)
Q(2)
......    
 Q(f)
Q(f+1)
 ......
Q(r)
    ......
Q(m)
 
 
Ket.  Gambar diarsir adalah tempat kedudukan elemen-elemen queue dari
        Q(f) sampai Q(r)


Contoh :
Suatu queue akan menempati lokasi sebanyak 5 array memori, dengan urutan operasi sebagai berikut :

1. Create(Q)                            F = 0               
                                                R = 0
                                                                        1          2          3          4          5         

  A          B          C         
 
2. Insert A, B, C                     F = 1               
                                                R = 3


              B          C                      
 
3. Remove (Q)                        F = 2               
                                                R = 3


              B          C          D          E
 
4. Insert D dan E                    F = 2               
                                                R = 5


                                    D            E
 
5. Remove(Remove(Q))          F = 4               
                                                R = 5


  F                                D            E
 
6. Insert F                                F = 4               
                                                R = 1


  F                                              E
 
7. Remove(Q)             F = 5               
                                                R = 1


  F          G          H          K          E
 
8. Insert G, H, K                     F = 5               
                                                R = 4


  F        G           H          K          E
 
9. Insert L                               F = 5               
   ( OVERFLOW )                   R = 4


              G          H          K         
 
10. Remove(Remove(Q))        F = 2               
                                                R = 4


            G           H          K          L
 
11. Insert L                             F = 2               
                                                R = 5


                                      K          L
 
12. Remove(Remove(Q))        F = 4               
                                                R = 5


 
 
13. Remove(Remove(Q))        F = 0               
                                                R = 0


 
 
14. Remove(Q)                       F = 0               
                                                R = 0
     ( UNDERFLOW )
Operasi dasar pada Queue

1.      CREATE
Adalah suatu operator untuk membentuk dan menunjukkan suatu antrean hampa  Q.
Noel ( Create(Q)) = 0
Front (Create(Q))= tidak terdefinisi
Rear (Create(Q)) = tidak terdefinisi
2.      ISEMPTY
Adalah operator yang menentukan apakah antrean Q hampa atau tidak. Hasil dari operator ini merupakan tipe data berjenis Boolean.
Isempty (Q) = True , jika Q hampa
                       = False , jika Q tidak hampa.

3.      INSERT
Suatu operator yang menyisipkan elemen ke dalam queue pada bagian belakang (rear)
-          REAR (INSERT(A,Q)) = A
-          ISEMPTY (INSERT(A,Q)) = FALSE
Algoritma  QINSERT
1.      if FRONT = 1 and REAR = N , or If FRONT = REAR + 1, then
OVERFLOW,  Return
2.      if FRONT := NULL, then
   set FRONT := 1 and REAR := 1
                 else if REAR = N , then
                              set REAR := 1
                          else 
                        set REAR := REAR + 1
3.      set QUEUE [REAR] := ITEM
4.      Return
4.      REMOVE
Operator yang menghapus elemen bagian depan (FRONT)dari QUEUE
     Algoritma QDELETE
1.      if FRONT := NULL , then UNDERFLOW , Return
2.      set ITEM := QUEUE[FRONT]
3.      [find new value of FRONT]        
if FRONT = REAR  , then
      set FRONT := NULL and REAR := NULL
else if FRONT = N, then
                  set FRONT := 1
        else
                  set FRONT := FRONT + 1
            4. Return
 


Latihan :


   1. Diketahui Queue menempati  6 array memori

  W       R           Z        .....       ......      ......            ......
 
           



      Jika dilakukan operasi berturut-turut sebagai berikut :

      a. Insert X
      b. Remove (Queue)
      c. Remove (insert(M,Queue))
      d. Insert (S, Remove(Queue))

      Maka hasilnya adalah :     



 2. Diketahui Queue  dengan 7 array memory
  ......    CC        AA        BB        .....       ......      ......            ......
 
           


     Nilai awal Front = 2 dan Rear = 4            

      Jika dilakukan operasi secara berturutan :
      a.  Insert MM            
      b.  Remove (Queue)          
      c.  Insert (SS,insert(PP,insert,(KK,)))
      d.  Remove (Remove(Queue))

      Maka Hasilnya adalah :

      a. Queue : ---, CC , AA , BB , ..... , ....., .....
                    FRONT =
 REAR   =
      b. Queue : .... , ..... , ..... , ...... , ..... , ..... , .....
                    FRONT =
 REAR   =
      c. Queue : .... , ..... , ..... , ...... , ..... , ..... , .....
                    FRONT =
 REAR   =
         Queue : .... , ..... , ..... , ...... , ..... , ..... , .....
                    FRONT =
 REAR   =
         Queue : .... , ..... , ..... , ...... , ..... , ..... , .....
                    FRONT =
 REAR   =
     d. Queue : .... , ..... , ..... , ...... , ..... , ..... , .....
                    FRONT =
 REAR   =
         Queue : .... , ..... , ..... , ...... , ..... , ..... , .....
                    FRONT =
 REAR   =

DEQUEUE (DOUBLE ENDED QUEUE)

DEQUEUE adalah suatu List Linier, yang penambahan dan penghapusan elemen-nya dapat dilakukan pada kedua sisi ujung List, tetapi tidak dapat dilakukan ditengah-tengah list. Dari sini dapat kita katakan bahwa Dequeue adalah suatu Queue ganda atau Double Ended Queue. 

Deque menggunakan dua pointer penunjuk yaitu :
LEFT   : petunjuk untuk elemen pada posisi kiri
RIGHT : petunjuk untuk elemen pada posisi kanan

Sebagai gambaran :

           



AAA
BBB
CCC
DDD

     1                 2               3                 4                 5               6                 7  8        
Left    : 4        
Right : 7


YYY
ZZZ




WWW
XXX
     1                 2               3                 4                5                  6               7                 8
Left     :  7
Right   :  2
 

Ada dua jenis Dequeue :

1.      Input-Restricted-Deque
adalah deque yang operasi pemasukan elemen datanya hanya dapat dilakukan di satu ujung kanannya (RIGHT), tetapi dapat menghapus dari kedua ujungnya ( LEFT dan RIGHT).

2.      Output-Restricted-Deque
adalah deque yang operasi pemasukan elemen datanya dapat dilakukan melalui kedua ujungnya (LEFT dan RIGHT), tetapi hanya dapat menghapus dari ujung kanannya(RIGHT).


Contoh  DEQUEUE :

Diketahui Circular Dequeue dengan 6 array memori :

  .....       A          C          D        ......      ......
 
           

            Left    : 2
            Right  : 4


Latihan Praktikum
Algoritma dan Struktur Data

Nama Program                      : menu Queue
Bahasa Pemrogramam         :  C++
Compiler                                : Code Block
Script program                      :
#include <iostream>
#include <stdlib.h>
#define MAX 10
using namespace std;

void insert (int queue[], int*rear, int nilai);
void del (int queue[], int*front, int rear, int*nilai);

int main()
{
int queue [MAX];
int front, rear;
int n, nilai;

front = rear = (-1);
do
{
do
{
cout << "masukkan nilai elemen :";
cin >> nilai;
insert (queue, &rear, nilai);

cout << endl;
cout << "tekan 1 untuk melanjutkan:";
cin >> n;
}
while (n == 1);

cout << endl;
cout << "tekan 1 untuk menghapus sebuah elemen" << endl;
cin >> n;

while (n == 1)
    {
        del (queue, &front, rear, &nilai);
        cout << "nilai telah dihapus :"<< nilai << endl;
        cout << endl;
        cout << "tekan 1 untuk menghapus sebuah elemen :"<<endl;
        cin >> n;
    }
cout << endl;
cout << "tekan 1 untuk melanjutkan:";
cin >> n;
}
while(n == 1);
}

void insert (int queue[], int*rear, int nilai)
{
    if (*rear<MAX-1)
    {
        *rear=*rear+1;
        queue[*rear] = nilai;
    }
    else{
        cout << "queue penuh, insert tidak dapat dilakukan" <<endl;
        exit(0);
    }
}
void del (int queue[], int*front, int rear, int*nilai)
{
    if (*front == rear)
    {
        cout << "queue kosong, delete tidak dapat dilakukan" << endl;
        exit(0);
    }
    *front = *front+1;
    *nilai = queue[*front];
}

Output Program:

Penjelasan Program:
            Program ini menggunakan header file “iostream” yang berfungsi untuk fungsi “cin” dan “cout”, selain itu kita juga menggunakan “stdlib.h” yang berfungsi untuk memanggil fungsi-fungsi yang ada dalam standart library. Disini, kita juga menggunakan “using namespace std” yang berfungsi untuk memanggil seluruh fungsi yang ada di dalam namespace std. Sedangkan, kita juga mendeklarasikan batas maksimal penyimpanan queue. Sehingga, jika user menginputkan data lebih dari batas maksimal yang telah di definisikan, maka data tersebut tidak dapat tersimpan dalam queue. Program ini hanya dapat menginputkan data ke dalam antrian dan menghapusnya saja. Ketika user telah menginputkan data hingga penuh, program ini juga dapat menghapus data yang telah dimasukkan tadi. Karena queue disini menggunakan teknik FIFO (first in first out), maka data yang user inputkan terlebih dahulu yang akan terhapus dari queue tersebut. Dalam program ini, penghapusannya satu per satu hingga queunya kosong. Namun, jika user menghapus beberapa data dalam queue tetapi bukan semua data, user dapat menginputkan data lagi. Jadi, program queue ini terdapat pergeseran di dalamnya. Sehingga, user dapat menginputkan data kapan saja saat queue tersebut belum penuh. Jika telah penuh, user dapat menghapusnya dan menggesernya dengan menginputkan data baru dalam queue tersebut. Jadi, user tidak perlu menunggu hingga queuenya kosong.
Algoritma:

1.      Mulai
2.      Deklarasi variable
3.      Deklarasi prototype fungsi
4.      Menginputkan data
5.      Menyimpan data pada queue
6.      Memanggil fungsi
7.      Cetak hasil
8.      selesai
Tugas Praktikum
Algoritma dan Struktur Data

Nama Program                      : menu Queue
Bahasa Pemrogramam         :  C++
Compiler                                : Code Block
Script program                      :
#include<iostream>
#include<conio.h>
#include<stdlib.h>
using namespace std;
class queue
{
private:
 struct kue
 {
   int data;
   kue*kuebaru;
 };
 kue*tail;
 kue*entry;
 kue*print;
 kue*head;

public:
 queue();
 void Delete();
 void insert();
 void cetak();
 void menu();
};

queue::queue()
{
  tail=NULL;
  head=NULL;
}

void queue::insert()
{
  int num;
  cout<<"\n\n\n\n\n\t Masukkan data dalam Queue: ";
  cin>>num;
  entry=new kue;
  if(tail==NULL)
{
  entry->data=num;   //(*entry).data=num
  entry->kuebaru=NULL;//(*entry).kuebaru=null
  tail=entry;
  head=tail;
}
else
{
  entry->data=num;//(*entry).data=num
  entry->kuebaru=NULL;
  tail->kuebaru=entry;//(*entry).kuebaru=entry
  tail=entry;
}
cout<<"\n\n\t***"<<num<<"sudah masuk dalam Queue. "<<endl;
getch();//getch:bwan conio
}
void queue::Delete()
{
  if(head==NULL)
   cout<<"\n\n\n\t***ERROR:Queue is empty. \n"<<endl;
  else
  {
    int deleted_element=head->data;//(*head).data=deleted_elemnt
    kue*temp;//kue: nm struct, *temp=data yg ditunjuk olh tbl
    temp=head;
    head=head->kuebaru;//(*head).kuebaru=head
    delete temp;
    cout<<"\n\n\n\t***"<<deleted_element<<"dihapus dari queue. "<<endl;
}
cout<<"\n\n\n\t\t press any key to return to menu";
getch();
}

void queue::cetak()
{
  print=head;
  if(print!=NULL)
    cout<<"\n\n\n\n\t angka-angka yang ada di dalam queue adalah:\n"<<endl;
  else
    cout<<"\n\n\n\n\t***tidak ada yang ditampilkan"<<endl;
while(print!=NULL)//while cek dulu
{
cout<<"\t"<<print->data<<endl;
print=print->kuebaru;
}
cout<<"\n\n\n\t\t press any key to return to menu. ";
getch();
}

void queue::menu()
{
  char Key = NULL;
  do
  {
    system("cls");
   cout<<"**Implementasikan Queue**"<<endl;
   cout<<"pilih salah satu menu: "<<endl;
   cout<<"Tekan\'I\' to Masukkan data dalam Queue"<<endl;
   cout<<"Tekan\'D\' to hapus data dari Queue"<<endl;

   cout<<"Tekan\'P'\'to Tampilkan data dari Queue"<<endl;
   cout<<"Tekan\'E\'to Exit"<<endl;
   input:

   cout<<"Masukkan pilihan: ";
   Key = getch();
   if(Key=='e'||Key=='e'||Key=='E')/*untuk fungsi exit*/
     break;
   else if(Key=='i'||Key=='I')
     insert();
   else if(Key=='d'||Key=='D')
     Delete();
   else if(Key=='p'||Key=='P')
     cetak();
   else
     goto input;
   }
   while(1);
}

int main()
{
   queue obj;
   obj.menu();
   return 0;
}

Output Program:




Penjelasan Program:
            Program ini menggunakan header file “iostream” yang berfungsi untuk “cin” dan “cout”, “conio.h” untuk fungsi “getch”, dan “stdlib.h” yang berfungsi untuk memanggil fungsi standart library, selain itu kita juga menggunakan “using namespace std” yang berfungsi untuk memanggil fungsi yang berada di namespace std. Dalam program ini kita menggunakan srtuct sehingga data yang diinputkan oleh user dalam queue akan disimpan dalan struct bukan dalam array, sehingga tidak terdapat batasan maksimal dalam program ini. Program ini dapat memasukkan, menghapus, dan menampilkan queue yang telah user inputkan. Dalam program ini, kita hanya dapat menginputkan angka saja, jadi user tidak dapat menginputkan sebuah string dalam program ini. Jika user menginputkan sebuah string, maka yang akan disimpan ialah angka 0. Dalam program ini, kita harus mendeklarasikan tail dan head dari sebuah queue yang ingin kita buat. Dalam pendeklarasiannya, tail dan headnya harus sama karena jika kita mendeklarasikannya berbeda maka programnya akan eror dan tidak dapat dijalankan. Dalam program ini terdapat beberapa fungsi yaitu delete, insert, cetak, dan menu. Fungsi delete digunakan untuk menghapus data queue yang telah diinputkan oleh user yang pertama atau paling awal dan seterusnya. Setelah data queue terhapus, maka queuenya akan kosong kembali dan dapat dicek dengan menggunakan fungsi isempty. Lalu, ada fungsi insert yang gunanya untuk memasukkan atau menginputkan data queue atau menambah data queue yang telah ada hingga queuenya penuh. Jika data queue telah penuh, kita dapat mengeceknya dengan fungsi isfull. Kemudian, ada fungsi cetak yang berguna untuk menampilkan semua data queue yang telah tersimpan ke dalam queue tersebut. Dalam program ini, kita menampilkan datanya mulai dari data awal yang kita inputkan terlebih dahulu hingga data yang paling akhir yang kita inputkan. Setelah itu, terdapat fungsi menu yang berguna untuk menampilkan menu-menu yang ada dalam program ini dan memilih menu yang telah tersedia. Lalu, programnya akan beroperasi dan menuju inputan berdasarkan pilihan user.

Algoritma:
1.      mulai
2.      deklarasi header
3.      deklarasi variable
4.      deklarasi srtuct
5.      deklarasi prototype fungsi
6.      operasi struct
7.      operasi masing-masing prototype fungsi
8.      pilih menu
9.      cetak pilihan
10.  selesai
Tugas Rumah Modul
Algoritma dan Struktur Data

Nama Program                      : menu Queue
Bahasa Pemrogramam         :  C++
Compiler                                : Code Block
Script program                      :
#include <iostream>
#include <conio.h>
using namespace std;
class Queue
{
    private:
    struct kue
    {
        string data;
        kue*kuebaru;
    };
    kue*tail;
    kue*entry;
    kue*print;
    kue*head;

    public:
    Queue();
    void Delete();
    void Insert();
    void Cetak();
    void Menu();
};
Queue::Queue()
{
    tail=0;
    head=NULL;
}
 void Queue::Insert()
 {
     string num;
     cout<<"\n\n\n\n\t Masukkan data dalam Queue :  ";
     cin>>num;
     entry=new kue;
     if(tail==0)
     {
         entry->data=num; //(*entry). data=num
         entry->kuebaru=NULL;//(*entry).kuebaru=entry
         tail=entry;
         head=tail;
     }
     else
     {
         entry->data=num;//(*entry).data=num
         entry->kuebaru=NULL;
         tail->kuebaru=entry;//(*entry).kuebaru=entry
         tail=entry;
     }
      cout<<"\n\n\t*** "<<num<<" sudah masuk dalam Queue. \n"<<endl;
      getch(); //getch:bwan conio
      Menu();
}
void Queue::Delete()
{
      if(head==NULL)
            cout<<"\n\n\n\t***Error : Queue is empty.\n"<<endl;
      else
      {
            string deleted_element = head ->data; //(*head).data = deleted_element
            kue*temp; //kue: nm struct, *temp = data yang ditunjuk oleh tbl
            temp = head;
            head = head->kuebaru; //(*head).kuebaru=head
            delete temp;
            cout<<"\n\n\n\t*** "<<deleted_element<<" dihapus dari queue."<<endl;
      }
      cout<<"\n\n\n\t\t Press any key to return to menu";
      getch();
      Menu();
}
void Queue::Cetak()
{
      print=head;
      if(print!=NULL)
            cout<<"\n\n\n\tKalimat yang ada di dalam queue adalah : ";
      else
            cout<<"\n\n\n\n\t***Tidak ada yang ditampilkan"<<endl;
      while(print!=NULL) //while cek dulu; "==" diganti "!="
      {
            cout<<"\t"<<print->data<<endl;
            print = print->kuebaru;
      }
      cout<<"\n\n\n\t\t Press any key to return to menu. \n\n ";
      getch();
      Menu();
}
void Queue::Menu()
{
      char Key = NULL;
      do
      {
            cout<<"**Implementasikan Queue**"<<endl;
            cout<<"Pilih salah satu menu : "<<endl;
            cout<<"Tekan \'I\' to Masukkan data dalam Queue"<<endl;
            cout<<"Tekan \'D\' to hapus data dari Queue"<<endl;
            cout<<"Tekan \'P\' to Tampilkan data dari Queue"<<endl;
            cout<<"Tekan \'E\' to Exit"<<endl;
Input:
            cout<<"Masukkan pilihan : ";
            Key = getche();
            if(Key=='e'||Key=='e'||Key=='E') /*untuk fungsi exit*/
                  break;
            else if(Key=='i'||Key=='I')
                  Insert();
            else if(Key=='d'||Key=='D')
                  Delete();
            else if(Key=='p'||Key=='P')
                  Cetak();
            else
                  goto Input;

      }while(0);
}

int main()
{
      Queue obj;
      obj.Menu();
      return 1;
}

Output Program:






Penjelasan Program:
Program ini menggunakan header file “iostream” yang berfungsi untuk “cin” dan “cout”, “conio.h” untuk fungsi “getch”, dan “stdlib.h” yang berfungsi untuk memanggil fungsi standart library, selain itu kita juga menggunakan “using namespace std” yang berfungsi untuk memanggil fungsi yang berada di namespace std. Dalam program ini kita menggunakan srtuct sehingga data yang diinputkan oleh user dalam queue akan disimpan dalan struct bukan dalam array, sehingga tidak terdapat batasan maksimal dalam program ini. Program ini dapat memasukkan, menghapus, dan menampilkan queue yang telah user inputkan. Dalam program ini, kita hanya dapat menginputkan string saja, jadi user tidak dapat menginputkan sebuah angka dalam program ini. Dalam program ini, kita harus mendeklarasikan tail dan head dari sebuah queue yang ingin kita buat. Dalam pendeklarasiannya, tail dan headnya harus sama karena jika kita mendeklarasikannya berbeda maka programnya akan eror dan tidak dapat dijalankan. Dalam program ini terdapat beberapa fungsi yaitu delete, insert, cetak, dan menu. Fungsi delete digunakan untuk menghapus data queue yang telah diinputkan oleh user yang pertama atau paling awal dan seterusnya. Setelah data queue terhapus, maka queuenya akan kosong kembali dan dapat dicek dengan menggunakan fungsi isempty. Lalu, ada fungsi insert yang gunanya untuk memasukkan atau menginputkan data queue atau menambah data queue yang telah ada hingga queuenya penuh. Jika data queue telah penuh, kita dapat mengeceknya dengan fungsi isfull. Kemudian, ada fungsi cetak yang berguna untuk menampilkan semua data queue yang telah tersimpan ke dalam queue tersebut. Dalam program ini, kita menampilkan datanya mulai dari data awal yang kita inputkan terlebih dahulu hingga data yang paling akhir yang kita inputkan. Setelah itu, terdapat fungsi menu yang berguna untuk menampilkan menu-menu yang ada dalam program ini dan memilih menu yang telah tersedia. Lalu, programnya akan beroperasi dan menuju inputan berdasarkan pilihan user.


Algoritma:

1.      mulai
2.      deklarasi header
3.      deklarasi variable
4.      deklarasi srtuct
5.      deklarasi prototype fungsi
6.      operasi struct
7.      operasi masing-masing prototype fungsi
8.      pilih menu
9.      cetak pilihan
10.  selesai

Tugas Rumah Tambahan
Algoritma dan Struktur Data

Nama Program                      : menu Queue
Bahasa Pemrogramam         :  C++
Compiler                                : Code Block
Script program                      :
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <string.h>
using namespace std;

int A, S, D; //pendeklarasikan variabel
#define max 10 //Mendefiniskan nilai max = 10

string que1[max]; //fungsi memanggil kalimat
int que2[max]; //fungsi memanggil nilai

void Awal() //fungsi mendekalsikan nilai awal F=0 dan R=-1
{
      A=0;
      S=-1;
}
void Tambah(){ //fungsi untuk menambah antrian
      if(S==(max-1)){
      cout<<"QUEUE PENUH\n"; //untuk peringatan dalam penambahan data queue
      }else{
            if(A==10){
                  Awal();
                  S=S+1;
                  cout<<"\nMasukan Karakter Huruf : ";
                  cin>>que1[S];
                  cout<<"Masukan Karakter Angka : ";
                  cin>>que2[S];
            }
            S=S+1;
            cout<<"\nMasukan Karakter Huruf : ";
            cin>>que1[S];
            cout<<"Masukan Karakter Angka : ";
            cin>>que2[S];
      }

}
void Hapus(){ //fungsi untuk menghapus antrian pertama
      if(A==(S+1)){
      cout<<"\n!!!QUEUE KOSONG\nTidak Dapat Mengambil Antrian";  //menampilkan queue kosong yang tidak terdapat antrian
      }else{
cout<<"DATA YANG DIHAPUS ADALAH : \n"; //menampilkan data yang sudah dihapus
            cout<<"Huruf : "<<que1[A]<<" dan angka : "<<que2[A]<<endl;
            que1[A]=-1;
            que2[A]=-1;
            A=A+1;
      }

}
void Tampil(int A, int S) //fungsi untuk menampilkan data
{
      char a;
      cout<<"Huruf\tAngka\n";
      for(A;A<=S;A++)
      {
            cout<<que1[A]<<"\t"<<que2[A]<<endl;
      }
}
void Clear(){ //fungsi untuk menghapus seluruh data
      if(A==(S+1)){
            cout<<"QUEUE KOSONG\n";
            Awal();
      }else{
            cout<<"QUEUE telah Dikosongkan\n";
            Awal();
      }
}
main(){ //fungsi utama

      int pil;
      Awal();
      do
      {
      system("cls");
      cout<<"----------------------------"<<endl;
      cout<<"|    MENU PROGRAM QUEUE    |\n";
      cout<<"----------------------------"<<endl;
      cout<<"1. ENQUEUE\n";
      cout<<"2. DEQUEUE\n";
      cout<<"3. CLEAR\n";
      cout<<"4. VIEW\n";
      cout<<"5. EXIT\n";
      cout<<"---------------------------\n";
      cout<<"PILIH MENU : ";
      cin>>pil;
      switch(pil)
      {
            case 1:
                  Tambah();
                  break;
            case 2:
                  Hapus();
                  break;
            case 3:
                  Clear();
                  break;
            case 4:
                  Tampil(A, S);
                  break;
            case 5:
                  exit(1);
                  break;
            default:
                  cout<<"MENU TIDAK ADA\n";
                  break;
      }
      getch();
} while(pil!=5);
}

Output Program:






Penjelasan Program:
            Program ini menggunakan header file “iostream” yang berfungsi untuk “cin” dan “cout”, “stdlib” yang berfungsi untuk fungsi yang ada dalam standart library, “stdio.h” yang berfungsi untuk “scanf” dan “printf”, “conio.h” yang berfungsi untuk “getch”, dan “string” yang berfungsi untuk beberapa fungsi untuk kalimat. Dalam program ini akan menyimpan data yang telah diinputkan dalam sebuah array. Sehingga, kita harus mendeklarasikan batas maksimal dari queue tersebut. Dalam program ini terdapat beberapa menu yaitu enque, deque, clear, view, dan exit. Dalam menu enque berfungsi untuk menginputkan data quue yang berupa sebuah huruf dan dan berupa angka. Kemudian, menu dequeue yang berfungsi untuk menghapus satu inputan yang telah tersimpan, yang mana yang pertama dihapus ialah yang pertama user inputkan ke dalam queue tersebut. Sedangkan menu clear ini berfungsi untuk mengapus seluruh elemen yang tersimpan dalan sebuah queue. Dan menu exit ini berfungsi untuk mengeluarkan program tersebut. Di dalam, enqueue ini semua data dapat tersimpan hingga batas maksimal yang telah di deklarasikan dalam program dan akan di cek dengan isfull untuk mengecek apakah queue full dan isempty untuk mengecek apakah queue telah kosong atau belum. Jika queue telah penuh, maka data tersebut tidak dapat tersimpan dalam queue tersebut. Kemudian fungsi hapus digunakan untuk menghapus data queue sampai semuanya terhapus. Kemudian, fungsi tampil digunakan untuk menampilkan seluruh data yang ada dalam queue.
Algoritma:

1.      mulai
2.      deklarasi header
3.      deklarasi variable
4.      deklarasi array
5.      operasi prototype fungsi
6.      pilih menu
7.      cetak data
8.      selesai

KESIMPULAN
Queue adalah salah satu list linier dari struktur data. Queue beroperasi dengan cara First In First Out (FIFO) elemen pertama masuk merupakan elemen yang pertama keluar. Untuk penyisipan (INSERT) hanya dapat dilakukan pada satu sisi yaitu sisi belakang (REAR), sedangkan untuk penghapusan (REMOVE) pada sisi depan (FRONT) dari list.
Sebagai gambaran, cara kerja queue dapat disamakan pada sebuah antrean di suatu loket dimana berlaku prinsip ‘ siapa yang duluan antre dia yang akan pertama kali dilayani ‘ , sehingga dapat dikatakan prinsip kerja queue sama dengan prinsip sebuah antrean.

DAFTAR PUSTAKA
1.                  Tim Asisten Dosen / Praktikum. 2013. Modul 5 QUEUE (ANTRIAN). Malang: Universitas Negeri Malang.