Week 4-array dan string

47
ARRAY DAN STRING Algoritma dan Struktur Data JURUSAN TEKNIK ELEKTRO UIN SUNAN NGUNUNG DJATI BANDUNG 2012

description

Materi Kuliah Algoritma dan Struktur data credit by: http://ardzixia.scgeneration.com

Transcript of Week 4-array dan string

Page 1: Week 4-array dan string

ARRAY DAN STRING

Algoritma dan

Struktur Data

JURUSAN TEKNIK ELEKTRO

UIN SUNAN NGUNUNG DJATI BANDUNG

2012

Page 2: Week 4-array dan string

Tujuan Pembelajaran

Mahasiswa dapat lebih memahami tentang

Array

Mahasiswa mampumengimplementasikan

array dalam pemrograman

Mahasiswa mampu menyelesaikan

masalah dengan menggunakan array.

Page 3: Week 4-array dan string

Materi pembelajaran

Struktur Data

Pemahaman Array

Deklarasi Array

Elemen array

Array Satu

Dimensi

Array Dua Dimensi

Array Multidim

ensi

String

Page 4: Week 4-array dan string

Overview

algoritma

Struktur data

Program Komputer

Page 5: Week 4-array dan string

Syarat Program yang Baik

• Program yang baik haruslah memenuhi beberapa kriteria, antara lain:

1. Program haruslah sesuai dengan tujuan dan memenuhi spesifikasi yang telah ditentukan.

2. Fleksibel

3. Tidak mengandung kesalahan

4. Didokumentasi secara baik

5. Cepat dalam waktu penggunaannya

6. Efesien dalam penggunaan memori komputer

Page 6: Week 4-array dan string

Memori• Memori merupakan tempat

software berada– Jadi, isinya dapat berupa Sistem

Operasi, program atau data– Jika ditelusuri lebih rinci lagi, setiap

lokasi di memori dapat berisiperintah dan/atau data (angka, alamat, nilai, dsb.)

• Memori merupakan subsistemkomputer yang seringmenjadi fokus pemrogram:– Temporary storage area dalam hal

ini RAM

Page 7: Week 4-array dan string

Review Sistem Komputer

IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

7

CPU

OUTPUT(CONSOLE)

INPUT(KEYBOARD)

HDD

...

...

RAM

012345

… 813458134681347

Alamat

(disederhanakan)

...

...

Page 8: Week 4-array dan string

Review Sistem Komputer

IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

8

set memory[801] to hold 00000001

set memory[802] to hold 00000000

if memory[802] = 10 jump to inst #8

increment memory[802]

set memory[803] to 2 times memory[801]

put memory[803] in to memory[801]

jump to instruction #3

print memory[801]

x=1;

i=0;

while (i!=10) {

i++;

x=x*2;

}

printf("%d",x);

