Anda di halaman 1dari 14

Algoritma Pemrograman

Pertemuan Ke-2
(Teks Algoritma)

:: Noor Ifada ::

S1 Teknik Informatika-Unijoyo 1

Sub Pokok Bahasan


Pendahuluan
Judul Algoritma
Deklarasi
Deskripsi
Translasi Teks Algoritma ke dalam
Teks Program Bahasa Pascal
Tabel Translasi

S1 Teknik Informatika-Unijoyo 2

1
Pendahuluan
Teks algoritma yang dimaksud di sini adalah teks
pseudocode yang dianggap perlu untuk menjembatani
keragaman dan kompleksitas bahasa sehingga dapat
dilakukan “abstraksi”
Teks ini lebih berorientasi kepada detail design
dibandingkan coding (merupakan rancangan secara
prosedural yang selanjutnya dengan mudah dapat
ditranslasi menjadi salah satu program dalam bahasa
tertentu)
Contoh bahasa pemrograman yang digunakan adalah
Bahasa Pascal. Jadi dalam pembahasan berikutnya,
translasi teks Algoritma adalah ke dalam teks program
Bahasa Pascal.

S1 Teknik Informatika-Unijoyo 3

Pendahuluan - contd

Bagian-bagian (blok) dalam teks algoritma:


 JUDUL (header) algoritma
 DEKLARASI algoritma
 DESKRIPSI algoritma
Algoritma NAMA_ALGORITMA
{ Penjelasan mengenai algoritma, yang berisi uraian singkat
mengenai apa yang dilakukan oleh algoritma }
DEKLARASI
{ Semua nama yang dipakai, meliputi nama tipe, nama tetapan, nama
peubah, nama prosedur dan nama fungsi didefinisikan di sini }
DESKRIPSI :
{ Semua langkah atau aksi algoritma dituliskan di sini }

Keterangan:
Pasangan tanda kurung kurawal (‘{‘ dan ‘}’) digunakan untuk
memberikan komentar (untuk memperjelas maksud teks yang
dituliskan).
S1 Teknik Informatika-Unijoyo 4

2
Judul Algoritma

• Terdiri dari nama dan penjelasan (spesifikasi) algoritma.


• Nama yang digunakan sebaiknya singkat (namun cukup
informatif).
• Biasanya di bawah nama diberi spesifikasi algoritma.
Algoritma yang akan ditulis nantinya harus sesuai dengan
spesifikasi yang didefinisikan.

Algoritma LUAS_PERSEGI_PANJANG
{ Menghitung luas persegi panjang dengan masukan ukuran
panjang dan ukuran lebar, lalu mencetak hasil luas
persegi panjang ke piranti keluaran }

S1 Teknik Informatika-Unijoyo 5

Deklarasi
• Merupakan tempat untuk mendefinisikan berbagai macam nama, yaitu:
 nama tipe
 nama konstanta
 nama peubah (nama variabel)
 nama fungsi, sekaligus spesifikasinya
 nama prosedur, sekaligus spesifikasinya
• Semua nama tersebut baru dapat digunakan jika telah didefinisikan di
dalam DEKLARASI. Penulisan sekumpulan nama dalam DEKLARASI
sebaiknya dikelompokkan menurut jenis nama tersebut.
• Ketentuan-ketentuan dalam pendefinisian nama-nama:
 nama peubah belum terdefinisi harganya ketika didefinisikan.
 Pendefinisian konstanta sekaligus juga memberikan harganya.
 Pendefinisian nama fungsi sekaligus juga dengan domain dan
range serta spesifikasinya.
 Pendefinisian nama prosedur sekaligus juga dengan
pendefinisian parameter (jika ada) dan spesifikasi prosedur (kondisi
awal, kondisi akhir dan proses yang dilakukan).
S1 Teknik Informatika-Unijoyo 6

3
Deklarasi - contd

DEKLARASI
{ Nama tipe, hanya untuk tipe yang bukan tipe dasar }
type Titik : <X:real,Y:real> { koordinat pada sumbu kartesian }
{ Nama konstanta, harus menyebutkan nilai }
const phi = 3.14
{ Nama peubah (variabel), menyebutkan tipe }
P : Titik { Titik dalam derajat kartesian }
jmlh : integer { Jumlah suatu elemen }
ketemu : boolean { Keadaan hasil pencarian }
{ Spesifikasi Fungsi, menyebutkan nama fungsi, domain dan range }
function Konversi_Real_Ke_Integer(input i:real)→integer
{ Mengkonversi harga i yang bertipe real menjadi harga ekivalen yang
bertipe integer }
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal, kondisi
akhir dan proses }
procedure Tukar(input/output A:integer, input/output B:integer)
{ Kondisi awal : A dan B terdefinisi, A=a dan B=b }
{ Kondisi akhir : A=b dan B=a }
{ Proses : Mempertukarkan nilai A dan B }
S1 Teknik Informatika-Unijoyo 7

