際際滷

際際滷Share a Scribd company logo
Bab 8 
Array 
A. Pengertian Array 
Array adalah suatu variabel yang 
terdiri dari sekumpulan data dimana data-data 
tersebut mempunyai tipe data yang sama. 
Setiap data disimpan dalam alamat memori 
yang berbeda-beda dan disebut dengan 
elemen array. Setiap elemen mempunyai nilai 
indek sesuai dengan urutannya. Melalui indek 
inilah kita dapat mengakses data-data 
tersebut. Indek dari elemen array ini, baik 
dalam bahasa C++ maupun Java dimulai dari 
0, bukan 1 seperti dalam bahasa Pascal. 
Array dideklarasikan dengan tanda [ ] 
(bracket), baik dalam bahasa C++ dan Java. 
Bentuk umum dari tipe data array adalah : 
tipe_data nama_array[jumlah_elemen] 
Jika ingin mendeklarasikan sebuah 
array dengan tipe data integer dengan nama a 
dan jumlah elemen array-nya 10 maka 
kodenya adalah : 
int a[10]; 
Dalam bahasa Java pendeklarasian 
array lebih variarif. Selain dengan kode seperti 
di atas, Java juga dapat mendeklarasikan 
array dalam bentuk : 
int[ ] a; 
Kemudian setelah mendeklarasikan 
array, baik dengan kode yang pertama 
maupun yang kedua, Java harus menciptakan 
(membuat) objek terlebih dahulu sebelum 
array dapat digunakan karena dalam Java 
array merupakan sebuah Class. Cara 
menciptakan objek array dalam Java adalah : 
a = new int[10]; 
Dalam Java pendeklarasian array dan 
pembuatan objek array dapat dilakukan alam 
satu sintak, yaitu : 
int[ ] a = new int[10]; 
atau 
int a[ ] = new int[10]; 
Baik C++ maupun Java, untuk 
mengakses elemen array, misalnya elemen 
ke-10 dari array dan kemudian menampung 
nilainya dalam sebuah variabel x, maka 
sintaknya adalah : 
x=a[9]; 
Untuk memasukkan data ke dalam 
array, sintak yang digunakan adalah : 
a[nomor_elemen] = data; 
a[0] = 5; 
a[1] = 6; 
a[2] = 7; 
dan seterusnya. 
Agar lebih efisien dan efektif, maka 
pemasukan data dalam array dapat 
menggunakan perulangan seperti berikut ini : 
for (i=0; i<jumlah_data; i++) { 
cout << a[ << i << ] = ; 
cin >> a[i]; 
} 
Untuk Java sintak-nya adalah : 
for (i=0; i<jumlah_data; i++) { 
System.out.print(a[ + i + ] = ); 
Scanner input = new 
Scanner(System.in); 
int data=input.nextInt(); 
a[i] = data; 
} 
Berikut contoh program lengkap 
dalam bahasa C++ adalah : 
1. #include <iostream> 
2. using namespace std; 
3. int a[10],jumlah=10; 
4. bool cari(int cariData,int nElemen) { 
5. int i; 
6. for(i=0; i<nElemen; i++) { 
7. if(a[i] == cariData) 
8. break; 
9. } 
10. if(i == nElemen) return false; 
11. else return true; 
12. } 
13. void input(int data,int i) { 
14. a[i] = data; 
15. }
16. void hapus(int data,int nElemen) { 
17. int i; 
18. for(i=0; i<nElemen; i++) { 
19. if( data == a[i] ) 
20. break; 
21. } 
22. if(i==nElemen) 
cout << "Data " 
<< data << " tidak terhapus (tidak 
ada)" << endl; 
23. else { 
24. for(int j=i; j<nElemen-1; j++) { 
25. a[j] = a[j+1]; 
26. } 
27. cout << "Data " << data 
<< " dihapus" << endl; 
28. } 
29. } 
30. void tampil(int nElemen) { 
31. for(int i=0; i<nElemen; i++) 
32. cout << a[i] << " "; 
33. cout << endl; 
34. } 
35. void main() { 
36. int data; 
37. for(int i=0; i<jumlah; i++){ 
38. cout << "a[" << i << "] = "; 
39. cin >> data; 
40. input(data,i); 
41. } 
42. tampil(jumlah); 
43. int cariData = 12; 
44. if (cari(cariData,jumlah)==false) 
45. cout << "Data " << cariData 
<< " tidak ditemukan " << endl; 
46. else 
47. cout << "Data " << cariData 
<< " ditemukan" << endl; 
48. hapus(89,jumlah); 
49. jumlah--; 
50. hapus(0,jumlah); 
51. jumlah--; 
52. tampil(jumlah); 
53. } 
Program di atas terdiri dari empat 
function yaitu function cari() yang digunakan 
untuk mencari data dalam array (baris ke-4 
sampai ke-12), function input() digunakan 
untuk memasukkan data dalam array (baris 
ke-13 sampai ke-15), hapus() untuk 
menghapus data dalam array (baris ke-16 
sampai ke-29), dan function tampil() untuk 
menampilkan data dalam array (baris ke-30 
sampai ke-34). 
Keempat function tersebut kemudian 
dipanggil satu per satu oleh program utama 
(baris ke-35 sampai ke-53) dimana pada baris 
ke-37 sampai dengan baris ke-41 adalah kode 
untuk memasukkan data dalam array dengan 
argumen pemanggilan function input() pada 
baris ke-40 sebanyak sepuluh kali dengan 
menggunakan perulangan. 
Setelah memasukkan data selesai, 
maka data yang telah dimasukan dalam array 
kemudian ditampilkan dengan menggunakan 
argumen pada baris ke-42. Function tampil() 
mengakses data array satu persatu dan 
kemudian menampilkannya. 
Pencarian data dilakukan oleh 
program utama pada baris ke-43 sampai 
dengan baris ke-47. Function pencarian data 
ini (cari()) dilakukan dengan mengunjungi atau 
mengakses data array satu persatu dan 
kemudian membandingkan data pada setiap 
elemen indek dengan data yang dicari. Jika 
nilai datanya sama dengan nilai data yang 
dicari, maka proses pencarian data dihentikan. 
Jika tidak, maka pencarian terus dilakukan 
sampai semua data array diakses. Jika proses 
pencarian yang dilakukan sama dengan 
jumlah elemen array, maka data yang dicari 
tidak ditemukan. Proses pencarian seperti ini 
merupakan metode linier atau sekuensial 
(Linear / Sequential Search). 
Program ini melakukan proses 
penghapusan data sebanyak dua kali (baris 
ke-48 dan baris ke-50) dimana setiap kali 
melakukan penghapusan data maka jumlah 
elemen array dikurangi satu (baris ke-49 dan 
baris ke-51). 
Keluaran dari program tersebut adalah :
Kode untuk permasalahan yang sama 
dengan di atas tetapi dalam bahasa Java 
adalah sebagai berikut : 
1. import java.util.Scanner; 
2. class arrayClass { 
3. private int[ ] a; 
4. private int nElemen; 
5. public latArrayClass(int max) { 
6. a = new int[max]; 
7. nElemen = 0; 
8. } 
9. public boolean cari(int cariData) { 
10. int i; 
11. for(i=0; i<nElemen; i++) { 
12. if(a[i] == cariData) 
13. break; 
14. } 
15. if(i == nElemen) return false; 
16. else return true; 
17. } 
18. public void input(int data) { 
19. a[nElemen] = data; 
20. nElemen++; 
21. } 
22. public boolean hapus(int data) { 
23. int i; 
24. for(i=0; i<nElemen; i++) { 
25. if( data == a[i] ) 
26. break; 
27. } 
28. if(i==nElemen) return false; 
29. else { 
30. for(int j=i; j<nElemen-1; j++) 
{ 
31. a[j] = a[j+1]; 
32. } 
33. nElemen--; 
34. return true; 
35. } 
36. } 
37. public void tampil() { 
38. for(int i=0; i<nElemen; i++) 
39. System.out.print(a[i] + " "); 
40. System.out.println(""); 
41. } 
42. } 
43. class bikinArray { 
44. public static void main 
(String[ ] args) { 
45. int makArray = 10; 
46. latArrayClass larik; 
47. larik = new arrayClass(makArray); 
48. for(int i=0; i<10; i++){ 
49. System.out.print("a[" + i + "] 
= "); 
50. Scanner input = 
new Scanner(System.in); 
51. int dt=input.nextInt(); 
52. larik.input(dt); 
53. } 
54. larik.tampil(); 
55. int cariData = 12; 
56. if (larik.cari(cariData)) 
System.out.println("Data " + 
cariData + " tidak ditemukan "); 
57. else 
System.out.println("Data " + 
cariData + " ditemukan"); 
58. larik.hapus(89); 
59. larik.hapus(0); 
60. larik.tampil(); 
61. } 
62. } 
Keluaran dari program adalah : 
B. Inisialisasi Array 
Inisialisasi array adalah pemberian 
nilai default pada array. Pemberian nilai 
default ini dilakukan pada saat array 
dideklarasikan. 
Bentuk umum dari inisialisasi array ini 
adalah sebagai berikut : 
tipe_data nama_array[jumlah_elemen] 
= {nilai1,nilai2,,nilaiN} 
Nilai didalam kurung kurawal disebut dengan 
Initialization List. 
Contoh :
int a[10] = { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 }; 
Dalam Java dapat berbentuk : 
int[ ] a = { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 }; 
Untuk lebih jelasnya, perhatikan 
contoh berikut ini : 
1. #include <iostream> 
2. using namespace std; 
3. int a[5]={2,4,6,8,10},jumlah=5; 
4. void input(int data,int i) { 
5. a[i] = data; 
6. } 
7. void tampil(int nElemen) { 
8. for(int i=0; i<nElemen; i++) 
9. cout << a[i] << " "; 
10. cout << endl; 
11. } 
12. void main() { 
13. int data; 
14. cout << "Belum ada perubahan data 
array" << endl; 
15. tampil(jumlah); 
16. for(int i=0; i<jumlah; i++){ 
17. cout << "a[" << i << "] = "; 
18. cin >> data; 
19. input(data,i); 
20. } 
21. cout << "Setelah ada perubahan 
data 
array" << endl; 
22. tampil(jumlah); 
23. } 
Keluaran dari program di atas adalah : 
Program di atas mempunyai tipe data 
array yang berisi lima elemen dimana nilai 
default dari kelima elemen array tersebut 
adalah 2, 4, 6, 8, 10 (baris ke-3) sehingga 
ketika data array dipanggil atau ditampilkan 
maka array sudah mempunyai data, tidak 
kosong (baris ke-15) seperti halnya pada kode 
berikut ini. 
1. #include <iostream> 
2. using namespace std; 
3. int a[5],jumlah=5; 
4. void input(int data,int i) { 
5. a[i] = data; 
6. } 
7. void tampil(int nElemen) { 
8. for(int i=0; i<nElemen; i++) 
9. cout << a[i] << " "; 
10. cout << endl; 
11. } 
12. void main() { 
13. int data; 
14. cout << "Belum ada perubahan data 
array" << endl; 
15. tampil(jumlah); 
16. for(int i=0; i<jumlah; i++){ 
17. cout << "a[" << i << "] = "; 
18. cin >> data; 
19. input(data,i); 
20. } 
21. cout << "Setelah ada perubahan 
data 
array" << endl; 
22. tampil(jumlah); 
23. } 
Keluaran program : 
Kedua program di atas sama. 
Bedanya program utama tipe data array-nya 
diinisialisasi, sedangkan program yang kedua 
tidak diinisialisasi sehingga pada waktu 
dipanggil pertama kali nilainya masih kosong. 
Baris ke-16 sampai dengan ke-20, 
baik pada program pertama maupun yang 
kedua, merupakan kode untuk memasukkan 
data baru pada array yang artinya data atau
nilai default dari array ditimpa dengan data 
yang baru. 
Program Java untuk permasalahan 
yang sama adalah sebagai berikut : 
1. import java.util.Scanner; 
2. class latArrayClass { 
3. private int[ ] a = {2,4,6,8,10}; 
4. public void input(int data,int i) { 
5. a[i] = data; 
6. } 
7. public void tampil() { 
8. for(int i=0; i<5; i++) 
9. System.out.print(a[i] + " "); 
10. System.out.println(""); 
11. } 
12. } 
13. class initArray { 
14. public static void main 
(String[ ] args) { 
15. latArrayClass larik; 
16. larik = new latArrayClass(); 
17. System.out.println("Belum ada 
perubahan data array"); 
18. larik.tampil(); 
19. for(int i=0; i<5; i++){ 
20. System.out.print("a[" + i + "] 
= "); 
21. Scanner input = 
new Scanner(System.in); 
22. int dt=input.nextInt(); 
23. larik.input(dt,i); 
24. } 
25. System.out.println("Setelah ada 
perubahan data array"); 
26. larik.tampil(); 
27. } 
28. } 
Keluaran program : 
Program Java dimana tipe data array-nya 
tidak diinisialisasi adalah : 
1. import java.util.Scanner; 
2. class latArrayClass { 
3. private int[ ] a; 
4. public latArrayClass() { 
5. a = new int[5]; 
6. } 
7. public void input(int data,int i) { 
8. a[i] = data; 
9. } 
10. public void tampil() { 
11. for(int i=0; i<5; i++) 
12. System.out.print(a[i] + " "); 
13. System.out.println(""); 
14. } 
15. } 
16. class noinitArray { 
17. public static void main 
(String[ ] args) { 
18. latArrayClass larik; 
19. larik = new latArrayClass(); 
20. System.out.println("Belum ada 
perubahan data array"); 
21. larik.tampil(); 
22. for(int i=0; i<5; i++){ 
23. System.out.print("a[" + i + "] 
= "); 
24. Scanner input = 
new Scanner(System.in); 
25. int dt=input.nextInt(); 
26. larik.input(dt,i); 
27. } 
28. System.out.println("Setelah ada 
perubahan data array"); 
29. larik.tampil(); 
30. } 
31. } 
Keluaran programnya adalah :
C. Array Multi Dimensi 
Array multi dimensi adalah suatu array 
yang mempunyai lebih dari satu subskrip. 
Array multi dimensi ini aplikasinya antara lain 
untuk matrik. Adapun deklarasi dari array multi 
dimensi adalah : 
tipe_data 
nama_array[jumlah_elemen_baris] 
[jumlah_elemen_kolom]; 
Contoh : 
int matrik[2][2]; 
Merupakan matrik 2 X 2. 
Berikut adalah contoh program lengkapnya : 
1. #include <iostream> 
2. using namespace std; 
3. int main(void) { 
4. int t, i, matrik[3][4]; 
5. for(t=0; t<3; t++) 
6. for(i=0; i<4; i++) 
7. matrik[t][i] = (t*4)+i+1; 
8. for(t=0; t<3; t++) { 
9. for(i=0; i<4; i++) 
10. cout << matrik[t][i] << " "; 
11. cout << endl; 
12. } 
13. return 0; 
14. } 
Keluaran dari program di atas adalah : 
0 1 2 3 
0 1 2 3 4 
1 5 6 7 8 
2 9 10 11 12 
Baris ke-5 sampai ke-7 adalah 
pemasukan data pada matrik. Sedangkan 
baris ke-8 sampai ke-12 adalah menampilkan 
data matrik. 
Pada kedua proses tersebut, 
pemasukan data dan menampilkan data 
terdapat dua buah perulangan dimana 
perulangan pertama adalah untuk 
mengidentifikasi baris dari matrik dan 
perulangan kedua untuk mengidentifikasi 
kolom dari matrik. 
Program Java untuk permasalahan 
yang sama adalah : 
1. import java.util.Scanner; 
2. class mtk { 
3. public static void main 
(String[ ] args) { 
4. int t, i; 
5. int[ ][ ] matrik = new int[3][4]; 
6. for(t=0; t<3; t++) 
7. for(i=0; i<4; i++) 
8. matrik[t][i] = (t*4)+i+1; 
9. for(t=0; t<3; t++) { 
10. for(i=0; i<4; i++) 
11. System.out.print(matrik[t][i] 
+ 
" "); 
12. System.out.println(""); 
13. } 
14. } 
15. } 
Keluaran program : 
Berikut ini adalah contoh untuk 
penjumlahan dua buah matrik. 
1. #include <iostream> 
2. using namespace std; 
3. int main(void) { 
4. int t, i, A[3][4],B[3][4],C[3][4]; 
5. for(t=0; t<3; t++) 
6. for(i=0; i<4; i++) 
7. A[t][i] = (t*4)+i+1; 
8. cout << "MATRIK A" << endl; 
9. for(t=0; t<3; t++) { 
10. for(i=0; i<4; i++) 
11. cout <<A[t][i] << " "; 
12. cout << endl; 
13. } 
14. for(t=0; t<3; t++) 
15. for(i=0; i<4; i++) 
16. B[t][i] = (t*4)+i+1; 
i 
t
17. cout << endl; 
18. cout << "MATRIK B" << endl; 
19. for(t=0; t<3; t++) { 
20. for(i=0; i<4; i++) 
21. cout <<B[t][i] << " "; 
22. cout << endl; 
23. } 
24. for(t=0; t<3; t++) 
25. for(i=0; i<4; i++) 
26. C[t][i] = A[t][i]+B[t][i]; 
27. cout << endl; 
28. cout << "MATRIK C = A + B" << 
endl; 
29. for(t=0; t<3; t++) { 
30. for(i=0; i<4; i++) 
31. cout <<C[t][i] << " "; 
32. cout << endl; 
33. } 
34. return 0; 
35. } 
Keluaran program : 
Kode penjumlahan matrik untuk 
bahasa Java adalah sebagai berikut : 
1. import java.util.Scanner; 
2. class jmlMatrik { 
3. public static void main 
(String[ ] args) { 
4. int t, i; 
5. int[ ][ ] A = new int[3][4]; 
6. int[ ][ ] B = new int[3][4]; 
7. int[ ][ ] C = new int[3][4]; 
8. for(t=0; t<3; t++) 
9. for(i=0; i<4; i++) 
10. A[t][i] = (t*4)+i+1; 
11. System.out.println("MATRIK A"); 
12. for(t=0; t<3; t++) { 
13. for(i=0; i<4; i++) 
14. System.out.print(A[t][i] + " 
"); 
15. System.out.println(""); 
16. } 
17. for(t=0; t<3; t++) 
18. for(i=0; i<4; i++) 
19. B[t][i] = (t*4)+i+1; 
20. System.out.println(""); 
21. System.out.println("MATRIK B"); 
22. for(t=0; t<3; t++) { 
23. for(i=0; i<4; i++) 
24. System.out.print(B[t][i] + " 
"); 
25. System.out.println(""); 
26. } 
27. for(t=0; t<3; t++) 
28. for(i=0; i<4; i++) 
29. C[t][i] = A[t][i] + B[t][i]; 
30. System.out.println(""); 
31. System.out.println("MATRIK 
C=A+B"); 
32. for(t=0; t<3; t++) { 
33. for(i=0; i<4; i++) 
34. System.out.print(C[t][i] + " 
"); 
35. System.out.println(""); 
36. } 
37. } 
38. } 
Keluaran program : 
D. Mengurutkan Elemen Array 
Ada banyak sekali metode untuk 
mengurutkan data, antara lain Exchange Sort, 
Selection Sort, Insertion Sort, Bubble Sort, 
Quick Sort, Shell Sort, Binary Insertion Sort, 
dan masih banyak lagi.
Dari sekian banyak metode, hanya 
metode Exchange Sort, Bubble Sort, dan 
Insertion Sort saja yang akan kita bahas 
karena ketiga metode ini merupakan metode 
yang paling mudah dan banyak digunakan. 
Untuk metode Selection Sort langkah-langkahnya 
adalah sebagai berikut : 
1. Proses 1: variabel indek diberi nilai 1 (data 
ke-1) kemudian data indek dibandingkan 
dengan data ke-2. Jika data indek lebih 
besar maka nilai indeknya diganti dengan 
2 (data ke-2), jika tidak nilai indeknya 
tetap. 
Kemudian data indek dibandingkan lagi 
dengan data ke-3, lebih besar? Nilai indek 
ditukar! Demikian seterusnya. 
Setelah selesai, nilai indek diperiksa 
apakah nilai indek berubah atau tidak. 
Jika nilai indek mengalami perubahan 
maka data ke-1 ditukar dengan data 
indek. 
2. Pada proses 2: variabel indek diberi nilai 2 
(data ke-2) kemudian data indek 
dibandingkan dengan data ke-3. Jika data 
indek lebih besar maka nilai indeknya 
diganti dengan 3 (data ke-3). 
Kemudian data indek dibandingkan lagi 
dengan data ke-4, lebih besar? Nilai indek 
ditukar! Demikian seterusnya. 
Setelah selesai, nilai indek diperiksa 
apakah nilai indek berubah atau tidak. 
Jika nilai indek mengalami perubahan 
maka data ke-2 ditukar dengan data 
indek. 
3. Demikian untuk proses selanjutnya 
dimana banyak prosesnya adalah jumlah 
elemen array dikurangi satu. 
Berikut program lengkap dari metode 
Selection Sort dalam bahasa C++ adalah : 
1. #include <iostream> 
2. using namespace std; 
3. int a[10]; 
4. void input(int data,int i) { 
5. a[i] = data; 
6. } 
7. void tampil() { 
8. for(int i=0; i<10; i++) 
9. cout << a[i] << " "; 
10. cout << endl; 
11. } 
12. void tukar(int data1, int data2) { 
13. long temp = a[data1]; 
14. a[data1] = a[data2]; 
15. a[data2] = temp; 
16. } 
17. void selectionSort() { 
18. int i,j,indek; 
19. for(i=0; i<5-1; i++) { 
20. indek=i; 
21. for(j=i+1; j<5; j++) 
22. if(a[indek] > a[j] ) 
23. indek=j; 
24. tukar(i,indek); 
25. } 
26. } 
27. void main() { 
28. input(57,0); 
29. input(89,1); 
30. input(49,2); 
31. input(51,3); 
32. input(12,4); 
33. input(90,5); 
34. input(1,6); 
35. input(0,7); 
36. input(63,8); 
37. input(25,9); 
38. tampil(); 
39. selectionSort(); 
40. tampil(); 
41. } 
Keluaran programnya : 
Kode dalam bahasa Java untuk 
permasalahan yang sama adalah : 
1. class latSelectSort { 
2. private long[ ] a; 
3. private int nElemen; 
4. public latSelectSort(int max) { 
5. a = new long[max]; 
6. nElemen = 0; 
7. } 
8. public void input(long data) { 
9. a[nElemen] = data; 
10. nElemen++; 
11. }
12. public void tampil() { 
13. for(int i=0; i<nElemen; i++) 
14. System.out.print(a[i] + " "); 
15. System.out.println(""); 
16. } 
17. public void selectionSort() { 
18. int i,j,indek; 
19. for(i=0; i<nElemen-1; i++) { 
20. indek=i; 
21. for(j=i+1; j<nElemen; j++) 
22. if(a[indek] > a[j] ) 
23. indek=j; 
24. tukar(i,indek); 
25. } 
26. } 
27. private void tukar 
(int data1, int data2) { 
28. long temp = a[data1]; 
29. a[data1] = a[data2]; 
30. a[data2] = temp; 
31. } 
32. } 
33. class selectSort { 
34. public static void main 
(String[ ] args) { 
35. int makArray = 10; 
36. latSelectSort larik; 
37. larik = 
new latSelectSort(makArray); 
38. larik.input(57); 
39. larik.input(89); 
40. larik.input(49); 
41. larik.input(51); 
42. larik.input(12); 
43. larik.input(90); 
44. larik.input(1); 
45. larik.input(0); 
46. larik.input(63); 
47. larik.input(25); 
48. larik.tampil(); 
49. larik.selectionSort(); 
50. larik.tampil(); 
51. } 
52. } 
Keluar program adalah : 
Metode Bubble Sort mempunyai 
langkah-langkah sebagai berikut : 
1. Membandingkan data ke-1 dengan data 
ke-2, jika data ke-1 lebih besar, maka 
kedua data ditukar. 
2. Kemudian membandingkan data ke-2 
dengan data ke-3, jika data ke-2 lebih 
besar, kedua data ditukar lagi. 
3. Demikian seterusnya sampai data 
terakhir, sehingga data kedudukannya 
akan bergeser-geser. 
4. Untuk proses 2, pembandingan 
(pergeseran data) hanya sampai pada 
data terakhir dikurangi satu. 
Kode program lengkapnya dalam 
bahasa C++ adalah sebagai berikut : 
1. #include <iostream> 
2. using namespace std; 
3. int a[10]; 
4. void input(int data,int i) { 
5. a[i] = data; 
6. } 
7. void tampil() { 
8. for(int i=0; i<10; i++) 
9. cout << a[i] << " "; 
10. cout << endl; 
11. } 
12. void tukar(int data1, int data2) { 
13. long temp = a[data1]; 
14. a[data1] = a[data2]; 
15. a[data2] = temp; 
16. } 
17. void bubSort() { 
18. int i, j; 
19. for(i=10-1; i>1; i--) 
20. for(j=0; j<i; j++) 
21. if( a[j] > a[j+1] ) tukar(j, j+1); 
22. } 
23. void main() { 
24. input(57,0); 
25. input(89,1); 
26. input(49,2); 
27. input(51,3); 
28. input(12,4); 
29. input(90,5); 
30. input(1,6); 
31. input(0,7); 
32. input(63,8); 
33. input(25,9); 
34. tampil(); 
35. bubSort(); 
36. tampil();
37. } 
Keluaran programnya adalah : 
Sedangkan kode dalam bahasa Java-nya 
adalah : 
1. class latBubble { 
2. private long[ ] a; 
3. private int nElemen; 
4. public latBubble(int max) { 
5. a = new long[max]; 
6. nElemen = 0; 
7. } 
8. public void input(long data) { 
9. a[nElemen] = data; 
10. nElemen++; 
11. } 
12. public void tampil() { 
13. for(int i=0; i<nElemen; i++) 
14. System.out.print(a[i] + " "); 
15. System.out.println(""); 
16. } 
17. public void bubSort() { 
18. int i, j; 
19. for(i=nElemen-1; i>1; i--) 
20. for(j=0; j<i; j++) 
21. if( a[j] > a[j+1] ) tukar(j, j+1); 
22. } 
23. private void tukar 
24. (int data1, int data2) { 
25. long temp = a[data1]; 
26. a[data1] = a[data2]; 
27. a[data2] = temp; 
28. } 
29. } 
30. class bubbleSort { 
31. public static void main 
(String[ ] args) { 
32. int makArray = 100; 
33. latBubble larik; 
34. larik = new latBubble(makArray); 
35. larik.input(57); 
36. larik.input(89); 
37. larik.input(49); 
38. larik.input(51); 
39. larik.input(12); 
40. larik.input(90); 
41. larik.input(1); 
42. larik.input(0); 
43. larik.input(63); 
44. larik.input(25); 
45. larik.tampil(); 
46. larik.bubSort(); 
47. larik.tampil(); 
48. } // end main() 
49. } 
Keluaran programnya adalah : 
Metode Insertion Sort mirip dengan 
cara orang mengurutkan kartu selembar demi 
selembar, kartu diambil dan disisipkan (insert) 
ke tempat yang seharusnya. Adapun langkah-langkahnya 
adalah sebagai berikut : 
1. Pengurutan dimulai dari data ke-2 sampai 
dengan data terakhir. 
2. Jika ditemukan data yang lebih kecil atau 
lebih besar, maka akan ditempatkan 
(diinsert) diposisi yang seharusnya 
Program selengkapnya dalam bahasa 
C++ adalah : 
1. #include <iostream> 
2. using namespace std; 
3. int a[10]; 
4. void input(int data,int i) { 
5. a[i] = data; 
6. } 
7. void tampil() { 
8. for(int i=0; i<10; i++) 
9. cout << a[i] << " "; 
10. cout << endl; 
11. } 
12. void insertionSort() { 
13. int i,j; 
14. for(i=1; i<10; i++) { 
15. long temp = a[i]; 
16. j=i; 
17. while(j>0 && a[j-1] >= temp) { 
18. a[j] = a[j-1]; 
19. --j; 
20. } 
21. a[j] = temp; 
22. } 
23. }
24. void main() { 
25. input(57,0); 
26. input(89,1); 
27. input(49,2); 
28. input(51,3); 
29. input(12,4); 
30. input(90,5); 
31. input(1,6); 
32. input(0,7); 
33. input(63,8); 
34. input(25,9); 
35. tampil(); 
36. insertionSort(); 
37. tampil(); 
38. } 
Keluaran programnya adalah : 
Kode dalam bahasa Java adalah 
sebagai berikut : 
1. class latInsertSort { 
2. private long[ ] a; 
3. private int nElemen; 
4. public latInsertSort(int max) { 
5. a = new long[max]; 
6. nElemen = 0; 
7. } 
8. public void input(long data) { 
9. a[nElemen] = data; 
10. nElemen++; 
11. } 
12. public void tampil() { 
13. for(int i=0; i<nElemen; i++) 
14. System.out.print(a[i] + " "); 
15. System.out.println(""); 
16. } 
17. public void insertionSort() { 
18. int i,j; 
19. for(i=1; i<nElemen; i++) { 
20. long temp = a[i]; 
21. j=i; 
22. while(j>0 && a[j-1] >= temp) 
{ 
23. a[j] = a[j-1]; 
24. --j; 
25. } 
26. a[j] = temp; 
27. } 
28. } 
29. } 
30. class insertSort { 
31. public static void main 
(String[ ] args) { 
32. int makArray = 100; 
33. latInsertSort larik; 
34. larik = new 
latInsertSort(makArray); 
35. larik.input(57); 
36. larik.input(89); 
37. larik.input(49); 
38. larik.input(51); 
39. larik.input(12); 
40. larik.input(90); 
41. larik.input(1); 
42. larik.input(0); 
43. larik.input(63); 
44. larik.input(25); 
45. larik.tampil(); 
46. larik.insertionSort(); 
47. larik.tampil(); 
48. } 
49. } 
Keluaran dari program tersebut adalah : 
E. 
F.

More Related Content

What's hot (20)

[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf
Fariz Darari
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Ekha Cahya Nugraha
Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Pertemuan vi (Function Java)
Pertemuan vi (Function Java)
Putra Andry
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd
555560
Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)Laporan praktikum jawaban 10 algoritma(1)
Laporan praktikum jawaban 10 algoritma(1)
Polytechnic State Semarang
Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
Devi Apriansyah
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
087dwi
Algoritma - Array
Algoritma - ArrayAlgoritma - Array
Algoritma - Array
Melina Krisnawati
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - Collection
Siska Amelia
Laporan4
Laporan4Laporan4
Laporan4
Sa Lam
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Ekha Cahya Nugraha
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_sore
tio_arkarna
scikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data sciencescikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data science
softscients
Algoritma Function
Algoritma FunctionAlgoritma Function
Algoritma Function
brigidaarie
Pergeseran Bit-sns
Pergeseran Bit-snsPergeseran Bit-sns
Pergeseran Bit-sns
staffpengajar
Array
ArrayArray
Array
Icha Dicaprio
Algoritma dan Struktur Data - Array
Algoritma dan Struktur Data - ArrayAlgoritma dan Struktur Data - Array
Algoritma dan Struktur Data - Array
KuliahKita
[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf[PUBLIC] quiz-01-midterm-solutions.pdf
[PUBLIC] quiz-01-midterm-solutions.pdf
Fariz Darari
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Laporan praktikum Algoritma dan Pemrograman pertemuan 13
Ekha Cahya Nugraha
Pertemuan vi (Function Java)
Pertemuan vi (Function Java)Pertemuan vi (Function Java)
Pertemuan vi (Function Java)
Putra Andry
Aray dan recrd
Aray dan recrdAray dan recrd
Aray dan recrd
555560
Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++Asyiknya Belajar Struktur Data di Planet C++
Asyiknya Belajar Struktur Data di Planet C++
Nurdin Al-Azies
Laporan praktikum modul ix
Laporan praktikum modul ixLaporan praktikum modul ix
Laporan praktikum modul ix
Devi Apriansyah
Bab ii keg pembel 6 array
Bab ii keg pembel 6  arrayBab ii keg pembel 6  array
Bab ii keg pembel 6 array
087dwi
Algotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - CollectionAlgotitma dan Struktur Algoritma - Collection
Algotitma dan Struktur Algoritma - Collection
Siska Amelia
Laporan4
Laporan4Laporan4
Laporan4
Sa Lam
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Laporan praktikum Algoritma dan Pemrograman pertemuan 10
Ekha Cahya Nugraha
Tugas kelompok mi d3_sore
Tugas kelompok mi d3_soreTugas kelompok mi d3_sore
Tugas kelompok mi d3_sore
tio_arkarna
scikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data sciencescikit-learn cheat sheet untuk data science
scikit-learn cheat sheet untuk data science
softscients
Algoritma Function
Algoritma FunctionAlgoritma Function
Algoritma Function
brigidaarie
Pergeseran Bit-sns
Pergeseran Bit-snsPergeseran Bit-sns
Pergeseran Bit-sns
staffpengajar
Algoritma dan Struktur Data - Array
Algoritma dan Struktur Data - ArrayAlgoritma dan Struktur Data - Array
Algoritma dan Struktur Data - Array
KuliahKita

Viewers also liked (6)

Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1
adethariq
Allan Moore - V de vingan巽aAllan Moore - V de vingan巽a
Allan Moore - V de vingan巽a
Wesley Guedes
Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1
adethariq
Stop bullying
Stop bullyingStop bullying
Stop bullying
WARDT
Bab i print
Bab i printBab i print
Bab i print
Nina SyakiRra Putry
Classroom Expectations
Classroom ExpectationsClassroom Expectations
Classroom Expectations
Tha_Teach
Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1
adethariq
Allan Moore - V de vingan巽aAllan Moore - V de vingan巽a
Allan Moore - V de vingan巽a
Wesley Guedes
Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1Ade thoriq f dan deri mardiansyah x rpl 1
Ade thoriq f dan deri mardiansyah x rpl 1
adethariq
Stop bullying
Stop bullyingStop bullying
Stop bullying
WARDT
Classroom Expectations
Classroom ExpectationsClassroom Expectations
Classroom Expectations
Tha_Teach

Similar to Bab8.array (20)

program pencarian data dengan bahasa C
program pencarian data dengan bahasa Cprogram pencarian data dengan bahasa C
program pencarian data dengan bahasa C
kir yy
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Tugas C++ (Matriks) - Dian Aditya - 2009/2010Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Dian Aditya
Algoritma&Pemrograman C++ Pertemuan 9
Algoritma&Pemrograman C++ Pertemuan 9Algoritma&Pemrograman C++ Pertemuan 9
Algoritma&Pemrograman C++ Pertemuan 9
Menny SN
Array [Larik]
Array [Larik]Array [Larik]
Array [Larik]
Universitas Teknokrat Indonesia
Chapter 3 array
Chapter 3   arrayChapter 3   array
Chapter 3 array
Muhammad Najib
03.33 JAVA SE_multidimensional arays
03.33 JAVA SE_multidimensional arays03.33 JAVA SE_multidimensional arays
03.33 JAVA SE_multidimensional arays
Jefri Fahrian
際際滷 array fix
際際滷 array fix際際滷 array fix
際際滷 array fix
Dantik Puspita
際際滷 Array Untuk jurusan teknik informatika
際際滷 Array Untuk jurusan teknik informatika際際滷 Array Untuk jurusan teknik informatika
際際滷 Array Untuk jurusan teknik informatika
Miftakhul Hijriyah
Larik (array) satu dimensi pada pemrograman java
Larik (array) satu dimensi pada pemrograman javaLarik (array) satu dimensi pada pemrograman java
Larik (array) satu dimensi pada pemrograman java
FirdausAdden
Pertemuan IV Teori
Pertemuan IV TeoriPertemuan IV Teori
Pertemuan IV Teori
lembayungtirta
Pertemuan vi
Pertemuan viPertemuan vi
Pertemuan vi
windi1
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
brada_abil
Laporan praktikum modul v
Laporan praktikum modul vLaporan praktikum modul v
Laporan praktikum modul v
Devi Apriansyah
Pertemuan ARRAY.pptx
Pertemuan ARRAY.pptxPertemuan ARRAY.pptx
Pertemuan ARRAY.pptx
Menny SN
2. Pendahuluan array.pdf
2. Pendahuluan array.pdf2. Pendahuluan array.pdf
2. Pendahuluan array.pdf
andifarmadi2
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
Budi Yono
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
kua
Materi kuliah 16 array part 2
Materi kuliah 16   array part 2Materi kuliah 16   array part 2
Materi kuliah 16 array part 2
Budi Yono
program pencarian data dengan bahasa C
program pencarian data dengan bahasa Cprogram pencarian data dengan bahasa C
program pencarian data dengan bahasa C
kir yy
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Tugas C++ (Matriks) - Dian Aditya - 2009/2010Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Tugas C++ (Matriks) - Dian Aditya - 2009/2010
Dian Aditya
Algoritma&Pemrograman C++ Pertemuan 9
Algoritma&Pemrograman C++ Pertemuan 9Algoritma&Pemrograman C++ Pertemuan 9
Algoritma&Pemrograman C++ Pertemuan 9
Menny SN
03.33 JAVA SE_multidimensional arays
03.33 JAVA SE_multidimensional arays03.33 JAVA SE_multidimensional arays
03.33 JAVA SE_multidimensional arays
Jefri Fahrian
際際滷 array fix
際際滷 array fix際際滷 array fix
際際滷 array fix
Dantik Puspita
際際滷 Array Untuk jurusan teknik informatika
際際滷 Array Untuk jurusan teknik informatika際際滷 Array Untuk jurusan teknik informatika
際際滷 Array Untuk jurusan teknik informatika
Miftakhul Hijriyah
Larik (array) satu dimensi pada pemrograman java
Larik (array) satu dimensi pada pemrograman javaLarik (array) satu dimensi pada pemrograman java
Larik (array) satu dimensi pada pemrograman java
FirdausAdden
Pertemuan vi
Pertemuan viPertemuan vi
Pertemuan vi
windi1
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis75ery6e5y03 praktikum iii_array_statis_dan_dinamis
75ery6e5y03 praktikum iii_array_statis_dan_dinamis
brada_abil
Laporan praktikum modul v
Laporan praktikum modul vLaporan praktikum modul v
Laporan praktikum modul v
Devi Apriansyah
Pertemuan ARRAY.pptx
Pertemuan ARRAY.pptxPertemuan ARRAY.pptx
Pertemuan ARRAY.pptx
Menny SN
2. Pendahuluan array.pdf
2. Pendahuluan array.pdf2. Pendahuluan array.pdf
2. Pendahuluan array.pdf
andifarmadi2
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
Budi Yono
Materi kuliah 02 array part 2
Materi kuliah 02   array part 2Materi kuliah 02   array part 2
Materi kuliah 02 array part 2
kua
Materi kuliah 16 array part 2
Materi kuliah 16   array part 2Materi kuliah 16   array part 2
Materi kuliah 16 array part 2
Budi Yono

Bab8.array

  • 1. Bab 8 Array A. Pengertian Array Array adalah suatu variabel yang terdiri dari sekumpulan data dimana data-data tersebut mempunyai tipe data yang sama. Setiap data disimpan dalam alamat memori yang berbeda-beda dan disebut dengan elemen array. Setiap elemen mempunyai nilai indek sesuai dengan urutannya. Melalui indek inilah kita dapat mengakses data-data tersebut. Indek dari elemen array ini, baik dalam bahasa C++ maupun Java dimulai dari 0, bukan 1 seperti dalam bahasa Pascal. Array dideklarasikan dengan tanda [ ] (bracket), baik dalam bahasa C++ dan Java. Bentuk umum dari tipe data array adalah : tipe_data nama_array[jumlah_elemen] Jika ingin mendeklarasikan sebuah array dengan tipe data integer dengan nama a dan jumlah elemen array-nya 10 maka kodenya adalah : int a[10]; Dalam bahasa Java pendeklarasian array lebih variarif. Selain dengan kode seperti di atas, Java juga dapat mendeklarasikan array dalam bentuk : int[ ] a; Kemudian setelah mendeklarasikan array, baik dengan kode yang pertama maupun yang kedua, Java harus menciptakan (membuat) objek terlebih dahulu sebelum array dapat digunakan karena dalam Java array merupakan sebuah Class. Cara menciptakan objek array dalam Java adalah : a = new int[10]; Dalam Java pendeklarasian array dan pembuatan objek array dapat dilakukan alam satu sintak, yaitu : int[ ] a = new int[10]; atau int a[ ] = new int[10]; Baik C++ maupun Java, untuk mengakses elemen array, misalnya elemen ke-10 dari array dan kemudian menampung nilainya dalam sebuah variabel x, maka sintaknya adalah : x=a[9]; Untuk memasukkan data ke dalam array, sintak yang digunakan adalah : a[nomor_elemen] = data; a[0] = 5; a[1] = 6; a[2] = 7; dan seterusnya. Agar lebih efisien dan efektif, maka pemasukan data dalam array dapat menggunakan perulangan seperti berikut ini : for (i=0; i<jumlah_data; i++) { cout << a[ << i << ] = ; cin >> a[i]; } Untuk Java sintak-nya adalah : for (i=0; i<jumlah_data; i++) { System.out.print(a[ + i + ] = ); Scanner input = new Scanner(System.in); int data=input.nextInt(); a[i] = data; } Berikut contoh program lengkap dalam bahasa C++ adalah : 1. #include <iostream> 2. using namespace std; 3. int a[10],jumlah=10; 4. bool cari(int cariData,int nElemen) { 5. int i; 6. for(i=0; i<nElemen; i++) { 7. if(a[i] == cariData) 8. break; 9. } 10. if(i == nElemen) return false; 11. else return true; 12. } 13. void input(int data,int i) { 14. a[i] = data; 15. }
  • 2. 16. void hapus(int data,int nElemen) { 17. int i; 18. for(i=0; i<nElemen; i++) { 19. if( data == a[i] ) 20. break; 21. } 22. if(i==nElemen) cout << "Data " << data << " tidak terhapus (tidak ada)" << endl; 23. else { 24. for(int j=i; j<nElemen-1; j++) { 25. a[j] = a[j+1]; 26. } 27. cout << "Data " << data << " dihapus" << endl; 28. } 29. } 30. void tampil(int nElemen) { 31. for(int i=0; i<nElemen; i++) 32. cout << a[i] << " "; 33. cout << endl; 34. } 35. void main() { 36. int data; 37. for(int i=0; i<jumlah; i++){ 38. cout << "a[" << i << "] = "; 39. cin >> data; 40. input(data,i); 41. } 42. tampil(jumlah); 43. int cariData = 12; 44. if (cari(cariData,jumlah)==false) 45. cout << "Data " << cariData << " tidak ditemukan " << endl; 46. else 47. cout << "Data " << cariData << " ditemukan" << endl; 48. hapus(89,jumlah); 49. jumlah--; 50. hapus(0,jumlah); 51. jumlah--; 52. tampil(jumlah); 53. } Program di atas terdiri dari empat function yaitu function cari() yang digunakan untuk mencari data dalam array (baris ke-4 sampai ke-12), function input() digunakan untuk memasukkan data dalam array (baris ke-13 sampai ke-15), hapus() untuk menghapus data dalam array (baris ke-16 sampai ke-29), dan function tampil() untuk menampilkan data dalam array (baris ke-30 sampai ke-34). Keempat function tersebut kemudian dipanggil satu per satu oleh program utama (baris ke-35 sampai ke-53) dimana pada baris ke-37 sampai dengan baris ke-41 adalah kode untuk memasukkan data dalam array dengan argumen pemanggilan function input() pada baris ke-40 sebanyak sepuluh kali dengan menggunakan perulangan. Setelah memasukkan data selesai, maka data yang telah dimasukan dalam array kemudian ditampilkan dengan menggunakan argumen pada baris ke-42. Function tampil() mengakses data array satu persatu dan kemudian menampilkannya. Pencarian data dilakukan oleh program utama pada baris ke-43 sampai dengan baris ke-47. Function pencarian data ini (cari()) dilakukan dengan mengunjungi atau mengakses data array satu persatu dan kemudian membandingkan data pada setiap elemen indek dengan data yang dicari. Jika nilai datanya sama dengan nilai data yang dicari, maka proses pencarian data dihentikan. Jika tidak, maka pencarian terus dilakukan sampai semua data array diakses. Jika proses pencarian yang dilakukan sama dengan jumlah elemen array, maka data yang dicari tidak ditemukan. Proses pencarian seperti ini merupakan metode linier atau sekuensial (Linear / Sequential Search). Program ini melakukan proses penghapusan data sebanyak dua kali (baris ke-48 dan baris ke-50) dimana setiap kali melakukan penghapusan data maka jumlah elemen array dikurangi satu (baris ke-49 dan baris ke-51). Keluaran dari program tersebut adalah :
  • 3. Kode untuk permasalahan yang sama dengan di atas tetapi dalam bahasa Java adalah sebagai berikut : 1. import java.util.Scanner; 2. class arrayClass { 3. private int[ ] a; 4. private int nElemen; 5. public latArrayClass(int max) { 6. a = new int[max]; 7. nElemen = 0; 8. } 9. public boolean cari(int cariData) { 10. int i; 11. for(i=0; i<nElemen; i++) { 12. if(a[i] == cariData) 13. break; 14. } 15. if(i == nElemen) return false; 16. else return true; 17. } 18. public void input(int data) { 19. a[nElemen] = data; 20. nElemen++; 21. } 22. public boolean hapus(int data) { 23. int i; 24. for(i=0; i<nElemen; i++) { 25. if( data == a[i] ) 26. break; 27. } 28. if(i==nElemen) return false; 29. else { 30. for(int j=i; j<nElemen-1; j++) { 31. a[j] = a[j+1]; 32. } 33. nElemen--; 34. return true; 35. } 36. } 37. public void tampil() { 38. for(int i=0; i<nElemen; i++) 39. System.out.print(a[i] + " "); 40. System.out.println(""); 41. } 42. } 43. class bikinArray { 44. public static void main (String[ ] args) { 45. int makArray = 10; 46. latArrayClass larik; 47. larik = new arrayClass(makArray); 48. for(int i=0; i<10; i++){ 49. System.out.print("a[" + i + "] = "); 50. Scanner input = new Scanner(System.in); 51. int dt=input.nextInt(); 52. larik.input(dt); 53. } 54. larik.tampil(); 55. int cariData = 12; 56. if (larik.cari(cariData)) System.out.println("Data " + cariData + " tidak ditemukan "); 57. else System.out.println("Data " + cariData + " ditemukan"); 58. larik.hapus(89); 59. larik.hapus(0); 60. larik.tampil(); 61. } 62. } Keluaran dari program adalah : B. Inisialisasi Array Inisialisasi array adalah pemberian nilai default pada array. Pemberian nilai default ini dilakukan pada saat array dideklarasikan. Bentuk umum dari inisialisasi array ini adalah sebagai berikut : tipe_data nama_array[jumlah_elemen] = {nilai1,nilai2,,nilaiN} Nilai didalam kurung kurawal disebut dengan Initialization List. Contoh :
  • 4. int a[10] = { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 }; Dalam Java dapat berbentuk : int[ ] a = { 0, 3, 6, 9, 12, 15, 18, 21, 24, 27 }; Untuk lebih jelasnya, perhatikan contoh berikut ini : 1. #include <iostream> 2. using namespace std; 3. int a[5]={2,4,6,8,10},jumlah=5; 4. void input(int data,int i) { 5. a[i] = data; 6. } 7. void tampil(int nElemen) { 8. for(int i=0; i<nElemen; i++) 9. cout << a[i] << " "; 10. cout << endl; 11. } 12. void main() { 13. int data; 14. cout << "Belum ada perubahan data array" << endl; 15. tampil(jumlah); 16. for(int i=0; i<jumlah; i++){ 17. cout << "a[" << i << "] = "; 18. cin >> data; 19. input(data,i); 20. } 21. cout << "Setelah ada perubahan data array" << endl; 22. tampil(jumlah); 23. } Keluaran dari program di atas adalah : Program di atas mempunyai tipe data array yang berisi lima elemen dimana nilai default dari kelima elemen array tersebut adalah 2, 4, 6, 8, 10 (baris ke-3) sehingga ketika data array dipanggil atau ditampilkan maka array sudah mempunyai data, tidak kosong (baris ke-15) seperti halnya pada kode berikut ini. 1. #include <iostream> 2. using namespace std; 3. int a[5],jumlah=5; 4. void input(int data,int i) { 5. a[i] = data; 6. } 7. void tampil(int nElemen) { 8. for(int i=0; i<nElemen; i++) 9. cout << a[i] << " "; 10. cout << endl; 11. } 12. void main() { 13. int data; 14. cout << "Belum ada perubahan data array" << endl; 15. tampil(jumlah); 16. for(int i=0; i<jumlah; i++){ 17. cout << "a[" << i << "] = "; 18. cin >> data; 19. input(data,i); 20. } 21. cout << "Setelah ada perubahan data array" << endl; 22. tampil(jumlah); 23. } Keluaran program : Kedua program di atas sama. Bedanya program utama tipe data array-nya diinisialisasi, sedangkan program yang kedua tidak diinisialisasi sehingga pada waktu dipanggil pertama kali nilainya masih kosong. Baris ke-16 sampai dengan ke-20, baik pada program pertama maupun yang kedua, merupakan kode untuk memasukkan data baru pada array yang artinya data atau
  • 5. nilai default dari array ditimpa dengan data yang baru. Program Java untuk permasalahan yang sama adalah sebagai berikut : 1. import java.util.Scanner; 2. class latArrayClass { 3. private int[ ] a = {2,4,6,8,10}; 4. public void input(int data,int i) { 5. a[i] = data; 6. } 7. public void tampil() { 8. for(int i=0; i<5; i++) 9. System.out.print(a[i] + " "); 10. System.out.println(""); 11. } 12. } 13. class initArray { 14. public static void main (String[ ] args) { 15. latArrayClass larik; 16. larik = new latArrayClass(); 17. System.out.println("Belum ada perubahan data array"); 18. larik.tampil(); 19. for(int i=0; i<5; i++){ 20. System.out.print("a[" + i + "] = "); 21. Scanner input = new Scanner(System.in); 22. int dt=input.nextInt(); 23. larik.input(dt,i); 24. } 25. System.out.println("Setelah ada perubahan data array"); 26. larik.tampil(); 27. } 28. } Keluaran program : Program Java dimana tipe data array-nya tidak diinisialisasi adalah : 1. import java.util.Scanner; 2. class latArrayClass { 3. private int[ ] a; 4. public latArrayClass() { 5. a = new int[5]; 6. } 7. public void input(int data,int i) { 8. a[i] = data; 9. } 10. public void tampil() { 11. for(int i=0; i<5; i++) 12. System.out.print(a[i] + " "); 13. System.out.println(""); 14. } 15. } 16. class noinitArray { 17. public static void main (String[ ] args) { 18. latArrayClass larik; 19. larik = new latArrayClass(); 20. System.out.println("Belum ada perubahan data array"); 21. larik.tampil(); 22. for(int i=0; i<5; i++){ 23. System.out.print("a[" + i + "] = "); 24. Scanner input = new Scanner(System.in); 25. int dt=input.nextInt(); 26. larik.input(dt,i); 27. } 28. System.out.println("Setelah ada perubahan data array"); 29. larik.tampil(); 30. } 31. } Keluaran programnya adalah :
  • 6. C. Array Multi Dimensi Array multi dimensi adalah suatu array yang mempunyai lebih dari satu subskrip. Array multi dimensi ini aplikasinya antara lain untuk matrik. Adapun deklarasi dari array multi dimensi adalah : tipe_data nama_array[jumlah_elemen_baris] [jumlah_elemen_kolom]; Contoh : int matrik[2][2]; Merupakan matrik 2 X 2. Berikut adalah contoh program lengkapnya : 1. #include <iostream> 2. using namespace std; 3. int main(void) { 4. int t, i, matrik[3][4]; 5. for(t=0; t<3; t++) 6. for(i=0; i<4; i++) 7. matrik[t][i] = (t*4)+i+1; 8. for(t=0; t<3; t++) { 9. for(i=0; i<4; i++) 10. cout << matrik[t][i] << " "; 11. cout << endl; 12. } 13. return 0; 14. } Keluaran dari program di atas adalah : 0 1 2 3 0 1 2 3 4 1 5 6 7 8 2 9 10 11 12 Baris ke-5 sampai ke-7 adalah pemasukan data pada matrik. Sedangkan baris ke-8 sampai ke-12 adalah menampilkan data matrik. Pada kedua proses tersebut, pemasukan data dan menampilkan data terdapat dua buah perulangan dimana perulangan pertama adalah untuk mengidentifikasi baris dari matrik dan perulangan kedua untuk mengidentifikasi kolom dari matrik. Program Java untuk permasalahan yang sama adalah : 1. import java.util.Scanner; 2. class mtk { 3. public static void main (String[ ] args) { 4. int t, i; 5. int[ ][ ] matrik = new int[3][4]; 6. for(t=0; t<3; t++) 7. for(i=0; i<4; i++) 8. matrik[t][i] = (t*4)+i+1; 9. for(t=0; t<3; t++) { 10. for(i=0; i<4; i++) 11. System.out.print(matrik[t][i] + " "); 12. System.out.println(""); 13. } 14. } 15. } Keluaran program : Berikut ini adalah contoh untuk penjumlahan dua buah matrik. 1. #include <iostream> 2. using namespace std; 3. int main(void) { 4. int t, i, A[3][4],B[3][4],C[3][4]; 5. for(t=0; t<3; t++) 6. for(i=0; i<4; i++) 7. A[t][i] = (t*4)+i+1; 8. cout << "MATRIK A" << endl; 9. for(t=0; t<3; t++) { 10. for(i=0; i<4; i++) 11. cout <<A[t][i] << " "; 12. cout << endl; 13. } 14. for(t=0; t<3; t++) 15. for(i=0; i<4; i++) 16. B[t][i] = (t*4)+i+1; i t
  • 7. 17. cout << endl; 18. cout << "MATRIK B" << endl; 19. for(t=0; t<3; t++) { 20. for(i=0; i<4; i++) 21. cout <<B[t][i] << " "; 22. cout << endl; 23. } 24. for(t=0; t<3; t++) 25. for(i=0; i<4; i++) 26. C[t][i] = A[t][i]+B[t][i]; 27. cout << endl; 28. cout << "MATRIK C = A + B" << endl; 29. for(t=0; t<3; t++) { 30. for(i=0; i<4; i++) 31. cout <<C[t][i] << " "; 32. cout << endl; 33. } 34. return 0; 35. } Keluaran program : Kode penjumlahan matrik untuk bahasa Java adalah sebagai berikut : 1. import java.util.Scanner; 2. class jmlMatrik { 3. public static void main (String[ ] args) { 4. int t, i; 5. int[ ][ ] A = new int[3][4]; 6. int[ ][ ] B = new int[3][4]; 7. int[ ][ ] C = new int[3][4]; 8. for(t=0; t<3; t++) 9. for(i=0; i<4; i++) 10. A[t][i] = (t*4)+i+1; 11. System.out.println("MATRIK A"); 12. for(t=0; t<3; t++) { 13. for(i=0; i<4; i++) 14. System.out.print(A[t][i] + " "); 15. System.out.println(""); 16. } 17. for(t=0; t<3; t++) 18. for(i=0; i<4; i++) 19. B[t][i] = (t*4)+i+1; 20. System.out.println(""); 21. System.out.println("MATRIK B"); 22. for(t=0; t<3; t++) { 23. for(i=0; i<4; i++) 24. System.out.print(B[t][i] + " "); 25. System.out.println(""); 26. } 27. for(t=0; t<3; t++) 28. for(i=0; i<4; i++) 29. C[t][i] = A[t][i] + B[t][i]; 30. System.out.println(""); 31. System.out.println("MATRIK C=A+B"); 32. for(t=0; t<3; t++) { 33. for(i=0; i<4; i++) 34. System.out.print(C[t][i] + " "); 35. System.out.println(""); 36. } 37. } 38. } Keluaran program : D. Mengurutkan Elemen Array Ada banyak sekali metode untuk mengurutkan data, antara lain Exchange Sort, Selection Sort, Insertion Sort, Bubble Sort, Quick Sort, Shell Sort, Binary Insertion Sort, dan masih banyak lagi.
  • 8. Dari sekian banyak metode, hanya metode Exchange Sort, Bubble Sort, dan Insertion Sort saja yang akan kita bahas karena ketiga metode ini merupakan metode yang paling mudah dan banyak digunakan. Untuk metode Selection Sort langkah-langkahnya adalah sebagai berikut : 1. Proses 1: variabel indek diberi nilai 1 (data ke-1) kemudian data indek dibandingkan dengan data ke-2. Jika data indek lebih besar maka nilai indeknya diganti dengan 2 (data ke-2), jika tidak nilai indeknya tetap. Kemudian data indek dibandingkan lagi dengan data ke-3, lebih besar? Nilai indek ditukar! Demikian seterusnya. Setelah selesai, nilai indek diperiksa apakah nilai indek berubah atau tidak. Jika nilai indek mengalami perubahan maka data ke-1 ditukar dengan data indek. 2. Pada proses 2: variabel indek diberi nilai 2 (data ke-2) kemudian data indek dibandingkan dengan data ke-3. Jika data indek lebih besar maka nilai indeknya diganti dengan 3 (data ke-3). Kemudian data indek dibandingkan lagi dengan data ke-4, lebih besar? Nilai indek ditukar! Demikian seterusnya. Setelah selesai, nilai indek diperiksa apakah nilai indek berubah atau tidak. Jika nilai indek mengalami perubahan maka data ke-2 ditukar dengan data indek. 3. Demikian untuk proses selanjutnya dimana banyak prosesnya adalah jumlah elemen array dikurangi satu. Berikut program lengkap dari metode Selection Sort dalam bahasa C++ adalah : 1. #include <iostream> 2. using namespace std; 3. int a[10]; 4. void input(int data,int i) { 5. a[i] = data; 6. } 7. void tampil() { 8. for(int i=0; i<10; i++) 9. cout << a[i] << " "; 10. cout << endl; 11. } 12. void tukar(int data1, int data2) { 13. long temp = a[data1]; 14. a[data1] = a[data2]; 15. a[data2] = temp; 16. } 17. void selectionSort() { 18. int i,j,indek; 19. for(i=0; i<5-1; i++) { 20. indek=i; 21. for(j=i+1; j<5; j++) 22. if(a[indek] > a[j] ) 23. indek=j; 24. tukar(i,indek); 25. } 26. } 27. void main() { 28. input(57,0); 29. input(89,1); 30. input(49,2); 31. input(51,3); 32. input(12,4); 33. input(90,5); 34. input(1,6); 35. input(0,7); 36. input(63,8); 37. input(25,9); 38. tampil(); 39. selectionSort(); 40. tampil(); 41. } Keluaran programnya : Kode dalam bahasa Java untuk permasalahan yang sama adalah : 1. class latSelectSort { 2. private long[ ] a; 3. private int nElemen; 4. public latSelectSort(int max) { 5. a = new long[max]; 6. nElemen = 0; 7. } 8. public void input(long data) { 9. a[nElemen] = data; 10. nElemen++; 11. }
  • 9. 12. public void tampil() { 13. for(int i=0; i<nElemen; i++) 14. System.out.print(a[i] + " "); 15. System.out.println(""); 16. } 17. public void selectionSort() { 18. int i,j,indek; 19. for(i=0; i<nElemen-1; i++) { 20. indek=i; 21. for(j=i+1; j<nElemen; j++) 22. if(a[indek] > a[j] ) 23. indek=j; 24. tukar(i,indek); 25. } 26. } 27. private void tukar (int data1, int data2) { 28. long temp = a[data1]; 29. a[data1] = a[data2]; 30. a[data2] = temp; 31. } 32. } 33. class selectSort { 34. public static void main (String[ ] args) { 35. int makArray = 10; 36. latSelectSort larik; 37. larik = new latSelectSort(makArray); 38. larik.input(57); 39. larik.input(89); 40. larik.input(49); 41. larik.input(51); 42. larik.input(12); 43. larik.input(90); 44. larik.input(1); 45. larik.input(0); 46. larik.input(63); 47. larik.input(25); 48. larik.tampil(); 49. larik.selectionSort(); 50. larik.tampil(); 51. } 52. } Keluar program adalah : Metode Bubble Sort mempunyai langkah-langkah sebagai berikut : 1. Membandingkan data ke-1 dengan data ke-2, jika data ke-1 lebih besar, maka kedua data ditukar. 2. Kemudian membandingkan data ke-2 dengan data ke-3, jika data ke-2 lebih besar, kedua data ditukar lagi. 3. Demikian seterusnya sampai data terakhir, sehingga data kedudukannya akan bergeser-geser. 4. Untuk proses 2, pembandingan (pergeseran data) hanya sampai pada data terakhir dikurangi satu. Kode program lengkapnya dalam bahasa C++ adalah sebagai berikut : 1. #include <iostream> 2. using namespace std; 3. int a[10]; 4. void input(int data,int i) { 5. a[i] = data; 6. } 7. void tampil() { 8. for(int i=0; i<10; i++) 9. cout << a[i] << " "; 10. cout << endl; 11. } 12. void tukar(int data1, int data2) { 13. long temp = a[data1]; 14. a[data1] = a[data2]; 15. a[data2] = temp; 16. } 17. void bubSort() { 18. int i, j; 19. for(i=10-1; i>1; i--) 20. for(j=0; j<i; j++) 21. if( a[j] > a[j+1] ) tukar(j, j+1); 22. } 23. void main() { 24. input(57,0); 25. input(89,1); 26. input(49,2); 27. input(51,3); 28. input(12,4); 29. input(90,5); 30. input(1,6); 31. input(0,7); 32. input(63,8); 33. input(25,9); 34. tampil(); 35. bubSort(); 36. tampil();
  • 10. 37. } Keluaran programnya adalah : Sedangkan kode dalam bahasa Java-nya adalah : 1. class latBubble { 2. private long[ ] a; 3. private int nElemen; 4. public latBubble(int max) { 5. a = new long[max]; 6. nElemen = 0; 7. } 8. public void input(long data) { 9. a[nElemen] = data; 10. nElemen++; 11. } 12. public void tampil() { 13. for(int i=0; i<nElemen; i++) 14. System.out.print(a[i] + " "); 15. System.out.println(""); 16. } 17. public void bubSort() { 18. int i, j; 19. for(i=nElemen-1; i>1; i--) 20. for(j=0; j<i; j++) 21. if( a[j] > a[j+1] ) tukar(j, j+1); 22. } 23. private void tukar 24. (int data1, int data2) { 25. long temp = a[data1]; 26. a[data1] = a[data2]; 27. a[data2] = temp; 28. } 29. } 30. class bubbleSort { 31. public static void main (String[ ] args) { 32. int makArray = 100; 33. latBubble larik; 34. larik = new latBubble(makArray); 35. larik.input(57); 36. larik.input(89); 37. larik.input(49); 38. larik.input(51); 39. larik.input(12); 40. larik.input(90); 41. larik.input(1); 42. larik.input(0); 43. larik.input(63); 44. larik.input(25); 45. larik.tampil(); 46. larik.bubSort(); 47. larik.tampil(); 48. } // end main() 49. } Keluaran programnya adalah : Metode Insertion Sort mirip dengan cara orang mengurutkan kartu selembar demi selembar, kartu diambil dan disisipkan (insert) ke tempat yang seharusnya. Adapun langkah-langkahnya adalah sebagai berikut : 1. Pengurutan dimulai dari data ke-2 sampai dengan data terakhir. 2. Jika ditemukan data yang lebih kecil atau lebih besar, maka akan ditempatkan (diinsert) diposisi yang seharusnya Program selengkapnya dalam bahasa C++ adalah : 1. #include <iostream> 2. using namespace std; 3. int a[10]; 4. void input(int data,int i) { 5. a[i] = data; 6. } 7. void tampil() { 8. for(int i=0; i<10; i++) 9. cout << a[i] << " "; 10. cout << endl; 11. } 12. void insertionSort() { 13. int i,j; 14. for(i=1; i<10; i++) { 15. long temp = a[i]; 16. j=i; 17. while(j>0 && a[j-1] >= temp) { 18. a[j] = a[j-1]; 19. --j; 20. } 21. a[j] = temp; 22. } 23. }
  • 11. 24. void main() { 25. input(57,0); 26. input(89,1); 27. input(49,2); 28. input(51,3); 29. input(12,4); 30. input(90,5); 31. input(1,6); 32. input(0,7); 33. input(63,8); 34. input(25,9); 35. tampil(); 36. insertionSort(); 37. tampil(); 38. } Keluaran programnya adalah : Kode dalam bahasa Java adalah sebagai berikut : 1. class latInsertSort { 2. private long[ ] a; 3. private int nElemen; 4. public latInsertSort(int max) { 5. a = new long[max]; 6. nElemen = 0; 7. } 8. public void input(long data) { 9. a[nElemen] = data; 10. nElemen++; 11. } 12. public void tampil() { 13. for(int i=0; i<nElemen; i++) 14. System.out.print(a[i] + " "); 15. System.out.println(""); 16. } 17. public void insertionSort() { 18. int i,j; 19. for(i=1; i<nElemen; i++) { 20. long temp = a[i]; 21. j=i; 22. while(j>0 && a[j-1] >= temp) { 23. a[j] = a[j-1]; 24. --j; 25. } 26. a[j] = temp; 27. } 28. } 29. } 30. class insertSort { 31. public static void main (String[ ] args) { 32. int makArray = 100; 33. latInsertSort larik; 34. larik = new latInsertSort(makArray); 35. larik.input(57); 36. larik.input(89); 37. larik.input(49); 38. larik.input(51); 39. larik.input(12); 40. larik.input(90); 41. larik.input(1); 42. larik.input(0); 43. larik.input(63); 44. larik.input(25); 45. larik.tampil(); 46. larik.insertionSort(); 47. larik.tampil(); 48. } 49. } Keluaran dari program tersebut adalah : E. F.