MODUL III
NOTASI ALGORITMIK
Teks algoritma berisi deskripsi langkah-langkah penyelesaian
masalah. Langkah-langkah penyelesaian tersebut dapat ditulis dalam notasi
algoritmik apa pun, asalkan mudah dibaca dan dimengerti. Tidak ada notasi yang
standard untuk menuliskan teks algoritma sebagaiaman pada notasi bahasa
pemrograman. Setiap orang dapat saja membuat notasi algoritmiknya sendiri.
Hal ini bisa dimengerti karena teks algoritma tidak sama dengan teks program
komputer. Program komputer adalah realisasi teknis dari algoritma dalam notasi
bahasa pemrograman tertentu. Namun, agar notasi algoritmik mudah ditranslasi
ke dalam notasi bahasa pemrograman, maka sebaiknya notasi algoritmik mudah
ditranslasi ke dalam notasi bahasa pemrograman, maka sebaiknya notasi
algoritmik tersebut berupa pseudo-code yang berkoresponden dengan notasi
bahasa pemrograman secara umum.
Notasi algoritmik dalam bentuk pseudo-code mudah ditranslasi ke
dalam notasi bahasa pemrograman. Notasi write di dalam algoritma
berkoresponden dengan write atau writeln dalam bahasa pascal printf
dalam bahasa C, WRITE dalam bahasa Basic atau write dalam bahasa Fortran.
Selain itu, pada beberapa bahasa pemrograman seperti Pascal dan C, antara
setiap instruksi dipisahkan dengan tanda “;” (semicolon). Jadi translasi write
(X) ke dalam masing-masing bahasa tersebut adalah (dengan asumsi bahwa
piranti keluarannya adalah layar) adalah sebagai berikut :
Writeln(X,Y); ( dalam bahasa PASCAL )
Printf(*%d %d*, X, Y); /* dalam bahasa C */
WRITE X.Y *dalam bahasa BASIC
dalam bahasa FORTRAN (C menyatakan komentar)
WRITE (“,”) X,Y
Perhatikan bahwa setiap bahasa mempunyai aturan (sintaks) yang
berbeda-beda dalam untuk perintah penulisan. Bahasa C misalnya,
mengharuskan penggunaan penentu format (seperti “%d” pada contoh di atas )
untuk nilai yang dicetak. Penentu format “%d” berarti pada field tersebut nilai
yang akan dicetak bertipe bilangan bulat).
Contoh lainnya, sebuah pernyataan dalam notasi deskriptif :
Isikan nilai X ke dalam min
maka pseudo-code-nya dalam notasi algoritmik menjadi :
min ← X
Notasi “←” berarti mengisi (assign) peubah (variable) min dengan nilai X.
translasi nota “←” dalam bahasa Pascal adalah “: =” , dalam bahasa C adalah
“=”, dalam bahasa Basic “=” dan dalam bahasa Fortran juga “=”.
Jadi, translasi min ← X ke dalam masing-masing bahasa tersebut adalah :
min := X;
min = X;
min = X
C dalam bahasa FORTRAN
min = X
3.1 Struktur Teks Algoritma
dua buah algoritma sederhana diberikan untuk memberi contoh ilustrasi
mengenai teks algoritma. Algoritma pertama adalah untuk mencetak tulisan :
hello, word
Algortima ini hampir selalu ditemukan pada buku-buku bahasa pemrograman.
Pelajaran pemrograman dan buku-buku bahasa pemrograman umumnya
memulai contoh program pertamanya dengan memberikan contoh mencetak
“hello world”. Program “Hello world” pertama kali dikemukakan olwh Brian W.
Kernighan yaitu seorang penemu Bahasa C [KER88].
Algoritma untuk menulis “Hello world”.
PROGRAM Helloworld
( Program untuk mencetak “Hello world”
DEKLARASI
( Tidak ada )
ALGORITMA :
Write (“Hello, World”)
Algoritma 3.1 Mencetak “Hello world”
Algoritma kedua belah program untuk mencetak tabel suhu dalam derajat
Fahrenheit (F) dan suhu ekivalennya dalam derajat Celcius © dengan
menggunakan rumus
C = 5*9 (F – 32)
Tabel memuat suhu mulai dari 0 sampai 1000F dengan kenaikan (step) sebesar
200. tabel yang dihasilkan kira-kira seperti dibawah ini :
0 -17.8
20 -6.7
40 4.4
60 15.6
80 26.7
100 37.8
Program mencetak tabel Fahrenheit – Celcius adalah :
PROGRAM FahrenheitCelcius
{ Program untuk mencetak tabel Fahrenheit-Celcius dari 0
sampai 100 dengan kenaikan (step) 20 }
DEKLARASI
F, C : real
awal, akhir, step : integer
ALGORITMA :
awal←0
akhir←100
step←20
F←awal
While awal < akhir do
C = 5*9 * (F – 32)
Write(F, C)
F ← F + step
Endwhile
Dengan memperhatikan kedua contoh program sederhana di atas, maka pada
dasarnya teks algoritma selalu disusun oleh tiga bagian (blok) yaitu :
1. Bagian Judul (header)
2. Bagian deklarasi (declaration).
3. Bagian algoritma.
Ketiga bagian tersebut ditunjukkan dalam notasi algoritmik pada algoritma 4.1
PROGRAM nama program
{ Penjelasan tentang algoritma yang berisi uraian singkat
mengenai masalah yang akan diselesaikan }
DEKLARASI
{ semua nama yang dipakai, meliputi nama tipe, nama
konstanta, nama peubah, nama peubah, nama prosedur dan nama
fungsi diumumkan disini }
ALGORITMA :
{ semua langkah/aksi algoritma ditulis di sini }
Algoritma 3.1 Struktur teks algoritma
Setiap bagian sebaiknya dengan komentar untuk memperjelas maksud teks
yang ditulis. Komentar adalah kalimat yang diapit oleh pasangan tanda kurung
kurawal (‘{‘ dan ‘{‘) Komentar membuat algoritma lebih mudah untuk di mengerti.
Penjelasan masing-masing bagian didalam teks algoritma diberikan pada upabab
di bawah ini :
Judul
Judul adalah bagian yang terdiri atas nama program dan penjelasan (spesifikasi)
tentang program tersebut. Nama program sebaiknya singkat namun cukup
menggambarkan apa yang dilakukan oleh algoritma tersebut. Di bawah nama
program disertai dengan penjelasan singkat tentang apa yang dilakukan oleh
program. Penjelasan yang disertakan di bawah nama program berisi spesifikasi
masalah. Algoritma harus dibuat sesuai dengan spesifikasi masalah yang
diberikan.
PROGRAM HelloWorld
( Program untuk mencetak “Hello, world” )
PROGRAM FahrenheithCelcius
( Program untuk mencetak tabel Fahrenheit-Celcius dari 0
sampai 100 dengan kenaikan (step) 20 )
Deklarasi
Bagian deklrasi digunakan untuk mengumumkan semua nama yang
dipakai di dalam algoritma beserta propertinya (misalnya tipe). Nama
tersebut dapat berupa nama konstanta, nama peubah, nama tipe, nama
prosedur dan nama fungsi. Semua nama yang dipakai di dalam algoritma
harus dideklrasikan sebelum mereka digunakan. Hal yang sama di dalam
teks algoritma, bila kita ingin mengetahui tipe dari sebuah peubah, kita
melihat di bagian deklarasi. Catat juga bahwa bagian deklarasi mungkin
kosong karena tida ada nama peubah atas nama konstanta yang
digunakan di dalam program.
Contoh pendeklarasian yang lain misalnya :
DEKLARASI
{ nama konstanta }
const Npeg = 100 { jumlah pegawai }
const phi = 3.14 { nilai π }
{ nama tipe }
type Titik : record
< x:integer,
y:integer >
{ nama peubah (variable) }
C : char
Q : Titik
Ketemu : boolean
FUNCTION Apakah_A(input c:chair) → boolean
{ mengembalikan nilai true bila c adalah karakter ‘A’,
atau false bila sebaliknya }
PROCEDURE Tukar(input/output A:integer, input/output
B:integer)
{ Mempertukarkan nilai A dan B. Parameter A dan B
sudah terdefinisi nilainya. Setelah pertukaran, A
berisi nilai B semula, B berisi nilai A semula. }
pada contoh deklarasi tadi, Npeg dan phi adalah nama konstanta, Titik
adalah nama tipe, c, g, dan ketemu adalah nama peubah. Apakah _A
adalah nama fungsi dan Tukar adalah nama prosedur.
Algoritma
Inilah bagian inti dari sebuah program. Bagian ini deskripsi langkahlangkah
penyelesaian masalah berupa pernyataan-pernyataan. Amatilah
bahwa bagian “Algoritma” mempunyai kemiripan fungsi dengan bagian
“Cara membuat” pada resep makanan.
Program HelloWorld mengandung bagian algoritma sebagai berikut
ALGORITMA
write(“Hello, World”}
progra, FahrenheitCelcius mengandung bagian algoritma sebagai berikut :
ALGORITMA:
awal←0
akhir←100
step←20
F←awal
while awal ≤ akhir do
C ← 5/9 * (F – 32)
write(F, C)
F ← F + step
endwhile
untuk sementara ini, jangan pikirkan terlalu serius kata-kata seperti write,
while dan lambang “←”. Anda akan mempelajari notasi algoritmik lebih
mendalam di dalam bab-bab selanjutnya.
Translasi Teks Algoritma ke dalam Teks Program Pascal dan C
Teks algoritma adalah hasil pemikiran konsptual. Agar dapat dilaksanakan
oleh komputer, algortima harus ditranslasi ke dalam notasi bahasa
pemrograman.
ALGORITMIK:
PROGRAM Nama Program
{ Penjelasan tentang algoritma, yang berisi uraian
singkat mengenai masalah yang akan diselesaikan }
DEKLARASI
{ Semua nama yang dipakai, meliputi nama tipe, nama
telepon, nama peubah, nama prosedur dan nnama fungsi
dideklarasikan di sini }
ALGORTIMA:
{ semua langkah/aksi algoritma dituliskan di sini }
PASCAL
PROGRAM Nama Program:
{Penjelasan tentang algoritma, yang berisi uraian
singkat mengenai masalah yang akan diselesaikan }
(*DEKLARASI *)
[const]
{Semua nama tipe tetapan dan harga tetapannya
didefinisikan di sini}
[type]
{ semua nama tipe bentukkan didefinisikan di sini
[var]
{ semua nama peubah global didefinisikan di sini}
{ Deklarasi prosedur dan fungsi ditulis di sini }
{* ALGORITMA: *}
begin
{ Semua instruksi program dituliskan di sini }
end.
/* PROGRAM Nama Program */
/* Penjelasan tentang algoritma, yang berisi uraian
singkat mengenai masalah yang akan diselesaikan */
/* DEKLARASI */
/* semua nama yang penggunaannya global didefinisikan
di sini */
/* purwarupa prosedur dan fungsi didefinisikan di sini
*/
/* ALGORITMA: */
main()
{
/* di sini juga mungkin ada DEKLARASI lokal */
/* semua instruksi program dituliskan di sini */
}
beberapa hal penting yang harus diketahui dari bahasa C adalah :
1. Bahasa C bersifat case sensitive. Artinya , bahasa C membedakan
huruf besar (kapital) dengan huruf kecil. Nama yang ditulis dengan
huruf besar dianggap berbeda kalau ia ditulis dengan huruf kecil.
Misalnya :
N tidak sama dengan n
nama_orang sama saja dengan NAMA_ORANG atau NAMA_ORANG
Hitkar sama saja dengan hitkar
2. Dalam bahasa C, deklarasi yang didefinisikan sebelum kata main ()
adalah deklarasi global, artinya semua nama yang didefinisikan di
dalam deklarasi global dikenal diseluruh bagian program, termasuk di
dalam fungsi atau prosedur yang ada di dalam program itu.
3. Dalam bahasa C, komentar ditulis di antara “/*” dabn “*/”. Sedangkan
dalam bahasa Pascal komentar dapat ditulis di antara “{“dan”} atau
diantara “{*” dan “*)”.
ALGORITMIK
PROGRAM Helloworld
{ Program untuk mencetak “Hello world* }
DEKLARASI
{ Tidak ada }
ALGORITMA:
Write{“Hello, World”}
PROGRAM FahrenheitCelcius
{ Program untuk mencetak tabel Fahrenheit-Celcius dari
0 sampai 100 dengan kenaikan harga (step) 20 )
DEKLARASI
F, C : real
Awal, akhir, step : integer
ALGORITMA:
awal←0
akhir←100
step←20
F←awal
while awal ≤ akhir do
C ← 5/9 * (F – 32)
write(F, C)
F ← F + step
endwhile
PASCAL:
PROGRAM Helloworld
{ Program untuk mencetak “Hello, world” }
{* DEKLARASI *}
{ tidak ada }
begin
{*ALGORITMA: *}
write (}Hello, world”);
end.
PROGRAM FahrenheitCelcius
( Program untuk mencetak tabel Fahrenheit-Celcius dari
0 sampai 100 dengan kenaikan (step) 20 )
(* DEKLARASI *)
var
F, C : real
Awal, akhir, step : integer
begin
(* ALGORITMA *)
awal:=0;
akhir:=100;
step:=20;
F:=awal;
While awal <= akhir do
Begin
C:= 5/9 * (F – 32);
Writeln(F, ‘ ‘, C);
F:=F + step;
End;
End;
C :
/* PROGRAM HelloWorld */
/* Program untuk mencetak “Hello, world” */
#include <stdio.t>
main()
{
/* DEKLARASI */
/* tidak ada */
/* ALGORITMA */
printf(“Hello, world”);
}
/* PROGRAM FahrenheitCelcius */
/* Program untuk mencetak tabel Fahrenheit-Celcius dari
0 sampai 100 dengan kenaikan (step) 20 */
#include <stdio.h>
{
/* DEKLARASI */
float F, C ;
int awal, akhir, step;
/* ALGORITMA */
awal = 0;
akhir = 100;
step = 20;
F = awal,
While (awal <= akhir)
{
C = (5.0/9.0) * (F – 32);
Printf(*%3.0f %6.1f \n, F, C);
F = F + step;
}
}
Kompilator Bahasa Pascal dan C
Saat ini terdapat cukup banyak kompilator Bahasa Pascal dan
bahasa C. Pada zaman komputer dengan sistem operasi 16-bit, kompilator
Bahasa Pascal dan Bahasa C yang banyak digunakan adalah Turbo
Pascal dan Turbo C. Sekarang kedua kompilator itu relatif jarang
digunakan sejak digunakannya sistem operasi Windows dan UNIX
(termasuk Linux).
Kakas (tool) pengembangan program visual sudah lazim digunakan
saat ini, seperti Borland Delphi, Visual C, Borland C++, dan sebagainya.
Borland Delphi adalah kakas pengembangan program yang berbasis pada
Bahasa Pascal, sedangkan Visual C dan berbasis pada Bahasa C. Kedua
kompilator ini dapat digunakan untuk mengkompilasi porgram Pascal dan
C. Namun, sejak diberlakukannya keharusan menggunakan software legal
(sebagai konsekuensi diberlakukannya UU No. 19/2002 tentang HaKI (Hak
Kekayaan Intelektual), maka kita harus mengeluarkan biaya yang cukup
besar untuk membeli kakas pengembangan program yang berlisensi.
Free Pascal adalah adalah kompilator Pascal 32-bit. Ia tersedia untuk
prosesor Intel x86, Motorola 680x0, dan PowerPC (dari 1.9.2). Sistem
operasi yang dapat digunakan untuk mengoperasikan free pascal adalah
Linux, FreeBSD, NetBSD, MacOSX, DOS, Win32, OS/2, BeOS, SunOS
(Solaris), QNX, dan Classic Amiga. Anda dapat men-download kompilator
Free Pascal yang dapat Anda download (baik versi standard maupun versi
yang lengkap). Instalasilah kompilator Pascal ini ke komputer Anda.
Program Pascal dapat dikompilasi dan prompt DOS (Disk Operating
System) atau IDE (Integrated Development Environment) yang disediakan
oleh Free Pascal ini.
GCC (GNU C compiler) adalah kompilator freeware untuk Bahasa C
Kompilasi ini sebesarnya sudah otomatis terdapat di dalam sistem operasi
Linux, namun kita juga dapat men-download GCC dari internet untuk diinstalasi
pada sistem operasi selain Linux (seperti Window adat DOS
misalnya). Penjelasan tentang kompilator GCC dapat dilihat di
http://gcc.gnu.org. Anda juga dapay men-download GCC dari situs web
tersebut, lalu menginstalnya di komputer anda.
Program dalam bahasa Pascal terlebih dahulu dibuat dan di-edit
dengan editor teks. Free Pascal sendiri menyediakan editor yang menyatu
dengan IDE (Integrated Development Environment). IDE ini mirip dengan
IDE pada kompilator Turbo Pascal 7.
Selain di lingkungan DOS atau Windows, Free Pascal juga dapat dioperasikan di
lingkungan Linux. Cara mengkompilasi program Pascal di Linux sama seperti
mengkompilasi dari prompt DOS di atas (ppc386 nama_file.pas).
Minggu, 07 November 2010
Langganan:
Posting Komentar (Atom)

Tidak ada komentar:
Posting Komentar