Monday, 2 October 2017

[T2 : Struktur Data 3] : Apa Itu Array & Jenis-Jenis 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. } 


Contoh program dalam bahasa java :

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


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 };


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 :
intmatrik[2][2];
Merupakan matrik 2 X 2

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.

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.

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

Reaksi:

0 komentar:

Post a Comment

Tolong berkomentar dengan sopan dan baik, Terimakasih.