Anda di halaman 1dari 102

PERTEMUAN 1

PENGANTAR ALGORITMA

1.1. Sejarah Algoritma

Ditinjau dari asal usul katanya kata Algoritma sendiri mempunyai sejarah yang aneh. Orang hanya 
menemukan kata Algorism yang berarti proses menghitung dengan angka arab. Anda dikatakan 
Algorist jika anda menghitung menggunakan Angka Arab. Para ahli bahasa berusaha menemukan asal 
kata ini namun hasilnya kurang memuaskan. Akhirnya para ahli sejarah matematika menemukan asal 
kata tersebut yang berasal dari nama penulis buku arab yang terkenal yaitu Abu Ja’far Muhammad Ibnu
Musa Al­Khuwarizmi. Al­Khuwarizmi dibaca orang barat menjadi Algorism. Al­Khuwarizmi menulis 
buku yang berjudul

Kitab Al Jabar Wal­Muqabala yang artinya “Buku pemugaran dan pengurangan” (The book of 
restoration and reduction).

Dari judul buku itu kita juga memperoleh akar kata “Aljabar” ( Algebra). Perubahan kata dari Algorism
menjadi Algorithm muncul karena kata Algorism sering dikelirukan dengan Arithmetic, sehingga 
akhiran sm berubah menjadi thm.

Karena perhitungan dengan angka Arab sudah menjadi hal yang biasa. Maka lambat laun kata 
Algorithm berangsur­angsur dipakai sebagai metode perhitungan (komputasi) secara umum, sehingga 
kehilangan makna kata aslinya. Dalam Bahasa Indonesia, kata Algorithm diserap menjadi Algoritma.

1.2. Konsep Algoritma dan Program

Algoritma adalah urutan langkah­langkah logis pemecahan masalah yang disusun secara sistematis dan 
logis. Logis merupakan kata kunci yang berarti kata­kata yang ditulis harus mempunyai nilai kebenaran
yang dapat digunakan untuk menentukan keputusan benar (true) atau keputusan salah (false).

Dalam beberapa konteks, algoritma adalah spesifikasi urutan langkah untuk melakukan pekerjaan 
tertentu. Pertimbangan dalam pemilihan algoritma adalah, pertama, algoritma haruslah benar. Artinya 
algoritma akan memberikan keluaran yang dikehendaki dari sejumlah masukan yang diberikan. Tidak 
peduli sebagus apapun algoritma, kalau memberikan keluaran yang salah, pastilah algoritma tersebut 
bukanlah algoritma yang baik.
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ D
Pertimbangan kedua yang harus diperhatikan adalah kita harus mengetahui seberapa baik 
hasil yang dicapai oleh algoritma tersebut. Hal ini penting terutama pada algoritma untuk 
menyelesaikan masalah yang memerlukan aproksimasi hasil (hasil yang hanya berupa 
pendekatan). Algoritma yang baik harus mampu memberikan hasil yang sedekat mungkin
dengan nilai yang sebenarnya.

Ketiga adalah efisiensi algoritma. Efisiensi algoritma dapat ditinjau dari 2 hal yaitu 
efisiensi waktu dan memori. Meskipun algoritma memberikan keluaran yang benar 
(paling mendekati), tetapi jika kita harus menunggu berjam­jam untuk mendapatkan 
keluarannya, algoritma tersebut biasanya tidak akan dipakai, setiap orang menginginkan 
keluaran yang cepat. Begitu juga dengan memori, semakin besar memori yang terpakai 
maka semakin buruklah algoritma tersebut.

Dalam kenyataannya, setiap orang bisa membuat algoritma yang berbeda untuk 
menyelesaikan suatu permasalahan, walaupun terjadi perbedaan dalam menyusun 
algoritma, tentunya kita mengharapkan keluaran yang sama. Jika terjadi demikian, carilah
algoritma yang paling efisien dan cepat.

Program adalah kumpulan pernyataan komputer, sedangkan metode dan tahapan 
sistematis dalam program adalah algoritma. Program ditulis dengan menggunakan bahasa
pemrograman. Jadi bisa disebut bahwa program adalah suatu implementasi dari bahasa 
pemrograman.

Beberapa pakar memberi formula bahwa:

Program = Algoritma + Bahasa (Struktur Data)

Bagaimanapun juga struktur data dan algoritma berhubungan sangat erat pada sebuah 
program. Algoritma yang baik tanpa pemilihan struktur data yang tepat akan membuat 
program menjadi kurang baik, demikian juga sebaliknya.

Pembuatan algoritma mempunyai banyak keuntungan di antaranya:

Pembuatan atau penulisan algoritma tidak tergantung pada bahasa pemrograman 
manapun, artinya penulisan algoritma independen dari bahasa pemrograman dan 
komputer yang melaksanakannya. 
Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa pemrograman. 

Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena 
algoritmanya sama. 

Beberapa hal yang perlu diperhatikan dalam membuat algoritma:

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ E


Teks algoritma berisi deskripsi langkah­langkah penyelesaian masalah. Deskripsi tersebut
dapat ditulis dalam notasi apapun asalkan mudah dimengerti dan dipahami. 

Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi bahasa 
pemrograman. Notasi yang digunakan dalam menulis algoritma disebut notasi algoritmik.

Setiap orang dapat membuat aturan penulisan dan notasi algoritmik sendiri. Hal ini 
dikarenakan teks algoritma tidak sama dengan teks program. Namun, supaya notasi 
algoritmik mudah ditranslasikan ke dalam notasi bahasa pemrograman tertentu, maka 
sebaiknya notasi algoritmik tersebut berkorespondensi dengan notasi bahasa 
pemrograman secara umum. 

Notasi algoritmik bukan notasi bahasa pemrograman, karena itu pseudocode dalam notasi
algoritmik tidak dapat dijalankan oleh komputer. Agar dapat dijalankan oleh komputer, 
pseudocode dalam notasi algoritmik harus ditranslasikan atau diterjemahkan ke dalam 
notasi bahasa pemrograman yang dipilih. Perlu diingat bahwa orang yang menulis 
program sangat terikat dalam aturan tata bahasanya dan spesifikasi mesin yang 
menjalannya. 

Algoritma sebenarnya digunakan untuk membantu kita dalam mengkonversikan suatu 
permasalahan ke dalam bahasa pemrograman. 

Algoritma merupakan hasil pemikiran konseptual, supaya dapat dilaksanakan oleh 
komputer, algoritma harus ditranslasikan ke dalam notasi bahasa pemrograman. Ada 
beberapa hal yang harus diperhatikan pada translasi tersebut, yaitu: 

Pendeklarasian variabel 

Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam penggunaan bahasa 
pemrograman apabila tidak semua bahasa pemrograman membutuhkannya. 

Pemilihan tipe data 

