Anda di halaman 1dari 25

Algoritma Pemrograman

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

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).
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

• 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

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

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.

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]

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;
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
16
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

17
Struktur Algoritmik Pascal

Notasi Algoritma 1. IF-THEN if <kondisi> then if <kondisi> then


aksi begin
Struktur endif aksi1;
Pemilihan ke aksi2;
.
dalam Notasi .
aksiN
Bahasa Pascal end; (*if*)

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


ELSE 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
...
18
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:
Struktur for pencacah←b downto a do for pencacah:=b dowmto a do
Pengulangan aksi begin
endfor aksi1;
ke dalam aksi2;
.
Notasi .
aksiN;
Bahasa end; (*for*)
Pascal 2. WHILE while kondisi do while kondisi do
aksi begin
endwhile aksi1;
aksi2;
.
.
aksiN;
end; (*while*)

3. repeat repeat
REPE aksi aksi;
AT until kondisi until kondisi;
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

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

Anda mungkin juga menyukai