Algoritma dan Struktur Data Week 2 : Bahasa C dan Array I Ketut Resika Arthana, S.T., M.Kom NIP. 198412012012121002 resika.arthana@gmail.com 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? Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom 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. Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom 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. Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom 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. Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom 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 Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 6
Pengenalan Bahasa C Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom 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 : IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom 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. IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom 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}; indeks n 1 3 5 7 9 0 1 2 3 4 IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 10 10
Alokasi Memory Array (1) Hati-hati dengan indeks array jika ceroboh dapat mengakses data lain hati-hati pula dengan pointer Array a[ ] Ilustrasi kasus: int a[6]; int anu; Data lain Memori a[0] a[1] a[2] a[3] a[4] a[5] anu IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom 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 IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom 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. IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom 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. IF2031-Algoritma dan Struktur Data/Hamonangan I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 14 14
Ref Array dalam Bahasa C Hamonangan Situmorang- STEI-ITB Algoritma dan Struktur Data I Ketut Resika Arthana, S.T., M.Kom PTI-UNDIKSHA 15