ARRAY (bag.1)
Algoritma dan Struktur Data
3/24/2012Muhammad Fachrie, S.T. 1
Array (larik) merupakan koleksi data, dimana setiap elemen memakai nama dan tipe yang sama, serta setiap elemen diakses dengan membedakan indeks array-nya.
Jenis-jenis array: Array 1 dimensi Array 2 dimensi Array 3 dimensi
Definisi
3/24/2012Muhammad Fachrie, S.T. 2
ANEH[1]: 21 ANEH[2]: -9 ANEH[8]: -23
Ilustrasi Array 1 Dimensi
21 -9 0 1
254
12 1
-23
42
71
1 2 3 4 5 6 7 8 9 10
Array ANEH
Indeks array
3/24/2012Muhammad Fachrie, S.T. 3
<nama variabel> : array [a..b] of <tipe data> dimana, a: nilai awal indeks array
b: nilai akhir indeks array Contoh:BilPrima : array [1..10] of integer
Deklarasi Array dalam Notasi Algoritmik
3/24/2012Muhammad Fachrie, S.T. 4
lucu : array [1..4] of integer
Lalu, untuk setiap indeks array, dimasukkan bilangan integer:aneh[1] = 3aneh[2] = 12aneh[3] = 0aneh[4] = -9
Contoh Penggunaan Array
1 2 3 4
Terbentuk sebuah array dengan indeks dari 1 s.d. 4
3 12 0 -9
1 2 3 4
3/24/2012Muhammad Fachrie, S.T. 5
Pada notasi algoritmik, penomoran indeks array dimulai dari 1. Contoh:
Sedangkan pada Bahasa C, penomoran indeks array dimulai dari 0.Contoh:
Penomoran indeks pada Bahasa C
A n d i1 2 3 4 5
A n d i0 1 2 3 4
3/24/2012Muhammad Fachrie, S.T. 6
Di dalam Bahasa C, tipe data string merupakan sebuah array, dimana elemennya terdiri dari sebuah karakter penyusun string tersebut.
Contoh:char nama[5];strcpy(nama,”Andi”);
Maka, elemen array dari variabel nama adalah:nama[0] : “A”nama[1] : “n”nama[2] : “d”nama[3] : “i”nama[4] : “ “
String = Array, dalam Bahasa C
3/24/2012Muhammad Fachrie, S.T. 7
A n d i0 1 2 3 4
nama
nama[0]
nama[1]
nama[2]
nama[3]
nama[4]
/*Algoritma menyimpan 4 buah angka ke dalam array*//*KAMUS*/angka : array [1..4] of integer
/*ALGORITMA*///menerima input dari userinput(angka[1]);input(angka[2]);input(angka[3]);input(angka[4]);
//menampilkan isi dari arrayoutput(angka[1]);output(angka[1]);output(angka[1]);output(angka[1]);
Contoh Algoritma menggunakan Array Integer
3/24/2012Muhammad Fachrie, S.T. 9
/*Program menyimpan 4 buah bilangan dalam array*/#include <stdio.h>#include <conio.h>
void main(){
//deklarasi variabelint angka[10];
//menerima input array dari userprintf("angka ke-1: "); scanf("%d",&angka[0]);printf("angka ke-2: "); scanf("%d",&angka[1]);printf("angka ke-3: "); scanf("%d",&angka[2]);printf("angka ke-4: "); scanf("%d",&angka[3]);
//menampilkan isi arrayprintf(“angka ke-1: %d”, angka[0]);printf(“angka ke-2: %d”, angka[1]);printf(“angka ke-3: %d”, angka[2]);printf(“angka ke-4: %d”, angka[3]);getch();
}
Implementasi dengan Bahasa C
3/24/2012Muhammad Fachrie, S.T. 10
Contoh Algoritma menggunakan Array String
/*Algoritma menampilkan elemen karakter dari sebuah String*//*KAMUS*/nama : array [1..5] of char
/*ALGORITMA*/Nama = “Andi”
//menampilkan isi dari arrayoutput(nama[1]);output(nama[2]);output(nama[3]);output(nama[4]);output(nama[5]);
3/24/2012Muhammad Fachrie, S.T. 11
Implementasi dengan Bahasa C/*Program untuk menampilkan elemen dari sebuah string*/#include <stdio.h>#include <conio.h>
void main(){
char nama[5];
strcpy(nama,"Andi");printf("karakter ke-1: %c \n",nama[0]);printf("karakter ke-2: %c \n",nama[1]);printf("karakter ke-3: %c \n",nama[2]);printf("karakter ke-4: %c \n",nama[3]);printf("karakter ke-5: %c \n",nama[4]);
getch();}
3/24/2012Muhammad Fachrie, S.T. 12
Bagaimana cara mengisi array yang jumlah indeksnya sangat
banyak?
3/24/2012Muhammad Fachrie, S.T. 13
Apakah seperti ini algoritmanya?angka : array [1..100] of integer
/*ALGORITMA*/input(angka[1]);input(angka[2]);input(angka[3]);input(angka[4]);input(angka[5]);input(angka[6]);input(angka[7]);input(angka[8]);input(angka[9]);input(angka[10]);input(angka[11]);input(angka[12]);input(angka[13]);input(angka[14]);input(angka[15]);input(angka[16]);input(angka[17]);
…
input(angka[100]);
3/24/2012Muhammad Fachrie, S.T. 14
TIDAK EFISIEN!Gunakan Struktur
Pengulangan!
3/24/2012Muhammad Fachrie, S.T. 15
Mengolah Array dengan Jumlah Indeks yang Sangat Banyak
/*Algoritma menyimpan 100 buah angka ke dalam array*//*KAMUS*/angka : array [1..100] of integeridx : integer
/*ALGORITMA*///menerima input dari useridx traversal [1..100]
input(angka[idx]);
//menampilkan isi array ke monitorIdx traversal [1..100]
output(angka[idx]);
3/24/2012Muhammad Fachrie, S.T. 16
Implementasi dalam Bahasa C/*Program menyimpan 100 buah angka ke dalam array*/#include <stdio.h>#include <conio.h>
void main(){
int angka[100], idx;
//menerima input dari userfor (idx=0; idx<= 99; idx++){
printf(“angka ke-%d : ”,idx);scanf(“%d”,&angka[idx]);
}
//menampilkan isi array ke monitorfor (idx=0; idx<=199; idx++)
printf(“angka ke-%d : %d\n”,idx,angka[idx]);
getch();}
3/24/2012Muhammad Fachrie, S.T. 17
Buatlah sebuah program yang mengandung array dengan ketentuan berikut:1. Panjang indeks array = 102. Tipe array = integerKemudian, isilah array tersebut secara berturut-turut
dengan angka: 11, 23, 17, 20, 9, 16, 42, 13, 37, 10.Lalu, lakukanlah modifikasi pada array tersebut
dengan ketentuan semua angka genap diganti dengan nol (0).
Contoh:INPUT:
OUTPUT:
Latihan
11 23 17 20 9 16 42 13 37 10
11 23 17 0 9 0 0 13 37 03/24/2012Muhammad Fachrie, S.T. 18
PIKIRKAN!KERJAKAN!
PASTI BISA!
3/24/2012Muhammad Fachrie, S.T. 19
1. Masukkan dahulu semua angka ke dalam array
2. Buat perulangan dari sebanyak jumlah indeks array Cek satu angka pada sebuah indeks array Jika angka tersebut habis dibagi 2, maka ganti
angka tersebut dengan nol (0)3. Tampilkan kembali array yang telah
dimodifikasi3/24/2012Muhammad Fachrie, S.T. 20
Logika Berpikirnya
3/24/2012Muhammad Fachrie, S.T. 21
11 23 17 20 9 16 42 13 37 10
11 23 17 0 9 0 0 13 37 0
Habis dibagi 2 Habis dibagi 2 Habis dibagi 2