Senin, 08 Juni 2015

Searching (Sequential search dan Binarry search)

Pencarian (Searching) merupakan proses yang fundamental dalam pemrograman, guna menemukan data (nilai) tertentu di dalam sekumpulan data yang bertipe sama. Fungsi pencarian itu sendiri adalah untuk memvalidasi (mencocokkan) data.

Metode Pencarian dibagi menjadi 2 yaitu :

Pencarian secara beruntun 
Pencarian secara beruntun dilakukan dengan cara memeriksa elemen larik satu per satu mulai dari indeks=1 hingga indeks dimana elemen tersebut ditemukan. Bila indeks maksimum telah dilampaui maka berarti elemen tersebut tidak ditemukan.
Contoh: Andaikan larik A=[20 15 18 35 40 27], dan x=8. Bila A diperiksa mulai dari indeks=1 maka akan ditemukan pada indeks=3. Namun, bila x=45 maka pemeriksaan tidak berasil menemukan karena hingga indeks=6 elemen ini tetap tidak ditemukan.

Contoh program :

#include <stdio.h>
#include <iostream.h>
#include <conio.h>

main()
{
   int n,i,posisi,x,ketemu;
   int a[5];
   printf("Pencarian data dengan sequential search \n\n");
   printf("Banyak data : ");
   scanf("%d",&n);

   for(i=0;i<n;i++)
   {
      printf("Masukan bilangan : ");
      scanf("%d",&a[i]);
   }
   printf("Data yang dicari : ");
   scanf("%d",&x);
   ketemu=0;
   i=0;
   while((ketemu == 0)&&(i<n))
   {
    if(a[i]==x)
    {
    ketemu=1;
        posisi=i;
    }
   else
   i=i+1;
   }
   if(ketemu==1)
    printf("%d Ditemukan pada posisi %d\n",x,posisi+1);
   else
   printf("%d Tidak ditemukan \n",x);
   getch();
}


Hasil Outputnya : 






















Pencarian Bagi–Dua (Binary Search)
Pencarian bagi-dua adalah teknik yang diterapkan hanya pada elemen larik yang telah terurut (Sorted). Pencarian beruntun memiliki satu kekurangan, yaitu dalam kasus terburuk (Elemen yang dicari berada pada posisi terakhir) maka pencarian harus dilakukan sepanjang larik. Semakin banyak elemen semakin banyak pencarian yang harus dilakukan.

Contoh : Andaikan larik A = [7 10 13 16 18 21 76 81], dan x=10. Pada contoh ini, jumlah elemen m=8 sehingga indeks =8/2=4 dan A[4]=16. Namun, x tidak sama dengan A[4].

Implementasi binary search dalam program :

#include <iostream.h>
#include <conio.h>

int data[10]={1,3,4,7,12,25,40,65,78,90};
int binary_search(int cari)
{
  int a,b,c;
  int n=10;
  a=0;
  b=n-1;
  int ketemu=0;
  while (a<=b && ketemu==0)
  {
    c=(a+b)/2;
    if (data[c]==cari)
    ketemu=1;
    else
    if(cari<data[c])
    b=c-1;
    else a=c+1;
  }
  if(ketemu==1) return 1; else return 0;
}

void main()
{
  clrscr();
  int cari, hasil;
  cout<<"masukan data yang ingin di cari= ";
  cin>>cari;
  hasil = binary_search(cari);
  if(hasil==1)
  {
    cout<<"data ada!"<<endl;
  }
  else
  if(hasil==0)
  cout<<"data tidak ada!"<<endl;
  getch();
}

Hasil Outputnya :



REFERENSI :
Solichin, Achmad (2003). Pemrograman Bahasa C dengan Turbo C. IlmuKomputer.Com.

Selection sort dan Insertion sort

SELECTION SORT
Merupakan sebuah metode pengurutan. Memindahkan elemen dengan cara membandingkan elemen sekarang dengan elemen yang berikutnya sampai dengan elemen terakhir. Jika ditemukan elemen lain yang lebih kecil dari elemen sekarang maka dicatat posisinya dan kemudian ditukar dan begitu seterusnya.

