Algoritma dan Struktur Data

advertisement
Algoritma dan Struktur Data
Week 2 : Bahasa C dan Array
I Ketut Resika Arthana, S.T., M.Kom
NIP. 198412012012121002
[email protected] | 085-737-515-515
http://www.rey1024.com
Pendidikan Teknik Informatika – FTK - UNDIKSHA
Refresh
• Apakah yang dimaksud dengan algoritma ?
• Terdapat dua buah gelas berukuran sama,
tetapi masing-masing berisi cairan yang
berbeda. Tuliskan solusi algoritmik untuk
menukarkan isi cairan dari kedua buah gelas
tersebut !
• Diberikan dua buah ember berukuran 5 liter
dan 3 liter. Bagaimana cara mendapatkan air
berukuran 1 liter dengan kedua ember
tersebut ?
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
2
Jika input 10 berapa nilai tampil?
program noname8;
uses wincrt;
var
x,y,i:integer;
begin
writeln('Masukkan 1 angka integer : ');
readln(x);
y:=0;
for i:=1 to x do
begin
y:=y+i;
end;
writeln(y);
end.
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
3
Jika input 10 berapa nilai tampil?
program noname11;
uses wincrt;
var
x,i:integer;
b:boolean;
begin
writeln('Masukkan 1 angka integer : ');
readln(x);
b:=true;
while (x>5)and(b) do
begin
x:=x+2;
if x>20 then b:=false
else x:=x-1;
end;
writeln(x);
end.
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
4
Elemen Pemrograman
• Program = Struktur Data + Algoritma
• Struktur data : dasar (int, real, boolean),
bentukan (record, array, set)
• Instruksi : assignment, read/write, if/case,
loop (for, while, repeat)
• Pengelompokan instruksi menjadi
fungsi/prosedur
• Operasi file eksternal.
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
5
Struktur Data
• Struktur data: cara merepresentasikan data
agar efisien dalam penyimpanan dan
pengolahannya.
• Struktur data seharusnya diterapkan pada
algoritma yang didisain secara efisien
• Tujuan kuliah Algoritma & Struktur Data
adalah untuk mempelajari bagaimana
merepresentasikan data secara efisien dan
disain pengolahannya secara efisien
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
6
• Pengenalan Bahasa C
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
7
Latar Belakang Array
• Sejauh ini cuplikan program yang kita pelajari
masih sangat terbatas, karena statement
assignment hanya berupa pemberian satu nilai
pada satu variabel
• Padahal sering kali kita perlu untuk meng-assign
ataupun memanipulasi banyak nilai ke
sekelompok variabel
• Sebagai contoh jika anda membuat program yang
membaca 6000 nilai percobaan untuk dihitung
nilai rata-rata-nya, akan sangat lucu jika anda
menghitungnya dengan cara berikut: rata_rata =
(x1 + x2 + x3 + x4 + x5 + + dst )/6000.
• Ekspresi matematis berikut akan lebih baik :
I Ketut Resika Arthana, S.T., M.Kom
IF2031-Algoritma dan
Struktur Data/Hamonangan
PTI-UNDIKSHA
8
8
Pendahuluan (1)
• Definsi : Kumpulan nilai dengan tipe data yang sama yang
menggunakan nama sama.
• Deklarasi Array :
– Tipe data elemen array
– Nama array
– Jumlah elemen array
• Contoh :
short val[ 200 ];
val[ 12 ] = 5;
//declaration
//assignment
• Jika sebuah array y memiliki n elemen, maka:
– Elemen pertama adalah : y[0]
– Elemen terakhir adalah : y[n-1]
• Contoh :
– Short y[4], memiliki elemen y[0], y[1], y[2], y[3]
– Tetapi y[4], bukan merupakan elemen array ini.
I Ketut Resika Arthana, S.T., M.Kom
IF2031-Algoritma dan
Struktur Data/Hamonangan
PTI-UNDIKSHA
9
9
Pendahuluan (2)
• Array dapat dibedakan menjadi :
– Array berdimensi satu (1D), berpadanan dg vektor di Matematika
– Array berdimensi dua (2D), berpadanan dg matriks di Matematika
– Array berdimensi banyak
• Contoh array integer 1D bernama n yg memiliki 5
elemen,
n[0] = 1, n[1] = 3, n[2] = 5, n[3] = 7, n[4] = 9
dideklarasikan sbb:
– int n[5] = {1,3,5,7,9};
n
indeks
I Ketut Resika Arthana, S.T., M.Kom
1
3
0
5
1
7
2
IF2031-Algoritma dan
Struktur Data/Hamonangan
9
3
4
PTI-UNDIKSHA
10
10
Alokasi Memory Array (1)
• Hati-hati dengan indeks
array
Memori
– jika ceroboh dapat
mengakses data lain
– hati-hati pula dengan
pointer
Array a[ ]
• Ilustrasi kasus:
int a[6];
int anu; Data
lain
I Ketut Resika Arthana, S.T., M.Kom
IF2031-Algoritma dan
Struktur Data/Hamonangan
a[0]
a[1]
a[2]
a[3]
a[4]
a[5]
anu
PTI-UNDIKSHA
11
11
Deklarasi dan Inisialisasi Array
• Deklarasi secara global, semua elemen array akan
diinisialiasi dengan nilai nol.
• Deklarasi secara lokal, elemen array tidak di-inisialisasi.
• Contoh-contoh deklarasi dan inisialisasi array :
– short x[ 12 ] = { 1, 3, 88};
– double w[ ] = {3.14, 127.0, 22};
• Strings:
– char a_name[ 10 ] = “Hello”;
– char name[ 20 ] ={‘H’,‘e’,‘l’,’l’,’o’};
• Jika anda akan mendeklarasikan ukuran/dimensi array
anda harus menggunakan sebuah nilai atau konstanta,
jangan variabel
– short x[12];
– Short x[MAX], dimana MAX adalah konstanta
I Ketut Resika Arthana, S.T., M.Kom
IF2031-Algoritma dan
Struktur Data/Hamonangan
PTI-UNDIKSHA
12
12
Review Deklarasi Konstanta
• Contoh deklarasi konstanta
– #define ACONSTANT 300.0
– #define TRUE 1
– #define FALSE 0
• Catatan:
– Tidak ada semicolon diakhir deklarasi konstanta
– Kesepakatan dalam C: nama konstatnta ditulis
dengan menggunakan huruf besar semua.
I Ketut Resika Arthana, S.T., M.Kom
IF2031-Algoritma dan
Struktur Data/Hamonangan
PTI-UNDIKSHA
13
13
Mengolah Elemen Array
• Elemen array dapat diakses dengan bentuk:
– nama_array[subscript] untuk dimensi 1
– nama_array[subscript_baris][subscript_kolom] untuk
dimensi 2
• Dalam pemrograman harus diusahakan agar tidak
terjadi pengaksesan elemen di luar jumlah yang
didefinisikan.
• Perlu diketahui, C tidak akan memberikan pesan
kesalahan apabila terjadi pengaksesan dengan
nilai indeks yang berada di luar nilai yang telah
didefinisikan.
I Ketut Resika Arthana, S.T., M.Kom
IF2031-Algoritma dan
Struktur Data/Hamonangan
PTI-UNDIKSHA
14
14
Ref
• Array dalam Bahasa C Hamonangan
Situmorang- STEI-ITB
I Ketut Resika Arthana, S.T., M.Kom
Algoritma dan Struktur Data
PTI-UNDIKSHA
15
Download