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