Proses pada selection sort:
 -    Mencari data terkecil dari data pertama sampai dengan data yang terakhir. kemudian ditukar posisinya dengan data pertama.
 -    Mencari data terkecil dari data kedua sampai dengan data terakhir, kemudian ditukar posisinya dengan data kedua.
 -    Mencari data terkecil dari data ketiga sampai dengan data terakhir, kemudian ditukar posisinya dengan data ketiga.
 -    Begitu seterusnya sampai semua data terurut naik. Apabila terdapat n buah data yang akan diurutkan, maka membutuhkan (n-1) langkah pengurutan, dengan data terakhir, yaitu data ke n tidak perlu diurutkan karena hanya tinggal data satu-satunya.

Contoh
Terdapat suatu variable array dimana nilai dalam array tersebut :
NILAI[8] = { 44, 55, 12, 42, 94, 18, 6, 67 }
Penyelesaian




















































 INSERTION SORT

Insertion sort adalah sebuah metode pengurutan data dengan menempatkan setiap elemen data pada pososinya dengan cara melakukan perbandingan dengan data – data yang ada. Algoritma ini akan mudah anda kuasi jika sering bermain Game Remi, Domino, Main Minum, dll. Ide algoritma dari metode insertion sort ini dapat dianalogikan sama seperti mengurutkan kartu. Jika suatu kartu dipindah tempatkan menurut posisinya, maka kartu yang lain akan bergeser mundur atau maju sesuai kondisi pemindahanan kartu tersebut. 


















Contoh Algoritmanya:








Data awal sebelum di urutkan, asumsi pertama anggaplah data indek ke- sudah benar









Data awal sebelum di urutkan, asumsi pertama anggaplah data indek ke-0 sudah benar

Step 1


Bandingkan data index ke 0 dan ke 1, Jika data index ke 1 lebih kecil, datanya ditukar

Step 2

Bandingkan data index ke 2 dengan ke 1 dan 0, Jika lebih kecil, selipkan pada posisi yang tepat

Step 3

Bandingkan data index ke 3 dengan data didepannya. Jika lebih kecil, selipkan pada posisi yang tepat. Jika tidak biarkan data tersebut


Step 4

Bandingkan data index ke 4 dengan data didepannya. Jika lebih kecil, selipkan pada posisi yang tepat. Data yang lain akan mundur posisinya, karena ada data yang maju.

Step 5



Bandingkan data index ke 5 dengan data didepannya. Jika lebih kecil, selipkan pada posisi yang tepat. Data yang lain akan mundur posisinya, karena ada data yang maju.

Contoh Programnya :
#include<iostream.h>
#include<conio.h>

int data[10],data2[10];
int n;

void tukar(int a, int b)
{
 int t;
   t=data[b];
   data[b]=data[a];
   data[a]=t;
}

void selection_sort()
{
 int pos,i,j;
   for(i=0;i<n-1;i++)
   {
    pos=i;
      for(j=i+1;j<n;j++)
      {
       if(data[j]<data[pos])pos=j;
      }
      if(pos!=i) tukar(pos,i);
   }
   cout<<"selection sort selesai !"<<endl;
   cout<<"Data : "<<endl;
   for(int i=0;i<n;i++)
   {
    cout<<data[i]<<" ";
   }
   cout<<endl;
}

void insertion_sort()
{
 int temp,i,j;
   for(i=1;i<n;i++)
   {
    temp=data[i];
      j=i-1;
      while(data[j]>temp && j>=0)
      {
       data[j+1]=data[j];
         j--;
      }
      data[j+1]=temp;
   }
   cout<<"insertion sort selesai ! "<<endl;
   cout<<"Data : "<<endl;
   for(int i=0;i<n;i++)
   {
    cout<<data[i]<<" ";
   }
   cout<<endl;
}

void input()
{
 cout<<"Masukkan jumlah data = ";
   cin>>n;
   for(int i=0;i<n;i++)
   {
    cout<<"Masukkan data ke - "<<(i+1)<<" = " ;
      cin>>data[i];
      data2[i]=data[i];
   }
}


void main()
{
 int pil;
   clrscr();
   do
   {
      clrscr();
    cout<<"1. Input Data"<<endl;
    cout<<"2. Selection Sort"<<endl;
    cout<<"3. Insertion Sort"<<endl; //tambahkan
    cout<<"4. Exit"<<endl;
      cout<<"Masukkan Pilihan anda = ";
      cin>>pil;

    switch(pil)
    {
       case 1: input();break;
       case 2: selection_sort();break;
       case 3: insertion_sort();break;  //tambahkan
    }
    getch();
   }
   while(pil!=4);
}

Hasil Outputnya :



Struktur data Queue