Apabila bahasa pemrograman yang akan digunakan membutuhkan pendeklarasian 
variabel maka perlu hal ini dipertimbangkan pada saat pemilihan tipe data. 

Pemakaian instruksi­instruksi 
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ F
Beberapa instruksi mempunyai kegunaan yang sama tetapi masingmasing

memiliki kelebihan dan kekurangan yang berbeda.

Aturan sintaksis 

Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam bahasa 
pemrograman yang akan digunakan. 

Tampilan hasil 

Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang akan disajikan. 
Hal­hal teknis ini diperhatikan ketika mengkonversikannya menjadi program. 

Cara pengoperasian compiler atau interpreter. 

Bahasa pemrograman yang digunakan termasuk dalam kelompok compiler atau 
interpreter. 

1.3. Algoritma Merupakan Jantung Ilmu Informatika

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu 
komputer yang mengarah ke dalam terminologi algoritma. Namun, jangan beranggapan 
algoritma selalu identik dengan ilmu komputer saja. Dalam kehidupan sehari­hari pun 
banyak terdapat proses yang dinyatakan dalam suatu algoritma. Cara­cara membuat kue 
atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma. 
Pada setiap resep selalu ada urutan langkah­langkah membuat masakan. Bila langkah­
langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibu­ibu yang 
mencoba suatu resep masakan akan membaca satu per satu langkah­langkah 
pembuatannya lalu ia mengerjakan proses sesuai yang ia baca. Secara umum, pihak 
(benda) yang mengerjakan proses disebut pemroses (processor). Pemroses tersebut dapat 
berupa manusia, komputer, robot atau alat­alat elektronik lainnya. Pemroses melakukan 
suatu proses dengan melaksanakan atau “mengeksekusi” algoritm a yang menjabarkan 
proses tersebut.

Algoritma adalah deskripsi dari suatu pola tingkah laku yang dinyatakan secara primitif 
yaitu aksi­aksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan 
sebelumnya bahwa aksi­aksi tersebut dapat kerjakan sehingga dapat menyebabkan 
kejadian. Melaksanakan algoritma berarti mengerjakan langkah­langkah di dalam 
algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan
kepadanya. Juru masak membuat kue

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ G


berdasarkan resep yang diberikan kepadanya, pianis memainkan lagu berdasarkan papan 
not balok. Karena itu suatu algoritma harus dinyatakan dalam bentuk yang dapat 
dimengerti oleh pemroses. Jadi suatu pemroses harus:

Mengerti setiap langkah dalam algoritma. 

Mengerjakan operasi yang bersesuaian dengan langkah tersebut. Contoh Algoritma 
membuat secangkir kopi. 

Siapkan Gelas, Kopi, Gula, sendok  dan Air  Panas 

Masukan kopi, gula kedalam gelas 

Tuangkan Air Panas kedalam gelas 

Aduk kopi, gula, dan air panas dengan sendok sampai larut 

Kopi siap dinikmati 

1.4. Mekanisme Pelaksanaan Algoritma oleh Pemroses

Komputer hanyalah salah satu pemroses. Agar dapat dilaksanakan oleh komputer, 
algoritma harus ditulis dalam notasi bahasa pemrograman sehingga dinamakan program. 
Jadi program adalah perwujudan atau implementasi teknis algoritma yang ditulis dalam 
bahasa pemrograman tertentu sehingga dapat dilaksanakan oleh komputer. Kata 
“algoritma” dan “program” seringkal i dipertukarkan dalam penggunaannya. Misalnya 
ada orang yang berkata seperti ini: “program pengurutan data menggunakan algoritma 
selection sort”. Atau pertanyaan seperti ini: “bagaimana algoritma dan program 
menggambarkan g rafik tersebut?”. Jika Anda sudah memahami pengertian algoritma 
yang s udah disebutkan sebelum ini, Anda dapat membedakan arti kata algoritma dan 
program. Algoritma adalah langkah­langkah penyelesaikan masalah, sedangkan program 
adalah realisasi algoritma dalam bahasa pemrograman.

Program ditulis dalam salah satu bahasa pemrograman dan kegiatan membuat program 
disebut pemrograman (programming). Orang yang menulis program disebut 
pemrogram (programmer). Tiap­tiap langkah di dalam program disebut pernyataan 
atau instruksi. Jadi, program tersusun atas sederetan instruksi. Bila suatu instruksi 
dilaksanakan, maka operasioperasi yang bersesuaian dengan instruksi tersebut dikerjakan 
komputer.

Secara garis besar komputer tersusun atas empat komponen utama yaitu, piranti masukan,
piranti keluaran, unit pemroses utama, dan memori. Unit

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ H


pemroses utama (Central Processing Unit – CPU) adalah “otak” komputer, yang 
berfungsi mengerjakan operasi­operasi dasar seperti operasi perbandingan, operasi 
perhitungan, operasi membaca, dan operasi menulis. Memori adalah komponen yang 
berfungsi menyimpan atau mengingatingat. Yang disimpan di dalam memori adalah 
program (berisi operasioperasi yang akan dikerjakan oleh CPU) dan data atau informasi 
(sesuatu yang diolah oleh operasi­operasi). Piranti masukan dan keluaran (I/O devices) 
adalah alat yang memasukkan data atau program ke dalam memori, dan alat yang 
digunakan komputer untuk mengkomunikasikan hasil­hasil aktivitasnya. Contoh piranti 
masukan antara lain, papan kunci (keyboard), pemindai (scanner), dan cakram (disk). 
Contoh piranti keluaran adalah, layar peraga (monitor), pencetak (printer), dan cakram.

Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mula­mula
program dimasukkan ke dalam memori komputer. Ketika program dilaksanakan 
(execute), setiap instruksi yang telah tersimpan di dalam memori dikirim ke CPU. CPU 
mengerjakan operasi operasi yang bersesuaian dengan instruksi tersebut. Bila suatu 
operasi memerlukan data, data dibaca dari piranti masukan, disimpan di dalam memori 
lalu dikirim ke CPU untuk operasi yang memerlukannya tadi. Bila proses menghasilkan 
keluaran atau informasi, keluaran disimpan ke dalam memori, lalu memori menuliskan 
keluaran tadi ke piranti keluaran (misalnya dengan menampilkannya di layar monitor).
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ I
PERTEMUAN 2

STRUKTUR DASAR ALGORITMA DAN PROGRAM FLOWCHART

2.1. Struktur Penulisan Algoritma

Struktur dasar penulisan algoritma terdiri dari tiga bagian yaitu :

Judul 

Digunakan untuk menulis komentar mengenai algoritma seperti : cara kerja program 
kondisi awal dan kondisi akhir algoritma. 

Kamus 

Digunakan untuk mendefinisikan nama konstanta, nama type, nama variable, nama 
prosedur dan nama fungsi yang digunakan dalam algoritma. 

Algoritma 

