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) 2. Kode Semu (Pseudo Code) 3. Algoritma Fundamental Knuth (1973) menyatakan 5 komponen utama dalam algoritma yaitu finiteness, definiteness, input, output dan effectiveness.

konstanta dan parameter (dalam fungsi). Karakteristik keluaran yang baik adalah menjawab permasalahan dan tampilan yang ramah 3. 2. perbandingan. pengurangan dll). . logika algoritma (sintaksis dan semantik). Komponen proses : merupakan bagian utama dan terpenting dalam merancang sebuah algoritma.Komponen yang harus ada dalam merancang algoritma: 1. Dalam bagian ini terdapat logika masalah. Komponen keluaran: merupakan tujuan dari perancangan algoritma dan program. Permasalahan yang diselesaikan dalam algoritma dan program harus ditampilkan dalam komponen keluaran. penggabungan. jenis variable. Komponen masukan : terdiri dari pemilihan variable. metode (rekursi. tipe variable. rumusan.

PL atau BASIC. . Fortran. C.Struktur Hubungan dan Jenis Algoritma Flowchart : Algoritma ini menggunakan sejumlah simbol untuk menyatakan kegiatan-kegiatan secara keseluruhan. artinya dapat dengan mudah diimplementasikan menggunakan Pascal. Knuth (1973)menyajikan format algoritma yang dapat digunakan secara bebas untuk berbagai bahasa pemrograman.

Diagram alir .

Contoh penggunaan program flowchart .

jika tidak.Pseudocode Kode atau tanda yang menyerupai (pseudo) atau merupakan pejelasan cara menyelesaikan suatu masalah. Masukkan bilangan pertama 2. Pseudo-code sering digunakan oleh manusia untuk menuliskan algoritma. Masukkan bilangan kedua 3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4. Problem: mencari bilangan terbesar dari dua bilangan yang diinputkan. Contoh Pseudo-code: 1. 4. Tampilkan bilangan pertama 5. Tampilkan bilangan kedua . kerjakan langkah 5.

2. 3. 6. Nama/judul algoritma harus ditulis dengan huruf kapital Berikan komentar dan penjelasan pendahuluan. Pernyataan dan struktur Kontrol Nama-nama variabel harus ditulis dengan huruf besar Input dan output Prosedur Fungsi . 7.Aturan Algoritma Fundamental 1. 4. 5.

Buatlah algoritma dari masalah ini menggunakan Kode Semu : Algoritma Maksimum 1. Untuk i = 2. lakukan : Bandingkan bilangan dalam register xi dengan bilangan dalam register maks.... ..Masalah : Mencari elemen terbesar dari data dengan n bilangan. Jika bilangan dalam register xi lebih besar daripada bilangan dalam register maks. bilangan dalam register maks adalah elemen terbesar di antara n bilangan. pindahkan bilangan dalam register xi ke register maks. Terakhir..3. 2. jika tidak jangan lakukan apa-apa.n. Mula-mula masukkan bilangan dalam register xi ke dalam register yang dinamakan maks. 3.

FlowChart (Diagram Alir) .

[Mulai Loop] I 1 3. [Naikkan Pencacah] I I+1 4. [Selesai] Exit . [Bandingkan] IF Maks < xi THEN Maks xi ELSE GOTO 3 5. [Inisialisasi] Maks x1 2.Algoritma Fundamental Mencari elemen terbesar di dalam data dengan n bilangan. 1. [Ulangi Loop] GOTO 3 6.

Judul program 2. Bagian pernyataan .Bahasa pemrograman pascal Pascal adalah bahasa tingkat tinggi yang berorientasi pada segala tujuan. struktur program pascal dapat terdiri dari : 1. Bagian deklarasi • Deklarasi label • Deklarasi konstanta • Deklarasi tipe • Deklarasi variabel • Deklarasi prosedur • Deklarasi fungsi 3.

yang sebagian berbeda rentang nilai dan ukuran memorinya . a. Tipe Integer terdiri dari beberapa tipe lagi. oleh variabel. Tipe Data Integer Tipe data ini digunakan untuk menyatakan bilangan yang tidak mempunyai angka desimal.Tipe Data Penentuan tipe data berguna untuk memberi pengenal pada isi data yang akan diakses.

b. Tipe data real ini terdiri dari beberapa tipe lagi. Tipe Real Tipe real digunakan untuk menyatakan bilangan yang mempunyai angka desimal. yang sebagian rentang nilai dan ukuran penggunaan memorinya : .

Disarankan penggunaan tipe logika menggunakan tipe Boolean. Untuk ByteBool. yaitu jika program akan dihubungkan dengan program bahasa lain. .c. yaitu True ( benar) dan False (salah). dan LongBool sebaiknya hanya digunakan untuk menjaga kompabilitas. Borland Delphi 6. Tipe Boolean Tipe data boolean untuk menyatakan data logika.0 mempunyai 4 tipe boolean yaitu seperti berikut ini. WordBool.

Tipe Character Tipe data character digunakan untuk menyatakan karakter satu huruf. Tipe String Tipe data string digunakan untuk menyatakan sederetan karakter yang membentuk satu kesatuan. misalnya nama. alamat dan sebagainya.d. e. .

g.Tipe ShortString disediakan hanya untuk menjaga kompabilitas dengan versi sebelumnya. . Tipe Record Tipe record digunakan untuk menyimpan sekumpulan data yang mungkin tipenya berbeda. tetapi saling berhubungan. f. AnsiString untuk menyimpan karakter ANSI dan WideString dapat menyimpan karakter Unicode.

Univ = ‘Diponegoro’. Tipe Terenumerasi dan Subrange Tipe data terenumerasi dan tipe data subrange dipakai untuk menyatakan data berurutan yang bertipe sama. iii.25. misal angka 1.Konstanta Konstanta adalah nilai yang bersifat tetap. huruf A. nama dan lainlain. Contoh : Const Diskon = 0. .h.

a. Pendeklarasian variabel pada delphi: var nama_variabel: tipe_variabel. yang terdapat pada memori. yang sering disebut sebagai identifier. . k : integer. c : char. Contoh : var i.Variabel Variabel adalah suatu pengenal yang menampung data. b. Setiap variabel pasti mempunyai nama. j.

Text). Edit4. Y := StrToInt(Edit2. end.Menggunakan tipe bilangan bulat procedure TForm1. var X.Text := IntToStr(Z). Edit3.Text := IntToStr(Z).Z : byte.Y.Text). Begin X := StrToInt(Edit1.Button1Click(Sender: TObject). // menjumlahkan X dan Y pada Edit3 Z := X + Y. // mengalikan X dan Y pada Edit4 Z := X * Y. .

Text). var X. Z := X * Y. j:= StrToFloat(Edit2. end.Menggunakan tipe bilangan real procedure TForm1.Button1Click(Sender: TObject). . Edit3.Text).k : extended.Z : real48.Y.Text := FloatToStr(Z). i. Y := StrToFloat(Edit2. i:= StrToFloat(Edit1.Text).Text := FloatToStr(k). Edit4. Begin X := StrToFloat(Edit1.j. k:= i * j.Text).

Checked. procedure TForm1. Dengan mengubah properti checked dari kedua kotak cek diatas menjadi true maka kotak cek akan memiliki tanda cek . begin Edit1.Checked.CheckBox2Click(Sender: TObject).CheckBox1Click(Sender: TObject).Menggunakan tipe bilangan boolean procedure TForm1.Visible:= CheckBox1. end. begin Button1.Visible:=CheckBox2. end.

Deklarasi tanpa array var a1. a7. a6.. a2. a3. a8 : longint.Tipe array Merupakan kumpulan variabel yang bertipe sama Deklarasi dengan array var a: array [1. a4. . a5.8] of longint.

1 do j:= j + A[i]. var A: array [0.Text:= IntToStr(j).Items[i]). end. begin for i:=0 to ListBox1.Button1Click(Sender: TObject).Items.Count .Items. for i:= 0 to ListBox1. j:=0.1 do A[i] := StrToInt(ListBox1.Count . j: integer.array procedure TForm1.. . i: integer.20] of integer. Edit1.

Sintaks : type nama_record = record //anggota record diletakkan disini end. Contoh : type mahasiswa = record Nama : string.Tipe Record Bila dengan array. end. . variabel yang digabung memiliki tipe Yang sama. sedangkan record berfungsi menggabungkan beberapa variabel yang tipenya tidak harus sama. Alamat : string.

Operator Relasi . Operator Aritmetika g.Operator a.

Then . Else d.. Pengulangan While . Pengulangan Repeat ..Kontrol program a... Do Bentuk umum : While <ekspresi> Do Begin <pernyataan > End... b. Until c. Pencabangan bersyarat Case .. Pencabangan bersyarat If .

Midas. Data Control. Decision Cube. Samples. Win32. EctiveX dan lain-lain. Qreport. Pages default adalah :  Standart.VISUAL COMPONENT LIBRARY  Kumpulan dari sejumlah obyek tersedia pada Visual Component Library (VCL). Dialogs. Data Access. internet. Sedangkan untuk memilih obyek terdapat pada Componen palette. System. Pengelompokan ini (pages) dinyatakan tabs.  Komponen-komponen dikelompokan seseuai dengan fungsinya. Additional. Win31. .

dan melukukan seting terhadap object-object yang terdapat pada form. a. untuk menentukan properti dan komponen terpilih.  Object Inspector merupakan penguhubung antara tampilan aplikasi dengan kode program. . Properti Page. untuk menentukan kejadian atau proses yang akan dilakukan. Component pallet menyediakan komponen-komponen yang diperlukan untuk menyusun program apalikasi. b. yang berisi perintah-perintah yang dimiliki masing-masing komponen. Event Page.

Label. dll). .RadioButton.Pemrograman Visual Pemrograman berorientasi Objek Pemrograman yang dikendalikan oleh kejadian (even drivent) Langkah membuat aplikasi : a) Mambuat user interface b) Menulis kode Form tersusun sejumlah kontrol atau objek (Button. Edit. b) Kejadian (event) c) Metode : suatu fungsi untuk melakukan operasi terhadap kontrol. Kontrol mempunyai tiga komponen : a) Properti : misalnya menentukan warna dan mengatur Font. CheckBox.

