0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan50 halaman

Sejarah dan Konsep Algoritma Pemrograman

Dokumen ini membahas pengantar algoritma dan pemrograman, termasuk sejarah istilah algoritma yang berasal dari nama Al-Khuwarizmi. Algoritma didefinisikan sebagai urutan langkah-langkah logis untuk menyelesaikan masalah, sedangkan program adalah implementasi algoritma dalam bahasa pemrograman. Struktur dasar algoritma mencakup judul, kamus, dan algoritma itu sendiri, serta penjelasan mengenai konstanta, variabel, dan tipe data.
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
12 tayangan50 halaman

Sejarah dan Konsep Algoritma Pemrograman

Dokumen ini membahas pengantar algoritma dan pemrograman, termasuk sejarah istilah algoritma yang berasal dari nama Al-Khuwarizmi. Algoritma didefinisikan sebagai urutan langkah-langkah logis untuk menyelesaikan masalah, sedangkan program adalah implementasi algoritma dalam bahasa pemrograman. Struktur dasar algoritma mencakup judul, kamus, dan algoritma itu sendiri, serta penjelasan mengenai konstanta, variabel, dan tipe data.
Hak Cipta
© All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd

MODUL PRAKTIKUM

ALGORITMA
PEMROGRAMAN

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

2
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:
1. Pembuatan atau penulisan algoritma tidak tergantung pada bahasa
pemrograman manapun, artinya penulisan algoritma independen dari bahasa
pemrograman dan komputer yang melaksanakannya.
2. Notasi algoritma dapat diterjemahkan ke dalam berbagai bahasa
pemrograman.
3. Apapun bahasa pemrogramannya, output yang akan dikeluarkan sama karena
algoritmanya sama.
Beberapa hal yang perlu diperhatikan dalam membuat algoritma:

3
1. Teks algoritma berisi deskripsi langkah-langkah penyelesaian masalah.
Deskripsi tersebut dapat ditulis dalam notasi apapun asalkan mudah
dimengerti dan dipahami.
2. Tidak ada notasi yang baku dalam penulisan teks algoritma seperti notasi
bahasa pemrograman. Notasi yang digunakan dalam menulis algoritma disebut
notasi algoritmik.
3. 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.
4. 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.
5. Algoritma sebenarnya digunakan untuk membantu kita dalam
mengkonversikan suatu permasalahan ke dalam bahasa pemrograman.
6. 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:
a. Pendeklarasian variabel
Untuk mengetahui dibutuhkannya pendeklarasian variabel dalam
penggunaan bahasa pemrograman apabila tidak semua bahasa
pemrograman membutuhkannya.
b. Pemilihan tipe data
Apabila bahasa pemrograman yang akan digunakan membutuhkan
pendeklarasian variabel maka perlu hal ini dipertimbangkan pada saat
pemilihan tipe data.
c. Pemakaian instruksi-instruksi

4
Beberapa instruksi mempunyai kegunaan yang sama tetapi masingmasing
memiliki kelebihan dan kekurangan yang berbeda.
d. Aturan sintaksis
Pada saat menuliskan program kita terikat dengan aturan sintaksis dalam
bahasa pemrograman yang akan digunakan.
e. Tampilan hasil
Pada saat membuat algoritma kita tidak memikirkan tampilan hasil yang
akan disajikan. Hal-hal teknis ini diperhatikan ketika mengkonversikannya
menjadi program.
f. 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” algoritma
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

5
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:
1. Mengerti setiap langkah dalam algoritma.
2. Mengerjakan operasi yang bersesuaian dengan langkah tersebut.
Contoh Algoritma membuat secangkir kopi.
1. Siapkan Gelas, Kopi, Gula, sendok dan Air Panas
2. Masukan kopi, gula kedalam gelas
3. Tuangkan Air Panas kedalam gelas
4. Aduk kopi, gula, dan air panas dengan sendok sampai larut
5. 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” seringkali
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 grafik
tersebut?”. Jika Anda sudah memahami pengertian algoritma yang sudah
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

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

7
PERTEMUAN 2
STRUKTUR DASAR ALGORITMA DAN PROGRAM FLOWCHART

2.1. Struktur Penulisan Algoritma


