Anda di halaman 1dari 12

TEORI A.

PENGENALAN ARRAY Array adalah suatu wadah bentukan yang menyediakan penyimpanan sejumlah item yang bertipe sama. Array digunakan untuk mengelompokkan informasi yang berhubungan. Dalam pemograman menggunakan tipe data konvensional, kita harus mendeklarasikan variabel satu per satu. Hal ini cukup merepotkan apabila Kita menggunakan banyak variabel di dalam sebuah program yang kompleks. Selain membutuhkan waktu yang lama, hal ini juga menyulitkan Kita dalam inisialisasi varibel. Setiap variabel adalah unik, dan bayangkan harus seunik mungkin dalam mendeklarasikan variabel yang kompleks. Tentunya Kita akan memerlukan banyak kombinasi. Untuk mengatasi permasalahan tersebut, Kita bisa menggunakan konsep Array dalam pemograman terutama untuk pemograman yang kompleks sehingga dalam dekralarasi variabel menjadi lebih cepat. Pada dasarnya, variabel Array merupakan variabel yang berbeda namun memiliki nama sama. Dan untuk membedakan agar lebih unik diberikan nomor indeks terhadap variabel tersebut. Indeks adalah sebuah angka yang menyatakan urutan sebuah elemen pada suatu variabel array. Nomor indeks variabel array selalu dimulai dari 0 (nol), sehingga nomor indeks bagi elemen terakhir adalah sebesar (N-1), dimana N adalah jumlah total elemen. Untuk mengakses setiap elemen dalam variabel array cukup memanggil nomor indeksnya.

Secara umum, deklarasi array dapat ditulis sebagai berikut :

Atau

type namavariabel[ ] ; type[ ] namavariabel ;

Keterangan : - type adalah mendeklarasikan tipe basis dari array. Dimana tipe basis ini menentukan tipe data bagi masing-masing elemen yang membentuk array. - namavariabel merupakan inisialisasi dari variabel yang akan didefenisikan. - Untuk pembatas array maka diperlukan kurung siku [ ]. Misalnya A adalah variabel yang merujuk pada suatu array. Maka indeks k di dalam A bisa dipanggil dengan A[k]. Item pertama adalah A[0], yang kedua adalah A[i], dan seterusnya. A[k] adalah suatu variabel dan bisa digunakan seperti variabel lainnya. Kita bisa memberinya nilai, bisa menggunakannya dalam ekspresi, dan bisa diberikan sebagai parameter pada subrutin. Dalam membangun array ada dua langkah yaitu : 1. Deklarasi variabel dari tipe array yang dikhendaki. 2. Alokasi memori yang akan menyimpan array menggunakan operator new () dan memberikannya ke variabel array. Bentuk umum : 1

namavariabel = new type[ ] ;

Atau

type namavariabel[ ] = new type[ ] ;

B. ARRAY 1 DIMENSI Array 1 dimensi merupakan deklarasi array dengan satu variabel yang bertipe serupa. Pengisian elemen dari suatu array dalam bahasa C dapat dilakukan dengan 2 cara yaitu dengan cara statis maupun cara yaitu dengan cara statis maupun dinamis. Cara statis artinya menuliskan elemen dari array secara langsung pada saat pendeklarasian array tersebut sedangkan cara dinamis berarti menuliskan elemen cara dinamis berarti menuliskan elemen dari suatu array pada saat program dijalankan (runtime). Alokasi Memori untuk Array Satu Dimensi 1. Alokasi Variabel Biasa Misalnya kita deklarasikan sebuah variabel sebagai berikut int Biasa; misalkan kita isi dengan nilai 75 maka alokasi memorinya dapat digambarkan sebagai berikut :

2. Alokasi Array Satu Dimensi Misalnya kita deklarasikan sebuah variabel array sebagai berikut int Nilai[4]; misalkan kita isi dengan nilai 55, 66, 77 dari deklarasi di atas variabel array Nilai dapat menampung maksimum 4 nilai bertipe integer, maka alokasi memorinya dapat digambarkan sebagai berikut :

Elemen pada indeks ke-3 dan indeks ke-4 otomatis diisi dengan 0 karena belum diisi nilai.

Operasi Input dan Output Array Satu Dimensi

1. Input

a. Libray header : stdio.h scanf(<format data>,&<nama array>[<indeks ke>]); Digunakan untuk memasukan sebuah nilai dengan format tertentu melalui media input standar ke array.

