Senin, 31 Januari 2011

Array di C++


Nama : Ramiaji Ariandhani
Tanggal Lahir : 28/03/1991
Alamat : Margahayu Raya
Universitas : PKN.LPKIA
Program Study : Tekhnik Informatika
Idola : Diri Saya Sendiri.






Tekom C merupakan Kumpulan Dari Anak-anak Konsentrasi Teknik Informatika atau TI.
Didirikan Oleh Seseorang Yg bernama Bpk. Rudi Firman Sofyan.
Tekomsi Merupakan Konsentrasi Terbanyak Mahasiswanya Di Kampus LPKIA Dan tekomsi menjadikan Mahasiswa/Mahasiswi LPKIA menjadi lebih kompeten dalam era Globalisasi Sekarang Karena di Dukung oleh Pengajar-Pengajar yg Handal Seperti Wali Kelas/Dosen Teori Algoritma Kami ya itu Pak Dadan Nurdin Bagenda, Dan Dosen Praktek Algoritma Yaitu Pak Murnawan.

Tekom C memberikan Pengajaran yg berbeda dan khas dari konsentrasi lain nya yg membuat mahasiswa lebih cepat memahami dan mengerti apa yg di berikan oleh dosen/pengajar.

Dan saya bangga menjadi salah satu dari Komunitas Tekom C karena kami anak Tekom.

TEKOM C SIAP!!!!!