Struktur dasar penulisan algoritma terdiri dari tiga bagian yaitu :
1. Judul
Digunakan untuk menulis komentar mengenai algoritma seperti : cara kerja
program kondisi awal dan kondisi akhir algoritma.
2. Kamus
Digunakan untuk mendefinisikan nama konstanta, nama type, nama variable,
nama prosedur dan nama fungsi yang digunakan dalam algoritma.
3. 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

8
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

9
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 < <
<= <=
> >

10
>= >=
= ==
<> !=
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 coout.

2.4. Proses dan Operasi


Proses digunakan untuk melakukan pengolahan data dengan menggunakan
notasi asignment (  ).
Contoh : A  B+C
Dalam bahasa C++ : =

11
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
1 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:
1. Struktur Runtunan
Digunakan untuk program yang pernyataannya sequential atau urutan.
2. Struktur Pemilihan
Digunakan untuk program yang menggunakan pemilihan atau penyeleksian
kondisi.
3. Struktur Perulangan
Digunakan untuk program yang pernyataannya akan dieksekusi berulang-
ulang.

12
2.6. Tahapan Pembuatan Algoritma / Program
Langkah-langkah yang dilakukan dalam menyelesaikan masalah dalam
pemrograman dengan komputer adalah:
1. Definisikan Masalah
Berikut adalah hal-hal yang harus diketahui dalam analisis masalah supaya
kita mengetahui bagaimana permasalahan tersebut:
a. Kondisi awal, yaitu input yang tersedia.
b. Kondisi akhir, yaitu output yang diinginkan.
c. Data lain yang tersedia.
d. Operator yang tersedia.
e. Syarat atau kendala yang harus dipenuhi.
Contoh kasus:
Menghitung biaya percakapan telepon di wartel. Proses yang perlu
diperhatikan adalah:
a. Input yang tersedia adalah jam mulai bicara dan jam selesai bicara.
b. Output yang diinginkan adalah biaya percakapan.
c. Data lain yang tersedia adalah besarnya pulsa yang digunakan dan biaya
per pulsa.
d. Operator yang tersedia adalah pengurangan (-), penambahan (+), dan
perkalian (*).
e. Syarat kendala yang harus dipenuhi adalah aturan jarak dan aturan waktu.
2. 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.
3. Menulis Program

13
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.
5. 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,

14
misalnya, program menghendaki masukan jumlah data tetapi user mengisikan
bilangan negatif. Program sebaiknya diuji menggunakan data yang relatif
banyak.
6. 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.
7. Pemeliharaan Program
a. Memperbaiki kekurangan yang ditemukan kemudian.
b. Memodifikasi, karena perubahan spesifikasi.

2.6. Program Flowchat


urutan logis pengambilan kepututusan untuk pemecahan masalah
menggunakan simbol.

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

16
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>
void main ()
{
int P,L, Luas;
cout <<”Panjang = “;
cin >> P;
cout <<”Lebar = “;
cin >> L;
Luas = P * L;
cout << "Luas Persegi Panjang = " << Luas;
}

17
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 :

18
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 :

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

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

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

22
{ 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’

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

24
Pertemuan 5
Struktur Kontrol Case

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 :

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

26
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 :
1. While … Do
2. Repeat … Until
3. 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
1. Variabel yang akan dijadikan kondisi pengu-langan harus diinisialisasi
2. Pengulangan dilakukan selama kondisi bernilai benar dan dihentikan jika
kondisi bernilai salah.
3. Perlu ada operasi untuk merubah kondisi
4. Pengulangan dapat dilaksanakan minimal Nol kali.

27
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;
}
}

28
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 = ….

29
Pertemuan 7
Studi Kasus Algoritma

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

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

30
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
1. Variabel yang akan dijadikan kondisi pengu-langan tidak harus diinisialisasi
2. Pengulangan dilakukan selama kondisi bernilai salah dan dihentikan jika
kondisi bernilai benar.
3. Perlu ada operasi untuk merubah kondisi.
4. Pengulangan dapat dilaksanakan minimal satu kali.

Syntax penulisan dalam C++ :


do
{
-
- Statement;
-
} while (Kondisi);

Contoh :