Deskripsi
• Merupakan bagian inti dari algoritma.
• Komponen di dalam teks algoritma dapat berupa:
– Instruksi dasar seperti input/output, assignment
– Urutan (sequence)
– Pemilihan
– Pengulangan
DESKRIPSI:
read(a)
b←a mod 2
if b = 0 then
write(‘bilangan genap’)
else
write(‘bilangan ganjil’)
endif

S1 Teknik Informatika-Unijoyo 8

4
Translasi Teks Algoritma ke dalam
Teks Program Bahasa Pascal
Struktur program Pascal juga terdiri dari tiga bagian:
1. Judul Program  sifatnya opsional dan tidak signifikan. Dapat
digunakan untuk memberi nama program dan sifatnya sebagai
dokumentasi saja. Judul program dituliskan pada awal program dan
diakhiri dengan titik koma (‘;’).
2. Bagian Deklarasi  digunakan bila di dalam program
menggunakan pengenal (identifier). Identifier dapat berupa label,
konstanta, tipe, peubah, prosedur dan fungsi. Jika suatu program
menggunakan identifier, Bahasa Pascal menuntut supaya identifier
tersebut dikenalkan/dideklarasikan terlebih dahulu sebelum
digunakan.
3. Bagian Deskripsi  menunjukkan suatu tindakan yang
dikerjakan oleh program. Tindakan yang dilakukan oleh program
tergantung pada instruksi-instruksi yang diberikan. Instruksi-
instruksi yang akan diberikan untuk dikerjakan ditulis di antara kata
cadangan Begin dan End. Akhir penulisan dari End diakhiri
dengan tanda baca titik (‘.’). Setiap instruksi per barisnya diakhiri
dengan tanda baca titik koma (‘;’).
S1 Teknik Informatika-Unijoyo 9

Translasi… - contd

ALGORITMA PASCAL
Algoritma NAMA_ALGORITMA program NAMA_PROGRAM;
{Penjelasan mengenai {Penjelasan mengenai program, yang berisi
algoritma, yang berisi uraian singkat mengenai apa yang
uraian singkat mengenai dilakukan oleh program}
apa yang dilakukan oleh (* DEKLARASI *)
[const]
algoritma}
{semua nama tetapan dan harga tetapannya
DEKLARASI
didefinisikan di sini}
{Semua nama yang dipakai, [type]
meliputi nama tipe, nama {semua nama tipe bentukan didefinisikan di
tetapan, nama peubah, sini}
nama prosedur dan nama [var]
fungsi didefinisikan di {semua nama peubah global didefinisikan di
sini} sini}
DESKRIPSI : {deklarasi prosedur dan fungsi didefinisikan
{Semua langkah atau aksi di sini}
algoritma dituliskan di (* DESKRIPSI *)
sini} begin
{semua instruksi program dituliskan di sini}
end.
S1 Teknik Informatika-Unijoyo 10

5
Translasi… - contd

• Contoh translasi dari teks algoritma ke teks bahasa


pemrograman Pascal untuk mendapatkan hasil
sebagai berikut:
0
1
2
3
4
5

• Untuk mendapatkan hasil seperti di atas, pada bagian


Deskripsi digunakan instruksi dengan struktur
pengulangan While-Do

S1 Teknik Informatika-Unijoyo 11

Translasi… - contd

ALGORITMA PASCAL
Algoritma PENAMBAHAN_SATU program PENAMBAHAN_SATU;
{ Menampilkan penambahan satu dari { Menampilkan penambahan satu dari
suatu bilangan bulat, dimulai suatu bilangan bulat, dimulai
dari 0 sampai dengan 5 } dari 0 sampai dengan 5 }
DEKLARASI
I : integer { peubah data bilangan (* DEKLARASI *)
bulat } [var]
DESKRIPSI: I : integer { peubah data bilangan
I ← 0 bulat }
while I ≤ 5 do (* DESKRIPSI *)
write(I) begin
I←I + 1 I := 0;
endwhile while I <= 5 do
{ I > 5 } begin
writeln(I);
I := I + 1;
end;
end.