Pengrtian Queue

Queue (antrian ) adalah sekumpulan data yang mana penambahan elemen hanya bisa dilakukan pada suatu ujung disebut dengan sisibelakang(rear), dan penghapusan(pengambilan elemen) dilakukan lewat ujung lain (disebut dengan sisi depan atau front).

Data yang pertama masuk dalam antrian, akan keluar terlebih dahulu.
Queue atau antrian prinsip yang digunakan adalah “Masuk Pertama Keluar Pertama” atau FIFO (First In First Out). 

Jenis-jenis Queue :
–        Linear Queue
–        Double Ended Queue (Dequeue)

LINEAR QUEUE
Ilustrasi Antrian Lurus :
















Prinsip / Konsep Proses :
–         FIFO (First In First Out)
–         FIFS (First In First Serve)
          
Proses :
–        AWAL (Inisialisasi)
–        INSERT (Sisip, Masuk, Simpan, Tulis)
–        DELETE (Hapus, Keluar, Ambil/Dilayani, Baca)
–        RESET (Kembali ke AWAL)











Algoritma lengkap INSERT
 Periksa apakah Antrian BISA DIISI
                                if ( R < n – 1)
                                {
                                                R = R + 1;
                                                Q[R] = x;
                                }
                                else
                                                cout<<“Antrian Penuh”;

Algoritma lengkap DELETE
Periksa apakah Antrian ADA ISINYA
                                if ( F < R + 1)
                                {             
                                                x = Q[F];
                                                F = F + 1;
                                                if ((F=R+1) && (R=n-1))
                                                { F = 0;
                                                  R = -1; }
                                }
                                else
                                                cout<<“Antrian Kosong”;

DOUBLE ENDED QUEUE (Dequeue)

Ilustrasi Deque (Antrian dengan Ujung Ganda) :

















Prinsip / Konsep Proses :
–        bukan FIFO, bukan juga LIFO, tergantung kesempatan yang ada.
Proses :
–        AWAL (Inisialisasi)
–        INSERT (Sisip, Masuk, Simpan, Tulis)
–        DELETE (Hapus, Keluar, Ambil/Dilayani, Baca)
Kondisi Double Ended Queue :











Algoritma Lengkap INSERT KIRI
Periksa apakah Deque BISA DIISI DARI KIRI
                void INSERT_KIRI()
                {              if ( L > 0)
                                {
                                                L = L - 1;
                                                Q[L] = x;
                                }
                                else
                                                cout<<“Antrian Kiri Penuh”;
                }

Algoritma Lengkap INSERT KANAN
Periksa apakah Deque BISA DIISI DARI KANAN
                void INSERT_KANAN()  
                {              if ( R < n - 1)
                                {
                                                R = R + 1;
                                                Q[R] = x;
                                }
                                else
                                  cout<<“Antrian Kanan Penuh”;
                }

Algoritma Lengkap DELETE KIRI
Periksa apakah Deque ADA ISINYA
                void DELETE_KIRI()
                {              if (L < R + 1)
                                {
                                                x = Q[L];
                                                L = L + 1;
                                }
                                else
                                                cout<<“Antrian Kosong”;
                }

Algoritma Lengkap DELETE KANAN
Periksa apakah Deque ADA ISINYA
                void DELETE_KANAN()
                {              if (L < R + 1)
                                {
                                                x = Q[R];
                                                R = R - 1;
                                }
                                else
                                                cout<<“Antrian Kosong”;
                }

Contoh Programnya :
#include<iostream.h>
#include<conio.h>
#include<stdio.h>

#define max 10

typedef struct
{
 int data[max];
   int head;
   int tail;
}Queue;

Queue antrian;

void create()
{
 antrian.head=antrian.tail=-1;
}

int IsEmpty()
{
 if(antrian.tail==-1)
   return 1;
   else
   return 0;
}

int IsFull()
{
 if(antrian.tail==max-1)
   return 1;
   else
   return 0;
}