{

Proses penerjemahan bahasa C/C++ ke bahasa mesinKeterangan: bahasa mesin di bawah-kanan ini sebenarnya berupa angka-angka biner (‘dimanusiawikan’ untuk memudahkan pemahaman)

Page 9: Week 4-array dan string

Review Sistem Komputer

IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang

9

• Biasanya, proses penterjemahan itu beberapa tahap

– Melalui bahasa assembly

ST 1,[801]

ST 0,[802]

TOP: BEQ [802],10,BOT

INCR [802]

MUL [801],2,[803]

ST [803],[801]

JMP TOP

BOT: LD A,[801]

CALL PRINT

00000000001001011101001100000000

00000000001001001101010000000000

00000000100010100100100111110000

00000000010001000101010000000000

00000000010010001010011110100011

00000000111001011010101100000010

00000000001010010000000000000000

00000000110101010000000000000000

00000000110101001010100000000000

00000000100100010100010000000000

x=1;

i=0;

while (i!=10) {

i++;

x=x*2;

}

printf("%d",x);

Bahasa C Bahasa Assembly Bahasa Mesin

Page 10: Week 4-array dan string

Pengertian Struktur Data

• A data structure is a way of organizing inputdata and operations which can be performed on this data (ex: add, delete, search an elemen).

• Struktur data adalah cara pengaturan data agar dapat disimpan memori komputer secara efisien

• Struktur data adalah pengaturan data didalam memori komputer.

Page 11: Week 4-array dan string

Struktur Data

• Tujuannya : Supaya lebih mudah/efisien dalampengaksesan/pemrosesan data tersebut.

• Secara umum, terdapat beberapa struktur data:

• Static -> Pengalokasian memori statis : ruang memori yang dipakai oleh data tidak dapat dihapus bila data tersebut sudah tidak digunakan lagi pada saat program dijalankan.

• Dinamic -> Pengalokasian memori dinamis

Page 12: Week 4-array dan string

Struktur Data

Basic

Integer

Double

boolean

Static

Array

Struct

Dinamic

Linked list

Queue

Stacks

trees

Page 13: Week 4-array dan string

ARRAY

Page 14: Week 4-array dan string

Latar Belakang Array• Sejauh ini Program yang kita pelajari dan yang kita

buat masih sangat terbatas, hanya berupa pemberiansatu nilai pada satu variabel

• Padahal sering kali kita perlu untuk meng-assign ataupun memanipulasi banyak nilai ke sekelompokvariabel

• Sebagai contoh jika anda diminta membuat program untuk menyimpan 6000 nilai yang berbeda...

• Berarti program Anda membutuhkan 6000 variabelberbeda, maka daripada Anda susah-susah mencari

nama untuk tiap variabel Anda, gunakanlah array!!.

14

Page 15: Week 4-array dan string

Pemahaman Array• Array adalah sekumpulan data

yang memiliki tipe yang sama.• Elemen-elemen array tersusun

secara berurutan dalam memori

• Array memiliki alamat yang besebelahan/berdampingan tergantung lebar tipe datanya.

• Elemen-elemen array dapat diakses secara random di dalam memori.

• Array dapat berupa array 1 dimensi, 2 dimensi, bahkan n-dimensi.

• Contoh penggunaan array :– Kumpulan nama mahasiswa

pada satu kelas– Kumpulan alfabet

a[0]a[1]a[2]a[3]a[4]a[5]anu

Page 16: Week 4-array dan string

Contoh Kasus

Untuk lebih memahami tentang manfaat array marilah kita analisa contoh program berikut :

• Program untuk memasukkan 3 nilai input dari user dan menampilkannya ke layar.

Page 17: Week 4-array dan string

Tanpa Array

3 nilai = 10 Baris

TIDAK PRAKTIS !!!

Page 18: Week 4-array dan string

Dengan Array

Hanya 6 Baris

Tidak perlu menambah perintah jika data lebih banyak.

PRAKTIS &EFFISIEN!

Page 19: Week 4-array dan string

Struktur Array

index

element

array

berupa bilangan bulat yang terurut secara ascending dimulai dari nol sampai n-1

digunakan untuk mengakses element array. Dimana n adalah panjang dari array.

digunakan untuk menyimpan data. Jenis data yang dapat disimpan tergantung pada tipe data yang diberikan array.

Array Satu DimensiArray Dua DimensiArray Multi Dimensi

Page 20: Week 4-array dan string

Ilustrasi Array

Penjelasan :Nama array adalah bil. Terdiri dari 5 element.Element= 3,4,5,6,7index = 0,1,2,3,4

(panjang array (n) =5)– data 3 disimpan pada element

index ke-0– data 4, disimpan pada element

index ke-1– data 5 (element index ke-?)– data terakhir (element index

ke-?)

indexelement

bil[0]

bil[1]

bil[4]

int bil [5] = 3, 4, 5, 6, 7 ;

Page 21: Week 4-array dan string

Deklarasi (Array 1 dimensi)

• Bentuk penulisan perintah :

– tipe_data : tipe data yang ada di C/C++, contoh : int, float, char, dll.

– nama_array : identifier, aturan sama seperti aturan penamaan variabel.

– jumlah_maks_data : banyak data yang disimpan pada array.

• Contoh deklarasi array : char alfabet[26];

(membuat array bernama alfabet, dengan maksimal data yang bisa ditampung sebanyak 26 bertipe char)

tipe_data nama_array [jumlah_maks_data];

Page 22: Week 4-array dan string

Contoh deklarasi array

double nilai[10];

(membuat array bernama nilai, dengan maksimal data yang bisa ditampung sebanyak 10 bertipe double)

• Representasi :

Index element yang bisa diakses dari 0 sampai 9.

nilai[0] nilai[1] nilai[2] nilai[3] nilai[4] nilai[5] nilai[9]

Page 23: Week 4-array dan string

Contoh Program

• Deklarasi array

Page 24: Week 4-array dan string

Latihan

1. Deklarasikan array untuk menyimpan dataangka {1,2,3,4,5,6,7,8,9,10}.

2. Deklarasikan array untuk menyimpan data {c,i,n,t,a}.

3. Deklarasikan array untuk menyimpan data {1.2, 3.4, 5.6, 7.8, 9.0}.

Page 25: Week 4-array dan string

Inisialisasi (array 1 dimensi)

• Pemberian nilai pada array menggunakan index.

• Bentuk penulisan perintah :

• Penjelasan :

nama_array = sesuai dengan nama yang telah dideklarasikan.

index = disesuaikan dengan index element yang ingin diakses.

nilai = disesuaikan dengan tipe data.

nama_array[index] = nilai;

Page 26: Week 4-array dan string

Contoh inisialisasi array

• Contoh inisialisasi pada array nilai :

nilai[0] = 5;

nilai[9] = 100;

nilai[-1] = 50; error!

Page 27: Week 4-array dan string

Deklarasi + Inisialisasi

• Inisialisasi array juga dapat dilakukan ketika deklarasi.

• Contoh :

int nilai[] = {1,2,3,4,5};

membuat array bernama nilai dengan jumlah element 5 sekaligus inisialisasi. Dimana :

data element index ke-0 = 1

data element index ke-1 = 2

data element index ke-2 = 3

data element index ke-3 = 4

data element index ke-4 = 5

Page 28: Week 4-array dan string

Deklarasi + Inisialisasi

• Contoh deklarasi sekaligus inisialisasi pada array tipe char.

char alfabet[] = {„a‟,‟b‟,‟c‟};

membuat array bernama nilai dengan jumlah element 5 sekaligus inisialisasi. Dimana :

data element index ke-0 = a

data element index ke-1 = b

data element index ke-2 = c

Page 29: Week 4-array dan string

Contoh Program (1)

Page 30: Week 4-array dan string

Pengaksesan Array

• Pengaksesan data pada element array menggunakan index.

• Bentuk penulisan perintah :

• Penjelasan :

nama_array = sesuai dengan nama yang telah dideklarasikan.

index = disesuaikan dengan index element yang ingin diakses.

nama_array[index];

Page 31: Week 4-array dan string

Contoh pengaksesan Array

• Menggunakan variabel penampung data :

char huruf;

huruf = alfabet[0];

(variabel huruf berisi data element array index ke-0 dari array alfabet, yaitu a).

• Menggunakan printf :

printf(“%c”, alfabet[0]);

(akan mencetak huruf a ke-layar).

Page 32: Week 4-array dan string

Contoh program (2)

• Pengaksesan data menggunakan printf

32

Page 33: Week 4-array dan string

Contoh Program (3)

• Deklarasi sekaligus inisialisasi, dan pengaksesan data menggunakan kombinasi printf dan perulangan

33

Page 34: Week 4-array dan string

Contoh Program (5)

34

Page 35: Week 4-array dan string

Latihan

1. Buatlah array untuk menyimpan data bilangan {1,2,3,4,5,6,7,8,9,10} dan tampilkan elemen ke 2 dan5.

2. Buatlah array bertipe integer yang dapat menampung data maksimal 5, kemudian tampilkan alamat masing-masing elemen array tersebut

3. Buatlah array untuk menyimpan data {m,e,r,a,p,i} dantampilkan elemen ke 0,1,2.

4. Buatlah array untuk menyimpan data {1.2, 3.4, 5.6, 7.8, 9.0} dan tampilkaan elemen ke awal dan akhir.

Page 36: Week 4-array dan string

Latihan

4. Buatlah array untuk menyimpan 50 bilangan ganjilmulai dari 1 (gunakan perulangan), kemudiantampilkan isinya ke layar.

5. Buatlah array untuk menyimpan angka 1 s/d 100. (gunakan perulangan)

6. Buatlah array untuk menyimpan 50 angka genappertama. (gunakan perulangan)

7. Buatlah program yang akan membaca 10 karakterdari user dan disimpan dalam array 10 elemen.

Page 37: Week 4-array dan string

Latihan

8. Buatlah sebuah array yang menyimpan karakter {u,i,n,s,a,g,e,d,e,b,a,n,d,u,n,g}. Perintahkan user menebak satu karakter untuk dibandingkan dengan array tersebut. Jika input user sama dengan salah satu karakter pada array maka tampilkan index dari karakter tersebut. Jika tidak ada yang sama tampilkan pesan “karakter tidak ada”.

Page 38: Week 4-array dan string

Ilustrasi Array 1 Dimensi char

0 1 2 3 4 5 6 7

21da 21db 21dc 21dd 21de 21df 21e0 21e1

indeks

value

alamat

%x adalah hexadesimal

Page 39: Week 4-array dan string

Kalau lampumu tak bersumbu dan tak berminyak, jangan

bayangkan api. Kalau gelasmu retak, jangan

mimpi menuangkan minuman. Kalau mentalmu rapuh, jangan

rindukan rasukan tenaga dalam. Kalau kaca jiwamu masih kumuh

oleh kotoran-kotoran dunia, jangan minta cahaya akan

memancarkan dengan jernih atasmu. (EAN)

Kalaulah dirimu tidak mempraktekkan dan

membuat source code nya..... Jangan

bayangkan nilai A

Page 40: Week 4-array dan string

Array Dua Dimensi

• C/C++ mendukung array multidimensi.

• Array satu dimensi berpadanan dengan vektor

• Array dua dimensi berpadanan dengan matrik

Page 41: Week 4-array dan string

Array 2 Dimensi

• Deklarasi Array:

– int data [2][3];

– char a[2][3];

• Inisialisasi Array:

– data[0][0] = 1;

– int matrikA [2][3] = {{1,2,3},{4,5,6}};

Pengaksesan Array:

– printf("%d",matrikA[i][j]);

Page 42: Week 4-array dan string

Contoh Array Dua Dimensi

Page 43: Week 4-array dan string

Arrray 2 dimensi

• char a[3][5]

• Sama dengan matriks berukuran 3x5

• Pada kenyataan di memory:

Page 44: Week 4-array dan string

LATIHAN

• Buatlah Array datamahasiswa, berdimensi 2, dengan data sebagai berikut

NIM NILAI

29801 75

29802 80

29803 85

Page 45: Week 4-array dan string

LATIHAN

2. Buatlah sebuah array dua dimensi untuk menyimpan sebuah kata bahasa indonesia beserta kata padanan bahasa inggrisnya.

petunjuk :– Kata yg disimpan diberikan 5 kata.

– Element 1 digunakan untuk menyimpan kata bahasa indonesia

– Element 2 digunakan untuk menyimpan kata bahasa inggris

– Cobalah mengakses kata bahasa inggris dari kata bahasa indonesia yang dipilih pleh user.

Page 46: Week 4-array dan string

Array Dimensi Banyak

• Array ini seperti array dimensi dua tetapi dapat memiliki ukuran yang lebih besar. Sebenarnya array ini tidak terlalu sering digunakan, tetapi sewaktu-waktu jika dimensi yang dibutuhkan banyak, maka tentu saja array ini memgang peranan penting

• Contoh :

• int dataktp [2][7][8][5];

Page 47: Week 4-array dan string

Referensi

• Rinaldi Munir, “Algoritma dan Pemrograman dalam Bahasa Pascal dan C”

• Andri Kristanto, Algoritma & Struktur Data dengan C++, Graha Ilmu, 2009

• Hamonangan Situmorang, “Array dalamBahasa C”, Materi Kuliah, STEI ITB

• Dari berbagai sumber