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).
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