kelompok 10 array -...

12
Kelompok 10 Array Nama : - Dendy Prasetio Helyanto (51411836) - Ridho Herwanto (56411143) - Teuku Avieshena (57411074) - Thomas Wicaksono (57411090) - Yuswendar Arli (57411703) Kelas : 2IA02 Mata Kuliah : Algoritma & Pemrograman 3

Upload: leduong

Post on 20-Mar-2019

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

Kelompok 10

Array

Nama :

- Dendy Prasetio Helyanto (51411836)

- Ridho Herwanto (56411143)

- Teuku Avieshena (57411074)

- Thomas Wicaksono (57411090)

- Yuswendar Arli (57411703)

Kelas :

2IA02

Mata Kuliah :

Algoritma & Pemrograman 3

Page 2: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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:

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 kotak-

kotak kecil seperti berikut:

TTiippee__ddaattaa NNaammaa__aarrrraayy[[uukkuurraann]];;

Page 3: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

Elemen Array

0 1 2 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

Elemen 1

Elemen 2

Elemen 3

Elemen 4

Elemen 5

Elemen 6

Page 4: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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:

Page 5: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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

Page 6: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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:

Page 7: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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

.........

Page 8: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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.

Page 9: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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;

Page 10: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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

Page 11: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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<a;x++)

{

for(z=0;z<b;z++)

{

printf("Elemen M[%d,%d] : ",x+1,z+1);

scanf("%d",&M[x][z]);

}

}

printf("Matriks yang ada anda masukkan: \n");

for(x=0;x<a;x++)

{

for(z=0;z<b;z++)

{

printf("%-3d",M[x][z]);

}

printf("\n");

}

}

Page 12: Kelompok 10 Array - rogayah.staff.gunadarma.ac.idrogayah.staff.gunadarma.ac.id/Downloads/files/38670/Kelompok+10... · bertipe float. Indeks 6 menunjukkan variabel Nil_Akhir terdiri

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