Anda di halaman 1dari 37

PROGRAM STUDI

S1 SISTEM KOMPUTER
UNIVERSITAS DIPONEGORO

Dasar Algoritma

Oky Dwi Nurhayati, ST, MT email: okydn@undip.ac.id

Materi

pseudocode Masalah komputasi Masalah analisis algoritma

Konsep dasar algoritma


Beberapa metode untuk merancang algoritma dalam program komputer : 1. Diagram Alir (Flow Chart) . !ode "emu (#seudo Code) $. Algoritma Fundamental !nuth (1%&$) men'atakan ( komponen utama dalam algoritma 'aitu )initeness* de)initeness* input* output dan e))ecti+eness.

!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).

Struktur Hubungan dan Jenis Algoritma

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

Contoh penggunaan program flowchart

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

Aturan Algoritma Fundamental


1. . $. 0. (. 5. &.

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.

FlowChart (Diagram Alir

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

Bahasa pemrograman pascal


#ascal adalah bahasa tingkat tinggi 'ang berorientasi pada segala tu,uan. struktur program pascal dapat terdiri dari : 1. .udul program . Bagian deklarasi C Deklarasi label C Deklarasi konstanta C Deklarasi tipe C Deklarasi +ariabel C Deklarasi prosedur C Deklarasi )ungsi $. Bagian pern'ataan

!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

#enggunakan tipe bilangan bulat


#roce"ure +Form1.(utton1&lick()en"er: +2bject 3 4ar 5$6$7 : byte3 (egin 5 :8 )tr+o*nt(9"it1.+e:t 3 6 :8 )tr+o*nt(9"it;.+e:t 3 << menjumlahkan 5 "an 6 #a"a 9"it3 7 :8 5 = 63 9"it3.+e:t :8 *nt+o)tr(7 3 << mengalikan 5 "an 6 #a"a 9"it/ 7 :8 5 > 63 9"it/.+e:t :8 *nt+o)tr(7 3 en"3

#enggunakan tipe bilangan real


#roce"ure +Form1.(utton1&lick()en"er: +2bject 3 4ar 5$6$7 : real/?3 i$j$k : e:ten"e"3 (egin 5 :8 )tr+oFloat(9"it1.+e:t 3 6 :8 )tr+oFloat(9"it;.+e:t 3 7 :8 5 > 63 9"it3.+e:t :8 Float+o)tr(7 3 i:8 )tr+oFloat(9"it1.+e:t 3 j:8 )tr+oFloat(9"it;.+e:t 3 k:8 i > j3 9"it/.+e:t :8 Float+o)tr(k 3 en"3

#enggunakan tipe bilangan boolean


#roce"ure +Form1.&heck(o:1&lick()en"er: +2bject 3 begin (utton1.@isible:8 &heck(o:1.&hecke"3 en"3 #roce"ure +Form1.&heck(o:;&lick()en"er: +2bject 3 begin 9"it1.@isible:8&heck(o:;.&hecke"3 en"3

,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

"2S3A4 C1#P1050! 42&%A%)


!umpulan dari se,umlah ob'ek tersedia pada Visual Component Library

(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.

Component pallet men'ediakan komponen-komponen 'ang

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.

a. #roperti #age* untuk menentukan properti dan komponen terpilih.


b. @+ent #age* untuk menentukan ke,adian atau proses 'ang akan dilakukan* 'ang berisi perintah-perintah 'ang dimiliki masing-masing komponen.

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.

#asalah analisis algoritma


1erdapat dua tipe analisis algoritma* 'aitu : 1. Memeriksa kebenaran algoritma Dapat dilakukan dengan cara perurutan* memeriksa bentuk logika* implementasi algoritma* pengu,ian dengan data dan menggunakan cara matematika untuk membuktikan kebenaran. . #en'ederhanaan Algoritma Membagi algoritma men,adi bentuk 'ang sederhana. Dalam analisis sebuah algoritma biasan'a 'ang di,adikan ukuran adalah operasi al,abar seperti pen,umlahan* pengurangan* perkalian dan pembagian* proses pengula-ngan (looping34terasi)* proses pengurutan (sorting) dan proses pencarian (searching).

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

kebutuhan waktu dan ruang

Alat ukur kemangkusan algoritma: 1. !ompleksitas waktu* $(n . !ompleksitas ruang* !(n n % ukuran masukan yan" diproses oleh al"oritma $(n : &umlah 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.

Anda mungkin juga menyukai