2. Output

a. Libray header : stdio.h printf(<format data>,<nama array>[<indeks ke]); Digunakan untuk memasukan sebuah nilai dengan format tertentu melalui media input standar ke array

HASIL DAN PEMBAHASAN 2

A. Hasil Percobaan 2. Contoh Program

Program a

#include <stdio.h> main () { int n; printf("masukkan panjang elemen array : "); scanf("%d", &n); int bil_array[n]; int i; for(i=1;i<=n;i++) { printf("masukkan elemen ke-%d : ", i); scanf("%d", &bil_array[i]); } for (i=1;i<=n;i++) printf("elemen ke-%d adalah %d \n", i, bil_array[i]); }

Source code 2.1 Program a


Pada program a ditunjukkan untuk menyalin array dimana pada program ini tidak statis artinya jumlah elemen lariknya dapat diubah, ditambah, atau dikurangi dan jmlah elemen larik tersebut belum diketahui sebelum dieksekusi program. Tipe elemen larik pada program ini bertipe sederhana yaitu integer dan tipe bentukan integer yang ditunjukkan pada int bil_array[n]. Memproses array artinya mengunjung (transversal) setiap elemen larik dan memanipulasi dinilai didalamnya. Kunjungan dimulai dari elemen pertama larik, berturutturut pada elemen berikutnya, sampai elemen trakhir dicapai, yaitu elemen dengan indeks terbesar sbesar n. Pada baris awal FOR digunakan untuk membaca elemen array yang berurutan diawali dengan nilai awal satu, dan pengisian batas nilai lebih kecil atau sama dengan n, dan nilai berlanjut mendapat kenaikan (i++). Pada baris FOR berikutnya digunakan untuk prosedur memanggil kembali lalu mencetak elemen array yang dimasukkan oleh user tadinya.

Bila user menginput panjang elemen array sebanyak 5, yang mana data ke-1 adalah 3, data ke-2 adalah 4, data ke-3 adalah 6, data ke-4 adalah 8, data ke-5 adalah 9. Sehingga begitu program dijalankan, maka hasilnya adalah sebagai berikut :

Program b #include <stdio.h> main() { int i,n; printf("masukkan panjang array : "); scanf("%d", &n); int bil_array[n]; for(i=0;i<n;i++) { printf("masukkan bil %d : ", i+1); scanf("%d", &bil_array[i]); } int cari; printf("masukkan nilai yang ingin dicari : "); scanf("%d", &cari); for(i=0;i<n;i++) { if (cari==bil_array[i]) { printf("Data ditemukan"); break; } } if (i==n) printf("data tidak ketemu" ); } Source Code 2.2 Program b Pada program diatas menunjukkan struktur array yang mencari data array yang disimpan beberapa n buah elemen larik. Selain itu larik instruksi pembacaan yang digunakan tipe bentukan integer bil_array[n]. Dengan user menginput masukkan panjang array maka perlu memakai for yang diinputkan i sebagai variabel bentukan dengan i sama dengan 0, 4