Digunakan untuk menuliskan algoritma dalam menyelesaikan masalah secara terstruktur. 

Ketiga bagian algoritma diatas dapat dituliskan dengan struktur :

Algoritma NamaAlgoritma Deklarasi

[ Const
NamaKonstatnta = Nilai ]
[ Type
NamaType = Type Baru
.
.
End]
[ Var
Namavariabel : Typedata]
[ Procedure/Function NamaModul [(Parameter)] [var

Namavar : Type]
Begin
.
.

End ] Algoritma :
. Input
. Proses
. Output

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ J


2.2. Constanta, Variabel dan Type Data

Constanta adalah data yang nilainya tidak dapat berubah walaupun ada operasi selama 
proses eksekusi.

Variabel adalah data yang nilainya dapat berubah karena ada operasi selama proses 
eksekusi.

Aturan penamaan variabel dan constanta :

Diawali dengan huruf 

Diikuti huruf, angka 

- Diantara character tidak dapat menggunakan Spesial character kecuali under score
(_)

Contoh :

A, A1, A2b, A_B, Pi

Type Data digunakan untuk menentukan nilai data yang terkandung dalam variabel. 
Seperti : Char, string, Numerik, date, time, boolean

Char : huruf, angka, tanda baca dan simbol. String : gabungan dua atau lebih character.

Numerik : digit angka 0­9 untuk bilangan desimal data numeric dibagi dua : Numerik 
bulat : byte, integer, word, longint

Numerik pecahan : real, single, double Date : data tanggal dd/mm/yyyy

Time : data waktu hh:mm:ss Boolean : data logika true dan false

Tabel Type Data Numerik Bulat
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ K
Tabel Type Data Numerik Pecahan

Tabel Translasi dari Algoritma ke bahasa C++

Kelompok
Algoritma
C++
1. Tipe Dasar
boolean
Typedef enum {false=0,

true=1} Boolean

Integer
unsigned char
signed char

unsigned int

int

short int

long int

Real
float

double

long double

Char
char

String
char[n]

String

Record
struct

< field1 : type,
{ type field1;

field2 : type,
type field2;


fieldN : type
type fieldN;

>
}
2. Operator

a. Aritemetik
+
+

­
­

*
*

/
/

Div
/

Mod
%
b. Perbandingan
<
<

<=
<=

>
>

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ L


>=
>=

=
==

<>
!=
c. Logika
Not
!

And
&&

Or
||

Xor
Tidak ada
3. Komentar
{ komentar }
/* komentar */
4. Lain­lain
const
Const

type
typedef

true
dapat diganti 1

false
dapat diganti 0
2.3. Statement Input – Output

Statement Input – Output digunakan untuk menerima data masukan dan menampilkan 
hasil ke media keluaran.

Statement Input : Read(Namavar) Contoh : Read(A) Dalam bahasa C++ : scanf atau cin

Statement Output :

Write ([Literal,] Namavar)

Literal dapat berbentuk keterangan yang penulisannya diapit tanda petik tunggal atau 
petik ganda.

Contoh :

Write(A) Write(‘Nilai A = ‘, A) Dalam bahasa C++ : printf atau cout.

2.4. Proses dan Operasi

Proses digunakan untuk melakukan pengolahan data dengan menggunakan notasi 
asignment ( ¬ ).

Contoh : A ¬ B+C Dalam bahasa C++ : =

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DC


Contoh : A = B + C

Operasi digunakan untuk melakukan proses pengoperasian data terdiri dari : Operasi 
Aritmatika :

^, *, /, \, +, ­, mod Operasi Relasional : <, >, =, <=, >=, <> Operasi Logika : And, Or, 
Not, Xor 1 : True

0 : False

Tabel kebenaran Operasi Logika :

Input

Output

2
AND
OR
XOR
0

0
0
0
0
0

1
0
1
1
1
0
0
1
1
1

1
1
1
0

Tabel kebenaran Operasi Logika NOT :

INPUT 1
OUTPUT NOT
0
1
1
0

2.5. Struktur Dasar Algoritma

Algoritma berisi langkah­langkah penyelesaian suatu masalah. Langkah­langkah tersebut 
dapat berupa runtunan aksi (sequence), pemilihan aksi (selection), pengulangan aksi 
(iteration) atau kombinasi dari ketiganya. Jadi struktur dasar pembangunan algoritma ada
tiga, yaitu:

Struktur Runtunan 

Digunakan untuk program yang pernyataannya sequential atau urutan. 

Struktur Pemilihan 

Digunakan untuk program yang menggunakan pemilihan atau penyeleksian kondisi. 

Struktur Perulangan 

Digunakan untuk program yang pernyataannya akan dieksekusi berulang­ulang. 
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DD
2.6. Tahapan Pembuatan Algoritma / Program

Langkah­langkah   yang   dilakukan   dalam   menyelesaikan   masalah   dalam

pemrograman dengan komputer adalah:

Definisikan Masalah 

Berikut adalah hal­hal yang harus diketahui dalam analisis masalah supaya kita 
mengetahui bagaimana permasalahan tersebut: 

Kondisi awal, yaitu input yang tersedia. 

Kondisi akhir, yaitu output yang diinginkan. 

Data lain yang tersedia. 

Operator yang tersedia. 

Syarat atau kendala yang harus dipenuhi. 

Contoh kasus:

Menghitung biaya  percakapan  telepon  di  wartel.  Proses  yang  perlu

diperhatikan adalah:

Input yang tersedia adalah jam mulai bicara dan jam selesai bicara. 

Output yang diinginkan adalah biaya percakapan. 

Data lain yang tersedia adalah besarnya pulsa yang digunakan dan biaya per pulsa. 

Operator yang tersedia adalah pengurangan (­), penambahan (+), dan perkalian (*). 

Syarat kendala yang harus dipenuhi adalah aturan jarak dan aturan waktu. 
Buat Algoritma dan Struktur Cara Penyelesaian 

Jika masalahnya kompleks, maka dibagi ke dalam modul­modul. Tahap penyusunan 
algoritma seringkali dimulai dari langkah yang global terlebih dahulu. Langkah global ini
diperhalus sampai menjadi langkah yang lebih rinci atau detail. Cara pendekatan ini 
sangat bermanfaat dalam pembuatan algoritma untuk masalah yang kompleks. 
Penghalusan langkah dengan cara memecah langkah menjadi beberapa langkah. Setiap 
langkah diuraikan lagi menjadi beberapa langkah yang lebih sederhana. Penghalusan 
langkah ini akan terus berlanjut sampai setiap langkah sudah cukup rinci dan tepat untuk 
dilaksanakan oleh pemroses. 

Menulis Program 

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DE


Algoritma yang telah dibuat, diterjemahkan dalam bahasa komputer menjadi sebuah 
program. Perlu diperhatikan bahwa pemilihan algoritma yang salah akan menyebabkan 
program memiliki untuk kerja yang kurang baik. Program yang baik memiliki standar 
penilaian:

