Sejarah dan Konsep Algoritma Pemrograman
Sejarah dan Konsep Algoritma Pemrograman
ALGORITMA
PEMROGRAMAN
1
PERTEMUAN 1
PENGANTAR ALGORITMA
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.
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
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.
7
PERTEMUAN 2
STRUKTUR DASAR ALGORITMA DAN PROGRAM FLOWCHART
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
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
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
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.
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
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
Output program :
18
Pertemuan 3
Struktur Kontrol If Else
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
False
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
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
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
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 :
c1 1
While c <= 10 do 2
Write (“STIKOM POLTEK CIREBON” )
cc+1 3
EndWhile
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 :
30
Pertemuan 8
Struktur Kontrol Pengulangan Repeat Until
Repeat
-
- Statement
-
Until (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
32
printf (“%d “,Bil,”\n” );
Total = Total + Bil;
Bil = Bil + 1;
} while (Bil <= 10);
Printf(“Total 10 Bilangan = %d“,Total);
}
Latihan :
33
Pertemuan 9
Struktur Kontrol Pengulangan For do
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)
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
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
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
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
Procedure
Adalah modul program yang dapat digunakan untuk membawa suatu nilai
yang dapat dipakai untuk modul itu sendiri, modul yang lain atau program utama.
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.
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
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.
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++ :
44
Beberapa Contoh translasi :
1. Fungsi F(x) = 2x2 + 5x – 8 dan program pemanggilnya.
ALGORITMA
Fungsi :
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(‘------------------------’)
#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 :
46
Pertemuan 13
Parameter Dalam Modul Program
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
#include <iostream.h>
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
A5
Write(‘Nilai Faktorial : ‘,Faktorial(A))
End
49
Pertemuan 14
Studi Kasus Algoritma
Amatilah sebuah system yang ada di sekeliling saudara. Setelah saudara amati
maka :
3. berdasarkan prosedur dan fungsi yang telah saudara dapat maka : susunlah
algoritmanya.
4. berdasarkan algoritma saudara buatlah hierarchi proses modul atau buat menu.
50