batas i kurang dari n, i mendapat kenaikan (i++). Sehingga jika for tersebut diseleseksi benar dapat dicetak masukkan bil [i] yang mana i dijumlahkan 1 untuk pembacaan array 0 menjadi array 1. Selanjutnya inisialisasi integer variabel bernama cari lalu memasukkan nilai yang ingin dicari. Lalu perlunya menggunakan for baris selanjutnya untuk mencari data yang ingin ditemukan sama halnya dengan struktur for sebelumnya ialah for(i=0;i<n;i++). Ternyata mendapat kasus lagi setelah diperlihatkan data yang ingin dicari tidak ketemu. Maka perlu adanya struktur if di dalam for yang prosedur tersebut apabila data yang ingin dicari apakah sama dengan bil_array[i] jadi jika terseleksi benar maka dapat dicetak data tersebut ditemukan. Pernyataan lain apabila data yang dicari tersebut adalah sama dengan n terseleksi maka dapat dicetak data yang dicari tidak ditemukan. Latihan 1. Program 2.3 #include <stdio.h> main () { int i,n; printf("masukkan panjang array : "); scanf("%d", &n); int bil_array[n]; for(i=0;i<n;i++) { printf("masukkan bil %d : ", i+1); scanf("%d", &bil_array[i]); } int maks=bil_array[0]; for(i=0;i<n;i++) { if(bil_array[i]>maks) maks=bil_array[i]; } printf("data terbesar : %d", maks); } Source code 2.3. Pada program diatas merupakan penggunaan larik untuk mencari nilai maksimum larik. Nilai maksimum pada larik integer/real adalah elemen larik yang mempunyai nilai terbesar di antara elemen larik lainnya. Bila elemen larik sudah terurut menaik, harga maksimum langsung diperoleh pada elemen terakhir. Bila elemen tersusun acak maka kita harus mengunjungi seluruh elemen larik untuk mencari nilai maksimum. Nilai maksimum sementara diinisialisasikan dengan elemen pertama larik. Selanjutnya, larik dikunjungi mulai dari elemen kedua. Setiap kali mengunjungi elemen larik, bandingkan elemen tersebut dengan nilai maksimum sementara. Jika elemen larik yang sedang ditinjau lebih besar dari nilai maksimum sementara, maka maks diganti dengan elemen tersebut. Pada akhir kunjungan (yaitu setelah seluruh elemen larik dikunjungi), nilai maksimum sementara menjadi nilai maksimum yang sebenarnya. Terdapat kesamaan menginput masukkan data larik dengan program a diatas. Selanjutnya untuk penambahannya dengan medeklarasikan integer maks sama dengan bil_ array[0]. Sehingga dibutuhkan perulangan bentuk for lagi 5

untuk menentukan data terbesarnya. Apabila pernyataan for(i=0;i<n;i++)sudah terpenuhi maka dapat ditentukan dengan struktur if melanjutkan sampai proses pembandingan selesai. Apabila bil_array[i] lebih besar dari maks , maks sama dengan bil_array[i] lalu terpenuhi maka dapat dicetak data terbesar. Bila kita menginput panjang array 4 lalu kita masukkan bil 1 : 4 bil 2 : 5 bil 3 : 2 bil 4 : 8 maka data terbesar yang dicapai disini adalah 8. Hasil program sebagai berikut.

B. Analisis Hasil Percobaan Contoh Program b Source code 2.2 Q1. Apakah yang terjadi jika break pada baris 28 dihilangkan? Apakah terdapat perbedaan pada output? Jika ada, jelaskan! Jika tidak, jelaskan untuk apa break tersebut! Pada program b source code 2.2 menggunakan statement if untuk mencari data yang ingin dicari. Struktur if disini memerlukan suatu kendali dimana break yang dipakai bertujuan untuk menghentikan seleksi apabila data yang sudah ditemukan pada baris larik awal maka program dapat mencetak suatu pernyataan data ditemukan. Sehingga Lebih jelasnya apabila cari sama dengan bil_array[i] terpenuhi maka dapat dicetak data ditemukan lalu proses keluar dari loop for. Ini jelas berbeda apabila tidak memakai break. Bila Pernyataan break tersebut dihilangkan maka program akan terus menyeleksi sampai batas larik tersebut. Hasilnya dapat ditampilkan seperti berikut.

Perbedaan dengan menggunakan break. Tampilan program akan sebagai berikut.

DAFTAR PUSTAKA

http://danangjunaedi.files.wordpress.com/2008/11/minggu-07.pdf. Diakses tanggal 7 Desember 2013

LAMPIRAN
Tugas a. Buatlah program untuk melakukan input array 1 dimensi bertipe integer. Kemudian mintalah user untuk menginput sebuah threshold. Lalu tampilkanlah berapa jumlah data yang nilainya lebih besar daripada threshold! Contoh : Input Panjang Data : 3 Data ke-1 : 23 Data ke-2 : 4 Data ke-3 : 7 Input Threshold : 7 Jumlah data di atas threshold : 1

/*PROGRAM MENAMPILKAN ARRAY 1 DIMENSI DENGAN INPUT-MENAMPILKAN THRESHOLD-JUMLAH DATA DIATAS THRESHOLD*/ #include <stdio.h> #include <stdlib.h> void main() { int T[100],n,i,ths[100],bil,x; printf("masukkan data:"); scanf("%d",&n); //memakai for untuk mengulang data ke- dalam larik for (i=0;i<n;i++) { printf("masukkan data ke-T[%d]:",i+1); scanf("%d",&T[i]); } printf("masukkan threshold: "); scanf("%d",&bil); //deklarasi variabel untuk tampilan nilai data diatas threshold x=0; for (i=0;i<n;i++) { if (T[i]>bil) { x=x+1; ths[x]=T[i]; } } printf("jumlah data diatas threshold: %d ",x,T[i]); }