Array merupakan koleksi data dimana setiap elemen memakai nama dan tipe yang sama serta setiap elemen diakses dengan membedakan indeks array-nya. Berikut adalah contoh variable bernama c yang mempunyai lokasi memori yang semuanya bertipe int.
C[0] -45
C[1] 6
C[2] 0
C[3] 72
C[4] 1543
C[5] 43
C[6] 4
Masing-masing nilai dalam setiap lokasi mempunyai identitas berupa nama c dan nomor indeks yang dituliskan di dalam tanda kurung ‘[..]’. sebagai contoh, 72 adalah nilai dari c[3].
Deklarasi Array
Variable array dideklarasikan dengan mencantumkan tipe dan nama variable yang diikuti dengan banyaknya lokasi memori yang ingin dibuat. Dengan demikian, deklarasi untuk variablearray c di atas adalah :
int c[7];
Perlu diperhatikan bahwa C++ secara otomatis menyediakan lokasi memori yang sesuai dengan yang dideklarasikan, dimana nomor indeks selalu dimulai dari 0. Nilai suatu variablearray dapat juga diinisialisasi secara langsung pada saat deklarasi, misalnya;
Int c[7] = {-45, 0, 6, 72, 1543, 43, 4}
Berarti setiap lokasi memori dari variable array c langsung diisi dengan nilai-nilai yang dituliskan didalam tanda kurung kurawal.
Banyaknya lokasi memori dapat secara otomatis disediakan sesuai degan banyaknya nilai yang akan dimasukkan, seperti contoh berikut yang tentunya membuat variable array dengan 10 lokasi memori:
Int x []={10, 15 12, 5, 13, 9, 6, 17, 25, 31};
Untuk memperjelas gambaran anda tentang array perhatikan contoh aplikasi variable array, yaitu program untuk menghitung jumlah setiap elemen dalam suatu array.
Sebagai gambaran dari program tersebut, dapat dibuat sebuah algoritma sebagai berikut:
1. Tentukan elemen array sebanyak yang diinginkan (dalam hal ini, elemen array tersebut berjumlah 12 buah)
2. Tentukan nilai awal indeks, batas akhir indeks dan kenaikannya (dalam hal ini, nilai awal indeks adalah 0, batas akhir indeks adalah jumlah elemen array diatas yaitu 12 dikurangi dengan 1, kenaikannya adalah 1)
3. Lakukan perulangan sesuai dengan langkah 2
4. Lakukan penjumlahan masing-masing elemen array sampai batas akhir indeks terpenuhi
5. Tampilkan penjumlahan semua elemen array
6. Selesai.
Sedangkan implementasi dalam program dapat dilihat berikut ini.
Contoh Program array
/*Program :array1.cpp*/
#include
#define SIZE 12
main()
{
int a[SIZE]={1, 3, 5, 4, 7, 2, 99, 16, 45, 67, 89, 45};
int indeks, total =0;
for(indeks=0; indeks<=SIZE-1; indeks++)
total += a[indeks];
printf(“nTotal setiap elemen array adalah %d”,total);
return 0;
}
Bila program diatas dijalankan, akan muncul hasil :
Total setiap elemen array adalah 383
Adapun keterangan dari program diatas adalah sebagai berikut :
Hasil penjumlahan setiap elemen array diperoleh dari jumlah data atau elemen arraysebanyak 12 buah yang sudah didefinisikan pada awal program yaitu #define SIZE 12. Kemudian setiap elemen array dari a[0] yang berisi data, a[1] yang berisi data 3 di jumlahkan sampai dengan a[11] yang berisi data 45. Proses penjumlahan dilakukan pada loop dimulai dari 0 sampai data yang terakhir atau elemen terakhir.
Array Dimensi Satu
Bentuknya :
Tipe nama_var[ukuran];
Dengan :
Tipe : menyatakan jenis elemen array (int, char, unsigned, dan lain-lain)
Ukuran : menyatakan jumlah maksimal elemen array
Contoh :
Float nilai_ujian[5];
Pada turbo C++ array disimpan dalam memori secara berurutan. Elemen pertama berindeks nol digambarkan sebagai berikut :
Nilai_ujian[0]
Nilai_ujian[1]
Nilai_ujian[2]
Nilai_ujian[3]
Nilai_ujian[4]
Masing-masing berbentuk float dan berjumlah 5 elemen.
Selain itu, deklarasi array juga dapat berupa :
Static int bulan[12]={1,2,3,4,5,6,7,8,9,10,11,12}
Sesuai dengan deklarasi array diatas, maka isi variable array telah ditentukan yaitu :
Bulan[0] bernilai 1
Bulan[1] bernilai 2
Bulan[2] bernilai 3
Bulan[3] bernilai 4
Bulan[4] bernilai 5
Bulan[5] bernilai 6
Bulan[6] bernilai 7
Bulan[7] bernilai 8
Bulan[8] bernilai 9
Bulan[9] bernilai 10
Bulan[10] bernilai 11
Bulan[11] bernilai 12
Untuk memperjelas tentang array dimensi satu, perhatikan maslah berikut ini :
Misalkan Anda diminta membuat algoritma dan program untuk menampilkan bilangan dari 1 sampai bilangan 10, dengan pangkatnya masing-masing. Adapun batas nilai maksimal yang disimpan adalah 100.
Sesuai yang telah Anda pelajari , bahwa bilangan 1 pangkatnya adalah 1. Hasil ini diperoleh dari 1*1, kemudian bilangan 2 pangkatnya adalah 4, hasil ini diperoleh dari 2*2 sampaibilangan 10 yang pangkatnya adalah 100, hasil ini diperoleh dari 10*10.
Algoritma dari permasalahan diatas adalah berikut ini :
1. Tentukan elemen array untuk menampung nilai perkalian
2. Tentukan nilai awal indeks, batas akhir indeks dan kenaikannya (dalam hal ini , nilai awal indeks adalah 0, batas akhir indeks adalah 10, dan kenaikannya adalah 1)
3. Lakukan perulangan sesuai langkah 2
4. Nilai awal indeks ditambah dengan 1
5. Lakukan perkalian masing-masing elemen array sampai batas akhir indeks terpenuhi.
6. Tampilkan perkalian semua elemen array
7. Selesai .
Contoh program array dimensi satu
/*Program :array2.cpp*/
#include
int main()
{
int square[100];
int i; /*loop index*/;
int k; /*the integer*/
/*calculate the squares */
for (i=0; i<10; i++)
{
k= i+1;
square[i]=k*k;
printf(“nPangkat dari %d adalah %d “, k, square[i]);
}
return 0;
}
Bila program dijalankan akan muncul hasil :
Pangkat dari 1 adalah 1
Pangkat dari 2 adalah 4
Pangkat dari 3 adalah 9
Pangkat dari 4 adalah 16
Pangkat dari 5 adalah 25
Pangkat dari 6 adalah 36
Pangkat dari 7 adalah 49
Pangkat dari 8 adalah 64
Pangkat dari 9 adalah 81
Pangkat dari 10 adalah 100
Penjelasan :
Dari program diatas, Anda dapat melihat ada 10 buah elemen yang masing-masing nilainya akan dipangkatkan, mulai dari 1 sampai 10. Dimana dalam memori sudah dipesan tempat sebanyak 100.
Sedangkan apabila array akan dikirim ke sebuah fungsi caranya adalah hanya dengan mencantumkan nama array tanpa diikuti dengan tanda apapun, seperti contoh berikut :
int c[5] = {-45, 0, 6, 72, 1543};