void Enqueue(int data)
{
 if(IsEmpty()==1)
   {
    antrian.head=antrian.tail=0;
      antrian.data[antrian.tail]=data;
      cout<<"Data "<<antrian.data[antrian.tail]<<"Masuk !!!";
   }
   else if(IsFull()==0)
   {
    antrian.tail++;
      antrian.data[antrian.tail]=data;
      cout<<"Data "<<antrian.data[antrian.tail]<<"Masuk !!!";
   }
   else if(IsFull()==1)
   {
    cout<<"Ruangan Penuh !!"<<endl;
      cout<<data<<"Ga Bisa Masuk !!!";
   }
}
void Dequeue()
{
 int i;
   int e = antrian.data[antrian.head];
   if(antrian.tail==-1)
   {
    cout<<"Ga Ada antrian... Data Kosong"<<endl;
   }
   else
   {
    for(i=antrian.head;i<antrian.tail-1;i++)
      {
       antrian.data[i]=antrian.data[i+1];
      }
      antrian.tail--;
      cout<<"Data yang keluar lebih dulu = "<<e<<endl;
   }
}
void clear()
{
 antrian.head=antrian.tail=-1;
   cout<<"Duh Lega, Ruangan jadi ga sumpek... "<<endl;
   cout<<"Data Clear";
}
void tampil()
{
 if(IsEmpty()==0)
   {
    cout<<"Data Dalam Antrian"<<endl;
      cout<<"=====================================";
      cout<<endl;
      for(int i=antrian.head;i<=antrian.tail;i++)
      {
       cout<<"| " <<antrian.data[i]<<" |";
      }
   }
   else
   {
    cout<<"Ga ada antrian... Data kosong";
   }
}
void main()
{
 int pil;
   int data;
   create();
   do
   {
    clrscr();
      cout<<"Implementasi Antrian dengan Struct"<<endl;
      cout<<"==========================================";
      cout<<endl;
      cout<<"1. Enqueue"<<endl;
      cout<<"2. Dqueue "<<endl;
      cout<<"3. Print "<<endl;
      cout<<"4. Clear "<<endl;
      cout<<"5. Exit "<<endl;
      cout<<"Masukkan pilihan anda : ";
      cin>>pil;
      switch(pil)
      {
       case 1:
         {
          cout<<endl;
            cout<<"Data = ";
            cin>>data;
            Enqueue(data);
            break;
         }
         case 2:
         {
          cout<<endl;
            Dequeue();
            break;
         }
         case 3:
         {
          cout<<endl;
            tampil();
            break;
         }
         case 4:
         {
          cout<<endl;
            clear();
            break;
         }
      }
      getch();
   }
   while(pil!=5);
}

Hasil Outputnya :

Struktur Data Stack

Pengertian Stack

Pengertian Stack (Tumpukan) adalah suatu stuktur data yang penting dalam pemrograman yang mempunyai sifat LIFO (Last In First Out), Benda yang terakhir masuk ke dalam stack akan menjadi benda pertama yang dikeluarkan dari stack. 
Stack (Tumpukan) adalah list linier yang dikenali elemen puncaknya dan Aturan penyisipan dan penghapusan elemennya tertentu.

Konsep STACK digunakan dalam struktur data.



Dalam Struktur Stack digunakan istilah :
l  PUSH : Simpan,Masuk,Insert,Tulis
l  POP : Ambil,Keluar,Delete,Baca

Ada dua jenis Stack yaitu:
l  Single Stack
l  Double Stack

Single Stack
Single Stack dapat direpresentasikan menggunakan array satu dimensi.
Illustrasi dari single stack :















Prinsip proses Single Stack adalah LIFO (Last In First Out)
Proses pada Single Stack :
l  AWAL (Inisialisasi)
l  PUSH (Insert, Masuk, Simpan, Tulis)
l  POP (Delete, Keluar, Ambil, Baca/Hapus)

Kondisi Stack ditentukan oleh posisi atau isi TOP.

Kondisi Stack
Posisi TOP
KOSONG
Top = -1
PENUH
Top = n-1
BISA DIISI
Top < n-1
ADA ISINYA
Top > -1


Algoritma PUSH

if (Top < n-1)                     
             else
                                cout<<“Stack Penuh”;

Algoritma POP

if (Top > -1)                       
                                { x = S[Top];
                                  Top = Top - 1;
                                }
                else
                                cout<<“Stack Kosong”;                       { Top = Top + 1;
                                   S[Top] = x;
                                }
            

Double Stack
Double Stack atau bisa disebut juga Stack Ganda














Prinsip proses Double Stack adalah LIFO (Last In First Out) baik untuk Stack1 maupun untuk Stack2

Proses pada Double Stack :
l  AWAL (Inisialisasi)
l  PUSH1 (Push untuk Stack1)
l  POP1 (Pop untuk Stack1)
l  PUSH2 (Push untuk Stack2)
l  POP2 (Pop untuk Stack2)

