MUCHAMAD GOZALI, S.Kom
PENYAJIAN ALGORITMA
Algoritma dapat disajikan dalam dua
bentuk, yaitu : tulisan dan gambar/simbol.
Penyajian algoritma dalam bentuk
tulisan biasanya menggunakan metode :
- English Structure (SE),
- Structure Indonesia
(SI) dan
- Pseudocose.
Panyajian dalam bentuk gambar biasanya
menggunakan metode :
-
Flowchart,
- HIPO, dan lain-lain.
|
|
FLOWCHART
|
|
|
Tujuan utama dari penggunaan flowchart adalah untuk menggambarkan
suatu tahapan penyelesaian masalah secara
sederhana, terurai,
rapi dan jelas dengan menggunakan simbol-simbol standart.
|
|
|
|
Flowchart Program
Merupakan bagan
alir yang menggambar-kan urutan logika dari suatu prosedur pemecahan
masalah
|
|
Simbol Flowchart Program
|
|
(terminal symbol), menunjukkan awal dan akhir
dari program
|
|
|
(preparation symbol), memberikan niai awal pada
suatu variabel
atau counter
|
|
|
(processing symbol), menunjukkan pengolahan aritmatika
dan
pemindahan
data
|
|
|
(input/output
symbol), menunjukkan proses input atau output
|
|
|
(decision symbol), untuk mewakili operasi
perbandingan logika, atau untuk proses seleksi (adanya syarat)
|
|
|
(predefined
process symbol), proses yang ditulis sebagai sub
program,
yaitu prosedur/ fungsi
|
|
|
(connector symbol), penghubung pada halaman yang
sama
|
|
|
(off
page connector symbol), penghubung pada halaman yang
berbeda.
|
|
|
Arah
proses
|
Contoh
:
1. Flowchart untuk menentukan
keputusan Anda
pada saat akan pergi, jika
hari hujan.
2. Flowchart
untuk menjumlahkan dua buah
data.
3. Menentukan apakah suatu bilangan termasuk
bilangan
positif, negatif atau nol!
SOAL LATIHAN :
1. Buatlah flowchart untuk menentukan keputusan
Anda pada saat lampu merah di jalan raya.
2. Buatlah flowchart untuk menghitung luas persegi
panjang. Luas = panjang x lebar,
Dimana panjang dan lebar
sebelumnya di baca.
3. Buatlah flowchart untuk menentukan nilai terbesar dari 2 buah bilangan yang sebelumnya
di baca.
PSEUDOCODE
_Pseudo berarti imitasi atau
mirip atau menyerupai.
_Code menunjukkan kode dari program,
_Pseudocode adalah kode yang
mirip dengan instruksi kode program yang sebenarnya.
_ Pseudocode berbasis pada bahasa
pemrograman yang sesungguhnya sepertin COBOL, FORTRAN, Pascal atau Basic,
sehingga lebih tepat digunakan untuk menggambarkan algoritma yang akan
dikomunikasikan kepada Programmer.
|
|
Aturan Penulisan
Algoritma Pseudocode
Agar notasi algoritma mudah ditranslasi ke dalam
notasi bahasa pemrograman, maka sebaiknya notasi algoritma tersebut
berkorespnden dengan notasi bahasa pemrograman secara umum.
|
|
Aturan Penulisan Algoritma
Setiap Algoritma akan
selalu terdiri dari 3 bagian yaitu :
• Judul
(Header)
• Kamus
(Deklarasi)
• Deskripsi
1. Judul (Header)
Judul digunakan sebagai tempat mendefinisikan nama algoritma, dengan
menentukan apakah teks tersebut adalah program, prosedur, fungsi.
Setelah judul disarankan untuk menuliskan spesifikasi singkat dari teks
algoritma tersebut.
Contoh :
Algoritma
Luas_Kubus { Judul Algoritma }
{
Spesifikasi Algoritma :
Menghitung luas kubus untuk ukuran sisi
yang dibaca dari piranti masukan lalu mencetak hasilnya kepiranti keluaran
}
|
|
Teks yang diapit simbol { } menunjukkan keterangan.
2. Deklarasi
Deklarasi adalah bagian teks algoritma sebagai tempat untuk mendefinisikan :
• Nama konstanta
• Nama variabel
• Nama type
• Nama fungsi
• Nama prosedur
Semua nama tersebut baru dapat dipakai di dalam algoritma jika telah
didefinisikan terlebih dahulu didalam kamus.
Contoh :
Deklarasi
{Nama konstanta,
harus menyebutkan type dan nilai }
constant
phi : real = 3,14159
const
nama : string = ‘Alex’
const benar : boolean = true
{Nama Informasi/variabel,
menyebutkan type}
x,y : integer {suatu nilai yang
bertype bilangan bulat}
NMax :
real {nilai maksimum yang
bertype bil. real}
Nama :
string {suatu nilai yang merup. kumpulan character}
Cari : Boolean {suatu nilai logika}
{Nama fungsi }
function LuasLingk (x,y:real); { menghitung luas
lingkaran }
{Nama prosedur }
Procedure
judul
(input jdl : string); { mencetak judul
}
|
|
3. Deskripsi
Algoritma adalah bagian inti dari suatu algoritma. Komponen teks algoritma
dalam pemrograman procedural dapat berupa :
• Instruksi dasar seperti input/output,
assignment
• Sequence (runtutan)
• Analisa kasus
• Perulangan
Setiap langkah algoritma dibaca dari “atas” ke “bawah”. Urutan deskripsi
penulisan menentuan urutan langkah pelaksanaan perintah.
Contoh
Penyelesaian Masalah Oleh Algoritma
Mencetak String “Selamat Belajar Algoritma dan Pemrograman” ke piranti
Keluaran.
Contoh 1 :
Mencetak string “Selamat Belajar Algoritma dan Pemrograman” ke piranti
keluaran.
Algoritma Cetak_string
{mencetak string
“Selamat Belajar Algoritma dan Pemrograman” ke piranti keluaran}
Deklarasi
{tidak ada}
Deskripsi
Output (‘Selamat Belajar Algoritma dan
Pemrograman’)
|
|
Contoh 2 :
Menentukan nilai terbesar dari bilangan bulat yang dibaca dari piranti
masukan dan menuliskan hasilnya ke piranti keluaran.
Algoritma Nilai_Maksimal
{Menentukan nilai
tertinggi yang dibaca dari piranti masukan dan hasilnya dicetak ke piranti
keluaran}
Deklarasi
Var hasil,
x, y : integer { hasil merupakan variabel
untuk menampung
nilai
keluaran }
{ x,y
adalah variabel untuk
menampung nilai masukan }
Deskripsi
input
(x,y) { membaca
nilai x dan y dari piranti
masukan }
if x < y then { operasi kondisional }
hasil
← x { hasil di assignment
oleh nila terbesar }
else
hasil
← y
output
(hasil) { nilai didalam variabel hasil dicetak
ke
piranti keluaran }
|
|
Contoh 3 :
Menghitung luas dan keliling lingkaran.
Contoh:
Algoritma Lingkaran {menghitung luas dan keliling lingkaran }
Deklarasi
var Jari,
Keliling, Luas : real
const
phi = 3.14
Deskripsi
Input
(Jari)
Keliling
= 2 * phi * jari
Luas =
phi * jari * jari
Print (Keliling, Luas)
|
|
LANGUAGE
STRUCTUE
(english structure – Indonesia)
|
|
|
Bentuk penyajian
algortima ini berdasarkan struktur bahasa yang dipakai dalam sehari-hari
tanpa melihat aturan-aturan yang berlaku di algortima.
|
|
|
|
Contoh
: Algortima memasak telor dadar
1. Mulai
2. Siapkan bahan : telor, minyak goring,
garam
3. Siapkan alat : kompor, wajan dll
4. Panaskan minyak
5. Goreng telor
6. Kalau telor sudah matang kelangkah
7, kalau
belum kelangkah 5
7.
Angkat telor
8.
Letakan dipiring
9.
Selesai
|
|
Contoh :
Algoritma Kelulusan_mhs, diberikan nama dan nilai mahasiswa, jika
nilai tersebut lebih besar atau sama dengan 60 maka mahasiswa tersebut
dinyatakan lulus, jika nilai lebih kecil dari 60 maka dinyatakan tidak
lulus.
1. baca nama dan
nilai mahasiswa.
2. jika nilai
>= 60 maka
keterangan = lulus
tetapi jika tidak
keterangan = tidak lulus.
3. tulis nama dan keterangan
|
|
SOAL
LATIHAN :
1. Buatlah algoritma dengan cara diatas, yaitu :
flowchart,
pseudocode dan language structure, untuk soal dibawah ini :
a)
Untuk menghitung :
Fahrenheit = 9/5 x ( C + 32)
Reamur = 4/5 x ( C + 32)
temperatur derajat Celsius dibaca, hitung konversi
suhu diatas, kemudian cetak Celsius, Fahrenheit, Reamur.
b) Untuk membaca harga K dan B, Jika K=5 maka
hitunglah X = K + B, kemudian cetak K, B dan X.
c) Untuk menghitung komisi yang diterima salesman
berdasarkan jumlah penjualan yang dicapainya. Salesman itu mendapat komisi 10%
dari hasil penjualannya. Cetak nama salesman dan besar komisi yang
diperolehnya.
2. Ubahlah algoritma diatas kedalam program bahasa
Pascal.
Jawaban
No.1 :
|
|
|
|
|
|
|
|
|
|
|
Pseudocode :
Algoritma
Konversi_Suhu
{ Menghitung Fahrenheit dan Reamur }
Deklarasi
Celsius, Fahrenheit, Reamur : real
Deskripsi
Input (Celsius)
Fahrenheit = 5/9 * (Celsius +32)
Reamur = 4/5 * (Celsius +32)
Print Celsius, Fahrenheit, Reamur
|
|
|
Language Structure :
Menghitung
Fahrenheit dan Reamur
1. Baca
Celsius
2. Fahrenheit = 5/9 * (Celsius +32)
3. Reamur = 4/5 * (Celsius +32)
4. Cetak Celsius,
Fahrenheit,
Reamur
|
|
Jawaban
No.2 :
|
|
|
|
|
Pseudocode :
Algoritma Hitung_X
{ Menghitung harga X=K+B,
dimana K dan B dari input }
Deklarasi
X,K,B : integer
Deskripsi
Input K, B
If (K=5) then
X = K + B
Print K, B, X
End.
|
|
|
Language Structure :
Menghitung
harga X dari data input K dan B
1. Mulai
2. Baca K, B
2.
Jika (K=5) maka
X = K + B
Print K, B, X
3.
Selesai
|
|
Mengubah algoritma kedalam program Pascal
:
Program Konversi_Suhu;
{ Menghitung Fahrenheit
dan Reamur }
uses
Crt;
{ Deklarasi }
var
Celsius, Fahrenheit, Reamur : real; { Menyiapkan
variable Celsius,
Fahrenheit, Reamur sbg real }
{ Deskripsi }
begin
clrscr;
write(‘Harga Celsius : ');
readln(Celsius);
Fahrenheit = 5/9 * (Celsius +32);
Reamur = 4/5 * (Celsius +32);
writeLn('Harga Celsius : ', Celsius);
writeLn('Harga
Fahrenheit : ', Fahrenheit)
writeLn('Harga Reamur : ', Reamur)
readln;
end.
To be continue . . . . . . . .