JUMLAH (c, 5)
—-
Dalam contoh diatas, yang memanggil fungsi JUMLAH dengan mengirimkan argument berupa variable array c dan sebuah konstanta 5. Perhatikan bahwa variable array ditulis hanya c tanpa notasi tambahan apapun. Deklarasi variable array yang menjadi parameter dari suatu fungsi dituliskan dengan nama variable array yang diikuti dengan tanda kurung [], tanpa menuliskan banyaknya lokasi memori yang diinginkan.
ARRAY DIMENSI DUA
Struktur array yang dibahas diatas mempunyai satu dimensi, sehingga variabelnya disebut 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 dalam C seperti berikut : int B[2][3] = {[2, 4, 1}, {5, 3, 7}}; yang menempati lokasi memori dengan susunan sebagai berikut :
0 1 2
0 2 4 1
1 5 3 7
Dan definisi variable untuk setiap elemen tersebut adalah :
0 1 2
0 b[0][0] b[0][1] b[0][2]
1 b[1][0] b[1][1] b[1][2]
Sebagai implementasi dari keterangan diatas, perhatikan program berikut ini :
Contoh Program array dimensi dua
/*Program :array2.cpp*/
#include
void printArray(int[][3]);
main()
{ int matrik1[2][3] = {{1, 2, 3},{4, 5, 6}};
int matrik2[2][3] = {1, 2, 3, 4, 5};
int matrik3[2][3] = {{1, 2},{4}};
printArray (matrik1);
printArray (matrik2);
printArray (matrik3);
return 0; }
void printArray (int a[][3])
{ int i,j;
for (i=0; i<=1; i++)
{ for (j=0; j<=2; j++)
printf(“%d”,a[i][j]);;
printf(“n”);
}
}
Bila program diatas dijalankan, akan mucul hasil :
123
456
123
450
120
400
Penjelasan :
Dari program diatas untuk matrik 1, penulisannya adalah 123 456, sedangkan pada matrik 2 penulisannya adalah 123 450. 0 disini mempunyai arti tempat yang disediakan untuk data kolom ke 3 dan baris ke 2 tidak diisi. Sedangkan matrik 3 penulisannya adalah 120 400. Dari matrik 3 disini kita bisa melihat bahwa pada baris pertama kolom ketiga data tidak diisi dan dianggap 0 dan pada baris kedua kolom kedua dan ketiga juga tidak diisi juga diisi 0.
Dalam program tersebut, juga digunakan fungsi untuk menampung hasil penjumlahan matrik.
Perhatikan contoh lain :
Int datasiswa[4][3];
Deklarasi diatas digunakan untuk mendeklarasikan suatu data siswa yang berbentuk demikian :
No Nama Kelas Jumlah Siswa
Tahun 1989 Tahun 1990 Tahun 1991
1 Kelas 1 50 55 49
2 Kelas 2 60 60 55
3 Kelas 3 56 56 56
4 Kelas 4 49 50 54
Dari deklarasi diatas maka angka empat [4] menyatakan jumlah kelas, dan angka indek [3] menyatakan tahun.
Data siswa [0][2] adalah Kelas 1 dan jumlah siswa tahun 1990 yaitu 55. Atau jumlah siswa kelas 1 pada tahun 1990 adalah 55.
Bentuk data siswa dapat juga digambarkan sebagai berikut :
1 2 3
1 50 55 49
2 60 60 55
3 56 56 56
4 49 50 54
Array ini dapat pula diberi nilai tetap dengan static seperti pada array dimensi satu. Deklarasinya adalah sebagai berikut :
Static int jumlah [4][3]=
{
50, 55, 49,
60, 60, 55,
56, 56, 56,
49, 50, 54
};



