Jumat, 05 Desember 2014

Laporan Praktikum Algoritma dan Pemrograman (Modul IV Array /Larik)



 MODUL IV

ARRAY (LARIK)


A.  Tujuan
1.    Mahasiswa dapat memahami definisi dan kegunaan array.
2.    Mahasiswa dapat mengetahui bagaimana mengimplentasikan array dalam program.

B.  Dasar Teori
1.    Array Satu Dimensi
Berikut merupakan sedikit penjelasan array berdimensi satu, untuk lebih jelasnya berikut contohnya :
Sebuah array bernama nil yang terdiri dari 5 data dengan tipe int, dapat digambarkan sebagai berikut :




Tiap ruang kosong merupakan tempat untuk masing-masing elemen array bertipe integer. Penomorannya berawal dari 0 sampai 4, sebab dalam array index pertama selalu dimulai dengan 0.
o  Deklarasi array
Sama seperti variabel, array harus dideklarasikan dulu sebelum mulai digunakan. Sintaknya adalah :
tipe nama[elemen];

o  Inisialisasi array
Nilai suatu variabel array dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya :
int nil[5]={1,3,6,12,24};

Maka di penyimpanan ke dalam array dapat digambarkan sebagai berikut :
o  Mengakses nilai array
Untuk mengakses nilai yang terdapat dalam array, dapat di gunakan sintak:
nama[index];

Pada contoh di atas, variable nil memiliki 5 buah elemen yang masing-masing berisi data. Pengaksesan tiap-tiap elemen data adalah :


Misal, untuk memberikan nilai 75 pada elemen ke 3, maka pernyataannya adalah:
nil[2] = 75;

Atau jika akan memberikan nilai array kepada sebuah variabel a, dapat ditulis:
a=nil[2];

2.    Array Dua Dimensi
Struktur array yang dibahas di atas mempunyai satu dimensi, sehingga variable-nya disebut dengan variable array berdimensi satu. Pada bagian ini, ditunjukkan array berdimensi lebih dari satu, yang sering disebut dengan array berdimensi dua. Sebagai contoh, sebuah matrik B berukuran 2 x 3 dapat dideklarasikan sebagai berikut :
int b[2][3]={{2,4,1},{5,3,7}};

Yang akan menempati lokasi memori dengan susunan sebagai berikut:
 

 


3.    Array Multi-Dimensi
Larik multi-dimensi merupakan tipe data yang sering digunakan pada pendeklarasian variabel yang sama tapi memiliki lebih dari dua indeks yang berbeda, serta pengisian elemen larik dilakukan melalui indeks. Indeks larik secara default dimulai dari 0,0. Jumlah elemennya adalah indeks1 x indeks 2 x...indeks n
Bentuk umum penulisan : 
type_data variabel[jumlah_elemen_1]
[jumlah_elemen_2]...[jumlah_elemen_n];

Contoh :
int x[2][2][2];
int y[2][2][2]={1,2,3,4,5,6,7,8};


4. Array Dinamis
Array dinamis adalah array yang pengalokasi memorinya dapat diubah-ubah. Hal ini terjadi karena array dinamis menggunakan pointer sebagai tempat pengalokasian memori.  
Contoh script array Dinamis:

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

void main(){
int a[2][3];
for (int i=0; i<2; i++){
      for (int j=0; j<3; j++){
      cout<<"a["<<i<<"]"<<"["<<j<<"]= ";
      cin>>a[i][j];
            }
}
cout<<"Data yang anda masukkan adalah = "<<endl;
      for (int i=0; i<2; i++){
      for(int j=0; j<3; j++){
      cout<<a[i][j]<<endl;
      }
      }
getch ();

}
  


















C.    PERMASALAHAN
Buatlah program untuk menghitung mean dan modus dari data berikut ini :
2, 4, 8, 9, 3, 6, 5, 7, 1 dan ke-9 data tersebut dimasukkan kedalam array.

