Dasar Alogaritma
Dasar Alogaritma
S1 SISTEM KOMPUTER
UNIVERSITAS DIPONEGORO
Dasar Algoritma
Materi
!omponen 'ang harus ada dalam merancang algoritma: 1. !omponen masukan : terdiri dari pemilihan +ariable* ,enis +ariable* tipe +ariable* konstanta dan parameter (dalam )ungsi). . !omponen keluaran: merupakan tu,uan dari perancangan algoritma dan program. #ermasalahan 'ang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. !arakteristik keluaran 'ang baik adalah men,awab permasalahan dan tampilan 'ang ramah $. !omponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma. Dalam bagian ini terdapat logika masalah* logika algoritma (sintaksis dan semantik)* rumusan* metode (rekursi* perbandingan* penggabungan* pengurangan dll).
Flowchart : Algoritma ini menggunakan sejumlah simbol untuk menyatakan kegiatan-kegiatan secara keseluruhan. Knuth (1973 menyajikan !ormat algoritma yang "a#at "igunakan secara bebas untuk berbagai bahasa #emrograman$ artinya "a#at "engan mu"ah "iim#lementasikan menggunakan %ascal$ &$ Fortran$ %' atau (A)*&.
Diagram alir
Pseudocode
!ode atau tanda 'ang men'erupai (pseudo) atau merupakan pe,elasan cara men'elesaikan suatu masalah. #seudo-code sering digunakan oleh manusia untuk menuliskan algoritma. #roblem: mencari bilangan terbesar dari dua bilangan 'ang diinputkan. Contoh Pseudo-code: 1. Masukkan bilangan pertama . Masukkan bilangan kedua $. .ika bilangan pertama / bilangan kedua maka ker,akan langkah 0* ,ika tidak* ker,akan langkah (. 0. 1ampilkan bilangan pertama (. 1ampilkan bilangan kedua
2ama3,udul algoritma harus ditulis dengan huru) kapital Berikan komentar dan pen,elasan pendahuluan. #ern'ataan dan struktur !ontrol 2ama-nama +ariabel harus ditulis dengan huru) besar 4nput dan output #rosedur Fungsi
Masalah : Mencari elemen terbesar dari data dengan n bilangan. Buatlah algoritma dari masalah ini menggunakan !ode "emu : Algoritma Maksimum 1. Mula-mula masukkan bilangan dalam register 6i ke dalam register 'ang dinamakan maks. . 7ntuk i 8 *$*....*n* lakukan : Bandingkan bilangan dalam register 6i dengan bilangan dalam register maks. .ika bilangan dalam register 6i lebih besar daripada bilangan dalam register maks* pindahkan bilangan dalam register 6i ke register maks9 ,ika tidak ,angan lakukan apa-apa. $. 1erakhir* bilangan dalam register maks adalah elemen terbesar di antara n bilangan.
Algoritma Fundamental
Mencari elemen terbesar di dalam data dengan n bilangan. 1. :4nisialisasi; Maks 61 . :Mulai <oop; 4 1 $. :2aikkan #encacah; 4 4=1 0. :Bandingkan; 4F Maks > 6i 1?@2 Maks 6i @<"@ AB1B $ (. :7langi <oop; AB1B $ 5. :"elesai; @6it
!ipe Data
#enentuan tipe data berguna untuk memberi pengenal pada isi data 'ang akan diakses* oleh +ariabel. a. Tipe Data nteger 1ipe data ini digunakan untuk men'atakan bilangan 'ang tidak mempun'ai angka desimal. 1ipe 4nteger terdiri dari beberapa tipe lagi* 'ang sebagian berbeda rentang nilai dan ukuran memorin'a
b. Tipe !eal 1ipe real digunakan untuk men'atakan bilangan 'ang mempun'ai angka desimal. 1ipe data real ini terdiri dari beberapa tipe lagi* 'ang sebagian rentang nilai dan ukuran penggunaan memorin'a :
c. Tipe Boolean
+i#e "ata boolean untuk menyatakan "ata logika$ yaitu +rue ( benar "an False (salah . (orlan" ,el#hi -.. mem#unyai / ti#e boolean yaitu se#erti berikut ini.
,isarankan #enggunaan ti#e logika menggunakan ti#e (oolean. 0ntuk (yte(ool$ 1or"(ool$ "an 'ong(ool sebaiknya hanya "igunakan untuk menjaga kom#abilitas$ yaitu jika #rogram akan "ihubungkan "engan #rogram bahasa lain.
d. Tipe "haracter +i#e "ata character "igunakan untuk menyatakan karakter satu huru!.
e. Tipe String +i#e "ata string "igunakan untuk menyatakan se"eretan karakter yang membentuk satu kesatuan$ misalnya nama$ alamat "an sebagainya.
1ipe "hort"tring disediakan han'a untuk men,aga kompabilitas dengan +ersi sebelumn'a. Ansi"tring untuk men'impan karakter A2"4 dan Dide"tring dapat men'impan karakter 7nicode. ). g. Tipe !ecord 1ipe record digunakan untuk men'impan sekumpulan data 'ang mungkin tipen'a berbeda* tetapi saling berhubungan.
h. Tipe Terenumerasi dan Su#range 1ipe data terenumerasi dan tipe data subrange dipakai untuk men'atakan data berurutan 'ang bertipe sama.
iii.$onstanta
!onstanta adalah nilai 'ang bersi)at tetap* misal angka 1* huru) A* nama dan lainlain. Contoh : "onst Diskon 8 E. (9 7ni+ 8 FDiponegoroG9
"ariabel
Hariabel adalah suatu pengenal 'ang menampung data* 'ang terdapat pada memori. "etiap +ariabel pasti mempun'ai nama* 'ang sering disebut sebagai identifier. #endeklarasian +ariabel pada delphi: +ar namaI+ariabel: tipeI+ariabel9 Contoh : +ar i* ,* k : integer9 a* b* c : char9
,engan mengubah #ro#erti checke" "ari ke"ua kotak cek "iatas menja"i true maka kotak cek akan memiliki tan"a cek
!ipe arra$
Aeru#akan kum#ulan 4ariabel yang berti#e sama Deklarasi dengan array 4ar a: array C1..?D o! longint3 Deklarasi tanpa array 4ar a1$ a;$ a3$ a/$ aB$ a-$ a7$ a? : longint3
arra$
#roce"ure +Form1.(utton1&lick()en"er: +2bject 3 4ar A: array C...;.D o! integer3 i: integer3 j: integer3 begin !or i:8. to 'ist(o:1.*tems.&ount - 1 "o ACiD :8 )tr+o*nt('ist(o:1.*temsCiD 3 j:8.3 !or i:8 . to 'ist(o:1.*tems.&ount - 1 "o j:8 j = ACiD3 9"it1.+e:t:8 *nt+o)tr(j 3 en"3
!ipe %ecord
&ila dengan arra$' (ariabel $ang digabung memiliki tipe )ang sama' sedangkan record berfungsi menggabungkan beberapa (ariabel $ang tipen$a tidak harus sama* Sintaks + t$pe nama,record - record ..anggota record diletakkan disini end/ Contoh + t$pe mahasiswa - record 0ama + string/ Alamat + string/ end/
1perator
a.
Operator %ritmetika
g. Operator !elasi
Kontrol program
a. #engulangan Dhile ... Do Bentuk umum : Dhile <ekspresi> Do Begin <pernyataan > @nd9 b. #engulangan Jepeat ... 7ntil c. #encabangan bers'arat 4) .. 1hen ... @lse d. #encabangan bers'arat Case
(VCL . !edan"kan untuk memilih obyek terdapat pada Componen palette. !omponen-komponen dikelompokan seseuai dengan )ungsin'a. #engelompokan ini (pa"es dinyatakan tabs. Pa"es default adalah : Standart, %dditional, &in'(, System, internet, Data %ccess, Data "ontrol, Midas, Decision "u#e, )report, Dialogs, &in'*, Samples, +cti,e- dan lain.lain.
diperlukan untuk men'usun program apalikasi. Bb,ect 4nspector merupakan penguhubung antara tampilan aplikasi dengan kode program* dan melukukan seting terhadap ob,ect-ob,ect 'ang terdapat pada )orm.
Pemrograman "isual
#emrograman berorientasi Bb,ek #emrograman 'ang dikendalikan oleh ke,adian (e#en dri#ent <angkah membuat aplikasi : a) Mambuat user interface b) Menulis kode Form tersusun se,umlah kontrol atau ob,ek (Button* <abel* @dit*JadioButton* CheckBo6* dll). !ontrol mempun'ai tiga komponen : a) #roperti : misaln'a menentukan warna dan mengatur Font. b) !e,adian (e#ent c) Metode : suatu )ungsi untuk melakukan operasi terhadap kontrol.
Analisis Algoritma
"ebuah algoritma tidak han'a harus benar* tetapi ,uga harus
mangkus (efficient
7kuran kemangkusan algoritma: waktu dan ruang memori (space Algoritma 'ang mangkus: algoritma 'ang meminimumkan
Alat ukur kemangkusan algoritma: 1. !ompleksitas waktu* $(n . !ompleksitas ruang* !(n n % ukuran masukan yan" diproses oleh al"oritma $(n : ¨ah operasi yan" dilakukan untuk men,alankan sebuah algoritma sebagai )ungsi dari ukuran masukan n. !(n : ruan" memori yan" dibutuhkan al"oritma sebagai )ungsi dari ukuran masukan n
Bperasi 'ang dihitung han'alah operasi dasar Bperasi dasar: operasi khas 'ang mendasari suatu algoritma Misaln'a: - operasi perbandingan elemen pada algoritma pengurutan3pencarian - operasi pen,umlahan dan perkalian pada algoritma perkalian matriks
!ompleksitas waktu asimptotik: - perkiraan kasar kebutuhan waktu algoritma dengan meningkatn'a nilai n - menyatakan la&u pertumbuhan 'aktu( bukan men'atakan ,umlah operasi dasar sesungguhn'a. 1iga cara men'atakan waktu asimptotik: 1. )(f(n : untuk batas atas la&u kebutuhan 'aktu . D("(n : untuk batas ba'ah la&u kebutuhan 'aktu $. *(h(n : &ika f(n % "(n
0otasi 1 (&ig 1
Misalkan 0 program 'ang mensorting n bilangan dengan )ungsi 'ang men'atakan se,umlah langkah 'ang di,umlahkan masingmasing program untuk sorting n bilangan : )1(n) 8 n* ) (n) 8 n * )$ (n) 8 n* )0(n) 8 nK Bila n 8 0 maka )1 (n) 8 0* ) (n) 8 )$ (n) 8 15 dan )0 (n) 8 0 sedangkan apabila n 8 1EE* program keempat akan memerlukan 1EE langkah.