31
Buatlah algoritma untuk menampilkan 10 bilangan asli dan hitung berapa jumlah
total 10 bilangan tersebut !
Output :
1
2
3
.
.
.
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
{

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

Latihan :

1. Buatlah algoritma untuk menampilkan bilangan ganjil dari 1-20 !


2. Buatlah algoritma untuk menampilkan bilangan genap dari 1-20 !

33
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
1. Inisialisasi varcounter dapat langsung ditentukan pada N dan N1 (dapat naik
atau turun)
2. 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 :

34
Buatlah algoritma untuk menampilkan 10 bilangan asli dan hitung berapa jumlah
total 10 bilangan tersebut !
Output :
1
2
3
.
.
.
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);
}

35
Latihan :
1. Buat program untuk menampilkan deret : 1,2,4,8,16,25,36,49,64
2. Buat program untuk menampilkan deret : 10,9,7,4,0

36
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 :

37
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 :
k
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
1 2 3 4 5
b
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)

38
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
12
123
1 2 3 4 dan

12345
1234
123
12
1

39
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++ :
1. 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.
2. 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’).
3. Dalam bahasa C, bila prosedur tidak mempunyai parameter, maka tanda
kurung ‘(‘ dan ‘)’ tetap ditulis setelah setelah nama prosedur tersebut.
4. 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 formal 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 yang
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.

40
procedure NamaProsedur(deklarasi parameter,jika ada)
{spesifikasi prosedur,berisi penjelasan tentang apa yang dilakukan oleh prosedur ini.
[Link] : keadaan sebelum prosedur dilaksanakan.
[Link] : 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. */
/* [Link] : keadaan sebelum prosedur dilaksanakan. */
/* [Link] : 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 }
{ [Link] : sembarang }
{ [Link] : luas segitiga tercetak. }

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

41
luas : riil { luas segitiga, dalam cm2 }

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 */
/* [Link] : sembarang */
/* [Link] : 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;
}

42
Latihan :
Buatlah algoritma untuk menghitung beberapa luas bangun dengan menggunakan
procedure yang dapat diimplementasikan dengan menu.

43
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 :
1. Dalam bahasa C++, fungsi dapat mengembalikan nilai bertipe sederhana (
integer, riil, Boolean, char, dan string ) maupun bertipe bentukan.
2. Apabila fungsi tidak memiliki daftar parameter formal, maka tanda “(” dan “)”
tetap harus ditulis. Hal yang sama juga berlaku pada waktu pemanggilannya.
3. Sebagaimana halnya pada prosedur, fungsi di-definisi-kan di luar blok main(),
dan purwarupa fungsi dideklarasikan sebelum blok main().

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

Fungsi :

function F(input x: riil)->riil


{ mengembalikan nilai F(x)=2x2+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 [Link] 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
{ mengembalikan nilai F(x)=2x2+5x-8, x  R }
DESKRIPSI:
{ buat header table }
write(‘------------------------’)
write(‘ x f(x) ’)
write(‘------------------------’)
x  10.0
while x ≤ 15.0 do
write(x,’ ‘,F(x))
x  x + 0.2
endwhile
{ buat garis penutup table }
write(‘------------------------’)

Dalam Bahasa C++


/* Program TabelFungsi */
/* [Link] yang memperagakan cara pemanggilan fungsi [Link] 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";

45
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 :


Fx = x2 + 4x + c

46
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 :
1. 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)
2. 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

47
Contoh translasi prosedur dengan parameter masukan
ALGORITMA :
Prosedur :
procedure HitungLuasSegitiga(input alas, tinggi : riil)
{ Menghitung luas segitiga dengan rumus L = (alas x tinggi)/2 }
{ [Link] : alas dan tinggi sudah terdefinisi nilainya }
{ [Link] : luas segitiga tercetak. }

DEKLARASI
luas : riil { luas segitiga, dalam cm2 }

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

48
}
}
void HitungLuasSegitiga(float alas, float tinggi)
/* Menghitung luas segitiga dengan rumus L=(alas x tinggi)/2 */
/* [Link] : alas dan tinggi sedah terdefinisi nilainya */
/* [Link] : 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

49
Pertemuan 14
Studi Kasus Algoritma

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

maka :

1. catatlah prosedur yang ada dalam system tersebut !

2. catatlah fungsi yang ada dalam system tersebut !

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

algoritmanya.

4. berdasarkan algoritma saudara buatlah hierarchi proses modul atau buat menu.

5. implementasikan kedalam program algoritma modular yang telah saudara buat !

50

Anda mungkin juga menyukai