Array adalah variabel yang dapat menyimpan lebih dari satu nilai sejenis. Terdapat dua bagian penting yaitu elemen array yang merupakan nilai dan endeks array yang merupakan nilai urut untuk mengakses nilai pada array.
Berikut ini contoh array A dengan 10 buah elemen tiap elemen memiliki nilai antara 10 hingga 100.
A[1] A[2] A[3] A[4] A[5] A[6] A[7] A[8] A[9] A[10]
1 2 3 4 5 6 7 8 9 10
10 20 30 40 50 60 70 80 90 100
Deklarasi Array.
Array dideklarasikan pada bagian deklarasi. Deklarasi umum dari array adalah
NamaArray : array[IndeksAwal..IndeksAkhir] of tipe_data;
Contoh: Jika akan mendeklarasikan viriabel A sebagai Array dengan 10 elemen bertipe integer:
Var
A: array [1..10] of Integer;
Contoh lain:
A1: array[0..9] of Integer;
A1: array[10..20] of Integer;
A1: array[‘a’..’j’] of Integer;
Mengakses elemen Array
Untuk memberikan nilai pada variabel array dapat dengan menggunakan parameter berikut :
NamaArray [indeks]:=nilai;
Contoh
Var
A: array[1..10] of integer;
Begin
A[1]:=1; {Mengisikan elemen 1 dengan nilai 1}
A[9]:=200; {Mengisi elemen 9 dengan nilai 200};
End.
Array sebagai konstanta
Nilai pada array dapat bernilai konstan. Dapat kita lakukan dengan mendeklarasikannya pada bagian constanta.
Bentuk umum pendeklrasiannya adalah:
Const
NamaArray : array[IndeksAwal..IndeksAkhir] of Tipe_Data = (nilai1, nilai2,………);
Banyaknya nilai konstanta harus sama dengan jumlah elemennya.
Contoh penggunaanya
Program ArrayKonstanm;
Uses Wincrt;
Const
Hari : array[1..2] oof string = (’senin’,’selasa’,'rabu’,'kamis’,'jumat’,’sabtu’,'minggu’);
Var
noHari:integer;
begin
clrscr;
write(‘Masukan nomor harinya : ‘);readln(noHAri);
write(‘Hari ke’,noHari,’adalah’,Har[noHari]);
end.
Jika dieksekusi maka hasilnya adalah:
Masukan nomor harinya : 2
Hari ke 3 adalah rabu
Array saebagai parameter
Array pada waktu tertentu dapat digunakan sebagai parameter dari suatu proesdur atyau fungsi. Contoh
Type
Bilangan = array [1..100[ of integer;
Procedure InputArray(A:bilangan; N:integer);
var
i:integer;
begin
for i:=1 to N do
write('Masukan elemen array ke ',i); readln(A[i]);
end.
Contoh diatas adalah prenggunaan array sebagai parameter untuk memberikan nilai pada suatu array tertentu.
Array berisi record
Caranya adalah mendefinisikan record terlebih dahulu yang kemudian akan digunakan sebagaitipe data pada saat pendeklarasiaan array. Contoh:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
End;
TkumpulanSiswa = array [1..100] of Tsiswa;
Var
A: TkumpulanSiswa;
Variabel A diatas akan menampung 100 buah record yang bertipe Tsiswa. Sementara untukrecord berisi array dengan contoh perhitungan nilai siswa berikut : Nilai = (20% * kuis) + (30% * UTS) + (50% * UAS). Maka kita dapat mendefinisikan mahasiswa sebagai tipe record yang memiliki 3 nilai dengan menggunakan array. Yaitu:
Type
Tsiswa = record
NIM:=string[9[;
Nama:string[25];
Nilai = array [1..3] of real;
Kode diatas menunjukan bahwa setiap mahasiswa memiliki 3 nilai.
Metode pencarian pada Array
Ada beberapa macam teknik dalam mendapatkan nilai dari suatu elemen pada array salh satunya dengan metode pencarian beruntun.Contoh:
Program CaraiBeruntun;
Uses Wincrt;
Const
N : array[1..5] of integer= (10,20,30,40,50);
Var
a,b,index : integer;
begin
clrscr;
write(‘Masukan nilai yang akan dicari : ’);readln(a);
index:=0;
for b:=1 to 5 do begin
if N[b] = a then begin
index:=b;
break;
end;
end;
writeln(a,’ adalah nilai yang ditemukan pada index ke ’,index);
end.
Array 2 dimensi
Array 2 dimensi adalah array yang memiliki 2 buah elemen bertipe array yang berbentuk kolom dan baris. Pendeklarasiannya adlah sebagai berikut:
NamaArray : array[1..BanyakBaris, 1..BanyakKolom] of tipe_data;
Contoh
Array2D : array[1..3, 1..4] of integer;
Sedangkan untuk mengaskes maupun memberikan nilai dengan parameter:
Array2D [2,3]:=200; {Mengisikan nilai 200 pada baris 2 kolom 3}

cara membuat program dengan menggunakan array of string. Dengan asumsi program user dapat melakukan input data ke dalam array, kemudian seluruh array akan ditampilkan.
Kira-kira begini penyelesaiannya :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 uses wincrt;

var x : array[1..3] of string;
a : integer;
begin
for a := 1 to 3 do begin
write('input ', a, ' : ');
readln(x[a]);
end;

writeln;
write('output : ');
for a := 1 to 3 do
write(x[a],' ');
end.


Pada source array berikut ini, dibuat suatu program untuk menyimpan array sebanyak 100 (max), pada awalnya program akan meminta jumlah data yang akan di masukkan. Dalam memberikan nilai pada array, akan dilakukan pengacak-an serta pengecekan nilai yang dihasilkan. Nilai yang dihasilkan kemudian ditampilkan.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 uses wincrt;

var X : array[1..100] of integer;
a,b,n,r : integer;
beda : boolean;
begin
write('Banyaknya data : ');readln(n);
if n > 100 then begin
writeln('Melebihi batas, (tidak boleh lebih dari 100)');
exit;
end;
for a:=1 to n do begin
repeat
r:=random(100)+1;
b:=1;beda:=true;
repeat
if r=x[b] then beda:=false else inc(b);
until (b>a-1) or (beda=false);
until (beda);
x[a]:=r;
end;
writeln;
for a:=1 to n do write(X[a],' ');
end.