Dokumen tersebut membahas tentang algoritma pemrograman pada pertemuan ke-2. Terdiri dari beberapa bagian utama yaitu pendahuluan, judul algoritma, deklarasi, deskripsi, dan translasi teks algoritma ke bahasa pemrograman Pascal. Dokumen ini menjelaskan konsep-konsep dasar algoritma pemrograman seperti struktur, pengulangan, pemilihan, serta cara-cara menuliskan algoritma dan mengubahnya ke dalam bahasa pemro
2. Sub Pokok Bahasan
Pendahuluan
Judul Algoritma
Deklarasi
Deskripsi
Translasi Teks Algoritma ke dalam Teks
Program Bahasa Pascal
Tabel Translasi
S1 Teknik Informatika - Unijoyo 2
3. 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)
• Di sini 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
4. • Bagian-bagian (blok) dalam teks algoritma:
– bagian judul (header) algoritma
– bagian deklarasi
– bagian 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 }
• Setiap bagian disertai dengan komentar untuk memperjelas maksud
teks yang dituliskan. Komentar adalah kalimat yang diapit oleh
pasangan tanda kurung kurawal (‘{‘ dan ‘}’).
S1 Teknik Informatika - Unijoyo 4
5. Judul Algoritma
• Judul algoritma adalah terdiri dari nama dan penjelasan (spesifikasi)
tentang algoritma tersebut
• Nama algoritma yang digunakan sebaiknya singkat akan tetapi sudah
dapat menggambarkan apa yang dilakukan oleh algoritma tersebut.
Biasanya di bawah nama algoritma diberi penjelasan singkat mengenai
apa yang dilakukan oleh algoritma. Penjelasan semacam ini sering kali
disebut sebagai 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
6. Deklarasi
• DEKLARASI adalah merupakan tempat untuk mendefinisikan berbagai
macam nama, yaitu:
– Nama tipe
– Nama konstanta
– Nama informasi/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.
• Dalam pendefinisian nama-nama, ada ketentuan-ketentuan yang harus
diperhatikan:
– 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
7. 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
S1 Teknik Informatika - Unijoyo 7
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 }
8. • Dalam bahasa pemrograman, setiap nama memiliki aturan
penulisan atau sintaks tertentu, misalnya aturan yang
menyangkut karakter yang diperbolehkan, jumlah
maksimum karakter, dan sebagainya. Di dalam teks
algoritma, tidak terdapat aturan ketat mengenai nama. Hal
yang perlu diperhatikan adalah bahwa pemilihan nama
harus tidak menimbulkan kerancuan dan jika nama yang
digunakan adalah singkat maka harus disertai dengan
penjelasannya. Sebuah nama harus dituliskan secara utuh
dan tidak boleh dipisahkan dengan spasi.
• Deklarasi global atau umum dikenal untuk seluruh
program sedangkan deklarasi lokal hanya dikenal pada
teks algoritma tempat deklarasi tersebut dituliskan.
S1 Teknik Informatika - Unijoyo 8
9. Deskripsi
• DESKRIPSI adalah bagian inti dari algoritma. Bagian ini berisi
instruksi-instruksi atau pemanggilan aksi-aksi yang telah didefinisikan.
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 9
10. Translasi Teks Algoritma ke dalam
Teks Program Bahasa C
• Teks algoritma adalah hasil pemikiran yang konseptual. Agar dapat
dilaksanakan oleh komputer maka algoritma harus ditranslasi ke dalam notasi
bahasa pemrograman.
• Struktur program C juga terdiri dari tiga bagian:
– Judul Program sifatnya adalah optional dan tidak signifikan di dalam program.
Jika dituliskan dapat digunakan untuk memberi nama program dan sifatnya sebagai
dokumentasi saja. Judul program jika ditulis, harus terletak 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 terlebih dahulu sebelum digunakan, yaitu
dideklarasikan terlebih dahulu di dalam bagian ini.
– 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 (‘.’). Yang perlu diperhatikan bahwa setiap instruksi per barisnya diakhiri
dengan tanda baca titik koma (‘;’).
S1 Teknik Informatika - Unijoyo 10
11. 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
S1 Teknik Informatika - Unijoyo 11
dituliskan di sini }
12. • Contoh translasi dari teks algoritma ke teks bahasa
pemrograman C untuk mendapatkan hasil sebagai berikut:
S1 Teknik Informatika - Unijoyo 12
012345
• Untuk mendapatkan hasil seperti di atas, pada bagian
deskripsi digunakan instruksi dengan struktur pengulangan
While-Do
13. ALGORITMA
Algoritma PENAMBAHAN_SATU
{ Menampilkan penambahan satu dari
suatu bilangan bulat, dimulai dari
0 sampai dengan 5 }
DEKLARASI
I : integer { peubah data bilangan
S1 Teknik Informatika - Unijoyo 13
bulat }
DESKRIPSI:
I ¬ 0
while I £ 5 do
write(I)
I¬I + 1
endwhile
{ I > 5 }
14. Beberapa hal penting yang harus diketahui dari bahasa Pascal:
• Bahasa C membedakan nama yang ditulis dalam huruf besar
ataupun huruf kecil. Jadi Bahasa C bersifat case sensitive.
Misalnya:
– I tidak sama saja dengan i
– penambahan_satu berbeda dengan PENAMBAHAN_SATU
• Komentar ditulis di antara tanda “/*” dan “*/”
• Program C tidak mengenal aturan penulsian 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 14
15. Tabel Translasi
• Notasi Algoritma
• Notasi Algoritma Pengisian Nilai, Pembacaan dan
Penulisan
• Notasi Algoritma Struktur
• Notasi Algoritma Struktur Pengulangan
• Notasi Algoritma Prosedur
• Notasi Algoritma Fungsi
S1 Teknik Informatika - Unijoyo 15
16. Notasi Algoritma ke dalam Notasi Bahasa Pascal
Kelompok Algoritmik Pascal C
1. Tipe Dasar boolean boolean boolean
integer Byte (1 byte)
Shortint (1 byte)
Word (2 byte)
Integer (2 byte)
Longint (1 byte)
Short int
integer
Long int
Signed int
Unsigned int
real real
double
extended
Float
double
char Char char
string String
String[n]
-
S1 Teknik Informatika - Unijoyo 16
record
<field1: type,
field2: type,
. . .
fieldN: type
>
record
field1: type;
field2: type;
. . .
fieldN: type;
end;
Struct {
Type field1;
Type field2;
...
Type fieldN;
}
17. Kelompok Algoritmik Pascal C
S1 Teknik Informatika - Unijoyo 17
2. Operator
a. Aritmatika +-
*/
div
mod
+-
*/
div
mod
+-
*/
%
b. Perbandingan <£
>³
=¹
<
<=
>
>=
=
<>
<
<=
>
>=
=
!=
c. Logika not
and
or
xor
not
and
or
xor
!
&&
||
^
3. Komentar { komentar } { komentar }
(* komentar *)
// 1 baris
/* komentar */
4. Lain-lain const
type
true
false
const
type
true
false
const
typedef
true
false
18. Notasi Algoritma Pengisian Nilai, Pembacaan dan
Penulisan ke dalam Notasi Bahasa Pascal dan C
Kelompok Algorit
mik
Pascal C
1. Penugasan ¬ := =
2. Pembacaan read read
readln
Cin
Scanf
3. Penulisan write write
writeln
cout
printf
read : Membaca masukan dari keyboard, kursor tetap di baris yang sama
Readln/scanf/cin : Membaca masukan dari keyboard, kursor kemudian pindah ke baris berikutnya
Write/cout/printf : Menulis keluaran ke layar, kursor tetap di baris yang sama
writeln : Menulis keluaran ke layar, kursor kemudian pindah ke baris berikutnya
S1 Teknik Informatika - Unijoyo 18
19. 19
Notasi Algoritma Struktur Pemilihan ke dalam Notasi Bahasa Pascal + C
Struktur Algoritmik Pascal C
1. IF-THEN if <kondisi> then
aksi
endif
if <kondisi> then
begin
aksi1;
aksi2;
..
aksiN
end; (*if*)
if <kondisi>
{
aksi1;
aksi2;
..
aksiN
}(*if*)
2. IF-THEN-ELSE
if <kondisi> then
aksi1
else
aksi2
endif
if <kondisi> then
aksi1
else
aksi2;
(*endif*)
if <kondisi>
aksi1
else
aksi2;
(*endif*)
3. CASE case nama
<kond1> : aksi1
<kond1> : aksi1
.
.
<kondN> : aksiN
[otherwise aksiX]
endcase
Cara 1:
case nama of
nilai1 : aksi1;
nilai2 : aksi1;
..
nilaiN : aksiN;
[else aksiX]
end;
Cara 2:
if kond1 then
aksi1
else
if kond2 then
aksi2
else
...
Cara 1:
switch (nama)
{
Case nilai1: aksi1; break;
Case nilai2 : aksi1; break;
...
Case nilaiN : aksiN; break;
[default: aksi_df;
}
Cara 2:
if kond1 then
aksi1
else
if kond2 then
aksi2
else
...
20. Notasi Algoritma Struktur Pengulangan ke dalam Notasi Bahasa Pascal + C
Struktur Algoritmik Pascal C
1. FOR For menaik:
S1 Teknik Informatika - Unijoyo 20
for pencacah¬a
to b do
aksi
endfor
For menaik:
for pencacah:=a to b do
begin
aksi1;
aksi2;
...
aksiN;
end; (*for*)
For menaik:
for (x:=a; x<=b; x++) // a>b
{
aksi1;
aksi2;
...
aksiN;
}(*for*)
For menurun:
for pencacah¬b
downto a do
aksi
endfor
For menurun:
for pencacah:=b dowmto a do
begin
aksi1;
aksi2;
....
aksiN;
end; (*for*)
For menurun:
for (x:=a; x>=b; x--) // a>b
{
aksi1;
aksi2;
....
aksiN;
} (*for*)
2. WHILE while kondisi do
aksi
endwhile
while kondisi do
begin
aksi1;
aksi2;
....
aksiN;
end; (*while*)
while (kondisi)
{
aksi1;
aksi2;
....
aksiN;
} (*while*)
3. REPEAT repeat
aksi
until kondisi
repeat
aksi;
until kondisi;
do
{
aksi;
}
while (kondisi);
21. Notasi Algoritma Prosedur
• Prosedur Tanpa Parameter
• Prosedur dengan Parameter Masukan
• Prosedur dengan Parameter Keluaran
• Prosedur dengan Parameter Masukan/Keluaran
S1 Teknik Informatika - Unijoyo 21
22. Prosedur Tanpa Parameter
ALGORITMA
procedure NAMA_PROSEDUR
{ Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal,
kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum
S1 Teknik Informatika - Unijoyo 22
prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah
prosedur dilaksanakan }
DEKLARASI
{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya
berlaku lokal }
DESKRIPSI :
{ badan prosedur, berisi semua
langkah atau aksi algoritma }
Cara memanggil prosedur:
NAMA_PROSEDUR;
23. Prosedur dengan Parameter Masukan
ALGORITMA
procedure NAMA_PROSEDUR(input
S1 Teknik Informatika - Unijoyo 23
parameter : tipe_param)
{ Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal,
kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum
prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah
prosedur dilaksanakan }
DEKLARASI
{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya
berlaku lokal }
DESKRIPSI :
{ badan prosedur, berisi semua langkah
atau aksi algoritma }
Cara memanggil prosedur:
NAMA_PROSEDUR(parameter_aktual);
24. Prosedur dengan Parameter Keluaran
ALGORITMA
procedure NAMA_PROSEDUR(output
S1 Teknik Informatika - Unijoyo 24
parameter : tipe_param)
{ Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal,
kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum
prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah
prosedur dilaksanakan }
DEKLARASI
{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya
berlaku lokal }
DESKRIPSI :
{ badan prosedur, berisi semua langkah
atau aksi algoritma }
Cara memanggil prosedur:
NAMA_PROSEDUR(parameter_aktual);
25. Prosedur dengan Parameter Masukan/Keluaran
ALGORITMA
procedure NAMA_PROSEDUR(input/output
S1 Teknik Informatika - Unijoyo 25
parameter : tipe_param)
{ Spesifikasi Prosedur, menyebutkan
nama, parameter, kondisi awal,
kondisi akhir dan proses }
{ Kondisi awal : keadaan sebelum
prosedur dilaksanakan }
{ Kondisi akhir : keadaan setelah
prosedur dilaksanakan }
DEKLARASI
{ Semua nama yang dipakai prosedur
didefinisikan di sini dan hanya
berlaku lokal }
DESKRIPSI :
{ badan prosedur, berisi semua langkah
atau aksi algoritma }
Cara memanggil prosedur:
NAMA_PROSEDUR(parameter_aktual);
26. Notasi Algoritma
ALGORITMA
function NAMA_FUNGSI(input daftar
parameter formal)®tipe_hasil
{ Spesifikasi Fungsi, menjelaskan apa
yang dilakukan dan dikembalikan oleh
fungsi }
DEKLARASI
{ Semua nama yang dipakai fungsi
didefinisikan di sini dan hanya
berlaku lokal }
DESKRIPSI :
{ badan fungsi, berisi semua langkah
atau aksi algoritma untuk
menghasilkan nilai yang akan
dikembalikan }
return hasil { pengembalian nilai yang
S1 Teknik Informatika - Unijoyo 26
dihasilkan fungsi }
27. 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 bagian dari teks algoritma yang merupakan 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 27
28. Daftar Pustaka
• Andri Kristanto [2003]. Algoritma dan Pemrograman
dengan C++, Graha Ilmu, Yogyakarta.
• Jogiyanto HM [1989]. Turbo Pascal, Andi Offset,
S1 Teknik Informatika - Unijoyo 28
Yogyakarta.
• Noor Ifada [2005]. Diktat Matakuliah Algoritma
Pemrograman, Hibah Kompetisi A1, Jurusan Teknik
Informatika, Universitas Trunojoyo.
• Rinaldi Munir [2003]. Algoritma dan Pemrograman
dengan Pascal dan C edisi Kedua, Penerbit Informatika,
Bandung.