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 AlKhuwarizmi. AlKhuwarizmi dibaca orang barat menjadi Algorism. AlKhuwarizmi menulis
buku yang berjudul
Kitab Al Jabar WalMuqabala 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 berangsurangsur 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 langkahlangkah logis pemecahan masalah yang disusun secara sistematis dan
logis. Logis merupakan kata kunci yang berarti katakata 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 berjamjam 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:
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 instruksiinstruksi
[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.
Halhal 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 seharihari pun
banyak terdapat proses yang dinyatakan dalam suatu algoritma. Caracara membuat kue
atau masakan yang dinyatakan dalam suatu resep juga dapat disebut sebagai algoritma.
Pada setiap resep selalu ada urutan langkahlangkah membuat masakan. Bila langkah
langkahnya tidak logis, tidak dapat dihasilkan masakan yang diinginkan. Ibuibu yang
mencoba suatu resep masakan akan membaca satu per satu langkahlangkah
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 alatalat 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 aksiaksi yang didefenisikan sebelumnya dan diberi nama, dan diasumsikan
sebelumnya bahwa aksiaksi tersebut dapat kerjakan sehingga dapat menyebabkan
kejadian. Melaksanakan algoritma berarti mengerjakan langkahlangkah di dalam
algoritma tersebut. Pemroses mengerjakan proses sesuai dengan algoritma yang diberikan
kepadanya. Juru masak membuat kue
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 langkahlangkah 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). Tiaptiap 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
Mekanisme kerja keempat komponen di atas dapat dijelaskan sebagai berikut. Mulamula
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
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 09 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
<
<
<=
<=
>
>
=
==
<>
!=
c. Logika
Not
!
And
&&
Or
||
Xor
Tidak ada
3. Komentar
{ komentar }
/* komentar */
4. Lainlain
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++ : =
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 langkahlangkah penyelesaian suatu masalah. Langkahlangkah 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 berulangulang.
[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
Langkahlangkah yang dilakukan dalam menyelesaikan masalah dalam
pemrograman dengan komputer adalah:
Definisikan Masalah
Berikut adalah halhal 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 modulmodul. 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
a. Standar teknik pemecahan masalah Teknik TopDown
Teknik pemecahan masalah yang paling umum digunakan. Prinsipnya adalah suatu
masalah yang kompleks dibagibagi 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 langkahlangkah penyelesaian yang lebih detail.
Teknik BottomUp
Prinsip teknik bottom up adalah pemecahan masalah yang kompleks dilakukan dengan
menggabungkan prosedurprosedur 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 datadata yang biasa yaitu data yang
diharapkan oleh sistem. Contoh data ekstrem,
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)
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
// 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 :
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)
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 kasuskasus yang terdapat dalam aktifitas kita yang dapat diselesaikan
dengan kondisi tunggal menghasilkan dua buah keputusan. Carilah kasus tersebut dan
implementasikan dengan algoritma.
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)
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’
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 :
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 pengulangan 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.
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;
}
}
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
049
E
0
5059
D
1
6069
C
2
7084
B
3
85100
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 pengulangan 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 :
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
Printf(“Total 10 Bilangan = %d“,Total);
Latihan :
Buatlah algoritma untuk menampilkan bilangan ganjil dari 120 !
Buatlah algoritma untuk menampilkan bilangan genap dari 120 !
[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 :
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);
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 :
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)
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
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.
{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 }
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;
}
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 instruksiinstruksi 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 didefinisikan di luar blok main(), dan
purwarupa fungsi dideklarasikan sebelum blok main().
Fungsi :
function F(input x: riil)>riil
2
{ mengembalikan nilai F(x)=2x +5x8, 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 +5x8, 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
nilainilai 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+5x8, x bertipe riil */ void main()
{ /* DEKLARASI */ float x;
/* DESKRIPSI */
/* buat header table */
cout <<"\n"; cout <<" x f(x) \n";
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+5x8, 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
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);
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(N1)
Endif
End
Begin
A ¬ 5
Write(‘Nilai Faktorial : ‘,Faktorial(A))
End
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