a. Standar teknik pemecahan masalah ­ Teknik Top­Down

Teknik pemecahan masalah yang paling umum digunakan. Prinsipnya adalah suatu 
masalah yang kompleks dibagi­bagi ke dalam beberapa kelompok masalah yang lebih 
kecil. Dari masalah yang kecil tersebut dilakukan analisis. Jika dimungkinkan maka 
masalah tersebut akan dipilah lagi menjadi subbagiansubbagian dan setelah itu mulai 
disusun langkah­langkah penyelesaian yang lebih detail.

­ Teknik Bottom­Up

Prinsip teknik bottom up adalah pemecahan masalah yang kompleks dilakukan dengan 
menggabungkan prosedur­prosedur yang ada menjadi satu kesatuan program sebagai 
penyelesaian masalah tersebut.

b. Standar penyusunan program

Kebenaran logika dan penulisan. 

Waktu minimum untuk penulisan program. 

Kecepatan maksimum eksekusi program. 

Ekspresi penggunaan memori. 

Kemudahan merawat dan mengembangkan program. 

User Friendly. 

Portability. 

Pemrograman modular. 4. Mencari Kesalahan 
a. Kesalahan sintaks (penulisan program). 
b. Kesalahan pelaksanaan: semantik, logika, dan ketelitian. 

Uji dan Verifikasi Program 

Pertama kali harus diuji apakah program dapat dijalankan. Apabila program tidak dapat 
dijalankan maka perlu diperbaiki penulisan sintaksisnya tetapi bila program dapat 
dijalankan, maka harus diuji dengan menggunakan data­data yang biasa yaitu data yang 
diharapkan oleh sistem. Contoh data ekstrem, 

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DF


misalnya, program menghendaki masukan jumlah data tetapi user mengisikan

bilangan  negatif.  Program  sebaiknya  diuji  menggunakan  data  yang  relatif

banyak.

Dokumentasi Program 

Dokumentasi program ada dua macam yaitu dokumentasi internal dan dokumentasi 
eksternal. Dokumentasi internal adalah dokumentasi yang dibuat di dalam program yaitu 
setiap kita menuliskan baris program sebaiknya diberi komentar atau keterangan supaya 
mempermudah kita untuk mengingat logika yang terdapat di dalam instruksi tersebut, hal 
ini sangat bermanfaat ketika suatu saat program tersebut akan dikembangkan. 
Dokumentasi eksternal adalah dokumentasi yang dilakukan dari luar program yaitu 
membuat user guide atau buku petunjuk aturan atau cara menjalankan program tersebut. 

Pemeliharaan Program 

Memperbaiki kekurangan yang ditemukan kemudian. 

Memodifikasi, karena perubahan spesifikasi. 

2.6. Program Flowchat

urutan logis   pengambilan   kepututusan   untuk   pemecahan   masalah

menggunakan simbol.
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DG
Contoh : Buat Algoritma untuk menghitung luas persegi panjang :

Algoritma Hitungluaspp

{ membaca data panjang dan lebar persegi panjang, menghitung luas persegi panjang dan
mencetak luas persegi panjang ke piranti keluaran } 

Deklarasi

P, L, Luas : integer Algoritma :

Read(P, L) atau
P ¬ 10

L ¬ 5 Luas ¬ P*L
write(‘luas persegi panjang ‘, luas)

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DH


Mulai

P,L,Luas : integer

Read (P,L)

Luas ← P*L

Write (Luas)

Selesai

Translasi dalam bahasa C++

// Program Menghitung Luas Persegi Panjang #include <iostream.h>

#include <conio.h> void main ()
{
int P,L, Luas;

cout <<”Panjang = “; cin >> P;

cout <<”Lebar = “; cin >> L;

Luas = P * L;

cout << "Luas Persegi Panjang = " << Luas; getch();

Tambahkan library #include <conio.h> diawal dan
Tambahkan statement getch(); sebelum akhir blok main } untuk menghentikan 
proses sementara sebelum keluar program

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DI


Tabel Penentu Format dalam bahasa C++
Type data
Penentu format
Int
%d
unsigned int
%d
Long int
%ld
long unsigned int
%lu
Float
%f
Double
%lf
Char
%c
char[n] ( String )
%s

// Program Menghitung Luas Persegi Panjang #include <stdio.h>

void main ()
{

int P,L, Luas; printf("Panjang = "); scanf("%d",&P); printf("Lebar = "); scanf("%d",&L); 
Luas = P * L;

printf("Luas Persegi Panjang  = %d", Luas);
}

Output program :
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DJ
Pertemuan 3

Struktur Kontrol If Else

3.1. Struktur Kontrol If  Kondisi Tunggal

Digunakan untuk melakukan penyeleksian kondisi tunggal yang dapat menghasilkan dua 
keputuasn, keputusan kondisi benar dan keputusan kondisi salah.

Syntak penulisan algoritma If kondisi tunggal : If (kondisi) then

Statement1

Else

Statement2

Endif

Syntak penulisan If kondisi tunggal dalam C++ : if (kondisi)

{ Statement1; 

else 

{ Statement2; 

Keterangan :

Apabila kondisi benar maka statement1 dikerjakan dan apabila kondisi salah maka 
statement 2 dikerjakan. Apabila digambarkan dalam program flowchart maka struktur 
kondisi dapat digambarkan :

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DK


True
Kondisi Statement1

False

Statement2

Contoh :

Buatlah algoritma dan program C++ untuk memasukan data dua bilangan a dan b dan 
tentukan apakah a>b atau sebaliknya.

Algoritma Iftunggal

Deklarasi

a,b: integer ket : string

Algoritma : Read(a,b) if a>b then

ket ¬ ‘a lebih besar b’

else
ket ¬ ‘a lebih kecil b’

endif

write(ket)

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ DL


Algoritma diatas dapat diimplementasikan dalam struktur program flowchart :

Mulai

A,b : integer
Ket : string

Read(a,b)

TRUE

a>b

Ket

“a lebih besar b”
FALSE
Ket

“a lebih kecil b”

Write(ket)
Selesai

Masih banyak kasus­kasus yang terdapat dalam aktifitas kita yang dapat diselesaikan 
dengan kondisi tunggal menghasilkan dua buah keputusan. Carilah kasus tersebut dan 
implementasikan dengan algoritma.

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EC


Pertemuan 4

Struktur Kontrol If Majemuk

4.1.  Struktur Kontrol If Majemuk

Digunakan untuk melakukan penyeleksian terhadap N kondisi dengan keputusan 
sebanyak N+1.

Syntak penulisan algoritma If kondisi majemuk : If (kondisi1) then

Statement1

Else

If (kondisi2) then Statement2
Else

If (kondisiN) then

StatementN

Else

Statement N+1

Endif

Endif

Endif

Syntak penulisan If kondisi majemuk dalam bahasa C++ :
if (kondisi1)
{
Statement1;
}

else

if (kondisi2)

{ Statement2;

else

if (kondisiN)

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ ED


{ StatementN;

else

{ Statement N+1;

Apabila kondisi1 benar maka statement1 dikerjakan, apabila kondisi2 benar maka 
statement 2 dikerjakan dan seterusnya.

Contoh:

Buatlah algoritma untuk menentukan nama hari berdasarkan nomor hari dengan 
ketentuan sebagai berikut :

No. hari
Nama Hari
1
Senin
2
Selasa
3
Rabu
4
Kamis
5
Jumat
6
Sabtu
7
Minggu

Algoritma Seleksihari
Deklarasi

Nh : integer

Nmh : String

Algoritma :

Read(nh)

if nh=1 then

nmh ¬’Senin’

else

if nh=2 then

nmh ¬’Selasa’

else

if nh=3 then nmh ¬’Rabu’

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EE


else

if nh=4 then

nmh ¬’Kamis’

else

if nh=5 then

nmh ¬’Jum’at’

else

if nh=6 then

nmh ¬’Sabtu’

else

nmh ¬’Minggu’

Endif

Endif

Endif

Endif

Endif

Endif

Write(‘nama hari : ‘,nmh)
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EF
Pertemuan 5

Struktur Kontrol Case Of

Struktur control ini digunakan untuk menyeleksi expresi (ungkapan yang akan diseleksi) 
yang mempunyai nilai expresi majemuk. Expresi dapat berbentuk data numurik bulat atau
character.

Syntax penulisan algoritma case : case expression of

Nexp1 :  statement1

...

NexpN: statementN otherwise

statementN+1 endcase

Syntax penulisan case dalam C++ : switch (expression)

case Nexp1 : statement1; break;

case NexpN : statementN; break;

default : statementN+1;
}

Apabila Nexp1 sama dengan Expression maka stattemen1 dikerjakan

Apabila Nexp2 sama dengan Expression maka stattemen2 dikerjakan dan seterusnya 
sampai NexpN. Jika tidak ada yang benar maka statementN+1 dikerjakan.

Contoh :

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EG


Buat Algoritma untuk menentukan bobot nilai berdasarkan mutu ynag diperoleh 
mahasiswa Jika A maka 4, B 3, C 2, D 1 dan E 0.

Algoritma ContohCase

Deklarasi

mt : char bn : integer

Algoritma : Read(mt) case mt
'A' : bn← 4 'B' : bn← 3 'C' : bn← 2 'D' : bn← 1

otherwise

bn ← 0 endcase write(bn)
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EH
Pertemuan 6

Struktur Kontrol Pengulangan While do

Struktur pengulangan digunakan untuk mengurangi penulisan algoritma/program yang 
sama agar tidak dituliskan sebanyak proses yang akan terjadi dengan tujuan untuk 
efisiensi struktur penulisan agar hemat dalam pemakaian memori komputer.

Terdapat 3 struktur iterasi yang dapat digunakan dalam algoritma yaitu :

While … Do 

Repeat … Until 

For … Do 

6.1. Struktur While do

Adalah struktur pengulangan yang dapat digunakan untuk mengulang statement apabila 
kondisi pengulangan bernilai benar dan dihentikan apabila struktur pengulangan bernilai 
salah.

Syntax penulisan while adalah : While (Kondisi) do

­ Statement

EndWhile

Digunakan untuk pengulangan data numerik dan Non Numerik. Syarat Pengulangan 
While … Do
Variabel yang akan dijadikan kondisi pengu­langan harus diinisialisasi 

Pengulangan dilakukan selama kondisi bernilai benar dan dihentikan jika kondisi bernilai
salah. 

Perlu ada operasi untuk merubah kondisi 

Pengulangan dapat dilaksanakan minimal Nol kali. 

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EI


Syntax penulisan while dalam C++ :

while (Kondisi)

­ Statement;

Contoh :

Buatlah algoritma untuk mencetak ”STIKOM POLTEK CIREBON”  sebanyak 10

kali pencetakan !

Algoritma Pengulangan1

Deklarasi

c : integer

Algoritma :

c ¬ 1
1
While c <= 10 do
2

Write (“STIKOM POLTEK CIREBON” )

c ¬ c + 1
3

EndWhile

Algoritma diatas dapat diterapkan kedalam program C++ :

// Program struktur control pengulangan while #include <stdio.h>

void main ()
{

int c; c = 1;
while (c <= 10)
{

printf (“STIKOM POLTEK CIREBON \n” ); c = c + 1;

}
}

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EJ


Latihan :

Buatlah algoritma dan program untuk menampilkan 10 bilangan asli dan hitung berapa 
jumlah total 10 bilangan tersebut !

Output : 1 2 3
.

10

Total 10 Bilangan = ….
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EK
Pertemuan 7

Studi Kasus Algoritma

Buatlah algoritma untuk menentukan nilai mutu dan bobot nilai yang diperoleh 
mahasiswa berdasarkan nilai yang diperolah dengan ketentuan : 

Nilai
Mutu
Bobot Nilai
0­49
E
0
50­59
D
1
60­69
C
2
70­84
B
3
85­100
A
4

Buatlah algoritma untuk membuat calculator sederhana dengan memasukan data dua 
buah bilangan dan operatornya (+,­,*,/) dan hitunglah berapa hasil operasi berdasarkan 
bilangan yang sudah saudara masukan. Algoritma dapat berulang dengan menekan huruf 
S. 
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ EL
Pertemuan 8

Struktur Kontrol Pengulangan Repeat Until

8.1. Struktur Repeat Until

Adalah struktur pengulangan yang dapat digunakan untuk mengulang statement apabila 
kondisi pengulangan bernilai salah dan dihentikan apabila struktur pengulangan bernilai 
benar.

Syntax penulisan Repeat Until adalah :

Repeat

­ Statement

Until (Kondisi)

Digunakan untuk pengulangan data numerik dan Non Numerik. Syarat Pengulangan 
Repeat Until

Variabel yang akan dijadikan kondisi pengu­langan tidak harus diinisialisasi 

Pengulangan dilakukan selama kondisi bernilai salah dan dihentikan jika kondisi bernilai 
benar. 

Perlu ada operasi untuk merubah kondisi. 

Pengulangan dapat dilaksanakan minimal satu kali. 
Syntax penulisan dalam C++ : do

­ Statement;

} while (Kondisi);

Contoh :

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FC


Buatlah algoritma untuk menampilkan 10 bilangan asli dan hitung berapa jumlah

total 10 bilangan tersebut !

Output :

10

Total 10 Bilangan = ….

Algoritma Pengulangan2

Deklarasi

Bil, Total : integer

Algoritma :

Bil ¬ 1
1
Total ¬ 0

Repeat
Write(Bil)

Total ¬ Total +Bil

Bil ¬ Bil + 1
3
Until Bil > 10
2
Write(Total)

End

Penerapan kedalam bahasa C++ :

/ Program struktur control pengulangan do while #include <stdio.h>

void main ()
{

int Bil,Total; Bil = 1; Total = 0; do

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FD


printf (“%d “,Bil,”\n” ); Total = Total + Bil; Bil = Bil + 1;
} while (Bil <= 10);

Printf(“Total 10 Bilangan = %d“,Total);

Latihan :

Buatlah algoritma untuk menampilkan bilangan ganjil dari 1­20 ! 
Buatlah algoritma untuk menampilkan bilangan genap dari 1­20 ! 
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FE
Pertemuan 9

Struktur Kontrol Pengulangan For do

9.1. Struktur For do

Adalah struktur pengulangan Numerik yang dapat digunakan untuk mengulang statement 
dari N Sampai N1.

Syntax penulisan For do adalah :

For varcounter = N  To/DownTo  N1  [Step N] Do

­ Statement

EndFor

Syntax penulisan for dalam C++ : for (varcounter=N;Kondisi;counter)
{

­
­ Statement;
­

Digunakan untuk pengulangan data numerik .
Syarat Pengulangan For do

Inisialisasi varcounter dapat langsung ditentukan pada N dan N1 (dapat naik atau turun) 

Pengulangan dilakukan dari N sampai dengan N1. 

3. Tidak perlu ada operasi untuk merubah kondisi karena setiap terjadi pengulangan 
nilai varcounter otomatis bertambah atau berkurang 1 atau step.

Contoh :

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FF


Buatlah algoritma untuk menampilkan 10 bilangan asli dan hitung berapa jumlah

total 10 bilangan tersebut !

Output :

10

Total 10 Bilangan = ….

Algoritma  Pengulangan3

Deklarasi

Bil, Total : integer

Algoritma :

Total ¬ 0

For Bil = 1 to 10 do

Write(Bil)

Total ¬ Total + Bil
Endfor

Writeln(‘Total 10 Bilangan = ‘,Total)

Penerapan kedalam bahasa C++ :

/ Program struktur control pengulangan for #include <stdio.h>

void main ()
{

int Bil,Total; Total = 0;
for (Bil=1;Bil<=10;Bil++)
{

printf (“%d “,Bil,”\n” ); Total = Total + Bil;
}

Printf(“Total 10 Bilangan = %d“,Total);

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FG


Latihan :

Buat program untuk menampilkan deret : 1,2,4,8,16,25,36,49,64 

Buat program untuk menampilkan deret : 10,9,7,4,0 
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FH
Pertemuan 10

Struktur Kontrol Pengulangan Bersarang

Struktur ini digunakan untuk melakukan pengulangan bersarang atau loop dalam loop. 
Untuk menyelesaikan masalah yang tidak dapat diselesaikan dalam loop tunggal. 
Pengulangan bersarang ini dapat dua, tiga atau lebih disesuaikan dengan solusi 
penyelesaian masalah algoritma yang akan digunakan. Penerapan struktur ini dapat 
seragam atau digabung dengan sintak penulisan sebagai berikut : Struktur 1 :

While (Kondisi 1)

While (Kondisi 2)

­ Statement

endwhile

Endwhile

Struktur 2 :

Repeat

Repeat
­

­Statement

Until (Kondisi2)

Until (Kondisi1)

Struktur 3 :

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FI


For varcounter1 = N  To/DownTo  N1  [Step N] Do

For varcounter2 = N  To/DownTo  N1  [Step N] Do

­ Statement

EndFor

EndFor

Menentukan Loop dalam dan Loop luar

Ditentukan berdasarkan pergerakan :

Loop bergerak pertama adalah loop dalam

Loop bergerak berikutnya adalah loop luar

Contoh :

1  2  3  4  5

1  2  3  4  5

1  2  3  4  5
1  2  3  4  5

Loop bergerak pertama adalah k, dan loop bergerak kedua adalah b. maka k adalah loop 
dalam dan b adalah loop luar. Apabila diimplementasikan ke algoritma adalah :

Algoritma NLoop

Deklarasi

b,k: Integer Algoritma :
b=1

While b <=4 do

For k = 1 to 5 do write( k)

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FJ


endfor

writeln

b=b+1

Endwhile

Apabila algoritma diatas diimplementasikan kedalam program C++ :

/ Program struktur control pengulangan Nested Loop #include <stdio.h>

void main ()
{

int b,k; b = 1;
while (b<=4)
{
for (k=1;k<=5;k++)
{
printf (“%d “,k );
}
b++;

Printf(“\n”);

Latihan :

Buat Algoritma untuk menampilkan deret dibawah ini :
1

1 2

1 2 3

1 2 3 4  dan

1 2 3 4 5

1 2 3 4

1 2 3

1 2

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FK


Pertemuan 11

Modul Program Procedure

Modul digunakan untuk membagi algoritma/program yang besar menjadi potongan 
program yang lebih kecil sehingga program yang besar dapat diselesaikan oleh beberapa 
orang secara terpisah ( team work ) dengan tujuan untuk mempercepat pembuatan 
algoritma/program.

Modul dibagi dua yaitu :

Procedure

Adalah modul program yang dapat digunakan untuk membawa suatu nilai yang dapat 
dipakai untuk modul itu sendiri, modul yang lain atau program utama.

Beberapa aturan Translasi Notasi algoritma prosedur ke dalam Notasi bahasa C+
+ :

Pendefinisian prosedur ditulis di luar blok program utama (main). Kecuali jika 
direalisasikan sebagai file include. Prosedur umumnya diletakkan sesudah blok 
main(). Sedangkan deklarasi prosedur ditulis sebelum blok main() sebagai purwarupa 
saja ( purwarupa prosedur hanya berupa header dari prosedur tersebut ), maka 
pendeklarasian purwarupa prosedur tidak diperlukan lagi. 

Dalam bahasa C, tidak dikenal istilah prosedur. Semua modul program adalah fungsi. 
Prosedur adalah fungsi yang tidak mengembalikan nilai apapun. Karena itu, return value 
untuk prosedur adalah void, (yang artinya ‘kosong’). 

Dalam bahasa C, bila prosedur tidak mempunyai parameter, maka tanda kurung ‘(‘ dan 
‘)’ tetap ditulis setelah setelah nama prosedur tersebut. 
Semua parameter dalam bahasa C adalah parameter masukan. 

Oleh karena itu, semua argument parameter actual dilewatkan sebagai “ by value”. Ini 
artinya nilai parameter actual disalin ke parameter f ormal yang bersesuaian. 

Suatu cara untuk memperoleh efek parameter keluaran maupun efek parameter masukan /
keluaran adalah melewatkan pointer terhadap parameter actual dengan menambahkan 
karakter “&” di awal nama parameter actual ya ng berjenis parameter keluaran atau 
masukan / keluaran. 

Tanda “&” menyatakan alamat dari peubah. 

Sedangkan parameter formal yang berjenis keluaran atau masukan / keluaran 
ditambahkan dengan karakter “*” didepannya. 

Tanda “*” menyatakan operator  indirect. 

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ FL


procedure NamaProsedur(deklarasi parameter,jika ada)

{spesifikasi prosedur,berisi penjelasan tentang apa yang dilakukan oleh prosedur ini. K.Awal : 
keadaan sebelum prosedur dilaksanakan.

K.Akhir : kedaan setelah prosedur dilaksanakan. }

DEKLARASI

{ semua nama yang dipakai didalam prosedur dan hanya berlaku local didalam prosedur 
didefinisikan disini }

DESKRIPSI :
{ badan prosedur, barisi urutan instruksi}

Cara memanggil prosedur : 
NamaProsedur
Jika prosedur tidak mempunyai parameter,

atau 
NamaProsedur(parameter actual)

Jika prosedur mengandung parameter.

BAHASA C++
void NamaProsedur(deklarasi parameter,jika ada)

/* Spesifikasi prosedur, berisi penjelasan tentang apa yang dila kukan oleh prosedur ini. */

/* K.Awal : keadaan sebelum prosedur dilaksanakan. */ /* K.Akhir : keadaan setelah prosedur 
dilaksanakan. */

{
/* DEKLARASI */

/* semua nama yang dipakai dalam prosedur dan hanya berlaku lok al di dalam prosedur 
didefinisikan di sini */

/* DESKRIPSI */
/* badan prosedur, berisi kumpulan instruksi */
}

Cara memanggil prosedur : 
NamaProsedur( );
Jika prosedur tidak mempunyai parameter,

atau 
NamaProsedur(parameter actual);

Jika prosedur mengandung parameter.

Contoh translasi prosedur tanpa parameter

ALGORITMA

Prosedur :

procedure HitungLuasSegitiga

{ Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 } { K.Awal : sembarang } 

{ K.Akhir : luas segitiga tercetak. } 

DEKLARASI

alas : riil { panjang alas segitiga, dalam cm } tinggi : riil { tinggi segitiga, dalam cm }

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GC


2
luas : riil { luas segitiga, dalam cm  }

DESKRIPSI read(alas,tinggi)

luas (alas * tinggi)/2 write(luas)

Program utama :

Algoritma Segitiga
{ Menghitung luas N buah segitiga. }

DEKLARASI i, N : integer
procedure HitungLuasSegitiga
{ Menghitung luas segitiga dengan rumus L =(alas x tinggi)/2 }

DESKRIPSI:

read(N) { tentukan banyaknya segitiga } for i 1 to N do

HitungLuasSegitiga
endfor

Contoh Program berdasarkan Algoritma di atas
/* Program Segitiga */
/* Menghitung luas N buah segitiga. */

#include <iostream.h>

/* Deklarasi purwarupa prosedur yang digunakan */ void HitungLuasSegitiga();

void main()

{ /* DEKLARASI */ int i, N;
/* PROGRAM UTAMA */

cout << "banyaknya segitiga? "; cin >> N;

for(i=1;i<=N;i++)

HitungLuasSegitiga();
/*endfor*/

void HitungLuasSegitiga()

/* Menghitung luas segitiga dengan rumus L=(alas x tinggi)/2 */ /* K.Awal : sembarang */

/* K.Akhir : luas segitiga tercetak. */ { /*DEKLARASI*/

float alas; /* panjang alas segitiga, dalam cm */ float tinggi; /* tinggi segitiga, dalam cm */

float luas; /* luas segitiga, dalam cm2 */ /*DESKRIPSI*/

cout << "\nPanjang alas segitiga? "; cin >> alas ;

cout << "Tinggi segitiga? "; cin >> tinggi;

luas = (alas * tinggi)/2.0;

cout << "Luas = " << luas << endl;
}

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GD


Latihan :

Buatlah algoritma untuk menghitung beberapa luas bangun dengan menggunakan

procedure yang dapat diimplementasikan dengan menu.
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GE
Pertemuan 12

Modul Program Functin

Function

Modul program   yang   dapat   digunakan   untuk   menghitung   dan

mengembalikan suatu nilai yang dapat digunakan untuk modul itu sendiri, modul

yang lain atau program utama.

Translasi Notasi Algoritma untuk fungsi ke dalam Notasi bahasa C++. 
ALGORITMA

Function NamaFungsi(deklarasi parameter,jika ada) tipe

{spesifikasi fungsi,menjelaskan apa yang dilakukan dan yang dikembalikan oleh fungsi.}

DEKLARASI

{semua nama yang dipakai didalam fungsi dan hanya berlaku local didalam prosedur 
didefinisikan disini }

DESKRIPSI

{badan fungsi,berisi instruksi–instruksi untuk menghasilkan nilai yang akan 
dikembalikan oleh fungsi }

return ekspresi { pengembalian nilai yang dihasilkan fungsi }

Bahasa C++ :

tipe NamaFungsi (deklarasi parameter,jika ada);

/* spesifikasifungsi,menjelaskan apa yang dilakukan dan yang dikembalikan oleh fungsi
{
/* DEKLARASI

semua nama yang dipakai didalam fungsi dan hanya berlaku local didalam prosedur 
didefinisikan disini*/

DESKRIPSI

badan fungsi,berisi instruksi­instruksi untuk menghasilkan nilai yang akan dikembalikan 
oleh fungsi */

return ekspresi;   /*pengembalian nilai yang dihasilkan fungsi*/
}
Catatan :

Dalam bahasa C++, fungsi dapat mengembalikan nilai bertipe sederhana ( integer, riil, 
Boolean, char, dan string ) maupun bertipe bentukan. 

Apabila fungsi tidak memiliki daftar parameter formal, maka tanda “(” dan “)” tetap harus 
ditulis. Hal yang sama juga berlaku pada waktu pemanggilannya. 

Sebagaimana halnya pada prosedur, fungsi di­definisi­kan di luar blok main(), dan 
purwarupa fungsi dideklarasikan sebelum blok main(). 

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GF


Beberapa Contoh translasi :
2
1.  Fungsi F(x) = 2x  + 5x – 8  dan program pemanggilnya.
ALGORITMA

Fungsi :

function F(input x: riil)­>riil
2
{ mengembalikan nilai F(x)=2x +5x­8, x € R }
DEKLARASI
{ tidak ada }

DESKRIPSI
Return 2*x*x + 5*x ­ 8

Program utama :
Algoritma TabelFungsi

{program utama yang memperagakan cara pemanggilan fungsi F.Program ini menampilkan table nilai­
nilai x dan f(x) didalam selang[10,15]dengan ∆x = 0.2 }

DEKLARASI x : riil

function F(input x: riil)   riil
2
{ mengembalikan nilai F(x)=2x +5x­8, x ÎR }
DESKRIPSI:
{ buat header table }

write(‘­­­­­­­­­­­­­­­­­­­­­­­­

’)
write(‘  x
f(x)
’)
write(‘­­­­­­­­­­­­­­­­­­­­­­­­

’)
x10.0
while x ≤ 15.0 do

write(x,’
‘,F(x))

xx + 0.2

endwhile
{ buat garis penutup table }

write(‘­­­­­­­­­­­­­­­­­­­­­­­­’)

Dalam Bahasa C++
/* Program TabelFungsi */

/* Prog.utama yang memperagakan cara pemanggilan fungsi F.Prog.ini menampilkan table 
nilai­nilai x dan f(x) didalam selang [10,15] dengan ∆x = 0.2 */

#include <iostream.h> #include <iomanip.h>

/* purwarupa fungsi */ float F(float x);

/* mengembalikan nilai F(x)=2x2+5x­8, x bertipe riil */ void main()

{ /* DEKLARASI */ float x;
/* DESKRIPSI */

/* buat header table */

cout <<"­­­­­­­­­­­­­­­­­­­­­\n"; cout <<" x f(x) \n";

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GG


cout <<"­­­­­­­­­­­­­­­­­­­­­
\n";
x = 10.0;

while (x <= 15.0)

cout << x << setw(15) << F(x) << endl;
x = x + 0.2;

} /*endwhile*/

/* buat garis penutup table */
cout <<"­­­­­­­­­­­­­­­­­­­­­
\n";

}
float F(float x)

/* mengembalikan nilai F(x)=2x2+5x­8, x bertipe riil */ { /*DEKLARASI*/

/* tidak ada */ /*DESKRIPSI*/

return 2*x*x + 5*x ­ 8;

Latihan :

Buatlah algoritma dan program untuk menghitung fungsi :

2
Fx = x  + 4x + c
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GH
Pertemuan 13

Parameter Dalam Modul Program

Adalah  variabel  yang  digunakan  untuk  mengirim  nilai  argumen  untuk

proses komunikasi data didalam suatu algoritma/program.

Terdapat dua buah parameter dalam suatu program yaitu :

By Reference 

Yaitu parameter yang dapat merubah nilai variabel global yang digunakan sebagai 
argumen. Cirinya didepan deklarasi parameter terdapat statement var. Contoh: 

Procedure cetak(var A: integer) 

By Value 

Yaitu parameter yang tidak dapat merubah nilai variabel global yang digunakan sebagai 
argumen. Cirinya didepan deklarasi parameter tidak 

terdapat statement var.

Contoh: Procedure cetak(A: integer)

Algoritma Parameter

Deklarasi

A,B : Numerik

Procedure CetakData(var C : integer, D : integer )

Begin

C¬C+100; D¬D+100
Write(‘Nilai C : ‘,C) //C=200

Write(‘Nilai D : ‘,D) //D=200

End

Begin

A ¬ 100

B ¬ 100

CetakData(A,B)

Write(‘Nilai A : ‘,A) //A=200

Write(‘Nilai B : ‘,B) // B=100

End

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GI


Contoh translasi prosedur dengan parameter masukan ALGORITMA :

Prosedur :
procedure HitungLuasSegitiga(input alas, tinggi : riil)

{ Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 } { K.Awal : alas dan tinggi sudah
terdefinisi nilainya } 

{ K.Akhir : luas segitiga tercetak. } 

DEKLARASI
2
luas : riil { luas segitiga, dalam cm  }

DESKRIPSI

luas (alas * tinggi)/2 write(luas)

Program utama :
Algoritma Segitiga
{ Menghitung luas N buah segitiga. }

DEKLARASI i, N : integer a, t : riil

procedure HitungLuasSegitiga(input alas, tinggi : riil)
{ Menghitung luas segitiga dengan rumus L =(alas x tinggi)/2 }

DESKRIPSI:

read(N) { tentukan banyaknya segitiga } for i 1 to N do

read(a,t) HitungLuasSegitiga(a,t)
endfor

Contoh Program berdasarkan Algoritma di atas
/* Program Segitiga */

/* Menghitung luas N buah segitiga. */

#include <iostream.h>
/* Deklarasi purwarupa prosedur yang digunakan */ void HitungLuasSegitiga(float a, float t);

void main()

{ /* DEKLARASI */ int i, N;

float a, t;
/* PROGRAM UTAMA */

cout << "banyaknya segitiga? "; cin >> N;

for(i=1;i<=N;i++)
{

cout << "\nPanjang alas segitiga? "; cin >> a;

cout << "Tinggi segitiga? "; cin >> t; HitungLuasSegitiga(a,t);

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GJ


}
}

void HitungLuasSegitiga(float alas, float tinggi)

/* Menghitung luas segitiga dengan rumus L=(alas x tinggi)/2 */ /* K.Awal : alas dan tinggi 
sedah terdefinisi nilainya */

/* K.Akhir : luas segitiga tercetak. */ { /*DEKLARASI*/

float luas; /* luas segitiga, dalam cm2 */ /*DESKRIPSI*/

luas = ( alas * tinggi )/2.0;
cout << "Luas=" << luas << endl;
}

Modul Rekursif

Adalah modul yang memanggil dirinya sendiri. Modul ini banyak digunakan untuk 
proses pemanggilan modul secara berulang. Misalnya untuk menghitung nilai sebuah 
bilangan yang difaktorialkan maka dapat diselesaikan dengan system rekursif.

Contoh :

5! = 5*4!=4*3!=3*2!=2*1!=1*1

Algoritma_Name Rekursif

Var

A : Numerik

Function Faktorial (N:Numerik):Numerik

If  N= 1 Then
Faktorial ¬ 1

Else

Faktorial ¬ N*(Faktorial(N­1)

Endif

End

Begin

A ¬ 5

Write(‘Nilai Faktorial : ‘,Faktorial(A))

End

[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GK


Pertemuan 14

Studi Kasus Algoritma

Amatilah sebuah system yang ada di sekeliling saudara. Setelah saudara amati

maka :

catatlah prosedur yang ada dalam system tersebut ! 

catatlah fungsi yang ada dalam system tersebut ! 

berdasarkan prosedur dan fungsi yang telah saudara dapat maka : susunlah algoritmanya. 

berdasarkan algoritma saudara buatlah hierarchi proses modul atau buat menu. 

implementasikan kedalam program algoritma modular yang telah saudara buat ! 
[TÇWÉÂÀ TÄZÉÜ|ÀÅT CXÅÜÉZÜTÅTÇ D G\ DEF ECDI WÉÁXÇ M TÅÜÉÇ|A `^ÉÅ GL

Anda mungkin juga menyukai