algoritma dan struktur data - rey1024.com … · pendidikan teknik informatika – ftk - undiksha...
TRANSCRIPT
Pendidikan Teknik Informatika – FTK - UNDIKSHA
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
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 2
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 ?
Algoritma dan Struktur Data
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 3
Jika input 10 berapa nilai tampil?
Algoritma dan Struktur Data
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 PTI-UNDIKSHA 4
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.
Algoritma dan Struktur Data
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 5
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.
Algoritma dan Struktur Data
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 6
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
Algoritma dan Struktur Data
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 7
• Pengenalan Bahasa C
Algoritma dan Struktur Data
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 8
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 :
8 IF2031-Algoritma dan
Struktur Data/Hamonangan Situmorang
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 9
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 ]; //declaration val[ 12 ] = 5; //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.
IF2031-Algoritma dan
Struktur Data/Hamonangan Situmorang
9
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 10
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};
IF2031-Algoritma dan
Struktur Data/Hamonangan Situmorang
10
1 3 5 7 9 n
0 1 2 3 4 indeks
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 11
Alokasi Memory Array (1)
IF2031-Algoritma dan Struktur Data/Hamonangan
Situmorang
11
• Hati-hati dengan indeks array
– jika ceroboh dapat mengakses data lain
– hati-hati pula dengan pointer
• Ilustrasi kasus:
int a[6];
int anu;
Array a[ ]
Data lain
Memori
a[0] a[1] a[2] a[3] a[4] a[5] anu
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 12
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
IF2031-Algoritma dan Struktur Data/Hamonangan
Situmorang
12
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 13
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.
IF2031-Algoritma dan Struktur Data/Hamonangan
Situmorang
13
I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 14
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.
IF2031-Algoritma dan Struktur Data/Hamonangan
Situmorang
14