Program dari permasalahan diatas adalah sebagai berikut:
#include <iostream.h>
#include <conio.h>

int mean(int a[]){
   float hasil;
            for(int i=0;i<9;i++)
      {
                  hasil=hasil+a[i];
      }

   hasil=hasil/9;
   return(hasil);}

void urutan(int a[]){
      for(int c=0;c<9;c++){
            for(int d=0;d<9;d++){
            if(a[c]<a[d]){
                  int e;
            e=a[c];
            a[c]=a[d];
            a[d]=e;
            }
      }
      }
}

int median(int a[]){
      int y=9;
   y=y/2;

   return a[y];
}

void tampil(int a[]){
      for (int i=0;i<9;i++)
   {
      cout<<a[i]<<" ";
   }
}

void main(){
   int a[9] = {2, 4, 8, 9, 3, 6, 5, 7, 1};
   urutan(a);
   tampil(a);
   cout<<endl;
   cout <<"meannya adalah : "<<mean(a)<<endl;
   cout <<"mediannya adalah :"<<median(a);
   getch();
}
Tampilan dari program tersebut adalah adalah:

D.    ANALISA DATA
#include <iostream.h>
#include <conio.h>
#include <math.h>

Penggalan script di atas merupakan file header dari program tersebut. File header mengandung beberapa fungsi atau perintah yang akan digunakan dalam program. File header ini sangat penting, karena beberapa perintah tidak akan dapat dijalankan jika file header yang mendukung perintah tersebut tidak ditulis dalam program. File header ini memiliki ciri berakhiran “.h” dan diarahkan oleh preprocessor dirrective #include sebagai gambaran kepada compilator bahwa beberapa fungsi yang terdapat dalam file header tersebut diikutkan dalam pembuatan program.
File header yang digunakan dalam permasalah tersebut, yaitu:
·       #include <iostream.h>
File header ini diperlukan jika program yang kita buat melibatkan  cout dan cin, dimana dalam program ini cout diartikan sebagai output yang akan ditampilkan setelah program di compile dan cin diartikan sebagai input untuk data yang akan di compile.
·      #include <conio.h>
File header ini diperlukan untuk membaca  perintah getch () yaitu untuk menunda tertutupnya program setelah di-compile.
int mean(int a[]){
   float hasil;
            for(int i=0;i<9;i++)
      {
                  hasil=hasil+a[i];
      }

   hasil=hasil/9;
   return(hasil);
}
Merupakan fungsi mean (), yaitu untuk menghitung nilai dari data yang di-input­-kan dimana terdapat pengulangan for  untuk memberikan nilai pada masing-masing elemen data dari a[0] sampai a [8]. Untuk hasil akhir elemen pertama atau a[0] akan ditambahkan dengan elemen kedua atau a[1], hasilnya akan ditambahkan dengan elemen ketiga atau a[3], begitu seterusnya pengulangan akan dilakukan. Dan hasil akhir selanjutnya akan dibagi dengan banyak data yaitu 9 dimana hasilnya tersebut akan dikembalikan nilainya sebagai nilai dari rata-rata atau mean, sehingga saat fungsi mean dipanggil, maka nilai inilah yang akan dikirim.

void urutan(int a[]){
    for(int c=0;c<9;c++){
      for(int d=0;d<9;d++){
      if(a[c]<a[d]){
                  int e;
            e=a[c];
            a[c]=a[d];
            a[d]=e;
            }
   }
    }
}
Merupakan fungsi untuk mengurutkan data yang sudah di-input-kan. Didalam fungsi tersebut terdapat pengulangan for didalam for dimana untuk for pertama merupakan pengulangan untuk bilangan pertama yang akan dibandingkan nanti dengan for didalamnya dalam statement control if dimana jika a[c] lebih kecil dari a[d] maka untuk int e adalah bilangan yang akan diletakkan paling kiri, untuk e sama dengan a[c], a[c] sama dengan a[d] dan a[d] sama dengan e.