S1 Teknik Informatika-Unijoyo 12

6
Translasi - contd

Beberapa hal penting tentang bahasa Pascal:


• Bahasa Pascal tidak membedakan nama yang ditulis dalam
huruf besar ataupun huruf kecil (tidak bersifat case sensitive).
Misal:
 I sama saja dengan i
 penambahan_satu sama saja dengan PENAMBAHAN_SATU
• Komentar ditulis di antara tanda “{“ dan “}” atau di antara “(*” dan
“*)”
• Program Pascal tidak mengenal aturan penulisan di kolom
tertentu, jadi boleh dituliskan mulai kolom ke berapapun.
Penulisan instruksi-instruksi yang menjorok masuk beberapa
kolom tidak memiliki pengaruh apapun di dalam proses. Hal ini
hanya dimaksudkan untuk mempermudah pembacaan atau
dokumentasi program, sehingga akan lebih terlihat bagian-
bagiannya.

S1 Teknik Informatika-Unijoyo 13

Tabel Translasi
• Notasi Algoritma ke dalam Notasi Bahasa Pascal
• Notasi Algoritma Pengisian Nilai, Pembacaan dan
Penulisan ke dalam Notasi Bahasa Pascal
• Notasi Algoritma Struktur Penyeleksian ke dalam
Notasi Bahasa Pascal
• Notasi Algoritma Struktur Pengulangan ke dalam
Notasi Bahasa Pascal
• Notasi Algoritma Prosedur ke dalam Notasi Bahasa
Pascal
• Notasi Algoritma Fungsi ke dalam Notasi Bahasa
Pascal

S1 Teknik Informatika-Unijoyo 14

7
Notasi Algoritma ke dalam Notasi Bahasa Pascal [1]

Kelompok Algoritmik Pascal Ket.


1. Tipe Dasar boolean boolean
integer byte 1 byte
shortint 1 byte
word 2 byte
integer 2 byte
longint 4 byte
real real
double
extended
char Char
string String
String[n]
record record
<field1: type, field1: type;
field2: type, field2: type;
. . . . . .
fieldN: type fieldN: type;
> end;
S1 Teknik Informatika-Unijoyo 15

Notasi Algoritma ke dalam Notasi Bahasa


Pascal [2]
Kelompok Algoritmik Pascal Ket.
2. Operator
a. Aritmatika + +
− −
* *
/ /
div div
mod mod
b. Perbandingan < <
≤ <=
> >
≥ >=
= =
<>

c. Logika not not
and and
or or
xor xor
3. Komentar { komentar } { komentar }
(* komentar *)
4. Lain-lain const const
type type
true true
false false
S1 Teknik Informatika-Unijoyo 16

8
Notasi Algoritma Pengisian Nilai, Pembacaan dan
Penulisan ke dalam Notasi Bahasa Pascal

Kelompok Algoritmik Pascal


1. Penugasan ← :=
2. Pembacaan read read
readln

3. Penulisan write write


writeln

read : Membaca masukan dari keyboard, kursor tetap di baris yang sama
readln : Membaca masukan dari keyboard, lalu kursor pindah ke baris berikutnya
write : Menulis keluaran ke layar, kursor tetap di baris yang sama
writeln : Menulis keluaran ke layar, lalu kursor pindah ke baris berikutnya

S1 Teknik Informatika-Unijoyo 17

Struktur Algoritmik Pascal


1. IF-THEN if <kondisi> then if <kondisi> then
Notasi Algoritma aksi begin
endif aksi1;
Struktur Pemilihan aksi2;
ke dalam Notasi .
.
Bahasa Pascal aksiN
end; (*if*)

2. IF-THEN-ELSE if <kondisi> then if <kondisi> then


aksi1 aksi1
else else
aksi2 aksi2;
endif (*endif*)
3. CASE case nama Cara 1:
<kond1> : aksi1 case nama of
<kond1> : aksi1 nilai1 : aksi1;
. nilai2 : aksi1;
. .
.
<kondN> : aksiN
nilaiN : aksiN;
[otherwise aksiX]
[else aksiX]
endcase
end;
Cara 2:
if kond1 then
aksi1
else
if kond2 then
aksi2
else
...
S1 Teknik Informatika-Unijoyo 18

