240 likes | 548 Views
ARRAY (bag.1). Algoritma dan Struktur Data. Definisi. 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.
E N D
ARRAY (bag.1) Algoritma dan Struktur Data Muhammad Fachrie, S.T.
Definisi Muhammad Fachrie, S.T. • 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
Ilustrasi Array 1 Dimensi Array ANEH Indeks array Muhammad Fachrie, S.T. ANEH[1]: 21 ANEH[2]: -9 ANEH[8]: -23
Deklarasi Array dalamNotasiAlgoritmik Muhammad Fachrie, S.T. <namavariabel> : array [a..b] of <tipe data> dimana, a: nilaiawalindeksarray b: nilaiakhirindeksarray Contoh: BilPrima : array [1..10] of integer
Contoh Penggunaan Array Terbentuk sebuah array dengan indeks dari 1 s.d. 4 Muhammad Fachrie, S.T. lucu : array [1..4] of integer Lalu, untuksetiapindeks array, dimasukkanbilangan integer: aneh[1] = 3 aneh[2] = 12 aneh[3] = 0 aneh[4] = -9
Penomoran indeks pada Bahasa C Muhammad Fachrie, S.T. Padanotasialgoritmik, penomoranindeks array dimulaidari 1. Contoh: SedangkanpadaBahasa C, penomoranindeks array dimulaidari 0. Contoh:
String = Array, dalam Bahasa C Muhammad Fachrie, S.T. Di dalamBahasa C, tipe data string merupakansebuah array, dimanaelemennyaterdiridarisebuahkarakterpenyusun string tersebut. Contoh: char nama[5]; strcpy(nama,”Andi”); Maka, elemen array darivariabelnamaadalah: nama[0] : “A” nama[1] : “n” nama[2] : “d” nama[3] : “i” nama[4] : “ “
nama nama[0] nama[1] nama[2] nama[3] nama[4]
Contoh Algoritma menggunakan Array Integer Muhammad Fachrie, S.T. /*Algoritma menyimpan 4 buah angka ke dalam array*/ /*KAMUS*/ angka : array [1..4] of integer /*ALGORITMA*/ //menerima input dari user input(angka[1]); input(angka[2]); input(angka[3]); input(angka[4]); //menampilkan isi dari array output(angka[1]); output(angka[1]); output(angka[1]); output(angka[1]);
Implementasi dengan Bahasa C Muhammad Fachrie, S.T. /*Program menyimpan 4 buahbilangandalamarray*/ #include <stdio.h> #include <conio.h> void main() { //deklarasivariabel intangka[10]; //menerima input array dari user printf("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]); //menampilkanisiarray printf(“angka ke-1: %d”, angka[0]); printf(“angkake-2: %d”, angka[1]); printf(“angkake-3: %d”, angka[2]); printf(“angkake-4: %d”, angka[3]); getch(); }
Contoh Algoritma menggunakan Array String Muhammad Fachrie, S.T. /*Algoritma menampilkan elemen karakter dari sebuah String*/ /*KAMUS*/ nama : array [1..5] of char /*ALGORITMA*/ Nama = “Andi” //menampilkan isi dari array output(nama[1]); output(nama[2]); output(nama[3]); output(nama[4]); output(nama[5]);
Implementasi dengan Bahasa C Muhammad Fachrie, S.T. /*Program untukmenampilkanelemendarisebuah 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(); }
Bagaimanacaramengisi array yang jumlahindeksnyasangatbanyak? Muhammad Fachrie, S.T.
Apakah seperti ini algoritmanya? Muhammad Fachrie, S.T. 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]);
TIDAK EFISIEN!GunakanStrukturPengulangan! Muhammad Fachrie, S.T.
Mengolah Array denganJumlahIndeks yang SangatBanyak Muhammad Fachrie, S.T. /*Algoritmamenyimpan100 buahangkakedalam array*/ /*KAMUS*/ angka : array [1..100] of integer idx : integer /*ALGORITMA*/ //menerima input dari user idxtraversal [1..100] input(angka[idx]); //menampilkanisi array ke monitor Idxtraversal [1..100] output(angka[idx]);
Implementasi dalam Bahasa C Muhammad Fachrie, S.T. /*Program menyimpan100 buahangkakedalam array*/ #include <stdio.h> #include <conio.h> void main() { intangka[100], idx; //menerima input dari user for (idx=0; idx<= 99; idx++) { printf(“angkake-%d : ”,idx); scanf(“%d”,&angka[idx]); } //menampilkanisi array ke monitor for (idx=0; idx<=199; idx++) printf(“angkake-%d : %d\n”,idx,angka[idx]); getch(); }
Latihan Muhammad Fachrie, S.T. • Buatlahsebuah program yang mengandung array denganketentuanberikut: • Panjangindeks array = 10 • Tipe array = integer Kemudian, isilah array tersebutsecaraberturut-turutdenganangka: 11, 23, 17, 20, 9, 16, 42, 13, 37, 10. Lalu, lakukanlahmodifikasipada array tersebutdenganketentuansemuaangkagenapdigantidengannol (0). Contoh: INPUT: OUTPUT:
PIKIRKAN!KERJAKAN!PASTI BISA! Muhammad Fachrie, S.T.
Logika Berpikirnya Muhammad Fachrie, S.T. • Masukkan dahulu semua angka ke dalam array • 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) • Tampilkan kembali array yang telah dimodifikasi
Habis dibagi 2 Habis dibagi 2 Habis dibagi 2 Muhammad Fachrie, S.T.