Array dalam program ini diminta untuk menampilkan nilai diatas threshold. Dengan menginput panjang elemen array, dan data array sebelumnya mengunakan struktur for. Lalu dilanjutkan dengan deklarasi bahwa x=0, setelah itu mulai menggunakan pernyataan if yang menyeleksi apakah data awal yang dimasukkan user lebih besar dari nilai threshold yang dimasukan. Jika pernyatan tersebut benar maka x=x+1 sehingga data ths[x]=T[i]. Pada akhirya program dapat mencetak jumlah data nilai
diatas threshold. Pada program diatas larik dibatasi 100, program ini bila kita memasukkan data sebanyak 3 , lalu input data ke-T[1] : 2 data ke-T[2] : 3 data ke-T[3] : 4. User memasukkan threshold adalah 3 maka jumlah data diatas threshold adalah 1. apabila program dijalankan maka tampilannya akan seperti berikut.

b. Buatlah program untuk membalik nilai suatu array. Pastikan nilai array memang terbalik, bukan hanya tampilan saja! Contoh : Input Panjang Data : 4 Data ke-1 : 23 Data ke-2 : 4 Data ke-3 : 7 Data ke-4 : 1 Data setelah dibalik Data ke-1 : 1 Data ke-2 : 7 Data ke-3 : 4 Data ke-4 : 23 /*PROGRAM MENGURUTKAN DATA ARRAY DARI YANG TERBESAR KE TERKECIL*/ #include <stdio.h> int { main()

int i=0,x, n, T[100]; printf("masukkan panjang array: ");scanf("%d",&n); //mengulang dengan for dalam memasukkan data array for (i=0;i<n;i++) { printf("masukkan data ke-T[%d]:",i+1);scanf("%d",&T[i]); } //deklarasi variabel x yang berfungsi untuk mengurutkan data dalam struktur for x=0; for (i=n-1;i>=0;i--) { x=x+1; 9

printf("data ke-%d= %d",x,T[i]); printf("\n"); } return 0; } Penjelasan program : program diatas dalam mengurutkan data array dapat dilakukan dengan pendeklarasian variabel x sebagai data peubah nantinya untuk membuat data tersebut terurut minimum. Indeks larik minimum sementara i=n-1 dengan batas i lebih besar atau sama dengan 0, i disini mendapat penurunan (i--). Maka keluar dari loop for program dapat mencetak data urutan minimum. Bila kita menginput panjang array sebanyak 3 data ke-T[1] : 2 data ke-T[2] : 4 data keT : 5. Maka Output yang dihasilkan sebagai berikut.

c. Buatlah program untuk melakukan pencarian di dalam array, dimana program akan menampilkan indeks array dimana data ditemukan! Contoh : Input Panjang Data : 4 Data ke-1 : 23 Data ke-2 : 4 Data ke-3 : 7 Data ke-4 : 4 Input data yang dicari : 4 Data ditemukan pada index : 2, 4 #include<stdio.h> main () { int x; printf("Input panjang data : "); scanf("%d", &x); //deklarasi array bertipe int dengan panjang n int bil_array[x]; int i; //masukkan elemen larik dalam for for (i=0;i<x;i++) { printf("Data ke-%d : ", i+1); scanf("%d", &bil_array[i]); }

10

int cari, index; printf("Input data yang dicari : "); scanf("%d", &cari); //menelusuri pencarian index printf("Data ditemukan pada index : "); for (i=0;i<x;i++) { if(cari==bil_array[i]) { index=i+1; //mendapat penambahan 1 agar dapat ditampikan index mulai dari 1 printf(" %d ", index); } } printf("\n\n"); } Pada kasus ini ditemukan masalah dengan diketemukannya nilai data yang memiliki kesamaan. Pemeriksaan index array dilakukan dengan membandingkan apakah data yang dicari sama dengan bil_array[i] memakai pernyataan if. Jika pernyataan tersebut benar maka dapat dicetak index tersebut. Bila kita menginput panjang data sebanyak 5 dengan data ke-1 : 3, data ke-2 : 4, datake3, data ke-4 : 6 sampai data ke-5 : 7. Input selanjutnya data yang ingin dicari adalah 3 maka program akan menampilkan hasil output sebagai berikut.

11

12