int median(int a[])
{
    int y=9;
   y=y/2;

   return a[y];
}
Merupakan fungsi median yaitu untuk menentukan nilai tengah (median) dari data yang sudah diurutkan dalam fungsi sebelumnya. Untuk banyak data di-input-kan sebanyak 9 diberi variable y bertipe integer dimana untuk nilai median adalah banyak data dibagi dua yaitu lima. Data kelima dari data yang sudah di-input-kan tersebut merupakan nilai mediannya yang akan dikembalikan sebagai nilai a[y] untuk nilai median dari fungsi tersebut.

void tampil(int a[])
{
    for (int i=0;i<9;i++)
   {
   cout<<a[i]<<" ";
   }
}
Merupakan fungsi untuk menampilkan nilai yang sudah diurutkan dari fungsi sebelumnya. Fungsi ini menggunakan pengulangan for untuk melakukan pengulangan dalam menampilkan datanya.

void main(){
   int a[9] = {2, 4, 8, 9, 3, 6, 5, 7, 1};
   urutan(a);
   tampil(a);
   cout<<endl;
   cout <<"meannya adalah : "<<mean(a)<<endl;
   cout <<"mediannya adalah :"<<median(a);
   getch();
}
Merupakan fungsi utama yang akan diproses oleh program. Dalam fungsi inilah kesembilan data tersebut di-input-kan. Program akan memanggil fungsi urutan () untuk mengurutkan data kemudian tampilan () untuk menampilkan data yang sudah diurutkan . Terdapat cout untuk menampilkan nilai mean dan nilai median-nya.

Cara kerja program:
Saat program dijalankan maka compiler pertama kali akan mengeksekusi fungsi main (). Dalam program tersebut di-inputkan-kan 9 data dimana data-data tersebut dimasukkan kedalam array yang harus dideklarasikan terlebih dahulu. Setelah data terdeklarasi, program memanggil fungsi urutan untuk mengurutkan data agar nilai mediannya dapat dihitung. Selanjutnya program akan memanggil fungsi tampil, yaitu untuk menampilkan data yang sudah diurutkan sebelumnya. Barulah program akan menampilkan hasil dari perhitungan rata-rata (mean) dan nilai tengah bilangan (median).




E.     KESIMPULAN
Dalam praktikum modul 4 ini mengenai array dapat disimpulkan bahwa:
1.    Array adalah salah satu tipe data terstruktur (structured data type) yang berguna untuk menyimpan sejumlah data yang bertipe sama. Bagian yang menyusun array disebut elemen array. Array terbagi manjadi tiga, yaitu:
a.         Array satu dimensi
b.         Array dua dimensi
c.         Array multi dimensi
2.      Array tidak dapat dideklarasikan tanpa ukuran dan tanpa pemberian nilai awal, seperti berikut: int x[]; compiler akan memberikan pesan kesalahan bahwa array tidak memiliki ukuran.
3.      Permasalahan sering muncul jika pembuat program belum dapat menentukan berapa jumlah elemen array yang akan digunakan dalam programnya. Hal ini dapat diatasi dengan menentukan jumlah maksimal elemen yang ditampung terlebih dahulu  saat pendeklarasian dengan melihat batasan memori yang digunakan. Misalnya jumlah elemen array terlebih dahulu ditentukan 100, kemudian dalam program ada masukan yang menanyakan jumlah elemen array sesungguhnya yang dibutuhkan, misalnya pengguna program hanya menggunakan 10 elemen saja, maka sisa elemen yang telah ditentukan sebelumnya tidak akan digunakan meskipun sudah dipesan penempatannya dalam memori.
4.      Dalam program tugas 2 array digunakan untuk menyimpan data yang di-input-kan pada elemen-elemen dalam array tersebut dimulai dari a[0] sampai a[8].