Kondisi Double Stack :

Kondisi Stack
Posisi TOP
Stack1 KOSONG
Top1 = -1
Stack2 KOSONG
Top2 = n
Stack PENUH (baik Stack1 maupun Stack2 tidak BISA DIISI)
Top2 – Top1 = 1
Stack BISA DIISI (baik Stack1 maupun Stack2 BISA DIISI)
Top2 – Top1 > 1
Stack1 ADA ISINYA
Top1 > -1
Stack2 ADA ISINYA
Top2 < n

Algoritma PUSH 1 (mengisi Stack 1)
l  Periksa apakah Stack1 BISA DIISI
               
                if (Top2 – Top1 > 1)                        
                                {              Top1 = Top1 + 1;
                                                S[Top1] = x;
                                }
                else
                                cout<<“Stack Penuh”;

Algoritma POP 1 (mengambil isi Stack 1)
l  Periksa apakah Stack1 ADA ISINYA
               
                if (Top1 > -1)                     
                                {              x = S[Top1];
                                                Top1 = Top1 - 1;
                                }
                else
                                cout<<“Stack Kosong”;

Algoritma PUSH 2 (mengisi Stack 2)
l  Periksa apakah Stack2 BISA DIISI
               
                if (Top2 – Top1 > 1)                        
                                {              Top2 = Top2 - 1;
                                                S[Top2] = x;
                                }
                else
                                cout<<“Stack Penuh”;

Algoritma POP 2 (mengambil isi Stack 2)
l  Periksa apakah Stack2 ADA ISINYA
               
                if (Top2 < n)                      
                                {              x = S[Top2];
                                                Top2 = Top2 + 1;
                                }
                else
                                cout<<“Stack Kosong”;

Contoh program STACK

#include<iostream.h>
#include<conio.h>
#include<stdio.h>

//deklarasi 'STACK' dengan struct dan array
struct STACK
{
 int data [5];
        int atas;
};
//deklarasi variable 'tumpuk' dari struct
STACK tumpuk;

void main()
{
 clrscr();
   int pilihan,baru,i;
   //inisialisasi awal
   tumpuk.atas=-1;
   do
   {
    clrscr();
      cout<<"1.Push Data"<<endl;
      cout<<"2.Pop Data"<<endl;
      cout<<"3.Print Data"<<endl;
      cout<<endl;
      cout<<"Pilihan : " <<endl;
      cin>>pilihan;
      switch(pilihan)
      {
       case 1 :
         {
          if(tumpuk.atas==5-1)
            {
             cout<<"Tumpukan penuh";
               getch();
            }
            else
            {
             cout<<"Data yang akan di Push : ";
               cin>>baru;
               tumpuk.atas++;
               tumpuk.data[tumpuk.atas]=baru;
               }
               break;
               }
         case 2 :
         {
          if(tumpuk.atas==5-1)
            {
             cout<<"Tumpukan penuh";
               getch();
            }
            else
            {
            cout<<"Data yang akan di Pop : "<<tumpuk.data[tumpuk.atas]<<endl;
            tumpuk.atas--;
         getch();
          }
            break;
            }
         case 3 :
         {
          if(tumpuk.atas==-1)
            {
             cout<<"Tumpukan Kosong "<<endl;
               getch();
            }
            else
            {
             cout<<"Data = " <<endl;
               for(i=0;i<=tumpuk.atas;i++)
               {
                cout<<tumpuk.data[i]<<" ";
               }
               getch();
            }
            break;
         }
         default:
         {
          cout<<"Tidak ada dalam pilihan"<<endl;
         }
      }
   }
while(pilihan>=1 && pilihan<=3);
getch();
}


Hasil Outputnya :





Struktur Data Variable dan Array

Variabel 

Variabel adalah komponen penting dalam pemrograman. Variabel digunakan untuk menyimpan suatu nilai, dan nilai tersebut dapat di ubah selama program di eksekusi.

Mendeklarasikan Variabel 
Dalam pembuatan program variabel yang akan digunakan haruslah dideklarasikan terlebih dahulu. Pengertian deklarasi disini berarti mengenalkan sebuah pengenal ke program dan menentukan jenis data yang bisa disimpan didalamnya. Dalam pendeklarasian variabel penulisan sintaksnya diawali oleh tipe data yang akan digunakan lalu nama variabelnya (identifier).