9
Struktur Algoritmik Pascal
1. FOR For menaik: For menaik:
for pencacah←a to b do for pencacah:=a to b do
aksi begin
endfor aksi1;
aksi2;
.
.
aksiN;
Notasi end; (*for*)

Algoritma For menurun: For menurun:


for pencacah←b downto a do for pencacah:=b dowmto a do
Struktur aksi begin
Pengulangan endfor aksi1;
aksi2;
ke dalam .
.
Notasi Bahasa aksiN;
end; (*for*)
Pascal
2. WHILE while kondisi do while kondisi do
aksi begin
endwhile aksi1;
aksi2;
.
.
aksiN;
end; (*while*)

3. REPEAT repeat repeat


aksi aksi;
until kondisi until kondisi;
S1 Teknik Informatika-Unijoyo 19

Notasi Algoritma Prosedur ke dalam Notasi Bahasa


Pascal

• Prosedur Tanpa Parameter


• Prosedur dengan Parameter Masukan
• Prosedur dengan Parameter Keluaran
• Prosedur dengan Parameter Masukan/Keluaran

S1 Teknik Informatika-Unijoyo 20

10
Prosedur Tanpa Parameter

ALGORITMA PASCAL
procedure NAMA_PROSEDUR procedure NAMA_PROSEDUR;
{ Spesifikasi Prosedur, { Spesifikasi Prosedur, menyebutkan
menyebutkan nama, parameter, nama, parameter, kondisi awal,
kondisi awal, kondisi akhir dan kondisi akhir dan proses }
proses } { Kondisi awal : keadaan sebelum
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
prosedur dilaksanakan } { Kondisi akhir : keadaan setelah
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
prosedur dilaksanakan } (* DEKLARASI *)
DEKLARASI { Semua nama yang dipakai prosedur
{ Semua nama yang dipakai prosedur didefinisikan di sini dan hanya
didefinisikan di sini dan hanya berlaku lokal }
berlaku lokal } (* DESKRIPSI *)
DESKRIPSI : begin
{ badan prosedur, berisi semua { badan prosedur, berisi semua
langkah atau aksi algoritma } langkah atau aksi }
end;
Cara memanggil prosedur:
NAMA_PROSEDUR;
S1 Teknik Informatika-Unijoyo 21

Prosedur dengan Parameter Masukan

ALGORITMA PASCAL
procedure NAMA_PROSEDUR (input procedure NAMA_PROSEDUR(parameter :
parameter : tipe_param) tipe_param);
{ Spesifikasi Prosedur, menyebutkan { Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal, nama, parameter, kondisi awal,
kondisi akhir dan proses } kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum { Kondisi awal : keadaan sebelum
prosedur dilaksanakan } prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah { Kondisi akhir : keadaan setelah
prosedur dilaksanakan } prosedur dilaksanakan }
DEKLARASI (* DEKLARASI *)
{ Semua nama yang dipakai prosedur { Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya didefinisikan di sini dan hanya
berlaku lokal } berlaku lokal }
DESKRIPSI : (* DESKRIPSI *)
{ badan prosedur, berisi semua begin
langkah atau aksi algoritma } { badan prosedur, berisi semua
langkah atau aksi }
end;
Cara memanggil prosedur:
NAMA_PROSEDUR(parameter_aktual);
S1 Teknik Informatika-Unijoyo 22

11
Prosedur dengan Parameter Keluaran

ALGORITMA PASCAL
procedure NAMA_PROSEDUR (output procedure NAMA_PROSEDUR(var parameter
parameter : tipe_param) : tipe_param);
{ Spesifikasi Prosedur, menyebutkan { Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal, nama, parameter, kondisi awal,
kondisi akhir dan proses } kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum { Kondisi awal : keadaan sebelum
prosedur dilaksanakan } prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah { Kondisi akhir : keadaan setelah
prosedur dilaksanakan } prosedur dilaksanakan }
DEKLARASI (* DEKLARASI *)
{ Semua nama yang dipakai prosedur { Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya didefinisikan di sini dan hanya
berlaku lokal } berlaku lokal }
DESKRIPSI : (* DESKRIPSI *)
{ badan prosedur, berisi semua begin
langkah atau aksi algoritma } { badan prosedur, berisi semua
langkah atau aksi }
end;
Cara memanggil prosedur:
NAMA_PROSEDUR(parameter_aktual);
S1 Teknik Informatika-Unijoyo 23