DAFTAR PUSTAKA

Trisna, “Array 1 Dimensi pada C”.
http://realinformatics.blogspot.com/2013/01/array-dimensi-1-pada-c.html#.UuMqsdL-LIU.
   (diakses pada 25 Januari 2014, 11:20 WITA).
Frieyadie. 2006. “Panduan pemrograman C++”. Penerbit Andi: Yogyakarta.
Utama, Ditdit N., Widyanti Riya.2005. “Algoritma dan Pemrograman dengan Borland C++”. Graha Ilmu:Yogyakarta.





TUGAS TAMBAHAN 1

Buatlah array dua dimensi dengan ukuran array [5] dan [7]. Kemudian tampilkan:
1.      Tampilkan semua isi array
2.      Jumlahkan semua nilai array

Program untuk permasalahan diatas adalah sebagai berikut:
 
#include <iostream.h>
#include <conio.h>

void main (){
char x;
int hasil;
cout<<"Masukkan bilangan!"<<endl;
cout<<endl;
int a[5][7];
   for (int i=0; i<5; i++){
            for (int j=0; j<7; j++){
            cout<<"a["<<i<<"]"<<"["<<j<<"]= ";
            cin>>a[i][j];
      }
   }
cout<<endl;
cout<<"Silahkan pilih!"<<endl;
cout<<"0--- Tampilkan semua isi array"<<endl;
cout<<"1--- Jumlahkan semua nilai array"<<endl;
cout<<"Masukkan pilihan anda : ";
cin>>x;
if (x == '0'){
cout<<"Data yang anda masukkan adalah = "<<endl;
      for (int i=0; i<5; i++){
      for(int j=0; j<7; j++){
      cout<<a[i][j]<<" ";
      }
      }

}
else {
hasil = 0;
   for (int i=0; i<5; i++){
      for(int j=0; j<7; j++){
      hasil = hasil + a[i][j];
      }
      }
cout<<"Jumlahnya adalah : "<<hasil;
}
getch ();
}


Tampilan untuk program diatas adalah:






TUGAS TAMBAHAN 2

Buatlah program untuk perkalian matriks 3x8 dan 8x3.
Program untuk permasalahn diatas adalah:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>

void main(){
   int A[3][8],B[8][3],C[3][3],i,j,k;
   clrscr();
   cout<<"Silahkan input matrik A : \n";
   cout<<"------------------------- \n";
   for(i=0;i<3;i++){
        for(j=0;j<8;j++){
        cout<<"A["<<(i+1)<<"]["<<(j+1)<<"]: ";
        cin>>A[i][j];
        }
   }

   cout<<"\nMatrik A : \n";
   for(i=0;i<3;i++){
        for(j=0;j<8;j++){
        cout<<setw(4)<<A[i][j];
        }
        cout<<endl;
   }
   cout<<endl;

   cout<<"Silahkan input matrik B : \n";
   cout<<"------------------------- \n";
   for(i=0;i<8;i++){
    for(j=0;j<3;j++){
        cout<<"B["<<(i+1)<<"]["<<(j+1)<<"]: ";
        cin>>B[i][j];
        }
   }

   cout<<"\nMatrik B : \n";
   for(i=0;i<8;i++){
        for(j=0;j<3;j++){
        cout<<setw(4)<<B[i][j];
        }
        cout<<endl;
   }

  for (i=0;i<8;i++){
    for (j=0;j<3;j++){
    C[i][j]=0;
        for (k=0;k< 8;k++){
          C[i][j]+= A[i][k]*B[k][j];
        }
    }
  }

  cout<<"\nMatrik C, Hasil : \n";
  for(i=0;i<3;i++){
    for(j=0;j<3;j++){
        cout<<setw(4)<<C[i][j];
    }
    cout<<endl;
  }
    cout<<endl;
    getch();
}




Tampilan untuk program diatas adalah:


Tidak ada komentar:

Posting Komentar