pengujian dengan data dan menggunakan cara matematika untuk membuktikan kebenaran.Masalah analisis algoritma Terdapat dua tipe analisis algoritma. memeriksa bentuk logika. . proses pengurutan (sorting) dan proses pencarian (searching). implementasi algoritma. 2. yaitu : 1. Dalam analisis sebuah algoritma biasanya yang dijadikan ukuran adalah operasi aljabar seperti penjumlahan. Memeriksa kebenaran algoritma Dapat dilakukan dengan cara perurutan. Penyederhanaan Algoritma Membagi algoritma menjadi bentuk yang sederhana. pengurangan. perkalian dan pembagian. proses pengula-ngan (looping/Iterasi).

tetapi juga harus mangkus (efficient)  Ukuran kemangkusan algoritma: waktu dan ruang memori (space)  Algoritma yang mangkus: algoritma yang meminimumkan kebutuhan waktu dan ruang .Analisis Algoritma  Sebuah algoritma tidak hanya harus benar.

S(n): ruang memori yang dibutuhkan algoritma sebagai fungsi dari ukuran masukan n .Alat ukur kemangkusan algoritma: 1. Kompleksitas ruang. S(n) n = ukuran masukan yang diproses oleh algoritma T(n) : jumlah operasi yang dilakukan untuk menjalankan sebuah algoritma sebagai fungsi dari ukuran masukan n. T(n) 2. Kompleksitas waktu.

