download

ALGORITMA
Matakuliah
Tahun
Versi
: T0974 / Algoritma dan Metode Object Oriented Programming I
: 2008
: 1/0
Learning Outcomes
Pada akhir pertemuan ini, diharapkan
mahasiswa akan mampu:
– Menjelaskan definisi algoritma
– Menerapkan algoritma
Bina Nusantara
Outline Materi
•
•
•
•
•
•
•
Definisi Algoritma
Kriteria Algoritma
Program dan Bahasa Pemrograman
Pengekspresian Algoritma
Pseudocode
Diagram Alur (Flowchart)
NS Diagram
Bina Nusantara
Algoritma
• Prosedur (langkah-langkah logis) komputasi
yang terdefinisi dengan baik (dari initial state ke
terminal state) yang menerima (himpunan) input
untuk menyelesaikan suatu tugas/masalah dan
menghasilkan (himpunan) output
• Dikatakan benar jika dari (himpunan) input
menghasilkan (himpunan) output yang benar
• Langkah logis berarti algoritma tidak harus
mengikuti urutan tertentu, dan tidak melompati
langkah yang lain
Bina Nusantara
Algoritma
• Contoh: algoritma
(sorting) memiliki:
– Input
– Output
pengurutan
angka
: Himpunan n bilangan (a1, a2, a3, …, an)
seperti: 5, 3, 4, 2, 1
: Himpunan n bilangan terurut (a’1, a’2, a’3, …, a’n)
seperti: 1, 2, 3, 4, 5
• Contoh permasalahan yang diselesaikan
algoritma:
– Human Genome Project mengidentifikasi 100,000 gen DNA
manusia yang menentukan 3 miliar pasang kimia pembentuk
DNA.
Data tersebut disimpan dalam database dan memerlukan
aplikasi analisis data. Algoritma melakukan penyimpanan dan
analisis yang cepat.
Bina Nusantara
Algoritma
– Internet untuk pencarian informasi melalui
mesin pencarian (search engines).
Algoritma membantu pencarian informasi
yang cepat dan cerdas.
– Peta perjalanan terdapat tempat tujuan yang
ingin dicapai dari tempat asal.
Algoritma memberikan solusi pencarian jalan
terpendek dan tercepat untuk menampilkan
rute dari tempat asal ke tempat tujuan
tersebut.
Bina Nusantara
Kriteria Algoritma
• Input: algoritma dapat memiliki nol atau lebih inputan
dari luar.
• Output: algoritma harus memiliki minimal satu buah
output/keluaran.
• Definiteness (pasti): algoritma memiliki instruksiinstruksi yang jelas dan tidak ambigu.
• Finiteness (ada batas): algoritma harus memiliki titik
berhenti (stopping role).
• Effectiveness (tepat dan efisien): algoritma sebisa
mungkin harus dapat dilaksanakan dan efektif. Contoh
instruksi yang tidak efektif adalah: A=A+0 atau A=A*1
• Catatan:
Namun ada beberapa program yang dirancang unterminatable,
contoh Sistem Operasi
Bina Nusantara
Program
• Kumpulan instruksi-instruksi (source code) yang
dibuat oleh programmer (pembuat program)
untuk menyelesaikan suatu masalah pada
komputer.
• Instruksi: sintaks (cara pengkodean) sesuai
bahasa pemrograman yang dipakai dan
mengandung komponen input, output, proses,
seleksi, dan perulangan yang menugaskan
komputer untuk mengeksekusi suatu perintah
tertentu.
• Algoritma
menempati
posisi
di
bagian
implementasi
– pemrogram melakukan proses coding (pembuatan program).
Bina Nusantara
Bahasa Pemrograman
• Alat untuk membuat program.
• Perbedaan: cara memberikan instruksi.
• Persamaan: output/pemecahan masalah
yang dicapai.
Bina Nusantara
Bahasa Pemrograman
• Contoh bahasa pemrograman:
–
–
–
–
–
–
–
–
–
–
–
Bina Nusantara
COBOL (Common Business Oriented Language)
FORTRAN (FORmula TRANslation)
BASIC (Beginner All-purpose Symbolic Instructional Code)
Pascal (dinamakan untuk Blaise Pascal)
Ada (dinamakan untuk Ada Lovelace)
C (pengembang bahasa B)
Visual Basic (mirip BASIC, buatan Microsoft)
Delphi (mirip Pascal, buatan Borland)
C++ (bahasa berorientasi object, berbasiskan C)
C# (mirip Java, buatan Microsoft)
Java
Pengekspresian Algoritma
• Alur pengekspresian algoritma dituangkan
secara tertulis
– Alur pengekspresian: alur pemikiran, sehingga algoritma setiap
orang berbeda
– Tertulis: algoritma berupa tulisan/kalimat, gambar, atau tabel
• Algoritma dapat melalui beberapa metode:
– Tulisan/kalimat: pseudocode
– Gambar: Flowchart
– Tabel: NS Diagram
Bina Nusantara
Pseudocode
• Berasal dari kata pseudo dan code, berarti
kode yang tidak sebenarnya
• Deskripsi informal untuk algoritma pada
pemrograman komputer
• Tujuan: memudahkan manusia untuk
membaca bahasa pemrograman
konvensional
• Tidak ada standar untuk pseudocode
karena bukan program yang dapat
dieksekusi
Bina Nusantara
Pseudocode
• Umumnya dimulai dengan kata “BEGIN”
dan diakhiri “END”
• IF-THEN dan ELSE digunakan untuk
operasi percabangan/seleksi
• WHILE dan DO-WHILE digunakan untuk
operasi perulangan
Bina Nusantara
Pseudocode
Contoh pseudocode untuk melakukan panggilan melalui
telepon:
BEGIN
Hold up the phone
WHILE not dial
Press dial button
IF connected THEN
WHILE not finish
Talking
Hold down the phone
END
WHILE not connected
Waiting dial
Bina Nusantara
Pseudocode
Contoh pseudocode untuk mengecek apakah bilangan
genap atau ganjil:
BEGIN
Number = Input Number
Result = Number % 2
IF Result = 0
THEN Print “The number is even number”
ELSE
THEN Print “The number is odd number”
END
Bina Nusantara
Diagram Alur (Flowchart)
• Representasi skematik dari suatu
algoritma atau proses.
• Skematik: penggunaan diagram untuk
merepresentasikan elemen suatu sistem
menggunakan simbol-simbol abstrak yang
bukan sesungguhnya.
• Contoh: bangunan pada peta disimbolkan
dengan titik, gunung disimbolkan dengan
segitiga
Bina Nusantara
Diagram Alur (Flowchart)
• Notasi Proses, Entri data, Aritmatika:
RECTANGLE
•
•
•
•
•
Notasi Seleksi:
Notasi Arah/alur (Flowlines):
Notasi Input/Output:
Notasi Berhenti
Umumnya dimulai dengan
dan diakhiri dengan END
Bina Nusantara
DIAMOND
PARALLELOGRAM
CIRCLE
Start
Diagram Alur (Flowchart)
Contoh flowchart untuk melakukan panggilan melalui
telepon:
END
Start
Hold down the phone
Hold up the phone
Yes
Finish
Press dial button
No
No
Talking
Dialing
Yes
Yes
No
Waiting
Bina Nusantara
Connected
Diagram Alur (Flowchart)
Contoh flowchart untuk mengecek apakah bilangan
genap atau ganjil:
Start
Input Number
Number % 2
1
0
Print “Odd Number”
Print “Even Number”
END
Bina Nusantara
Did You Know?
• Algoritma berasal dari nama seorang ahli
astronomi dan matematik Persia (Iran), Abu
Ja’far Mohammed Ibn Musa al-Khowarizmi,
dalam sebuah tulisan Arab berjudul “al jabr
w’al-muqabala” (“Rules of Restoration and
Reduction” atau “On Calculation with Hindu
Numerals”) pada tahun 825 M.
• Tulisan tersebut diterjemahkan dalam bahasa
latin pada abad ke-12 berjudul “Algoritmi de
numero Indorum“ atau “Algoritmus on the
numbers of the Indians“
• Kata “Algoritmi” merujuk pada nama penulisnya,
tetapi masyarakat menyalahartikan sebagai
“calculation method”.
Bina Nusantara
Advanced Learning
• Nassi-Shneiderman (NS Diagram)
– representasi desain grafikal untuk pemrograman terstruktur
• NS Diagram: metode penulisan algoritma
menggunakan tabel secara top-down
• Dikembangkan tahun 1972
– Isaac Nassi dan Ben Shneiderman
• NS Diagram dikenal dengan structograms
Bina Nusantara
Advanced Learning
• Notasi process:
• Notasi seleksi:
• Notasi perulangan
– WHILE
Proses
Kondisi
Betul
Kondisi Belum
Terpenuhi
Proses
– DO-WHILE
Proses
Kondisi
Belum Terpenuhi
Bina Nusantara
Salah
Advanced Learning
Contoh NS Diagram untuk melakukan panggilan melalui
telepon:
Hold up the phone
Press dial
button
Dialing?
Talking
Finish?
Hold down the phone
Bina Nusantara
Advanced Learning
Contoh NS Diagram untuk mengecek apakah
bilangan genap atau ganjil:
Insert number
Number % 2
Equal to 0
Print “Even
Number”
Bina Nusantara
Equal to 1
Print “Odd
Number”
Referensi
• Introduction to Algorithms. 2ed. Cormen. 2002.
p5-13
• Introduction to Java Programming. 7ed. Liang.
2009. p33-34
• Algorithm. http://en.wikipedia.org/wiki/Algorithm
• Pseudocode.
http://en.wikipedia.org/wiki/Pseudocode
• Flowchart. http://en.wikipedia.org/wiki/Flowchart
• NS Diagram.
http://en.wikipedia.org/wiki/NS_Diagram
Bina Nusantara