twitter

Array merupakan tipe data terstruktur yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian yang menyusun array disebut elemen array, yang masing-masing elemen dapat diakses tersendiri melalui indeks array. Indeks larik umumnya dimulai dari 0 dan ada pula yang dimulai dari angka bukan 0. Pengaksesan larik biasanya dibuat dengan menggunakan perulangan (looping). Array dua dimensi merupakan tipe array yang berbeda. Array dua dimensi sering dipakai untuk merepresentasikan tabel dan matriks dalam pemrograman.

Pendeklarasian Array 1 Dimensi.
  tipe data_nama variabel_[jumlah indeks];
  contoh : int x[10][10];
maksud pendeklarasian di atas adalah memesan array bernama "x" dengan tipe data "integer" dan jumlah indeks pada koordinat x sebanyak "10" dan koordinat y sebanyak "10". Dimana x adalah untuk koordinat baris dan y untuk koordinat kolom. Untuk lebih memahaminya lihat gambar berikut : 


Pemasukan Data Ke Dalam Indeks Array 2 Dimensi.
cara memasukkan data ke dalam indek array 2 dimensi sama dengan pemasukan array 1 dimensi yaitu ada dua cara yaitu secara manual dan secara menggunakan perulangan for.
  1. Dengan cara Manual
    cin>>x[0][0];
    maksudnya adalah memasukkan data pada indeks x dan y ke "0". Namun cara seperti ini kurang efisien karena terlalu banyak menuliskan source code. Misalkan anda memasukkan angka 9 pada indeks tersebut maka hasilnya adalah sebagai berikut :

  2. Dengan Cara Menggunakan Perulangan For
    for(int i=0; i<n; i++){
       for(int j=0; j<m; j++){
    cin>>x[i][j];
    }
    cout<<endl;} // ini untuk mengganti baris
    maksudnya adalah memasukkan data pada indeks sebanyak n. Jika n=3 dan m=3berarti data yang di masukkan adalah sebanyak 3 yaitu dari indek ke "0" sampai indeks ke "2" dari masing-masing koordinat x dan y. Dan data yang di masukkan adalah sebanyak n*m = 9 data. Cara ini lebih efisien karena anda dapat menentukan berapa banyak data yang perlu di masukkan dan menghemat menuliskan source code. Misalkan anda memasukkan angka 1,2,3,4,5,6,7,8,9 maka hasilnya adalah sebagai berikut :
    kondisi awal i = 0 dan j = 0
    setelah pada perulangan j berhenti maka secara otomatis akan berpindah baris. Maksudnya i akan bertambah 1 dan j kembali ke 0.
    Kondisi ke dua i = 1 dan j = 0


    setelah pada perulangan j berhenti maka secara otomatis akan berpindah baris. i akan bertambah 1 dan j kembali ke 0.
    Kondisi ke tiga i = 2 dan j = 0
    setelah perulangan j berhenti begitu juga dengan perulangan i. Maka pemasukan data ke indeks juga akan berhenti.


    Pemanggilan Array 2 Dimensi.
    Sama dengan pemanggilan data dalam array 1 dimensi. Pemanggilan array 2 dimensi juga mempunyai 2 cara yaitu secara manual atau dengan menggunakan perulangan for.


    1. Manual
      cout<<x[0][0];
      maksudnya adalah menampilkan hasil dari array x dengan nomor indeks x ke- "0" dan y ke-"0".


    2. Menggunakan Perulangan For
      for(int i=0; i<n; i++){
          for(int j=0; j<m; j++){
      cout<<x[i][j];}
      cout<<endl;} // pindah baris
      maksud dari sorce code di atas adalah mencetak array x sebanyak n*m.
      Misalkan n sebanyak 3 dan m sebanyak 3 maka hasilnya adalah sebaggai berikut :
      kondisi awal i = 0 dan m = 0.



      di saat j sudah tidak memenuhi syarat yaitu j<= m. maka perulangan j berhenti dan berganti baris. kemudian berganti kondisi i = i+1 dan j kembali 0.
      kondisi ke dua i = 1 dan j = 0

      di saat j sudah tidak memenuhi syarat yaitu j<= m. maka perulangan j berhenti dan berganti baris. kemudian berganti kondisi i = i+1 dan j kembali 0.
      kondisi ke tiga i = 2 dan j = 0

      di saat i dan j sudah tidak memenuhi syarat yaitu i<=n dan j<= m. maka perulangan i dan j berhenti.

    Contoh program Array 2 Dimensi

    #include <cstdlib>
    #include <iostream>

    using namespace std;
    class matriks{
          public:
                 friend istream& operator>>(istream&, matriks&);
                 friend ostream& operator<<(ostream&, matriks&);
                 void masuk_data();
                 matriks();
          private:
                  int x[10][10],n,m;
                  };
          matriks::matriks(){
                             cout<<"PROGRAM MENCETAK MATRIKS"<<endl;}
          istream& operator>>(istream& in, matriks& a){
                   cout<<"Masukkan banyak baris :"; in>>a.n;
                   cout<<"Masukkan banyak kolom :"; in>>a.m;}
          void matriks::masuk_data(){
               for(int i=0; i<n; i++){
                       for(int j=0; j<m; j++){
                               cout<<"Masukkan data ke ["<<i+1<<"]["<<j+1<<"] :";
                               cin>>x[i][j];
                               }}
                               }
          ostream& operator<<(ostream& out,matriks& b){
                   out<<"Banyak baris ="<<b.n<<endl; 
                   out<<"Banyak kolom ="<<b.n<<endl; 
                   out<<"Matriks X ="<<endl;
                    for(int i=0; i<b.n; i++){
                            out<<"\t";
                       for(int j=0; j<b.m; j++){
                               out<<b.x[i][j]<<"\t";
                               }cout<<endl;
                               }
                               }  

    int main(int argc, char *argv[])
    {
        matriks arif;
        cin>>arif;
        arif.masuk_data();
        cout<<arif;
        system("PAUSE");
        return EXIT_SUCCESS;
    }

    Hasil running program :




    Minggu, 05 Juni 2011 | 0 komentar | Label: