Anda di halaman 1dari 12

Algoritma Pemrograman

Pertemuan Ke-2
(Teks Algoritma)

Sub Pokok Bahasan


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

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.

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 fungs
DESKRIPSI :
{ Semua langkah atau aksi algoritma dituliskan di sini }

Setiap bagian disertai dengan komentar untuk memperjelas maksud teks yang dituliskan. Komentar adalah ka
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}

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
Deklarasi
Semua nama tersebut baru dapat digunakan jika telah didefinisikan di dalam DEKLARASI. Penulisan sekumpulan nama dalam
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, k
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 }

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

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

Translasi Teks Algoritma ke dalam Teks


Program Bahasa C
Teks algoritma adalah hasil pemikiran yang konseptual. Agar dapat dilaksanakan oleh komputer maka algoritma harus ditransla
Struktur program C juga terdiri dari tiga bagian:
Judul Program à sifatnya adalah optional dan tidak signifikan di dalam program. Jika dituliskan dapat digunakan untuk memb
Bagian Deklarasi à digunakan bila di dalam program menggunakan pengenal (identifier). Identifier dapat berupa label, konstan
Bagian Deskripsi à menunjukkan suatu tindakan yang dikerjakan oleh program. Tindakan yang dilakukan oleh program tergan

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 }

BAHASA C

/* program NAMA_PROGRAM */
/* semua pendefinisian tetapan dan tipe bentukan ditulis sbg makro disini */
/* purwarupa prosedur dan fungsi didefinisikan di sini */
/* DEKLARASI */
/* semua nama peubah global didefinisikan di sini */
/* DESKRIPSI */
main()
{
/* disini juga mungkin ada DEKLARASI lokal */
/* semua instruksi program dituliskan di sini */
}

• Contoh translasi dari teks algoritma ke teks bahasa pemrograman C 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

ALGORITMA

Algoritma PENAMBAHAN_SATU
{ Menampilkan penambahan satu dari suatu bilangan bulat, dimulai dari 0 sampai
dengan 5 }
DEKLARASI
I : integer { peubah data bilangan bulat }
DESKRIPSI:
I¬0
while I £ 5 do
write(I)
I¬I + 1
endwhile
{I>5}

BAHASA C

/* program PENAMBAHAN_SATU */
/* Menampilkan penambahan satu dari suatu bilangan bulat, dimulai dari 0 sampai
dengan 5 */

/* DEKLARASI */
int I; // peubah data bilangan bulat
/* DESKRIPSI */
main()
{
I = 0;
while (I <= 5)
{
printf(“Nilai I = ”,I);
I := I + 1;
}
}

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. Misalny
i tidak sama saja dengan I
Komentar ditulis di antara tanda “/*” dan “*/”
Program C tidak mengenal aturan penulsian di kolom tertentu, jadi boleh dituliskan mulai kolom ke berapapun. Penulisan instru

Tabel Translasi
Notasi Algoritma
Notasi Algoritma Pengisian Nilai, Pembacaan dan Penulisan
Notasi Algoritma Struktur
Notasi Algoritma Struktur Pengulangan
Notasi Algoritma Prosedur
Notasi Algoritma Fungsi

Notasi Algoritma ke dalam Notasi Bahasa Pascal


Kelompok Algoritmik Pascal C
1. Tipe Dasar boolean boolean Secara khusus tidak ada
integer Byte (1 byte) Short int
Shortint (1 byte) integer
Word (2 byte) Long int
Integer (2 byte) Signed int
Longint (1 byte) Unsigned int
real real Float
double double
extended
char Char char
string String -
String[n] Char[n]
record record Struct {
<field1: type, field1: type; Type field1;
field2: type, field2: type; Type field2;
... ... ...
fieldN: type fieldN: type; Type fieldN;
> end; }

Kelompok Algoritmik Pascal C


2. Operator      
a. Aritmatika + + +
- - -
* * *
/ / /
div div
mod mod %
b. Perbandingan < < <
£ <= <=
> > >
³ >= >=
= = =
¹ <> !=
c. Logika not not !
and and &&
or or ||
xor xor Tidak ada
3. Komentar { komentar } { komentar } // 1 baris
(* komentar *) /* komentar */
4. Lain-lain const const const
type type Typedef
true true 1
false false 0

Notasi Algoritma Pengisian Nilai, Pembacaan dan Penulisan ke dalam


Notasi Bahasa Pascal dan C

Kelompok Algoritmik Pascal C


1. Penugasan ¬ := =
2. Pembacaan read read Cin
readln Scanf

3. Penulisan write write cout


writeln 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

Notasi Algoritma Struktur Pemilihan ke dalam Notasi Bahasa Pascal + C

Struktur Algoritmik Pascal C


1. IF-THEN if <kondisi> then if <kondisi> then if <kondisi>
aksi begin {
endif aksi1; aksi1;
aksi2; aksi2;
. .
. .
aksiN aksiN
end; (*if*) }(*if*)
2. IF-THEN- if <kondisi> then if <kondisi> then if <kondisi>
ELSE aksi1 aksi1 aksi1
else else else
aksi2 aksi2; aksi2;
endif (*endif*) (*endif*)
3. CASE case nama Cara 1: Cara 1:
<kond1> : aksi1 case nama of switch (nama)
<kond1> : aksi1 nilai1 : aksi1; {
. nilai2 : aksi1; Case nilai1: aksi1; break;
. . Case nilai2 : aksi1; break;
<kondN> : aksiN . ...
[otherwise aksiX] nilaiN : aksiN; Case nilaiN : aksiN; break;
endcase [else aksiX] [default: aksi_df;
end; }
Cara 2: Cara 2:
if kond1 then if kond1 then
aksi1 aksi1
else else
if kond2 then if kond2 then
aksi2 aksi2
else else
... ...

Notasi Algoritma Struktur Pengulangan ke dalam Notasi Bahasa Pascal + C


Struktur Algoritmik Pascal C
1. FOR For menaik: For menaik: For menaik:
for pencacah¬a to for pencacah:=a to b do for (x:=a; x<=b; x++) // a>b
b do begin {
aksi aksi1; aksi1;
endfor aksi2; aksi2;
... ...
aksiN; aksiN;
end; (*for*) }(*for*)
  For menurun: For menurun: For menurun:
for pencacah¬b for pencacah:=b dowmto a do for (x:=a; x>=b; x--) // a>b
downto a do begin {
aksi aksi1; aksi1;
endfor aksi2; aksi2;
.... ....
aksiN; aksiN;
end; (*for*) } (*for*)
2. WHILE while kondisi do while kondisi do while (kondisi)
aksi begin {
endwhile aksi1; aksi1;
aksi2; aksi2;
.... ....
aksiN; aksiN;
end; (*while*) } (*while*)
3. repeat repeat do
REPEAT aksi aksi; {
until kondisi until kondisi; aksi;
}
while (kondisi);

Notasi Algoritma Prosedur dan Fungsi

Prosedur Tanpa Parameter


Prosedur dengan Parameter Masukan
Fungsi dengan Parameter Masukan

Prosedur Tanpa Parameter ke dalam Notasi Bahasa C

ALGORITMA

procedure NAMA_PROSEDUR
{ 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 }

Bahasa C
Void NAMA_PROSEDUR()
/* 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 /*
}

Cara memanggil prosedur:


NAMA_PROSEDUR;

Prosedur dengan Parameter Masukan ke dalam Notasi Bahasa C

ALGORITMA

procedure NAMA_PROSEDUR(input 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 }

Bahasa C

void NAMA_PROSEDUR (tipe parameter)


/* 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 /*
}

Cara memanggil prosedur:


NAMA_PROSEDUR(parameter_aktual);
Notasi Algoritma Fungsi ke dalam Notasi Bahasa C
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 dihasilkan fungsi }

BAHASA C
Type NAMA_PROSEDUR (tipe parameter)
/* 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 /*
}

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.

Daftar Pustaka
Andri Kristanto [2003]. Algoritma dan Pemrograman dengan C++, Graha Ilmu, Yogyakarta.
Jogiyanto HM [1989]. Turbo Pascal, Andi Offset, Yogyakarta.
Noor Ifada [2005]. Diktat Matakuliah Algoritma Pemrograman, Hibah Kompetisi A1, Jurusan Teknik Info
Rinaldi Munir [2003]. Algoritma dan Pemrograman dengan Pascal dan C edisi Kedua, Penerbit Informat

Anda mungkin juga menyukai