Pertemuan Ke-2
(Teks Algoritma)
1
Sub Pokok Bahasan
Pendahuluan
Judul Algoritma
Deklarasi
Deskripsi
Translasi Teks Algoritma ke dalam
Teks Program Bahasa Pascal
Tabel Translasi
2
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.
3
Pendahuluan - contd
Keterangan:
Pasangan tanda kurung kurawal („{„ dan „}‟) digunakan untuk
memberikan komentar (untuk memperjelas maksud teks yang
dituliskan).
4
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 }
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).
6
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 }
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
8
Translasi Teks Algoritma ke
dalam Teks Program Bahasa
Pascal
Struktur program Pascal juga terdiri dari tiga bagian:
• 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 („;‟).
• 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.
• 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
(„;‟).
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}
(* DEKLARASI *)
apa yang dilakukan oleh
[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}
(* DESKRIPSI *)
algoritma dituliskan di
begin
sini} {semua instruksi program dituliskan di sini}
end.
10
Translasi… - contd
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.
12
Translasi - contd
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
14
Notasi Algoritma ke dalam Notasi Bahasa Pascal
[1]
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
17
Struktur Algoritmik Pascal
3. repeat repeat
REPE aksi aksi;
AT until kondisi until kondisi;
19
Notasi Algoritma Prosedur ke dalam Notasi
Bahasa Pascal
20
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 kondisi akhir dan proses }
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 berlaku lokal }
hanya 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;
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);
22
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);
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);
24
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;
25