Prosedur dengan Parameter Masukan/Keluaran

ALGORITMA PASCAL
procedure NAMA_PROSEDUR procedure NAMA_PROSEDUR(var parameter
(input/output parameter : : tipe_param);
tipe_param) { Spesifikasi Prosedur, menyebutkan
{ Spesifikasi Prosedur, menyebutkan nama, parameter, kondisi awal,
nama, parameter, kondisi awal, kondisi akhir dan proses }
kondisi akhir dan proses } { Kondisi awal : keadaan sebelum
{ Kondisi awal : keadaan sebelum prosedur dilaksanakan }
prosedur dilaksanakan } { Kondisi akhir : keadaan setelah
{ Kondisi akhir : keadaan setelah prosedur dilaksanakan }
prosedur dilaksanakan } (* DEKLARASI *)
DEKLARASI { Semua nama yang dipakai prosedur
{ Semua nama yang dipakai prosedur didefinisikan di sini dan hanya
didefinisikan di sini dan hanya berlaku lokal }
berlaku lokal } (* DESKRIPSI *)
DESKRIPSI : begin
{ badan prosedur, berisi semua { badan prosedur, berisi semua
langkah atau aksi algoritma } langkah atau aksi }
end;
Cara memanggil prosedur:
NAMA_PROSEDUR(parameter_aktual);
S1 Teknik Informatika-Unijoyo 24

12
Notasi Algoritma Fungsi ke dalam Notasi Bahasa
Pascal

ALGORITMA PASCAL
function NAMA_FUNGSI (input daftar function NAMA_FUNGSI(daftar
parameter formal)→tipe_hasil parameter formal) : tipe_hasil;
{ Spesifikasi Fungsi, menjelaskan { Spesifikasi Fungsi, menjelaskan
apa yang dilakukan dan apa yang dilakukan dan
dikembalikan oleh fungsi } dikembalikan oleh fungsi }
DEKLARASI (* DEKLARASI *)
{ Semua nama yang dipakai fungsi { Semua nama yang dipakai fungsi
didefinisikan di sini dan hanya didefinisikan di sini dan hanya
berlaku lokal } berlaku lokal }
DESKRIPSI : (* DESKRIPSI *)
{ badan fungsi, berisi semua langkah begin
atau aksi algoritma untuk { badan fungsi, berisi semua langkah
menghasilkan nilai yang akan atau aksi algoritma untuk
dikembalikan } menghasilkan nilai yang akan
return hasil { pengembalian nilai dikembalikan }
yang dihasilkan fungsi } NAMA_FUNGSI:=hasil; { pengembalian
nilai yang dihasilkan fungsi }
end;

S1 Teknik Informatika-Unijoyo 25

Summary
• Teks algoritma adalah hasil pemikiran yang konseptual. Agar
dapat dilaksanakan oleh komputer maka algoritma harus
ditranslasi ke dalam notasi bahasa pemrograman.
• JUDUL algoritma adalah bagian algoritma yang terdiri dari nama
dan penjelasan (spesifikasi) tentang algoritma tersebut
• DEKLARASI adalah tempat untuk mendefinisikan nama tipe,
nama konstanta, nama informasi/peubah (nama variabel), nama
fungsi (sekaligus spesifikasinya) dan nama prosedur (sekaligus
spesifikasinya)
• DESKRIPSI merupakan uraian langkah-langkah penyelesaian
masalah. Setiap langkah algoritma dibaca dengan urutan dari
“atas” ke “bawah”. Urutan penulisan ini akan menentukan urutan
pelaksanaan perintah.
S1 Teknik Informatika-Unijoyo 26

13
Daftar Pustaka

Andri Kristanto [2003]. Algoritma dan Pemrograman


dengan C++, Yogyakarta: Graha Ilmu.
Jogiyanto HM [1989]. Turbo Pascal, Yogyakarta: Andi
Offset.
Noor Ifada [2005]. Diktat Matakuliah Algoritma
Pemrograman (Hibah Kompetisi A1), Bangkalan:
Jurusan Teknik Informatika, Universitas Trunojoyo.
Rinaldi Munir [2003]. Algoritma dan Pemrograman
dengan Pascal dan C edisi Kedua, Bandung: Informatika.

S1 Teknik Informatika-Unijoyo 27

14

Anda mungkin juga menyukai