Anda di halaman 1dari 31

Algoritme dan pemecahan

masalah

Konsep dasar algoritme


Penerapan algoritme dalam
pemecahan masalah
Representasi algoritme
dengan menggunakan
pseudocode dan flowchart
Desk checking

Contoh kasus

Algoritme dan pemecahan


masalah

Konsep dasar algoritme

Penerapan algoritme dalam


pemecahan masalah
Representasi algoritme dengan
menggunakan pseudocode dan
flowchart
Desk checking

Contoh kasus

Sejarah Algoritme
Asal kata algoritme

Mohammed Ibn Musa al-Khowarizmi,


Ilmuan yang menulis kitab Al jabr walmuqabala (Calculation by Completion and
Balancing) sekitar tahun 825 M.
Diterjemahkan (abad ke-12 M) menjadi
Liber algebrae et almucabola "algebra".
Al-jabr "x2 = 40x 4x2 " is transformed into
"5 x2 = 40x".
Al-Muqabala " x2 + 5 = 40x + 4 x2 " is turned
into "5 = 40x + 3x2 ".
Practical examples of the application of the rules.

Sejarah Algoritme

Karena perhitungan dengan angka Arab


sudah menjadi hal yang biasa, maka lambat
laun kata Algorithm berangsur-angsur
dipakai sebagai metode perhitungan
(komputasi) secara umum.

Algoritme merupakan basic semua


pemrograman komputer.

Arti modern algoritme : resep, proses,


metode, teknik, prosedure, routine.

Definisi
ALGORITME adalah urutan langkah logis tertentu untuk
memecahkan masalah yang dituangkan secara
tertulis

Dalam bidang komputer, algoritme sangat diperlukan


dalam menyelesaikan berbagai masalah
pemrograman, terutama dalam komputasi numeris
Tanpa algoritme yang dirancang baik maka proses
pemrograman akan menjadi salah, rusak, atau
lambat dan tidak efisien

Sifat Algoritme
Algoritme bersifat umum artinya :
Tidak menggunakan simbol atau sintaks dari
suatu bahasa pemrograman
Tidak tergantung pada suatu bahasa
pemrograman
Notasi-notasinya dapat digunakan untuk seluruh
bahasa manapun

Kriteria algoritme (Donald E. Knuth)

Input: algoritme dapat memiliki nol atau lebih


inputan dari luar.
Output: algoritme harus memiliki minimal satu buah
output keluaran.
Definiteness (pasti): algoritme memiliki instruksiinstruksi yang jelas dan tidak ambigu.
Finiteness (ada batas): algoritme harus memiliki titik
berhenti (stopping role).
Effectiveness (tepat dan efisien): algoritme sebisa
mungkin harus dapat dilaksanakan dan efektif.

Jenis Proses algoritme

Sequence Process: instruksi dikerjakan secara


sekuensial, berurutan.
Selection Process: instruksi dikerjakan jika
memenuhi kriteria tertentu
Iteration Process: instruksi dikerjakan selama
memenuhi suatu kondisi tertentu.
Concurrent Process: beberapa instruksi dikerjakan
secara bersama.

Notasi algoritme Scholl 88


Teks algoritme terdiri dari 3 bagian yaitu :
Judul (Header)
berisi tentang judul program/modul/subrutin
ada deskripsi singkat ttg intisari tujuan/kegunaan
program tersebut
Kamus
merupakan tempat mendefinisikan input, output,
tipe data, variabel, konstannta, spesifikasi
subrutin/modul
Langkah urutan proses algoritme
berisi urutan instruksi-instruksi atau pemanggilan
aksi

Format algoritme
Judul
{Tujuan, spesifikasi dan keterangan algoritme secara
fokus }
Kamus
{definisi nama dan tipe input, output, variabel, nama
konstanta, spesifikasi subrutin-subrutin}
algoritme
{ berisi urutan-urutan langkah instruksi dari awal
sampai akhir}
Langkah 1 ..
Langkah 2 ..

Langkah N Selesai

Contoh algoritme
Luas_Persegi_Panjang
{Tujuan untuk menghitung luas persegi panjang}
{input P panjang bangun bertipe data real, L lebar
bangun bertipe real, output LP bertipe real}
Langkah 1 : Masukkan P
Langkah 2 : Masukkan L
Langkah 3 : LP = P * L
Langkah 4 : Cetak LP
Langkah 5 : Selesai

FLOWCHART

Flowchart adalah bentuk gambar/diagram yang


mempunyai aliran satu atau dua arah secara
sekuensial yang digunakan untuk menentukan alur
logika program.

Flowchart digunakan untuk merepresentasikan


