Nama:Syarifah Nur Faiza
NPM :47212262
Kelas: 3DA01
Array
Selama ini kita menggunakan satu variabel untuk menyimpan 1
buah nilai dengan tipe data tertentu.
Misalnya :
int a1, a2, a3, a4, a5;
Deklarasi variabel diatas digunakan
untuk menyimpan 5 data integer dimana masing-masing variabel diberi nama a1,
a2, a3, a4, dan a5
Jika kita memiliki 10 data, 100 data integer bahkan mungkin
data yang ingin kita proses tidak kita ketahui atau bersifat dinamis? Kita
tidak mungkin menggunakan variabel seperti diatas.
Di dalam C ++ dan pemrograman yang lain, terdapat suatu
fasilitas untuk menyimpan data-data yang bertipe data sama dengan suatu nama
tertentu yaitu array
Definisi Array
Array adalah suatu tipe data terstuktur yang berupa sejumlah
data sejenis (bertipe data sama) yang jumlahnya tetap dan diberi suatu nama
tertentu.
Elemen-elemen array tersusun secara sekuensial di dalam
memori sehingga memiliki alamat yang berdekatan.
Array dapat berupa array 1 dimensi, 2 dimensi, bahkan
n-dimensi.
Elemen-elemen array bertipe data sama tapi bisa bernilai
sama atau berbeda-beda.
Array
Array/larik merupakan kumpulan dari nilai-nilai data yang
bertipe sama dalam urutan tertentu yang menggunakan sebuah nama yang
sama. Array diakses berdasarkan indeksnya. Array dapat digolongkan
menjadi :
a. Array dimensi satu
b. Array dimensi dua
c. Array dimensi banyak
Berikut ini bentuk umum dari pendeklarasian dan pengaksesan
array.
Dimensi
|
Deklarasi
|
Akses
|
Satu
|
tipe nama_var[ukuran]
|
nama_var[indeks]
|
Dua
|
Tipe nama_var[ukuran-pertama]
[ukuran-kedua]
|
nama_var[indeks-pertama]
[indeks-kedua]
|
Banyak
|
Tipe nama_var[ukuran-pertama]
[ukuran-kedua][...][ukuran-n]
|
nama_var[indeks-pertama]
[indeks-kedua][...][indeks-n]
|
Keterangan :
tipe
:tipe data
elemen array (misalnya char, int, unsigned)
nama_var :nama variabel yang dibuat
ukuran :jumlah maksimal
elemen array, ditulis antara tanda [ & ]
jumlah elemen yang dapat digunakan pada program harus <= ukuran
banyaknya ukuran tergantung dimensi array (ukuran-pertama ... ukuran-n)
indeks
:urutan dari elemen yang disimpan pada suatu array, dimulai dari 0 s/d ukuran –
1banyaknya
indeks tergantung dari dimensi array (indeks-pertama ... indeks-n)
Inisialisasi array tak berukuran
Dikatakan tidak berukuran bila jumlah elemen array/ukuran yang terdapat di
antara tanda [ & ] tidak disebutkan. Untuk
array dimensi dua atau lebih, hanya ukuran terkiri atau ukuran pertama saja
yang bisa tidak berukuran.
Inisialisasi array tak berukuran dilakukan dengan meletakkan elemen-elemen
array di antara tanda { dan }.
Array dan string
Seperti kita ketahui, pada bahasa C ataupun C++ tidak tersedia tipe data
string, namun string dapat dibentuk dari array karakter dimensi 1. Suatu
array string dimensi 1 dapat dibentuk dari array karakter dimensi 2 dan array
string dimensi N dapat dibentuk dari array karakter dimensi N+1.
Array sebagai parameter
Suatu variabel bertipe array dapat dilewatkan sebagai parameter suatu
fungsi. Pengaksesan array ini sama dengan cara pemanggilan fungsi
Contoh pendeklarasian :
int
bilangan[5]
variabel array dimensi 1 bernama bilangan dengan tipe
integer yang berukuran 5
double
matrik[3][4]
array dimensi 2 dengan ukuran1 = 3 dan ukuran2 = 4
int nomor[] = {1,2,3,4,5}
array dimensi 1 yang tak berukuran, memiliki 5 elemen
char hari[][10]
=
{“senin”,”selasa”,”rabu”,”kamis”,”jumat”,”sabtu”,”minggu”}
array dimensi 2 dengan ukuran1 tak berukuran dan ukuran2 =
10
void
nama(char name[]);
array dimensi 1 sebagai parameter pada suatu fungsi
Contoh pengaksesan :
bilangan[0]
= 4
diberikan nilai 4 kepada variabel bilangan indeks ke-0 atau
elemen pertama
cin
>> matrik[1][1]
memasukkan suatu nilai ke variabel matrik dengan indeks1
ke-1 dan indeks2 ke-1 atau elemen ke-2 dari ukuran1 dan elemen ke-2 dari
ukuran2
cout
<< nomor[4]
mencetak nilai dari variabel nomor indeks ke-4 atau elemen
ke-5 yaitu 5
for(i =
0;i < 10; i++)
cout << hari[6][i];
mencetak variabel hari dengan indeks1 ke-6 dan indeks2 ke-0
s/d ke-9, yang hasilnya adalah minggu
nama(name);
memanggil fungsi nama yang memiliki sebuah variabel array
dimensi 1, hasilnya sesuai proses yang terdapat pada fungsi yang bersangkutan.
contoh program :
#include <iostream.h>
#include <conio.h>
main ()
{ int nilai [9]={9,10,11,12,13,14,15,16,17};
for (int i=0;i<9;i++)
{
cout<<"tampilakan array ke-"<<i<<"yaitu :" ;
cout<<nilai [i]<<endl;
}
getch();
#include <conio.h>
main ()
{ int nilai [9]={9,10,11,12,13,14,15,16,17};
for (int i=0;i<9;i++)
{
cout<<"tampilakan array ke-"<<i<<"yaitu :" ;
cout<<nilai [i]<<endl;
}
getch();
}
Macam – Macam Array
Array dapat dibedakan menjadi :
– Array berdimensi satu
– Array berdimensi dua
– Array berdimensi banyak
Array berdimensi Satu
Mendefinisikan array meliputi :
– Tipe data elemen array
– Nama array
– Jumlah elemen array
tipe_data
nama_var_array[ukuran];
Misal :
char huruf[9];
Int umur[10];
Int kondisi[2]={0,1};
Int arr_dinamis[]={1,2,3};
Subscript array (index array) dimulai dari nol.
Keterangan :
char huruf[9]: berarti akan memesan tempat di memori
komputer sebanyak 9 tempat dengan indeks dari 0-8, dimana semua elemennya
bertipe data karakter semuanya. Kalau satu karakter berukuran 1 byte, berarti
membutuhkan memori sebesar 9 byte.
int umur[10]: berarti akan memesan tempat di memori komputer
sebanyak 10 tempat dengan indeks dari 0-9, dimana semua elemennya bertipe data
integer semuanya. Kalau satu integer berukuran 4 bytes, berarti membutuhkan
memori sebesar 4 x 10 = 20 bytes.
int kondisi[2]: berarti akan memesan tempat di memori
komputer sebanyak 2 tempat dengan indeks 0-1, dimana semua elemennya bertipe
data integer semuanya. Dan pada contoh di atas isi elemen-elemennya yang sebanyak
2 buah diisi sekaligus (diinisialisasi) yaitu pada elemen kondisi[0] bernilai
0, dan elemen kondisi[1] bernilai 1.
int arr_dinamis[]:berarti mendeklarasikan array dengan ukuran
maksimum array tidak diketahui, namun ukuran tersebut diketahui berdasarkan
inisialisasi yaitu sebanyak 3 elemen, yang isinya 1,2, dan 3. Kita tidak dapat
mendeklarasikan array dinamis tanpa inisialisasi.
Tanda [] disebut juga “elemen yang ke- „.
Misalnya kondisi[0] berarti elemen yang ke nol.
Array yang sudah dipesan, misalnya 10 tempat tidak harus
diisi semuanya, bisa saja hanya diisi 5 elemen saja, baik secara berurutan
maupun tidak. Namun pada kondisi yang tidak sepenuhnya terisi tersebut, tempat
pemesanan di memori tetap sebanyak 10 tempat, jadi tempat yang tidak terisi
tetap akan terpesan dan dibiarkan kosong.
Mengakses Elemen Array
Contoh :
cin>>suhu[i];
cout<<suhu[3];
Memberikan Nilai Awal pada Array
Contoh :
int jum_hari[12] =
{
31,28,31,30,31,30,31,31,30,31,30,31
};
Atau
int jum_hari[] =
{
31,28,31,30,31,30,31,31,30,31,30,31
};
Untuk memberikan nilai awal yang sama pada array :
int tmp[5] = { 0 };
Contoh 1
Misalkan kita ingin membuat program untuk mencari nilai
rata-rata dari 5 buah data nilai yang diinputkan oleh user.
Tanpa menggunakan array, maka programnya adalah sebagai
berikut :
Array Berdimensi Satu
#include <iostream.h>
#include <conio.h>
void main()
{
float nilai1, nilai2, nilai3, nilai4, nilai5;
float jumlah, rata2;
cout<<"Program Menghitung Nilai
Rata-rata"<<endl;
cout<<"Masukkan nilai ke 1 : ";
cin>>nilai1;
cout<<"Masukkan nilai ke 2 : ";
cin>>nilai2;
cout<<"Masukkan nilai ke 3 : ";
cin>>nilai3;
cout<<"Masukkan nilai ke 4 : ";
cin>>nilai4;
cout<<"Masukkan nilai ke 5 : ";
cin>>nilai5;
jumlah = nilai1 + nilai2 + nilai3 + nilai4 +
nilai5;
rata2 = jumlah / 5;
cout<<"Nilai rata-rata adalah
"<<rata2<<endl;
getch();
}
Array Berdimensi satu
Pada program di depan kita memerlukan 5 buah variabel yang
berbeda-beda untuk menyimpan 5 buah nilai.
Bisa dibayangkan kesulitan yang dihadapi jika kita harus
memproses data yang lebih banyak.
Dengan menggunakan array, program menjadi lebih baik.
Contoh Program
#include <iostream.h>
#include <conio.h>
void main()
{
float nilai[5];
float jumlah, rata2;
cout<<"Program Menghitung Nilai
Rata-rata"<<endl;
for(int i=0; i<5; i++)
{
cout<<"Masukkan
nilai ke "<<(i+1)<<" : ";
cin>>nilai[i];
}
jumlah = 0;
for(int i=0; i<5; i++)
{
jumlah = jumlah + nilai[i];
}
rata2 = jumlah / 5;
cout<<"Nilai rata-rata adalah
"<<rata2<<endl;
getch();
}
Contoh ke 2 :
#include<iostream.h>
int main(){
// mendeklarasikan sebuah array dengan nama A
int A[5];
//memasukkan nilai ke dalam elemen array
for (int C=0;C<5;C++){
cout<<"A["<<C<<"]="; cin>>A[C]; }
return 0; }
Contoh ke 3 :
#include<iostream.h>
#include<conio.h>
int main(){
int A[5]; // mendeklarasikan sebuah array dengan nama A
// memasukkan nilai ke dalam elemen array
for (int C=0;C<5;C++){
cout
<<"A["<<C<<"] = "; cin>>A[C];}
cout<<"menampilkan nilai dalam elemen
array"<<endl;
for (int j=0;j<5;j++){
cout<<"Nilai elemen array ke
-"<<j+1<<" adalah "<< A[j]<<endl; }
getch();
return 0; }
Contoh ke 4 :
#include <iostream.h>
#include <conio.h>
int main(){
int bil[7] = {2,5};
for(int i=0;i<7;i++){
cout<<"Elemen ke-"<<i<<“=“<<bil[i];
}
getch();
return
0;
}
Contoh ke 5 :
#include <iostream.h>
#include <conio.h>
void main()
{
int jum_hari[12] =
{
31,29,31,30,31,30,31,31,30,31,30,31
};
int tgl, bln, jumlah;
cout<<"Program Mencari Hari Di Tahun
2008"<<endl;
cout<<"Masukkan Tanggal : ";
cin>>tgl;
cout<<"Masukkan Bulan : ";
cin>>bln;
jumlah = 0;
for(int i=0; i<(bln-1); i++)
{
jumlah = jumlah + jum_hari[i];
}
jumlah = jumlah + tgl;
cout<<"Jumlah Hari =
"<<jumlah<<endl;
int sisa;
sisa = jumlah % 7;
cout<<"Tanggal
"<<tgl<<" Bulan "<<bln<<" adalah
Hari = ";
if (sisa==0)
cout<<"Senin"<endl;
else if (sisa==1)
cout<<"Selasa"<endl;
else if (sisa==2)
cout<<"Rabu"<endl;
else if (sisa==3)
cout<<"Kamis"<endl;
else if (sisa==4)
cout<<"Jumat"<endl;
else if (sisa==5)
cout<<"Sabtu"<endl;
else if (sisa==6)
cout<<"Minggu"<endl;
getch();
}
Array Berdimensi dua
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
Gambar array berdimensi (baris x kolom = 3 x 4)
Jurusan
|
1992
|
1993
|
1994
|
1995
|
Teknik Informatika
|
35
|
45
|
80
|
120
|
Manajemen Informatika
|
100
|
110
|
70
|
101
|
Teknik Komputer
|
10
|
15
|
20
|
17
|
Bentuk tabel diatas dapat dituangkan dalam bentuk array
berdimensi dua dengan pendefinisian sebagai berikut :
int data_lulus[3][4];
Pada pendefinisian diatas :
3 menyatakan jumlah baris (mewakili jurusan)
4 menyatakan jumlah kolom (mewakili tahun kelulusan)
Larik Dimensi Dua dapat mewakili bentuk suatu matriks,
contoh:
Suatu matriks
x =
selanjutnya dapat dideklarasikan sebagai
berikut:
int x[2][4];
atau diklarasikan dengan memberikan nilai
elemennya sbb:
int x[2][4]= {{8, 5, 9,
8},{8, 2, 1, 0}}
Masing-masing elemen dalam array berdimensi dua dapat
diakses dengan bentuk :
nama_array[subscript_baris][subscript_kolom];
Contoh pengaksesan :
data_lulus[1][2] = 5;
Artinya, memberikan nilai 5 ke baris 1 kolom 2
(baris dan kolom dimulai dari 0).
cout<<data_lulus[1][2];
Artinya, menampilkan elemen data_lulus dengan subscript
pertama (baris) berupa 1 dan subscript kedua (kolom) berupa 2.
Array Berdimensi Dua
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
void main()
{
cout<<"Program Pertambahan Matrik
3x3"<<endl;
int matrikA[3][3];
int matrikB[3][3];
int matrikC[3][3];
cout<<endl<<"Masukkan data
Matrik A"<<endl;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<"Elemen ke
"<<(i+1)<<","<<(j+1)<<" : ";
cin>>matrikA[i][j];
}
}
cout<<endl<<"Masukkan data
Matrik B"<<endl;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<"Elemen ke "<<(i+1)<<","<<(j+1)<<"
: ";
cin>>matrikB[i][j];
}
}
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
matrikC[i][j] = matrikA[i][j] + matrikB[i][j];
}
}
clrscr();
cout<<"Matrik A
:"<<endl<<endl;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<setw(4)<<matrikA[i][j]<<" ";
}
cout<<endl;
}
cout<<endl<<"Matrik B
:"<<endl<<endl;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<setw(4)<<matrikB[i][j]<<" ";
}
cout<<endl;
}
cout<<endl<<"Hasil pertambahan, Matrik C
:"<<endl<<endl;
for(int i=0; i<3; i++)
{
for(int j=0; j<3; j++)
{
cout<<setw(4)<<matrikC[i][j]<<" ";
}
cout<<endl;
}
getch();
}
Melewatkan Array Sebagai Argumen Fungsi
#include <iostream.h>
#include <conio.h>
void input_array(int data[5]);
void main()
{
int data[5];
input_array(data);
for(int i=0; i<5; i++)
{
cout<<"Data ke
"<<(i+1)<<" = "<<data[i]<<endl;
}
getch();
}
void input_array(int data[5])
{
for(int i=0; i<5; i++)
{
cout<<"Masukkan
data ke "<<(i+1)<<" : ";
cin>>data[i];
}
}
Beberapa Fungsi Menggunakan Array :
Operasi yang umumnya dilakukan menggunakan array adalah :
– Mencari bilangan terbesar /
terkecil.
– Mencari suatu data pada array.
– Mengurutkan data.
Mencari Suatu Data Pada Arrray
#include <iostream.h>
#include <conio.h>
void main()
{
int i, x, ketemu;
int data[] = {5, 100, 20, 31, 77, 88, 99, 24,
55, 1};
cout<<"Data yang anda cari : ";
cin>>x;
ketemu = 0;
for(i=0; i<sizeof(data)/sizeof(int); i++)
{
if(data[i] == x)
{
ketemu = 1;
break;
}
}
if(ketemu)
cout<<"Data
tersebut ada pada posisi ke "<<(i+1)<<endl;
else
cout<<"Data yang
anda cari tidak ditemukan"<<endl;
getch();
}
Mengurutkan Data Pada Array
Ada berbagai teknik untuk mengurutkan data, salah satunya
adalah metode bubble sort.
Pengurutan dilakukan dengan membandingkan setiap elemen
array dengan seluruh elemen yang terletak sesudah posisinya.
Contoh :
#include <iostream.h>
#include <conio.h>
void main()
{
int data[10];
int i, j, tmp;
cout<<"Program Mengurutkan
Data"<<endl;
cout<<"Dengan Metode Bubble
Sort"<<endl;
for(i=0; i<10; i++)
{
cout<<"Masukkan
data ke "<<(i+1)<<" : ";
cin>>data[i];
}
clrscr();
cout<<"Data sebelum diurutkan :
"<<endl;
for(i=0; i<10; i++)
{
cout<<data[i]<<" ";
}
cout<<endl;
for(i=0; i<9; i++)
{
for(j=i+1; j<10; j++)
{
if(data[i]>data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}
}
}
cout<<"Data setelah diurutkan :
"<<endl;
for(i=0; i<10; i++)
{
cout<<data[i]<<" ";
}
getch();
}