Pada dasarnya ada tiga struktur dasar algoritma yang akan kita gunakan nanti.
Semua algoritma yang kita buat nanti pada dasarnya merupakan salah satu atau
kombinasi dari tiga struktur algoritma ini. Tiga struktur tersebut adalah :
Perintah 1
Perintah 2
Perintah 3
maka perintah yang dieksekusi atau dikerjakan mula-mula adalah Perintah1, diikuti
kemudian Perintah2 dan terakhir Perintah3.
Studi Kasus
Berikut ini adalah algoritma menghitung luas lingkaran. Secara umum algoritma
tersebut dapat kita nyatakan sebagai berikut.
1. Mulai
2. Masukkan nilai jari
4. Tampilkan Luas
5. Selesai
Seperti yang telah dijelaskan, format penulisan algoritma standar terdiri dari tiga
bagian, yaitu bagian Nama, Deklarasi dan Deskripsi. Untuk sementara bagian
deklarasi kita abaikan dulu. Jika menggunakan algoritma teks standar, maka solusi
permasalahan di atas dapat kita tuliskan
Algoritma LuasLingkaran
Deskripsi
read(jari)
luas 3.14*jari*jari
write(luas)
read (di dalam Pascal sering ditulis readln), yaitu perintah untuk
menginput nilai.
write (terkadang juga ditulis writeln), yaitu perintah untuk menampilkan
suatu variabel atau string
Begin
Read (Jari)
Luas3.14*Jari*Jari
Write (Luas)
End
Flowchart Algoritma LuasLingkaran
Dari contoh di atas dapat dilihat bahwa perintah kedua dikerjakan setelah perintah
pertama, dan perintah ketiga setelah perintah kedua. Urutan ini memegang peranan
penting karena urutan berbeda dapat menghasilkan keluaran yang berbeda
(walaupun, ada kalanya tidak demikian). Apa yang terjadi jika urutan perintah
pertama dan kedua ditukar? Penukaran posisi menghasilkan kesalahan logika,
karena tidaklah mungkin menghitung perkalian 3.14 dengan jari sedangkan nilai jari
sendiri belum diketahui.
Di dalam algoritma, perbedaan urutan langkah bisa jadi melahirkan hasil akhir yang
berbeda. Untuk mengamati perubahan-perubahan itu kita gunakan tabel
penyimpanan data. Tabel ini akan menunjukkan perubahan-perubahan nilai yang
disimpan pada memori. Dalam hal ini yang dimaksud dengan memori komputer
adalah variabel-variabel.
Berikut ini adalah contoh perbandingan dua algoritma dengan perintah yang sama
tetapi berbeda urutan. Memori komputer dalam hal ini diwakili oleh variabel A dan
B.
Deskripsi Deskripsi
A10 A10
A2*A BA
BA A2*A
Write (B) Write (B)
Perhatikan algoritma Runtunan1. Mula-mula A kita beri nilai 10. Pada pernyataan
berikutnya nilai A menjadi dua kali A sebelumnya sehingga menjadi 20. Kemudian
pada B kita simpan nilai yang sama dengan nilai A yang terakhir, yaitu 20. Pada
perintah akhir kita tampilkan isi dari B, sehingga muncul angka 20. Perhatikan tabel
media penyimpanan berikut ini.
Perintah A B Output
A10 10
A2*A 20
BA 20
Write (B) 20
Perintah A B Output
A10 10
BA 10
A2*A 20
Write (B) 10
Dari kedua contoh tersebut terlihat bahwa meskipun perintah yang ada pada
Runtunan1 dan Runtunan2 adalah sama, tetapi urutan yang berbeda menyebabkan
ouputnya juga berbeda.
Studi Kasus
Seorang pedagang mangga menjual dagangannya yang setiap kg mangga dihargai
dengan harga tertentu. Setiap pembeli membayar harga mangga yang dibelinya
berdasarkan berat. Tentukan langkah-langkah pedagang untuk menentukan harga
yang harus dibayar pembeli..
Identifikasi masalah
Jawab :
1. Mulai
4. Kalikan hrg dengan brt, simpan sebagai harga yang harus dibayar
pembeli (byr)
6. Selesai
Dalam bentuk algoritma teks standar langkah-langkah tersebut di atas dapat ditulis
Algoritma BeliMangga
Deskripsi
read(hrg)
read(brt)
byrhrg*brt
write(byr)
Perhatikan : untuk operasi perkalian gunakan tanda (*) sebagai operator pengali.
Studi Kasus
Soni mempunyai kelereng sebanyak 15 buah. Jumlah itu 10 buah lebih banyak dari
kelereng Adi. Sedangkan Anis memiliki kelereng sebanyak 2 x jumlah kelereng Soni
dan Adi. Luki memiliki kelereng sebanyak 5 buah lebih sedikit dari jumlah kelereng
Soni, Adi dan Anis. Carilah banyak kelereng Adi, Anis dan Luki, jika diketahui
jumlah kelereng Soni.
Identifikasi masalah
Algoritma HitungKelereng
{Algoritma menghitung kelereng Adi, Anis, dan Luki}
Deskripsi
Read (Ksoni)
Kadi Ksoni-10
Kanis 2*(Ksoni+Kadi)
KlukiKsoni+Kadi+Kanis-5
Write(Kadi, Kanis, Kluki)
Readln(Ksoni) 15
KAdi KSoni-10 5
KAnis 2*(Ksoni+KAdi) 40
KLukiKSoni+KAdi+KAnis-5 55
Write(KAdi, KAnis, Kluki) 5 40 55
Dari tabel tersebut di atas dapat kita lihat ketika perintah “Readln(KSoni)”
dikerjakan (dengan menginput nilai 15) maka nilai variabel KSoni kemudian
menjadi 15. Ketika perintah KAdi KSoni-10, maka variabel KAdi langsung terisi
dengan nilai 5 (15-10). Demikian seterusnya. Dengan demikian, jika masukan
algoritma Ksoni=15, maka keluaran dari algoritma di atas adalah :
5 40 55
Studi Kasus
Berikut ini adalah algoritma menukar nilai yang disimpan dalam dua buah variabel
A dan B
Identifikasi masalah
Algoritma TukarIsi
Deskripsi
read(A,B)
temp A
A B
B temp
write(A,B)
A B 200
B temp 500
Dengan demikian, jika masukan algoritma A=500 dan B=200, maka keluaran dari
algoritma di atas adalah :
200 500.
Algoritma Percabangan
Pada algoritma runtunan telah kita lihat bahwa setiap aksi atau perintah selalu
dilakukan bila telah sampai gilirannya. Namun demikian ada kalanya suatu aksi
hanya bisa dilakukan bila memenuhi suatu kondisi atau persyaratan tertentu.
Algoritma ini kita sebut dengan algoritma seleksi kondisi atau juga percabangan.
1. Mulai
6. Selesai
Perhatikan bahwa ada dua kemungkinan perintah yang akan dikerjakan setelah
perintah ke-3 dikerjakan. Jika X habis dibagi dua maka selanjutnya perintah ke-4
yang dikerjakan, kemudian melompat ke 6 (perintah 5 tidak dikerjakan). Sebaliknya
jika X tidak habis dibagi dua perintah selanjutnya melompat ke-5 (perintah 4 tidak
dikerjakan) dan kemudian berakhir pada perintah ke-6.
Ada dua tipe algoritma percabangan yang akan kita bahas berikut ini yaitu
- Satu kondisi (if-then) : artinya hanya ada satu kondisi yang menjadi syarat
untuk melakukan satu atau satu blok (sekelompok) aksi. Bentuk umum
algoritma teks standar percabangan dengan satu kondisi :
if <kondisi> then
aksi
Jika <kondisi> terpenuhi atau bernilai benar maka aksi dikerjakan, sedangkan
jika tidak, maka aksi tidak dikerjakan dan proses langsung keluar dari
percabangan. Perhatikan contoh berikut ini.
if A>B then
write (A)
Ekspresi di atas menunjukkan bahwa perintah menulis / menampilkan A dikerjakan
hanya jika kondisi A>B terpenuhi (bernilai benar). Jika yang terjadi adalah
sebaliknya, tidak ada aksi yang dilakukan atau proses langsung keluar dari
percabangan. Secara flowchart ekspresi itu dapat ditulis seperti berikut.
t
A>B?
Write(A)
Ungkapan dalam belah ketupat “A>B?” dapat kita baca “apakah A lebih besar B?”.
Perhatikan bahwa pada belah ketupat tersebut memiliki dua cabang arus data, yang
satu untuk kondisi bernilai benar (y, artinya ya), sedang yang lain untuk kondisi
bernilai salah (t, artinya tidak). Jika kondisi bernilai benar (y) maka perintah yang
dikerjakan adalah write(A). Jika kondisi salah (t) maka arus data langsung menuju
ke bawah tanpa mengerjakan aksi apapun.
- Dua kondisi (if-then-else) : artinya ada dua kondisi yang menjadi syarat untuk
dikerjakannya dua jenis aksi. Bentuk umum percabangan dengan dua kondisi :
if <kondisi> then
aksi1
else
aksi2
Jika <kondisi> bernilai benar maka aksi1 dikerjakan. Sedangkan jika tidak
(<kondisi> bernilai salah), maka aksi yang dikerjakan adalah aksi2. Berbeda
dengan percabangan satu kondisi, pada percabangan dua kondisi ada dua aksi
untuk dua keadaan kondisi, yaitu untuk <kondisi> yang bernilai benar dan
<kondisi> yang bernilai salah. Contoh algoritma percabangan dua kondisi :
if A>B then
write (A)
else
write (B)
If x > 0 then
ket ‘bilangan positif’
if m = n
i m*n
write(i)
if bil>=0 then
ket (‘bilangan positif’)
else
ket (‘bilangan negatif’)
if m = n then
i m*n
j m-n
else
i m/n
j m+n
write(i,j)
Latihan : Cobalah anda buat flowchart dari algoritma di atas!
Studi Kasus
Berikut ini adalah algoritma untuk menentukan apakah suatu bilangan merupakan
bilangan genap atau ganjil. Input algoritma adalah bilangan yang akan ditentukan
jenisnya tersebut.
Identifikasi Masalah
Input : Bilangan
algoritma bilangan_genap_ganjil
deskripsi
read (bil)
ket’ganjil’
if bil mod 2 = 0 then
ket‘genap’
write (ket)
Mula-mula inputkan variabel (bil), misalnya 3. Kemudian (ket) diberi nilai ‘ganjil’.
Kemudian karena kondisi (bil mod 2 = 0) bernilai salah, maka (ket) tidak berubah
dan tetap bernilai ‘ganjil’, sehingga ketika perintah write(ket), output yang muncul
adalah ‘ganjil’. Untuk jelasnya perhatikan tabel penyimpanan data berikut.
read (bil) 3
ket’ganjil’ ‘ganjil’
ket‘genap’
Untuk menyelesaikan soal di atas anda juga dapat menggunakan algoritma if-then-
else seperti berikut ini.
algoritma bilangan_genap_ganjil
deskripsi
read (bil)
if bil mod 2 = 0 then
ket‘genap’
else
ket ’ganjil’
write (ket)
Studi Kasus
Buatlah algoritma menentukan gaji total pegawai. Diketahui pegawai dengan masa
kerja lebih dari 3 tahun mendapat tunjangan sebesar 20% gaji pokok sedang yang
kurang dari itu mendapat tunjangan 10%. Input program adalah masa kerja dan gaji
pokok.
Identifikasi masalah
Inp
ut :
mas
Begin Begin a
kerj
a,
Read (Bil) Read gaji
(mk.gapok)
pok
ok
Ket ‘Genap’
Y
mk > 3? Out
put :
gaji
Y N
Bil mod 2 =0 total
tjg ‘0.1*gapok tjg ‘0.2*gapok
N Algo
ritm
Ket ‘Ganji’ a
gatotGapok+tjg
Erro
r!
Write(Ket) Write
No
(Gatot) text
of
spec
End End ified
styl
e in
docu
Flowchart Algoritma 2.6.
men
Flowchart Algoritma 2.7.
t.-7
alg
ori
tma gaji_pegawai
deskripsi
read (mk, gapok)
if mk>3 then
tjg 0.2*gapok
else
tjg 0.1*gapok
gatot gapok+tjg
write(‘Gaji total ’,gatot)
1100
Algoritma Pengulangan
Ada kalanya untuk menyelesaikan suatu masalah, satu atau beberapa instruksi
harus dikerjakan beberapa kali. Misalnya anda hendak menampilkan tulisan
”algoritma” sebanyak tiga kali, maka algoritmanya dapat ditulis
1. Mulai
2. Tulis ‘Algoritma’
3. Tulis ‘Algoritma’
4. Tulis ‘Algoritma’
5. Selesai
2. Masukkan bilangan X
7. Tulis (Y)
8. Selesai
Atau dalam algoritma teks standar deskripsinya dapat ditulis seperti berikut :
Deskripsi
Read(X)
Y1
YX*Y
YX*Y
YX*Y
Write(Y)
Jika input algoritma (X) adalah 2, maka perubahan nilai dalam variabel dapat dilihat
pada tabel penyimpanan data berikut.
Perintah X Y Ouput
Read(X)
Y1 2
YX*Y 1
YX*Y 4
YX*Y 8
Write(Y) 16
16
Output yang dihasilkan adalah : 16
Cara ini memang dapat menyelesaikan permasalahan tersebut di atas, tapi sangat
tidak efisien dalam penulisannya. Bayangkan kalau pengulangan yang harus
dilakukan sebanyak 1000 kali, maka kita harus menulisnya sebanyak seribu kali
pula. Tentunya hal ini sangat sangat merepotkan. Untuk itu kita perlu mengenal
satu lagi algoritma dasar yaitu algoritma pengulangan. Dengan algoritma ini kita
cukup menuliskan perintahnya sekali untuk pengulangan berapapun banyaknya.
Bila mengacu pada bahasa pemrograman Pascal, terdapat tiga ekspresi algoritma
untuk pengulangan :
1. for-do
2. while-do
3. repeat-until
Pengulangan For-Do
For-do menaik
Contoh
for i 1 to 3 do
Write(‘Halo’)
i1..3
Write(‘Halo’)
Kondisi pengulangan for secara tersirat dapat dilihat pada ni (nilai_awal) dan nf
(nilai_akhir); Nilai yang terkandung pada var mula-mula sama dengan nilai_awal,
kemudian bertambah (berkurang) sebanyak satu, kemudian berhenti setelah var
lebih besar (lebih kecil) nilai_akhir.
Contoh
for i 3 downto 1 do
Write(‘Halo’)
Penjelasan
Halo
Halo
Halo
For-do menurun
Kita dapat membuat output yang sama seperti di atas dengan for-do menurun.
for i 3 downto 1 do
Write(‘Halo’)
i3..1
Write(‘Halo’)
Studi Kasus
Output :1 2 3 …
Algoritma deret
Deklarasi
var
N,x : integer
Deskripsi
read(N)
for x 1 to N do
write(x)
Mula-mula masukkan nilai N, misalnya 3. Setelah itu masuk ke dalam loop dengan x
mula-mula 1. Pengulangan dilakukan selama kondisi bernilai true, yaitu selama nilai
x dalam rentang 1..N. Kemudian write (x) menghasilkan keluaran 1. Proses diulang
lagi dengan x (=2) Kemudian write (x) menghasilkan keluaran 2. Demikian
seterusnya. Aksi tidak lagi dikerjakan saat x>N.
Studi Kasus
Buat algoritma yang menampilkan jumlah dari deret pada Algoritma Error! No text
of specified style in document.-8.
Input :-
Algoritma jumlah_deret
Deskripsi
read(N)
jum0
for x 1 to N do
jumjum+x
write(jum)
read(N) 4
jum0 0
write(jum) 10
Penjelasan
Latihan
Coba masukkan input N yang lain, misalnya 7, kemudian isi tabel penyimpanan
data dan tuliskan nilai keluarannya.
Pengulangan While-Do
t
<kondisi>?
Aksi
Teks algoritma dan flowchart di atas menunjukkan bahwa ada pengecekan kondisi
dulu sebelum aksi berikutnya dilakukan. Aksi di bawah kondisi dikerjakan jika
kondisinya atau lebih tepatnya nilai boolean kondisi bernilai benar. Jika kondisi
bernilai salah, maka proses akan ‘melompat’ atau mengerjakan aksi yang berada di
luar loop.
Studi Kasus
Deskripsi masalah
Input :-
Output :2 4 6 …
Algoritma deret
Deskripsi
read(N)
x 2
while x <= N do
write(x)
x x + 2
Read(N) 8
x2 2
xx+2 4
xx+2 6
xx+2 8
x=8 : Write(x) true 8
xx+2 10
xx+2
Mula-mula inputkan nilai N dalam hal ini adalah 8. Kemudian x diberi nilai 2
(proses inisialisasi). Setelah itu x dibandingkan dengan N. Jika aksi (x<=N) bernilai
benar maka x ditampilkan. Lalu x ditambah 2 dan menghasilkan x baru.
Setelah itu arus data kembali ke atas untuk menguji apakah aksi x<=N bernilai
benar. Jika iya, maka proses yang sama dengan sebelumnya dilakukan kembali.
Pertanyaan
Untuk N=10
Jawab : Tidak ada output yang dihasilkan, karena kondisi sejak awal sudah tidak
terpenuhi, sehingga aksi dalam loop while tidak ada yang dikerjakan
- Bagaimana output algoritma jika aksi (xx+2) dan (write(x)) saling bertukar
tempat (urutannya ditukar)?
begin
read
(N)
x<--2
t
x<=N
write (x)
x<--x+2
End
repeat
aksi
until <kondisi>
Aksi
t
<kondisi>
Studi Kasus
Deskripsi masalah
Output :2 4 6 …
Algoritma deret
Deskripsi
read(N)
x 2
repeat
write(x)
x x + 2
until x>N
Begin
Read(N)
X2
Write(X)
XX+2
N
X>N
End
Dari ketiga algoritma pengulangan yang sudah dibahas, for-do adalah jenis
pengulangan yang sudah jelas banyaknya pengulangan. Itu sebabnya pengulangan
for-do cocok digunakan untuk kasus dimana jumlah pengulangannya sudah jelas.
Misalnya, kita ingin membuat algoritma menampilkan 10 suku pertama yang positif
dari sebuah deret hitung dengan beda merupakan masukan. Jika deret hitung yang
diinginkan memiliki beda sama dengan tiga, maka keluaran yang diharapkan
adalah
3 6 9 12 15 18 21 24 27 30
Algoritma DeretHitung1
Deskripsi
Read(Beda)
Suku 0
For i 1 to 10 do
Suku Suku + Beda
Write(Suku)
Berbeda dengan pengulangan for-do, tidak ada jaminan berhenti pada pengulangan
while-do dan repeat-until kecuali dibuat suatu kondisi yang membuat algoritma
tersebut berhenti pada suatu saat. Oleh karena itu di dalam pengulangan repeat dan
while harus ada kondisi yang membatasi sampai kapan pengulangan tersebut
berlangsung. Itu sebabnya pengulangan while dan repeat lebih cocok digunakan
untuk kasus pengulangan yang belum jelas banyaknya pengulangan yang
diinginkan, namun diketahui kondisi berhentinya.
Contoh.
x 0
while x < 20 do
xx+2
write(‘Halo’)
x 0
repeat
xx+2
write(‘Halo’)
until x>=20
x 0
repeat
write(‘Halo’)
x = x + 3
until x = 10
Pengulangan ini tidak akan pernah berhenti karena nilai x tidak akan pernah
memenuhi kondisi until x = 10.
x 0
while x < 20 do
write(‘Halo’)
tidak pernah berhenti karena kondisi while x < 20 selalu terpenuhi, sehingga
pengulangan tidak akan berhenti.
Oleh karena itu, pemrogram harus lebih jeli dalam menggunakan pengulangan
while-do atau repeat until untuk menghindari pengulangan tanpa batas.
Contoh lain.
Misalkan kita ingin menampilkan suatu deret hitung dengan beda tertentu (input)
yang deret tersebut berhenti sebelum jumlah deret tersebut mencapai suatu nilai
batas. Suku pertama dari deret sama dengan beda. Beda dan batas merupakan
masukan.
Di sini kita tidak bisa memastikan berapa kali pengulangan (disebut juga iterasi)
yang harus dilakukan. Karena input yang berbeda membutuhkan jumlah
pengulangan yang berbeda pula. Misalnya, jika kita ingin menampilkan deret positif
dengan beda 3 dan berhenti sebelum jumlah deret tersebut mencapai 50 maka deret
dimaksud adalah
3 6 9 12 15
Jumlah deret di atas adalah 45, belum mencapai batas 50. Dalam hal ini pengulangan
while-do merupakan pilihan yang lebih memudahkan.
Algoritma DeretHitung2
Deklarasi
Beda, Suku, Batas, Jum : integer
Deskripsi
Read(Beda, Batas)
Jum 0
Suku 0
While Jum < Batas
Suku Suku + Beda
Jum Jum+Suku
Write(Suku)
Lain halnya jika kondisi berhenti yang diinginkan adalah setelah jumlah deret
tersebut melewati suatu nilai batas. Dengan input beda = 3 dan batas = 50 maka
deret yang dimaksud adalah
3 6 9 12 15 18
Algoritma DeretHitung3
Deklarasi
Beda, Suku, Jum, Batas : integer
Deskripsi
Read(Beda, Batas)
Jum 0
Suku 0
Repeat
Suku Suku + Beda
Jum Jum+Suku
Write(Suku)
Until Jum > Batas
Contoh lain. Dalam kasus tertentu bisa jadi semua cara ini bisa digunakan.
Misalnya, algoritma menghitung perpangkatan XN, dengan X merupakan bilangan
real dan N merupakan bilangan bulat positif. X dan N merupakan input. Kasus ini
dapat diselesaikan dengan pengulangan for.
Algoritma XPangkatNFor
Deklarasi
N,i : integer
X, Pangkat : real
Deskripsi
Read(X, N)
Pangkat 1
For i 1 to N do
Pangkat Pangkat * X
Write (Pangkat)
Algoritma XPangkatNWhile
Deklarasi
N,i : integer
X, Pangkat : real
Deskripsi
Read(X, N)
Pangkat 1
i 0
While i <= N
i i + 1
Pangkat Pangkat * X
Write (Pangkat)
Algoritma XPangkatNRepeat
Deklarasi
N,i : integer
X, Pangkat : real
Deskripsi
Read(X, N)
Pangkat 1
i 0
Repeat
i i + 1
Pangkat Pangkat * X
Until i > N
Jadi, sebenarnya agak sulit menentukan batasan yang tegas mengenai kasus mana
yang cocok dikerjakan dengan for-do, atau while-do atau repeat-until.
Pengalamanlah dan kebiasaan serta selera pemrogram yang lebih pandai menjawab
hal ini.
Soal Latihan
Soal Runtunan
Algoritma UtakAtik1
Deskripsi
Read(A)
B 0.5 * A + 15
C A * A -3
D B + C
Write(B,C,D)
a. A = 4 b. A = 6 c. A = -3
Algoritma UtakAtik1
Deskripsi
Read(A,B)
C 0.5 * (A + B)
D A * C - 3
E C + D
Write(C,D,E)
6. Setiap pegawai dalam perusahaan X mendapat penghasilan dari gaji pokok dan
tunjangan. Besar tunjangan adalah 20% dari gaji pokok. Selain itu penghasilan
tersebut terkena pajak yang besarnya 5% dari penghasilan. Buatlah algoritma
menghitung penghasilan bersih pegawai dengan masukan gaji pokok.
7. Buatlah algoritma untuk menghitung luas segitiga sama sisi yang panjang sisi
terpanjangnya sama dengan diameter sebuah lingkaran. Input : jari-jari lingkaran
yang dimaksud.
8. Andi 8 tahun lebih tua dari Ali. Ali lebih muda 5 tahun dari Ahmad. Usia Amir
adalah setengah dari jumlah usia Andi dan Ahmad. Buatlah algoritma
menghitung usia Andi, Ali dan Amir, dengan masukan usia Ahmad.
a. 45 b. 28 c. 36
10. Buatlah algoritma teks untuk menghitung besar hambatan pengganti untuk tiga
buah hambatan yang dipasang secara paralel. Input : ketiga hambatan R1, R2, R3.
11. Buatlah algoritma untuk mengkonversi waktu dari satuan jam, menit, dan detik
ke dalam satuan detik.
12. Berkebalikan dengan soal no 11, buatlah algoritma yang mengkonversi waktu
dari satuan detik ke dalam satuan jam, menit, dan detik.
Soal Percabangan
Deskripsi
Read(A,B)
if A+B < 10 then
C A-B
else
C A+B
D 2*C+B
Write(C,D)
Diketahui masukan A dan B masing-masing adalah :
b. 4 dan 6 b. 3 dan 5 c. 9 dan 6
3. Buatlah algoritma teks dan flowchart untuk menyelesaikan masalah berikut ini
a. Menginput sebuah bilangan kemudian menentukan apakah sebuah data
masukan merupakan bilangan kelipatan tiga atau bukan.
b. Menginput dua bilangan kemudian menentukan manakah yang merupakan
bilangan terbesar.
c. Menginput dua buah bilangan kemudian menentukan apakah bilangan yang
satu merupakan kelipatan dari bilangan yang lainnya atau tidak.
d. Menginput sebuah bilangan dan menentukan apakah ia bilangan positif atau
bukan
Buatlah algoritma teks standar untuk menentukan total tagihan yang dibayar
oleh pelanggan PLN. Input algoritma : jumlah pemakaian (kwh) dan golongan.
Output : total tagihan.
8. Seorang salesman sebuah produk mendapat gaji dari perusahaannya terdiri dari
gaji pokok dan bonus. Besar gaji pokok adalah 5000. Jika produk yang terjual
lebih dari 100, salesman tersebut mendapat bonus sebesar 20% omset penjualan,
sedangkan jika kurang mendapat 10% dari omset. Buatlah program menghitung
gaji salesmen dengan masukan banyaknya produk yang terjual dan harga satuan
produk.
Soal Pengulangan
Deskripsi
Read(N)
y0
z0
For x 1 to N do
y y +
z z + y
write(x,y,z)
a. Tuliskan keluaran algoritma untuk N=5
b. Tuliskan algoritma di atas menggunakan pengulangan while dan repeat
Algoritma UtakAtik6
Deskripsi
Read(N,k)
i0
j0
while i <= N do
i i + 1
j j + k
write(j)
a. Tentukan keluaran algoritma untuk (N,k) =(5,2)
b. Nyatakan algoritma tersebut dalam pengulangan repeat dan while
Algoritma UtakAtik6
Deskripsi
Read(M,N)
repeat
if i<5 then
jj+M
else
jj+N
i i + 1
write(j)
until i>8
a. Tentukan keluaran algoritma jika M,N = 2,1
b. Nyatakan algoritma tersebut dalam pengulangan for dan while