maupun mendesain program. Oleh karena itu
flowchart harus bisa merepresentasikan komponenkomponen dalam bahasa pemrograman.

Flowchart adalah penggambaran secara grafik dari


langkah-langkah dan urut-urutan instruksi dari suatu
program.

Pseudo-code
Pseudocode berasal dari kata pseudo (mirip) dan
code (kode).
Pseudocode merupakan salah satu metode menuliskan
algoritme yang mirip dengan kode pemrograman
yang sebenarnya.
Pseudocode merupakan notasi singkat untuk
pemrograman yang menggunakan kombinasi struktur
pemrograman informal dan deskripsi secara verbal.
Pseudocode berbasis pada bahasa pemrograman yang
sesungguhnya seperti : Basic, Pascal, C sehingga
lebih tepat digunakan untuk menggambarkan
algoritme yang akan dikomunikasikan kepada
programmer.

Ketentuan Penulisan Pseudocode

Pernyataan ditulis dalam bahasa Inggris


sederhana
Tiap instruksi ditulis dalam baris terpisah
Digunakan keyword dan indentasi untuk
membedakan struktur kendali tertentu
Setiap set instruksi ditulis dari atas ke bawah
Kelompok pernyataan dapat dibentuk menjadi
modul dan diberi nama

Operasi-operasi yang dipakai


1. Operasi penerimaan informasi
Read digunakan ketika algoritme menerima input
dari record atau file
Get digunakan ketika algoritme menerima input
dari keyboard
Contoh :
Read namaMhs
Get tanggal

2. Operasi pengeluaran informasi

Print digunakan ketika output dikirim ke printer


Write digunakan ketika output dikirim ke file
Put, Output, Display digunakan ketika output
dikirim ke screen
Prompt diperlukan sebelum instruksi Get
Contoh : Print `Program Completed
Write customer record to master file
Put out name, address and postcode
Output total_tax
Display End of data
Prompt for student_mark
Get student_mark

3. Operasi Aritmetika

Verb used:

Compute
Calculate

Symbols used: +, -, *, /, ()

Contoh :

Add number to total


Total = total + number
Divide total_marks by student_count
Sales_tax = cost_price * 0.10
Compute C = (F 32) * 5/9

4. Operasi pemberian nilai pada variabel


Pemberian nilai awal (initial value)
digunakan verbs Initialise atau Set
2.
Pemberian nilai sebagai hasil dari suatu
pemrosesan atau operasi aritmetik, maka
digunakan simbol =or
3.
Penyimpan variabel untuk digunakan
kemudian, maka digunakan verb Save atau
Store
Contoh :
1.

Initialize total_price to zero


Set student_count to 0
Total_price = cost_price + sales_tax
Total_price cost_price + sales_tax
Store customer_num in last_customer_num

5. Membandingkan 2 variabel dan memilih 1 dari


dua alternatif langkah operasi

IF, THEN, ELSE

Contoh :
IF student_attendance_status is part_time THEN
add 1 to part_time_count
ELSE
Add 1 to full_time_count
ENDIF

6. Pengulangan dari beberapa operasi

DOWHILE, ENDDO

Contoh :

DOWHILE student_total < 50


Read student record
Print student name, address to report
Add 1 to student_total
ENDDO

DESK CHECKING

Menguji logika algoritme dengan beberapa data yang


dipilih

Langkah Desk Checking


1.
2.
3.
4.
5.

Pilih nilai untuk tes yang sederhana (2-3 cukup)


Menentukan hasil dan memeriksa apakah hasilnya
sesuai dengan yg seharusnya.
Membuat tabel nama variabel yang relevan
Memeriksa garis ujian demi baris, langkah demi
langkah
Ulangi proses 4 untuk kasus uji lainnya

Contoh Desk Checking

A program is required to read three


numbers, add them together and print
their total.
Develop algorithm using

Flowchart
pseudocode

Pseudocode :
Add_three_numbers

Read number1, number2, number3


Total = number1 + number2 + number3
Print total
END

1.

Choose two sets input test data.


Set 1: 10,20, 30 and Set 2: 40, 41,
42
Data Set 1

Data Set 2

Number 1

10

40

Number 2

20

41

Number 3

30

42

2. Establish the expected result for each test


case

Total

Data Set 1

Data Set 2

60

123

3. Set up a table of relevant variable names,


and pass each test data set statement by
statement.
Statement
number

number1

number2

number3

10

20

30

total

First Pass
1
2

60

Print

Second
Pass
1

40

41

42

123

Print

4. Check the expected results (60 and 123)


match the actual results.

Anda mungkin juga menyukai