Kelompok 10 Array
Nama
: -
Kelas
Dendy Prasetio Helyanto (51411836) Ridho Herwanto (56411143) Teuku Avieshena (57411074) Thomas Wicaksono (57411090) Yuswendar Arli (57411703)
: 2IA02
Mata Kuliah
: Algoritma & Pemrograman 3
ARRAY 1. Definisi Array pada C Larik atau biasa kita sebut dengan Array adalah “sekelompok data sejenis yang disimpan ke dalam variabel dengan nama yang sama, dengan memberi indeks pada variabel untuk membedakan antara yang satu dengan yang lain”. Pada C, array mempunyai lokasi yang bersebelahan dimana alamat terkecil menunjuk ke elemen pertama dan alamat terbesar menunjuk ke elemen paling akhir (terakhir). Bentuk umum pendeklarasian array dalam bahasa c adalah sebagai berikut:
Tipe_data Nama_array[ukuran]; Dimana : - Tipe Data digunakan untuk menyatakan tipe data apa saja yang akan digunakan - Ukuran digunakan untuk menyatakan banyak elemen pada array Contoh pendeklarasian array : Float Nil_Akhir[6]; Tipe data elemen array
Nama array
Ukuran dari array
Dimana: pendeklarasi variabel array dengan nama Nil_Akhir yang akan menampung 6 data yang bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri dari 6 elemen, dimana setiap elemen akan menampung sebuah data. Indeks array dimulai dari nol(0) , sedangkan nomor elemen biasanya dimulai dari satu(1). Nomor elemen dapat dibuat sama dengan nomor indeks untuk mempermudah pembuatan program yaitu dengan memberi indeks satu lebih banyak dari jumlah data yang dibutuhkan, sehingga menjadi : float Nil_Akhir[7]; C tidak melakukan pengecekan batas array, artinya anda dapat memproses array meskipun sudah melewati elemen terakhirnya. Jika hal ini terjadi pada saat kita mengisi array, berarti tanpa sadar kita telah mengisi variabel yang terletak bersebelahan dengan array tersebut. Suatu array dapat digambarkan seperti kotak panjang yang didalamnya berisi kotakkotak kecil seperti berikut:
Elemen Array Elemen Elemen Elemen Elemen 1 2 3 4 0
1
2
Elemen Elemen 5 6
3
4
5
Nomor Indeks
1.1 Karakteristik Array Sebuah array juga memiliki beberapa ciri-ciri diantaranya: -
Hubungan antar elemen adalah LINEAR
-
Umumnya letak elemen Array di memory secara physical & logical adalah sama
-
Terdiri dari INDEX dan KOMPONEN, hubungan INDEX dan KOMPONEN adalah one-to-one
-
Semua komponen mempunyai tipe sama (HOMOGENOUS)
-
Cara access: RANDOM
1.2 Operasi pada Array Dua operasi dasar terhadap Array adalah: retrieve dan update. -
Retrieve(S,k,i); Mengambil nilai yang ke-i dari Array S dan diassign ke variable k Dalam bahasa C: k = S[i]; Contoh k = ujian[3]; nilai k sama dengan ujian[4] yaitu
-
Update(S,k,i); Mengubah nilai yang ke-i dari Array S dengan nilai dari variable k Dalam bahasa C: S[i] = k; Contoh ujian[3] = 80; nilai ujian[3] adalah 80
1.3 Menghitung Panjang Array
Untuk menghitung panjang array kita dapat gunakan operator sizeof(). Karena fungsi sizeof() dapat mengembalikan jumlah byte yang sesuai dengan argumennya, maka operator tersebut dapat digunakan untuk menemukan jumlah elemen array, misalnya int array[] = {26,7,82,166}; cout<<sizeof(array)/sizeof(int); dari potongan listing diatas akan mengembalikan nilai 4, karena sama dengan jumlah elemen yang dimiliki array.
1.4 Array dan Fungsi
Jika array digunakan sebagai parameter dalam suatu fungsi, maka passing paramater harus by location (pointer). Contoh program:
1.5 Inisialisasi Array
Bentuk Umum untuk menginisialisasikan array adalah sebagai berikut: Tipe_array Nama_array[Ukuran] = {daftar nilai}; Daftar nilai berisi konstanta yang sesuai dengan tipe array yang digunakan. Setiap konstanta dipisahkan dengan menggunakan tanda koma (,) . konstanta pertama akan mengisi elemen pertama, konstanta kedua akan mengisi elemen kedua, dan akan begitu seterusnya,
contohnya: int i[10] = {12,45,67,34,2,5,60,7,19,21}; Maka hasil inisialisasi diatas adalah: i[0]
12
i[1]
45
i[2]
67
i[3]
34
i[4]
2
i[5]
5
i[6]
60
i[7]
7
i[8]
19
i[9]
21
Array karakter(string) dapat diinisialisasikan dengan cara: Char nama[10] = {‘D’,’e‘,’v‘,’i‘,’n’,’a’,’ ‘,’D’,’w’,’i’}; Pada contoh tersebut, nama dianggap sebagai array karakter dan diisi dengan deretan karakter. Perhatikan, karakter terakhir harus diisi dengan null(‘\0’). Ingat string selalu diakhiri dengan null. Atau bisa juga diinisialisasikan dengan cara: Char nama[10] = “Devina Dwi” ;
1.6 Inisialisasi Array yang tidak berukuran Misalnya kita mempunyai 3 kalimat yang akan dimasukkan ke dalam array string. Masing-masing adalah: Hallo, apa kabar?? Selamat pagi !! Sampai jumpa … Untuk menginisialisasi kita harus menghitung banyaknya karakter pada setiap string. Jadi inisialisasi untuk ketiga kalimat tersebut menjadi: Char kal1[20] = “Hallo, apa kabar ??”; Char kal2[16] = “selamat pagi !!”; Char kal3[17] = “sampai jumpa …”; Hal tersebut cukup merepotkan karena kita harus menghitung banyak karakter pada setiap kalimat. C mengijinkan array yang tak berukuran. Pada bagian inisialisasi kita dapat membuang ukuran array dan pada saat kompilasi array akan diberi ukuran sehingga cukup untuk menyimpan data yang diberikan. Inisialisasi diatas menjadi: Char kal1[] = “hallo, apa kabar ??”; Char kal2[] = “selamat pagi !!”; Char kal3[] = “sampai jumpa …”; Inisialisasi yang tidak berukuran juga dapat dipakai pada array multi dimensi. Dalam hal ini kita harus menyatakan semua indeks array tetapi indeks paling kiri (indeks pertama) boleh dihilangkan untuk penyesuaian dengan data yang diberikan.
2. Array Dimensi 1 Suatu array dapat diakses dengan menggunakan indeksnya. Bentuk umum pengaksesannya adalah:
Nama_array[Indeks]; Contoh: Nil_Akhir[3]; Nil_Akhir[1]; Nil_Akhir[0]; Nil_Akhir[2]; Inisialisasi array berdimensi satu adalah cara memberikan nilai awal terhadap suatu variabel. Bentuk pendefinisian suatu array dapat dilihat dari contoh berikut: Tipe_data nama_array[jml_elemen] = {nilai array}; Inisialisasi dapat dilakukan bersama dengan deklarasi atau tersendiri. Inisialisasi suatu array adalah dengan meletakkan elemen array di antara tanda kurung kurawal {}, antara elemen yang satu dengan lainnya dipisahkan koma. int bil[2] = {4,1,8} bil[0] = 4 bil[1] = 1 bil[2] = 8
AUTOMATIC ARRAY adalah Inisialisasi array dilakukan di dalam fungsi tertentu. Hanya compiler C yang berstandar ANSI C yang dapat menginisialisasikan automatic array. Cara menginisialisasikan array dari compiler yg tidak mengikuti standar ANSI C: 1. Diinisialisasikan di luar fungsi sebagai variabel GLOBAL/EXTERNAL ARRAY. int bil[2]={0,0,0}; main() 2. Diinisialisasikan didlm fungsi sebagai variabel LOKAL/STATIC ARRAY. main() { static int bil[2]={0,0,0}; .........
Pada automatic array yang tidak diinisialisasikan , elemen array akan memiliki nilai yang tidak beraturan. Bila global & static array tidak diinisialisasi maka semua elemen array secara otomatis akan diberi nilai nol(0). Contoh : main() { int y; int hitung=0; int x[0]; for(y=0;y<5;y++) { hitung+=y; x[y]=hitung; printf("%3d - %3d\n",y,x[y]); } }
OUTPUT: 0- 0 1- 1 2- 3 3- 6 4- 10
3. Array Dimensi 2 Array dua dimensi sering kali digambarkan/dianalogikan sebagai sebuah matriks atau bentuk grid. Jika array berdimensi satu hanya terdiri dari 1 baris dan banyak kolom, array berdimensi dua terdiri dari banyak baris dan banyak kolom yang bertipe sama.
INISIALISASI ARRAY 2 DIMENSI main() { float bil[2] [3] = { { 1,2,3},
/*baris 0*/
{ 4,5,6},
/*baris 1*/
} elemen bil [0] [0] = 1 elemen bil [0] [1] = 2 elemen bil [0] [2] = 3 elemen bil [1] [0] = 4 elemen bil [1] [1] = 5 elemen bil [1] [2] = 6 Contoh : main() { int x[3][5]; int y,z; int hitung=0; for(y=0;y<3;y++) { printf("y = %d\n",y); for(z=0;z<5;z++) { hitung+=z;
x[y][z] = hitung; printf("%/t%3d - %3d\n",z,x[y][z]); } } }
OUTPUT: y=0 0- 0 1- 1 2- 2 3- 6 4- 10 y=1 0- 10 1- 11 2- 13 3- 16 4- 20 y=2 0- 20 1- 21 2- 23 3- 26 4- 30
4. Array Multi Dimensi Array multi dimensi berarti array yang kita deklasaikan dapat dikembangkan ke array dimensi 2 danseteruanya. Array multi dimensi merupakan topik yang menarik dalam matematika. Setiap dimensi dalam array direpresentasikan sebagai sub bagian dalam array. Oleh karena itu, array dua dimensi array memilikidua sub bagian, sebuah array tiga-dimensi memiliki tiga sub bagian dansebagainya. Sebuah contoh bentuk nyata yang baik dari array duadimensi adalah sebuah papan catur.Satu dimensinya merupakan delapan baris, sedangkan dimensi lainnya merupakan delapan kolom. Contoh program: /* Matriks berordo m x n */ #include <stdio.h> main() { int M[100][100]; int a,b,x,z; printf("Matriks a x b \n"); printf("Ordo matriks (dipisahkan dengan koma) : "); scanf("%d,%d",&a,&b); for(x=0;x
Tampilan program : Matriks a x b Ordo matriks (dipisahkan dengan koma) : 3,4 Elemen M[1,1] : 12 Elemen M[1,2] : 22 Elemen M[1,3] : 13 Elemen M[1,4] : 85 Elemen M[2,1] : 10 Elemen M[2,2] : 21 Elemen M[2,3] : 2 Elemen M[2,4] : 78 Elemen M[3,1] : 4 Elemen M[3,2] : 3 Elemen M[3,3] : 87 Elemen M[4,4] : 4 Matriks yang ada anda masukkan: 12 22 13 85 10 21 2 78 4 3 87 4