operasi penjumlahan dan perkalian pada algoritma perkalian matriks .operasi perbandingan elemen pada algoritma pengurutan/pencarian .Operasi yang dihitung hanyalah operasi dasar Operasi dasar: operasi khas yang mendasari suatu algoritma Misalnya: .

Kompleksitas waktu asimptotik: .menyatakan laju pertumbuhan waktu. bukan menyatakan jumlah operasi dasar sesungguhnya. O(f(n)): untuk batas atas laju kebutuhan waktu 2. W(g(n)): untuk batas bawah laju kebutuhan waktu 3. Q(h(n)) : jika f(n) = g(n) .perkiraan kasar kebutuhan waktu algoritma dengan meningkatnya nilai n . Tiga cara menyatakan waktu asimptotik: 1.

f2 (n) = f3 (n) = 16 dan f4 (n) = 24 sedangkan apabila n = 100. program keempat akan memerlukan 2100 langkah. f4(n) = n! Bila n = 4 maka f1 (n) = 4. f3 (n) = 2n. .Notasi O (Big O) Misalkan 4 program yang mensorting n bilangan dengan fungsi yang menyatakan sejumlah langkah yang dijumlahkan masingmasing program untuk sorting n bilangan : f1(n) = n. f2(n) = n2.

Sign up to vote on this title
UsefulNot useful