Professional Documents
Culture Documents
• Algoritma
– Urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis
– Urutan logis pengambilan keputusan untuk pemecahan masalah
• Lima ciri penting algoritma
– Selesai dalam jumlah langkah terbatas
– Tidak memiliki arti ganda
– Memiliki nol atau lebih input
– Memiliki nol atau lebih output
– Efektif
• Program
– Perwujudan atau implementasi algoritma yang ditulis dalam
bahasa pemrograman tertentu
Pengertian Algoritma
Bagaimana karateristik komputer ?
Aliran data berupa dijit biner 1 dan 0, yang tersusun sesuai instruksi
Instruksi dibuat secara sistematis dan hirarkis, dan masuk akal (sesuai logika)
Question :
Bagaimana agar instruksi dapat dimengerti dan bisa menghasilkan keluaran
(output) sesuai keinginan ?
2
Pengertian Algoritma
• Answer :
– Harus ada instruksi yang dimengerti oleh komputer
– Komputer hanya terdiri dari rangkaian elektronik, karena itu hanya
mengerti nilai 1 dan 0
– Nilai 1 dan 0, dapat berupa rangkaian instruksi jika disusun dengan
susunan yang sistematis dan masuk akal untuk menyelesaikan masalah
tertentu
– Susunan masuk akal dikenal dengan istilah urutan instruksi bahasa
yang dikenal oleh komputer.
– Karena itu pasti komputer punya bahasa, dan kita harus membuat
bahasa yang dimengerti oleh komputer.
– Bahasa tersebut dikenal dengan istilah bahasa pemrograman.
– Program komputer harus dibuat dengan urutan logika yang benar dan
sesuai dengan masalah yang ingin diselesaikan.
3
Pengertian Algoritma dan Pemrograman
Urutan logika untuk Istilah
Algoritma
menyelesaikan masalah tertentu
Diterjemahkan
oleh bahasa
pemrograman
Contoh :
PASCAL, C,
DELPHI, dll
Hasil
Instruksi yang dikenal oleh
komputer
4
Pengertian Algoritma dan Pemrograman
• Simpulan :
– Algoritma : urutan-urutan logis dari suatu pernyataan untuk
menyelesaikan kasus / masalah tertentu
– Pemrograman : proses penterjemahan algoritma kedalam bahasa
yang dimengerti oleh komputer.
• Asal kata algoritma
Al-Khwarizmi, Persian astronomer, and
Mathematician,
Algorithm a sequence of finite instructions, often used for calculation and data processing
5
Jenis Penulisan Logika Pemrograman
Kompilasi
Program dalam
Bahasa Mesin
1. var
2. i,j: integer;
3.
4. begin
5. for i:=1 to row do
6. begin
7. for j:=1 to col do
8. begin
9. if (i=j) then M[i,j] := 1
10. else
11. M[i,j] := 0;
12. end;
13. end;
14. end
9
Jenis Penulisan Logika Pemrograman
• Klasifikasi Algoritma :
1. Ditinjau dari Implementasi :
• Recursion or iteration: A recursive algorithm merupakan algoritma
yang dapat memanggil dirinya sendiri sampai kondisi yang ditentukan
dipenuhi, dikenal dengan functional programming
• Logical: suatu algoritma yang dapat dilihat sebagai deduksi lojik
terkontrol.
• Serial atau parallel atau distributed: algoritma yang biasanya
dieksekusi dengan asumsi satu instruksi pada suatu waktu.
• Deterministic or non-deterministic: algoritma deterministik
menyelesaikan masalah dengan keputusan yang tepat pada setiap
tahapannya, sedangkan algoritma non-deterministic menyelesaikan
masalah dengan perkiraan.
• Exact atau approximate: mencari suatu perkiraan yang bisa
menghampiri solusi yang benar. Biasa digunakan pada deterministik
atau strategi random.
10
Jenis Penulisan Logika Pemrograman
2. Ditinjau dari Paradigma perancangan:
• Divide and conquer
• Dynamic Programming
• The greedy method
• Linear programming
• Reduction
• Search and enumeration
• The probabilistic and heuristic paradigm (Probabilistic Algorithms, Genetic Algorithms,
Heuristic algorithms)
3. Ditinjau dari Kajian Studi :
• Search Algorithm,
• Sorting Algorithm,
• Merge Algorithms,
• Numerical Algorithm,
• Graph Algorithms,
• String Algorithms,
• Computational Geometric Algorithms,
• Combinatorial Algorithms,
• Machine Learning,
• Cryptography, Data Compression algorithms
• Parsing Techniques 11
Jenis Penulisan Logika Pemrograman
4. Ditinjau dari Kompleksitas:
• Algoritma efesien
5. Ditinjau dari Computing Power :
• polynomial time ,
• primitive recursive functions
12
Tata Cara Penulisan Logika
• Yang harus diingat dalam menuliskan logika adalah :
Domain (masalah utama) yang ingin diselesaikan
Keteraturan / susunan pernyataan logika yang mengarah pada
penyelesaian masalah
Penggunaan notasi / lambang / simbol yang digunakan dalam
menterjemahkan suatu logika
• Contoh : Membuat Mie Rebus
Masalah utama : Mie Rebus (hasil yang akan diperoleh)
Susunan :
1. Ambil Mie
2. Nyalakan kompor
3. Ambil wadah dan isi air
4. Panaskan air hingga mendidih
5. Masukkan Mie kedalam wadah yang berisi air mendidih
6. Aduk hingga matang
7. Angkat dan sajikan
Lambang bilangan 1 – 7 merupakan penggunaan lambang untuk langkah
yang dikerjakan. 13
Paradigma Pemrograman
• Prosedural (imperatif)
Program = Struktur + Data
mis : Pascal, C, Basic
• Object Oriented
data dan instruksi dibungkus menjadi satu, disebut: kelas,
kelas pada saat run-time disebut objek.
mis : C++, Java
• Fungsional
konsep pemetaan dan fungsi pada matematika
mis : Matlab
• Deklaratif
pendefinisian relasi antar individu yang dinyatakan sebagai
predikat
mis : Prolog
DASAR-DASAR
ALGORITMA dan
FLOW CHART
Proses, Instruksi, dan Aksi
• Algoritma merupakan deskripsi urutan
pelaksanaan suatu proses
• Algoritma tersusun oleh sederetan langkah
instruksi yang logis
• Tiap langkah instruksi akan mengerjakan suatu
tindakan (Aksi)
• Bila Aksi dilaksanakan, maka sejumlah operasi
yang bersesuaian akan dikerjakan oleh CPU
Struktur Dasar Algoritma
• Runtunan (sequence)
– aksi-aksi dalam algoritma yang dikerjakan
secara berurutan
– contoh :
A1. Aksi 1 • mula-mula aksi 1 dilakukan
• aksi 2 dilakukan setelah aksi 1
A2. Aksi 2 selesai dilaksanakan
• dst.
A3. Aksi 3
Struktur Dasar Algoritma(2)
• Pemilihan (selection)
– aksi dikerjakan jika kondisi tertentu terpenuhi
– contoh :
spesifikasi algoritma
• BENAR
– titik6 atau titik_6
– nilai_ujian atau nilaiUjian
– PT_1 atau PT1
– hari
Nilai
• Merupakan besaran dari tipe data yang sudah
didefinisikan (tipe dasar maupun tipe bentukan)
• Nilai dapat berupa:
– Isi variabel atau konstanta
– Nilai dari hasil perhitungan
– Nilai yang dihasilkan oleh fungsi
• Nilai yang disimpan di variabel dimanipulasi dengan
cara:
– Mengisikan ke variabel lain yang bertipe sama
– Dipakai untuk perhitungan
– Dituliskan ke piranti keluaran
Nilai(2)
Pengisian nilai ke variabel:
• Pengisian nilai secara langsung(assignment)
– Memasukkan sebuah nilai ke dalam nama variabel
langsung di dalam teks algoritma
– Syaratnya nilai yang diisikan harus bertipe sama
dengan tipe peubah
– Notasi:
– Contoh:
variabel konstanta NoMhs 1234
variabel1 variabel2 Nil_prev Nil_cur
variabel ekspresi Luas 0.5 * p * l
Nilai(3)
• Pembacaan nilai dari piranti masukan
– Nilai untuk nama variabel dapt diisi dari
piranti masukan, misalnya dari keyboard.
– Dinamakan dengan operasi pembacaan data
– Notasi dalam teks algoritma: read
– Contoh:
• read (nama1, nama2,…namaN)
Ekspresi
• Ekspresi terdiri atas: operand dan operator
• Operand adalah nilai yang dioperasikan dengan
operator tertentu
• Operand dapat berupa konstanta, nama variabel,
nama konstanta, atau hasil suatu fungsi
• Hasil evaluasi dari sebuah ekspresi adalah nilai
di dalam domain yang sesuai dengan tipe
operand yang dipakai, ada tiga macam: ekspresi
aritmetik, ekspresi relasional, ekspresi string.
Ekspresi(2)
• Ekspresi Aritmetika
– Ekspresi yang baik operand dan hasilnya berupa numerik
– (ingat: tingkat prioritas operator)
i. / , div, mod
ii. *
iii.+, -
• Ekspresi relasional
– Ekspresi dengan operator <,≤,>,≥,=,≠, not, and, or, dan xor
– Hasil evaluasi adalah nilai bertipe boolean
– Ekspresi string
Ekspresi (3)
• Ekspresi string
• Ekspresi dengan operator
penyambungan/concatenation “+”.
Menuliskan Nilai ke Piranti
Keluaran (monitor/printer)
• Dilakukan dengan notasi write
• Contoh:
– write (nama1, nama2, …, namaN)
Contoh Algoritma
Algoritma SAPA_SOBAT
{mencetak string Selamat Siang diikuti nama orang. Nama
prang diinputkan dari piranti masukan}
DEKLARASI
const ucapan = ‘Selamat Siang’
namaUser : string
DESKRIPSI
read(namaUser)
write(ucapan + ‘ ‘ + namaUser)
Tata Cara Penulisan Logika
• Diskusi :
Buat penyelesaikan masalah untuk string sbb: “Anda
belajar Algoritma di S1 Teknik Informatika Unimal”
Selesaikan dalam 10 Menit
• Penyelesaian :
Domain : ……………………………………
Susunan : ……………………………………
47
TRANSALASI
Algoritma-C-Pascal
Translasi
Algoritma-C-Pascal
Lihat di buku!