Contoh:


















Menggunakan tipe data yang sama untuk identifier lebih dari satu dapat dituliskan tanda koma.

Contoh :



Seperti pada contoh diatas ketiga variabel ditulis dengan pemisah berupa tanda koma.

Dalam pemberian nama pada variabel ada beberapa hal yang harus diperhatikan, yaitu:
Diawali dengan : Huruf/abjad, underscore, da karakter mata uang
                          - Tidak menggunakan karakter khusus atau spasi
                          - Terdiri dari huruf/abjad, angka dan atau underscore
                          - Tidak boleh diawali dengan angka

Selain itu dalam pemberian nama pada variabel tidak diperbolehkan menggunakan keyword, karena keyword merupakan pengenal sistem yang mempunyai makna khusus bagi kompiler.
Berikut merupakan keyword yang terdapat pada C++ :




















Inisialisasi Variabel 
Adakalanya dalam pembuatan program, variabel langsung diberi nilai awal setelah dideklarasikan.

Contoh :












Tipe Data Variabel 
Tipe Data berperan penting dalam membuat variabel, karena isi (bilangan/string) dari sebuah variabel tergantung dari tipe data yang digunakan. Ukuran memori yang diperlukan untuk masing-masing tipe data sangat bergantung pada perangkat keras dari komputer yang digunakan. Karena itu jangkauan bilangan dari masing-masing tipe data juga bisa berlainan antara satu jenis mesin dengan mesin lainnya.

Berikut adalah ukuran berbagai tipe data dasar :
















Sumber referensi :
Buku Pemrograman C++ Abdul Kadir




Array

Array merupakan kumpulan elemen yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukan oleh index atau posisi. Jika di persingkat array adalah variabel yang dapat menyimpansejumlah data sejenis (bertipe data sama).
Jenis array :

·         Array berdimensi satu
·         Array berdimensi dua
·         Array berdimensi n

Array Dimensi Satu
Array satu dimensi adalah data-data akan disimpan dalam satu baris array, sehingga hanya dibutuhkan satu pernomoran indeks.
array ini dapat dideklarasikan dengan mencantumkan tipe data dan nama variabel yang diikuti dengan banyaknya lokasi memori yang ingin dibuat.
Seperti berikut:

                tipe_data   nama_array[ukuran];

Keterangan :
tipe_data                            : menyatakan jenis tipe data elemen array  (int, char, float, dll)
nama_array                        : menyatakan nama variabel yang dipakai.
ukuran                                : menunjukkan jumlah maksimal elemen array.

ilustrasi array dimensi Satu
Deklarasi array : int Bilangan[8]








Array satu dimensi dapat diakses menggunakan indeksnya.
Bentuk umum :

               Nama_array[indeks]


Contoh program satu dimensi :

#include<iostream.h>
#include<conio.h>
void main()
{
                int ujian [5]={90, 95,78, 80, 85};
   for(int i=0;i<5;i++)
   {
                cout<<"Nilai dari ujian index ke "<<i <<" = "<<ujian [i]<<endl;
   }
   getch();
}

Hasil Outputnya :



Array dua dimensi

Pengertian Array dua dimensi
Sering kali digambarkan/dianalogikan sebagai sebuah matriks. Jika array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi dua terdiri dari banyak baris dan banyak kolom yang bertipe sama.

Deklarasi dari Array dua dimensi:

                tipe_data nama_array[jml_baris][jml_kolom];

Keterangan :
tipe_data                            : menyatakan jenis tipe data elemen array  (int, char, float, dll)
nama_array                        : menyatakan nama variabel yang dipakai.
jml_baris                             : menunjukkan jumlah maksimal baris.
jml_kolom                          : menunjukkan jumlah maksimal kolom.

Illustrasidari Array Dua Dimensi
Deklarasi array :
int matriks[3][4];
int matriks2[3][4] = { {5,20,1,11}, {4,7,67,-9}, {9,0,45,3} };
















Contoh program Array dua Dimensi

#include<iostream.h>
#include<conio.h>
      void main()
   {
   int matrix[3][4]={{5,10,1,11},{4,7,67,-9},{9,0,45,3}};
   for(int i=0;i<3;i++)
    {
                 for(int j=0;j<4;j++)
       { 
                 cout<<matrix[i][j]<<"  ";
       }
       cout<<endl;
    }
   getch();
   }

Hasil Outputnya :