Week 4-array dan string
-
Upload
arif-dzikrullah -
Category
Education
-
view
4.841 -
download
3
description
Transcript of Week 4-array dan string
ARRAY DAN STRING
Algoritma dan
Struktur Data
JURUSAN TEKNIK ELEKTRO
UIN SUNAN NGUNUNG DJATI BANDUNG
2012
Tujuan Pembelajaran
Mahasiswa dapat lebih memahami tentang
Array
Mahasiswa mampumengimplementasikan
array dalam pemrograman
Mahasiswa mampu menyelesaikan
masalah dengan menggunakan array.
Materi pembelajaran
Struktur Data
Pemahaman Array
Deklarasi Array
Elemen array
Array Satu
Dimensi
Array Dua Dimensi
Array Multidim
ensi
String
Overview
algoritma
Struktur data
Program Komputer
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
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
Review Sistem Komputer
IF2031-Algoritma dan Struktur Data/Hamonangan Situmorang
7
CPU
OUTPUT(CONSOLE)
INPUT(KEYBOARD)
HDD
...
...
RAM
012345
…
… 813458134681347
Alamat
(disederhanakan)
...
...
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)
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
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.
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
Struktur Data
Basic
Integer
Double
boolean
Static
Array
Struct
Dinamic
Linked list
Queue
Stacks
trees
ARRAY
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
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
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.
Tanpa Array
3 nilai = 10 Baris
TIDAK PRAKTIS !!!
Dengan Array
Hanya 6 Baris
Tidak perlu menambah perintah jika data lebih banyak.
PRAKTIS &EFFISIEN!
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
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 ;
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];
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]
Contoh Program
• Deklarasi array
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}.
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;
Contoh inisialisasi array
• Contoh inisialisasi pada array nilai :
nilai[0] = 5;
nilai[9] = 100;
nilai[-1] = 50; error!
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
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
Contoh Program (1)
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];
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).
Contoh program (2)
• Pengaksesan data menggunakan printf
32
Contoh Program (3)
• Deklarasi sekaligus inisialisasi, dan pengaksesan data menggunakan kombinasi printf dan perulangan
33
Contoh Program (5)
34
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.
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.
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”.
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
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
Array Dua Dimensi
• C/C++ mendukung array multidimensi.
• Array satu dimensi berpadanan dengan vektor
• Array dua dimensi berpadanan dengan matrik
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]);
Contoh Array Dua Dimensi
Arrray 2 dimensi
• char a[3][5]
• Sama dengan matriks berukuran 3x5
• Pada kenyataan di memory:
LATIHAN
• Buatlah Array datamahasiswa, berdimensi 2, dengan data sebagai berikut
NIM NILAI
29801 75
29802 80
29803 85
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.
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];
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