Runtunan dan Percabangan
Pendahuluan
Suatu algoritma
atau program sebenarnya hanya terdiri dari tiga buah struktur dasar saja,
yaitu :
Struktur Urut atau Runtunan (Sequence)
Struktur
Keputusan atau Percabangan (Decision)
Struktur
Perulangan (Repetation/Looping)
Ketiga jenis
langkah tersebut membentuk konstruksi suatu algoritma/program. Jadi, sebuah
algoritma/program dapat dibangun dari tiga buah struktur dasar diatas.
Sebuah runtunan
terdiri dari satu atau lebih instruksi. Tiap instruksi dikerjakan secara
berurutan sesuai dengan urutan penulisannya, yakni sebuah instruksi
dilaksanakan setelah instruksi sebelumnya selesai dikerjakan.
Struktur
Keputusan , merupakan sebuah instruksi dikerjakan jika kondisi tertentu dipenuhi.
Tiap–tiap instruksi akan diseleksi oleh kondisi, apabila instruksi memenuhi
kondisi yang diminta, maka instruksi akan dijalankan.
Sedangkan
Perulangan
adalah instruksi yang dapat mengulang sederetan Instruksi secara
berulang-ulang sesuai persyaratan yang ditetapkan.
Pada
Bab ini hanya akan dibahas tentang runtunan dan Keputusan saja.
Tujuan Instruksional Khusus
Mahasiswa
dapat menerapkan runtunan dan sintaks-sintaks pemilihan dalam
menyelesaikan persoalan
Runtunan
Ada
beberapa hal yang perl;u diperhatikan dalam struktur Runtunan, yakni :
- Pada struktur Runtunan instruksi dikerjakan secara berurutan baris perbaris mulai dari baris pertama hingga baris terakhir, tanpa ada loncatan atau perulangan.
- Tiap instruksi dikerjakan satu per satu.
- Tiap instruksi dilaksanakan tepat sekali, tidak ada instruksi yang diulang.
- Urutan instruksi yang dilaksanakan pemroses sama dengan urutan instruksi sebagai tertulis di dalam teks algoritma.
- Akhir dari instruksi terakhir merupakan akhir algoritma
Dibawah
ini merupakan contoh dari algoritma dan program runtunan, dimana setiap langkah
dikerjakan secara berurutan satu persatu, dimulai dari langkah pertama,
kemudian langkah kedua dan seterusnya hingga berakhir langkahnya,
Algoritma secara umum
A ß 5
B ß 4
T ß A + B
WRITE(T)
Algoritma dalam bahasa C
#include<stdio.h>
void main()
{
int A,B,T;
A = 5;
B = 4;
T = A + B;
printf(“%i”, T);
}
Pada contoh Algoritma secara umum
diatas terdiri dari 4 langkah, mula-mula dikerjakan langkah pertama nilai 5
disimpan di variabel A, kemudian setelah selesai dikerjakan langkah kedua yakni
nilai 4 disimpan di variabel B setelah selesai dikerjakan langkah ke tiga yakni
nilai variabel A ditambah dengan nilai variabel B disimpan ke dalam variabel T
dan terakhir nilai yang ada dalam variabel T akan dicetak.
Contoh algoritma runtunan yang
lain, seperti ditunjukan dalam soal kasus berikut ini.
Susun program dalam bahasa C berikut
Flowchartnya untuk menginput dua buah bilangan dan mencetak
TOTALnya
#include
<stdio.h>
void main()
{
int A, B, T;
scanf(“%i”, &A);
scanf(“%i”, &B);
T = A + B;
printf(“%i”, T);
}
Seleksi atau Percabangan
Dalam kehidupan nyata, seringkali dihadapkan pada beberapa pilihan. Pada saat
menghadapi pilihan, satu atau beberapa kondisi menjadi bahan pertimbangan dalam memutuskan untuk
melakukan aksi tertentu. Contoh:
Jika cuaca mendung, maka saya membawa payung.
Pada
contoh tersebut, ‘cuaca mendung’ merupakan kondisi yang menjadi bahan
pertimbangan untuk melakukan aksi ‘saya membawa payung’. Jika kondisi ‘cuaca
mendung’ terpenuhi (bernilai benar), maka aksi ‘saya membawa payung’ dilakukan
Sebuah
program komputer juga dapat mengenali situasi pemilihan. Pernyataan dalam
contoh di atas dapat dituliskan dalam struktur pemilihan sebagai berikut:
IF cuaca mendung
THEN
saya membawa payung
END IF
Untuk selengkapnya penggunaan
bentuk pemilihan akan dijelaskan berikut ini.
Bentuk
Umum IF dan Variasinya
Bentuk IF yang juga dikenal dengan istilah IF Statement, memiliki
bentuk umum sebagai berikut :
If kondisi then
Aksi-1
[else
Aksi-2]
End if
Kondisi adalah ekspresi boolean yang bernilai benar atau salah,
bisa berupa:
Sebuah nilai boolean: true atau false
Sebuah variabel boolean
Sebuah pembandingan data
Dua pembandingan data atau lebih yang
digabung
Aksi
berupa satu statement beberapa statement, dimana tiap statement
dapat berupa:
Statement pengisian nilai seperti a ß 5
Statement input data
Statement output data
Statement pemilihan (If Statement
atau Case Statement)
Statement pengulangan (For, Repeat
atau While Statement)
[else Aksi-2], tanda [ ] menyatakan opsional (boleh ada/tidak
ada),
dimana kalau tidak ada, berarti setelah
Aksi-1 langsung selesai.
Dari bentuk umum yang telah dijelaskan, maka variasi bentuk IF ini
banyak dan tidak berhingga. Di antaranya yang penting dapat disebutkan berikut:
- if tanpa else (satu pilihan, mengerjakan atau tidak)
- if dengan else (dua pilihan)
- if bersarang dimana dalam if ada if lagi, karena Statement dapat
berupa
satu perintah pemilihan. Salah satu bentuk
if bersarang adalah if untuk
memilih salah satu dari banyak pilihan.
Contoh-contoh variasi:
1. Satu pilihan (tanpa ELSE)
|If kondisi then
|Statement
|End if
Pada variasi ini, apabila kondisi
bernilai benar maka Statement dikerjakan dan apabila kondisi bernilai salah
maka Statement tidak dikerjakan.
2. Dua pilihan (dengan ELSE)
|If kondisi then
| Statement-1
|else
| Statement-2
|End if
Pada
variasi ini, apabila kondisi bernilai benar maka Statement-1 yang dikerjakan
dan apabila kondisi bernilai salah maka Statement-2 yang dikerjakan (tidak
pernah 2 statement ini dikerjakan semua).
3. Tiga pilihan atau lebih, misal Statement-1dan Statement-2 pada
contoh-2
dikembangkan menjadi bentuk if lagi
sehingga jadi 4 pilihan:
|If kondisi-1 then
| |If kondisi-2 then
| | Statement-a
| |Else
| | Statement-b
| |End if
|else
| |if kondisi-3 then
| | Statement-c
| |Else
| | Statement-d
| |End if
|End if
Pada
variasi ini, apabila kondisi-1 bernilai benar maka dilanjutkan memeriksa
kondisi-2. Apabila kondisi-2 bernilai benar maka Statement-a yang dikerjakan
dan apabila kondisi-2 bernilai salah maka Statement-b yang dikerjakan.
Sedangkan apabila kondisi-1 salah maka dilanjutkan memeriksa kondisi-3. Apabila
kondisi-3 bernilai benar maka Statement-c yang dikerjakan dan apabila kondisi-3
bernilai salah maka Statement-d yang dikerjakan. (dari 4 statement yang ada
hanya salah satu yang dikerjakan.
4. Tiga pilihan atau lebih, dengan mengembangkan Statement setelah ELSE
|If kondisi-1 then
| Statement-1
|else
| |if kondisi-2 then
| | Statement-2
| |Else
| | |If kondisi-3 then
| | |
Statement-3
| | |Else
| | |
Statement-4
| | |End if
| |End if
|End if
5. Penyederhanaan penulisan contoh-4
(posisi statement tidak semakin ke kanan,
END IF hanya satu kali)
|If kondisi-1 then
| Statement-1
|Else if kondisi-2 then
| Statement-2
|Else if kondisi-3 then
| Statement-3
|Else
| Statement-4
|End if
Pada
variasi 4 dan 5 ini, apabila kondisi-1 bernilai benar maka Statement-I yang
dikerjakan dan selesai, tetapi apabila kondisi-1 bernilai salah maka
dilanjutkan memeriksa kondisi-2. Apabila kondisi-2 bernilai benar maka
Statement-2 yang dikerjakan dan selesai, tetapi apabila kondisi-2 bernilai
salah maka dilanjutkan memeriksa kondisi-3. Apabila kondisi-3 bernilai benar
maka Statement-3 yang dikerjakan, tetapi apabila kondisi-3 bernilai salah maka
Statement-4 yang dikerjakan. (dari 4 statement yang ada hanya salah satu yang
dikerjakan. Penggunaan variasi 5 lebih baik, karena tulisan tidak makin ke kanan walaupun pilihan semakin banyak.
6. Bentuk bebas (jumlahnya tak terhingga), salah satunya
|If kondisi-1 then
|
|Statement-a
|
|If kondisi-2 then
|
| |If kondisi-3 then
|
| | Statement-b
|
| |Else
|
| | |If kondisi-4 then
|
| | |
Statement-c
| |
| |Else
|
| | |
Statement-d
|
| | |End if
|
| |End if
|
|Else
|
| Statement-e
|
|End if
|
|Statement-f
|Else
|
|Statement-g
|
|if kondisi-5 then
|
| Statement-h
|
|End if
|
|if kondisi-6 then
|
| Statement-i
|
|End if
|
|Statement-j
|End if
Terapan bentuk-bentuk IF
Sebuah masalah terkadang dapat diselesaikan dengan berbagai cara,
seperti penggunaan “if tanpa else” dan “if dengan else”. Sebagai contoh dapat
dilihat pada kasus berikut:
Kasus 5.1 : Menentukan apakah bilangan yang diinput positip atau negatip
Solusi : ada beberapa cara
berikut
Solusi-1
|Input(bil)
|If (bil>=0) then
| Output(‘positip’)
|Else
| Output(‘negatip’)
|End if
Solusi-2
|Input(bil)
|If (bil<0) then
| Output(‘negatip’)
|Else
| Output(‘positip’)
|End if
Solusi-3
|Input(bil)
|Ket ß ‘positip’
|If (bil<0) then
| Ket ß ‘negatip’
|End if
|Output(Ket)
Solusi-4
|Input(bil)
|Ket ß ‘negatip’
|If (bil>=0) then
| Ket ß ‘positip
|End if
|Output(Ket)
Solusi-5
|Input(bil)
|If (bil>=0) then
| Output(‘positip’)
|End if
|If (bil<0) then
| Output(‘negatip’)
|End if
Solusi-6
|Input(bil)
|If (bil<0) then
| Output(‘negatip’)
|End if
|If (bil>=0) then
| Output(‘positip’)
|End if
Solusi-7
|Input(bil)
|positip ß bil>=0
|If (positip=true) then
| Output(‘positip’)
|else
| Output(‘negatip’)
|End if
Solusi-8
|Input(bil)
|positip ß bil>=0
|If (positip) then
| Output(‘positip’)
|else
| Output(‘negatip’)
|End if
Ulasan dari beberapa solusi:
Solusi-1 dan Solusi-2 adalah
solusi yang sama, digunakan kondisi berkebalikan sehingga posisi perintah
tampilan ditukar.
Solusi-3 dan Solusi-4 juga sama,
keduanya menggunakan “if tanpa else”, dengan cara variabel Ket diinisialisasi
(diberi nilai awal) dengan salah satu kemungkinan hasilnya, kemudian diubah
bila memenuhi kondisi.
Solusi-5 dan Solusi-6 juga sama,
pada solusi ini dibuat 2 buah “if tanpa else” secara terpisah. Dengan cara ini,
berarti akan dilakukan pemeriksaan kondisi 2 kali (padahal sebenarnya cukup satu
kali).
Solusi-7 dan Solusi-8 keduanya
menggunakan variabel bertipe boolean bernama positip untuk mencatat hasil
pembandingan bil>=0. Penulisan
“if (positip=true)” sama saja dengan menuliskan “if (positip)” cara yang
terakhir lebih cepat waktu eksekusinya.
Berikut beberapa kasus yang lain:
Kasus : Terbesar dari 3 bilangan
Solusi-1
|Input(A,B,C)
|If (A>B) then
| |If (A>C) then
| | Output(‘terbesar =’,A)
| |Else
| | Output(‘terbesar =’,C)
| |End if
|else
| |if (B>C) then
| | Output(‘terbesar =’,B)
| |Else
| | Output(‘terbesar =’,C)
| |End if
|End if
Solusi-2
|Input(A,B,C)
|If (A<B) then
| |If (B<C) then
| | Output(‘terbesar =’,C)
| |Else
| | Output(‘terbesar =’,B)
| |End if
|else
| |if (A<C) then
| | Output(‘terbesar =’,C)
| |Else
| | Output(‘terbesar =’,A)
| |End if
|End if
Solusi-3
|Input(A,B,C)
|If (A>B and A>C) then
| |Output(‘terbesar =’,A)
|Else
| |if (B>A and B>C)
then
| | Output(‘terbesar =’,B)
| |Else
| | if (C>A and C>B) then
| | Output(‘terbesar =’,C)
| | |End if
| |End if
|End if
Solusi-4
|Input(A,B,C)
|If (A>B and A>C) then
| |Output(‘terbesar =’,A)
|Else if (B>A and B>C) then
| |Output(‘terbesar =’,B)
|Else if (C>A and C>B) then
| |Output(‘terbesar =’,C)
|End if
Solusi-5
|Input(A,B,C)
|Max ßA
|If (B>Max) then
| |Max ßB
|End if
|If (C>Max) then
| |Max ßC
|End if
|Output(‘terbesar = ‘,Max)
Solusi-6
|Input(A,B,C)
|If (A>B) then
| |Max ßA
|else
| |Max ßB
|End if
|If (C>Max) then
| |Max ßC
|End if
|Output(‘terbesar = ‘,Max)
Ulasan dari beberapa solusi:
Solusi-1,Solusi-2 dan Solusi-3
mengguanakan 3 buah kondisi dan setiap hasil yang didapat akan melalui
pemeriksaan 2 buah kodisi.
Solusi-4 menggunakan kondisi yang
terdiri dari 2 pembandingan, dengan rata-rata melakukan pemeriksaan 2 kondisi
(4 pembandingan)
Solusi-5 dan Solusi-6 digunakan 2
buah if yang terpisah, dimana hasil sementara nilai terbesar dicatat di tempat
baru (Max), cara ini lebih praktis terutama kalau dikembangkan untuk
mencari terbesar dari banyak bilangan.
Kasus 5.3 : Pembayaran air
minum PDAM
PDAM menerapkan pembayaran air
minum perumahan dengan cara perhitungan sebagai berikut :
- Tarif per m3 untuk 10 m3
pertama (1-10) adalah 2.000
- Tarif per m3 untuk 10 m3 kedua
(11-20) adalah 3.000
- Tarif per m3 untuk 10 m3 ketiga
(21-30) adalah 4.000
- Tarif per m3 untuk 10 m3
selanjutnya (31 ke atas) adalah 5.000
- Pemakaian air dihitung minimal
10 m3 (kurang dari 10 m3 dianggap 10 m3)
- Biaya administrasi bulanan
sebesar 10.000
Bagaimana membuat algoritma untuk
menghitung biaya tersebut?
Contoh kasus
Penggunaan air 5 m3 dengan biaya
10 x 2.000 + 10.000 = 30.000
Penggunaan air 15 m3 dengan biaya
10 x 2.000 + 5 x 3.000 + 10.000 = 45.000
Penggunaan air 75 m3 dengan biaya
10 x 2.000 + 10 x 3.000 + 10 x 4.000 + 45 x 5.000 +10.000 = 325.000
Solusi :
Pemakaian air dibagi menjadi 4
area pemakaian (misal area a,b,c,d), baru dihitung total biaya
Solusi-1
|Input(pakai)
|If (pakai>30) then
| |aß 10
| |bß 10
| |cß 10
| |dß pakai - 30
|Else If (pakai>20) then
| |aß 10
| |bß 10
| |cß pakai - 20
| |dß 0
|Else If (pakai>10) then
| |aß 10
| |bß pakai - 10
| |cß 0
| |dß 0
|Else
| |aß 10
| |bß 0
| |cß 0
| |dß 0
|End if
|biayaß a * 2000 + b * 3000 +
| c * 4000 + d * 5000 +
| 10000
|Output(‘biaya
=’,biaya)
Solusi-2
|Input(pakai)
|aß10
|bß 0
|cß 0
|dß 0
|If (pakai>30) then
| |bß 10
| |cß 10
| |dß pakai - 30
|Else If (pakai>20) then
| |bß 10
| |cß pakai - 20
|Else If (pakai>10) then
| |bß pakai - 10
|End if
|biayaß a * 2000 + b * 3000 +
| c * 4000 + d * 5000 +
| 10000
|Output(‘biaya =’,biaya)
Ulasan solusi :
Pada solusi-1, tiap aksi dari if
, terdiri dari 4 statement mengisi a,b,c dan d. Bentuk solusi ini
disederhanakan pada solusi-2 dengan cara memberikan nilai awal sebelum masuk
if.
Kasus-5.4 : Indeks Nilai Kuliah
Indeks nilai sebuah matakuliah
didapat dengan cara menghitung nilai akhir berdasarkan prosentase
komponen-komponennya kemudian ditentukan indeks nilainya. Misal digunakan
ketentuan sebagai berikut:
- Nilai Akhir dihitung dari 30%
UTS, 40%UAS, 20% Tugas dan 10% kehadiran
- Indeks Nilai ditentukan
berdasarkan Nilai Akhir (NA),
Bila NA >= 85 maka Indeksnya A
Bila 85 > NA >= 70 maka Indeksnya B
Bila 70 > NA >= 55 maka Indeksnya C
Bila 55 > NA >= 40 maka Indeksnya D
Bila NA < 40 maka Indeksnya E
Bagaimana membuat algoritma untuk
menentukan Indeks Nilai tersebut?
Solusi-1
|Input(UTS,UAS,Tugas,Abs)
|NAS ß 0.3*UTS + 0.4*UAS +
| 0.2*Tugas + 0.1*ABS
|If (NAS>=85) then
| |Indeks ß ‘A’
|Else If (NAS>=70 and NAS<85)
| |then
| |Indeks ß ‘B’
|Else If (NAS>=55 and NAS<70)
| |then
| |Indeks ß ‘C’
|Else If (NAS>=40 and NAS<55)
| |then
| |Indeks ß ‘D’
|Else
| |Indeks ß ‘E’
|End if
|Output(‘Indeks Nilai =’,Indeks)
Solusi-2
|Input(UTS,UAS,Tugas,Abs)
|NAS ß 0.3*UTS + 0.4*UAS +
| 0.2*Tugas + 0.1*ABS
|If (NAS>=85) then
| |Indeks ß ‘A’
|Else If (NAS>=70) then
| |Indeks ß ‘B’
|Else If (NAS>=55) then
| |Indeks ß ‘C’
|Else If (NAS>=40) then
| |Indeks ß ‘D’
|Else
| |Indeks ß ‘E’
|End if
|Output(‘Indeks Nilai =’,Indeks)
Ulasan solusi :
Pada solusi-2 lebih baik dari
solusi-1 karena pemeriksaan kondisi yang serupa tidak dilakukan dua kali. Pada
solusi-1, pembandingan NAS dengan 85 dilakukan dua kali, yang pertama
NAS>=85 dan yang kedua NAS<85 adalah pembandingan yang serupa.
Bentuk Umum CASE dan variasinya
Sebenarnya semua bentuk pemilihan dapat ditulis dengan IF, namun
penulisan dengan IF untuk banyak pilihan terasa kurang praktis. Bentuk CASE
adalah cara lain penulisan bentuk pemilihan yang lebih sederhana, namun bentuk
ini hanya dapat menggantikan IF apabila memenuhi syarat:
- kondisi berupa pembandingan kesamaan
(dengan tanda “=” )
- nilai yang dibandingkan bertipe ordinal
(integer,char dan boolean)
Bentuk CASE yang juga dikenal
dengan istilah CASE Statement, memiliki bentuk umum sebagai berikut :
Case ekspresi
Nilai-1: Aksi-1
Nilai-2: Aksi-2
...
Nilai-N: Aksi-N
[Otherwise : Aksi-X]
End Case
Ekspresi bertipe ordinal, berupa:
Sebuah nilai ordinal: boolean, integer,
char (bukan string atau real)
Sebuah variabel bertipe ordinal
Operasi data (nilai atau variabel) yang
menghasilkan sebuah nilai ordinal
Nilai harus berupa nilai ordinal (tidak boleh variabel)
Aksi berupa satu statement beberapa statement,
dimana tiap statement dapat berupa:
Statement pengisian nilai seperti a ß 5
Statement input data
Statement output data
Statement pemilihan (If Statement atau Case Statement)
Statement pengulangan (For, Repeat atau While Statement)
[otherwise: Aksi-X], tanda [ ] menyatakan opsional (boleh
ada/tidak ada),
dimana kalau
tidak ada, berarti setelah Aksi-1 langsung selesai. Fungsi Otherwise sama
dengan ELSE pada IF Statement
Dari bentuk umum yang telah dijelaskan, maka variasi bentuk CASE ini
banyak dan tidak berhingga. Di antaranya yang penting dapat disebutkan berikut:
- Case tanpa otherwise
- Case dengan otherwise
- Case dengan Aksi yang sama untuk beberapa Nilai
- Case bersarang dimana dalam case ada case lagi, atau Statement lain
Contoh-contoh variasi:
1. Case tanpa otherwise
Case ekspresi
Nilai-1: Statement-1
Nilai-2: Statement -2
...
Nilai-N: Statement -N
End Case
2. Case dengan otherwise
Case ekspresi
Nilai-1: Statement -1
Nilai-2: Statement -2
...
Nilai-N: Statement -N
[Otherwise : Aksi-X]
End Case
3. Case dengan Aksi yang sama
untuk beberapa Nilai
Case ekspresi
Nilai-1,Nilai-2,Nilai-3: Statement -1
Nilai-4,Nilai-5,Nilai-6: Statement -2
Nilai-7..Nilai-10: Statement -3
...
Nilai-N: Statement -N
[Otherwise : Statement -X]
End Case
4. Case bersarang, contohnya :
Case ekspresi-1
Nilai-1: Case ekspresi-2
Nilai-a: Statement -1
Nilai-b: Statement -2
End Case
Nilai-2: if kondisi then
Statement-3
Else
Statement-4
End if
Nilai-3:
...
Nilai-N: Statement -N
End Case
Terapan bentuk-bentuk CASE
Kasus : Menentukan nama hari dari nomor
hari yang diinput
Dinput nomor hari, ditampilkan
nama harinya, bagaimana algoritmanya?
Solusi dengan IF dan CASE
Solusi-If
|Input(NoHari)
|If (NoHari=1) then
| |NmHari ß ‘Senin’
|Else If (NoHari=2) then
| |NmHari ß ‘Selasa’
|Else If (NoHari=3) then
| |NmHari ß ‘Rabu’
|Else If (NoHari=4) then
| |NmHari ß ‘Kamis’
|Else If (NoHari=5) then
| |NmHari ß ‘Jumat’
|Else If (NoHari=6) then
| |NmHari ß ‘Sabtu’
|Else If (NoHari=7) then
| |NmHari ß ‘Minggu’
|End if
|Output(NmHari)
Solusi-Case
|Input(NoHari)
|Case NoHari
| |1: NmHari ß ‘Senin’
| |2: NmHari ß ‘Selasa’
| |3: NmHari ß ‘Rabu’
| |4: NmHari ß ‘Kamis’
| |5: NmHari ß ‘Jumat’
| |6: NmHari ß ‘Sabtu’
| |7: NmHari ß ‘Minggu’
|End Case
|Output(NmHari)
Pada solusi-2 terlihat lebih
sederhana dan mudah dibaca dibanding dengan solusi-1.
Kasus : Merubah angka
menjadi kalimat
Dinput bilangan/angka (angka
dibatasi 1-99), ditampilkan kata-kata/kalimat dari bilangan tersebut, bagaimana
algoritmanya?
Solusi
Solusi-Case
|Input(bil)
|pul ß bil div 10
|sat ß bil mod 10
|Kalimat ß ‘’
|Case sat
| |1: Kalimat ß ‘Satu’
| |2: Kalimat ß ‘Dua’
| |3: Kalimat ß ‘Tiga’
| |4: Kalimat ß ‘Empat’
| |5: Kalimat ß ‘Lima’
| |6: Kalimat ß ‘Enam’
| |7: Kalimat ß ‘Tujuh’
| |8: Kalimat ß ‘Delapan’
| |9: Kalimat ß ‘Sembilan’
|End Case
|Case pul
| |1: |Case sat
| | | 0: Kalimat ß‘Sepuluh’
| | | 1: Kalimat ß‘Sebelas’
| | | Otherwise: Kalimat ß Kalimat + ‘ belas’
| | |End Case
| |2: |Kalimat ß ‘Dua Puluh’ + Kalimat
| |3: Kalimat ß ‘Tiga Puluh’ + Kalimat
| |4: Kalimat ß ‘Empat Puluh’ + Kalimat
| |5: Kalimat ß ‘Lima Puluh’ + Kalimat
| |6: Kalimat ß ‘Enam Puluh’ + Kalimat
| |7: Kalimat ß ‘Tujuh Puluh’ + Kalimat
| |8: Kalimat ß ‘Delapan Puluh’ + Kalimat
| |9: Kalimat ß ‘Sembilan Puluh’ + Kalimat
|End Case
|Output(Kalimat)
Pada solusi di atas, satuan
diproses dengan case pertama, selanjutnya puluhan diproses CASE kedua. Pada
puluhan=1 (angka belasan) dibagi lagi manjadi 3 kemungkinan, karena bunyi
kalimatnya ada 3 macam,
Konversi Struktur IF dan CASE ke Bahasa C
Berikut ini diberikan pedoman
konversi dari algoritma ke dalam bahasa C untuk struktur IF dan CASE:
Algoritma
If kondisi then
Aksi
End if
Bahasa C
if (kondisi) {
Aksi;
}
If kondisi then
Aksi1
Else
Aksi2
End if
Bahasa C
If (kondisi) {
Aksi1;
}
else {
Aksi2;
}
Algoritma
If kondisi1 then
Aksi1
Else if kondisi2
Aksi2
Else
Aksi3
End if
Bahasa C
if (kondisi1) {
Aksi1;
}
else if (kondisi2){
Aksi2;
}
else {
Aksi3;
}
Algoritma
Case ekspresi
Nilai1: Aksi1
Nilai2: Aksi2
Nilai3: Aksi3
End
case
Bahasa C
switch (ekspresi) {
case Nilai1: Aksi1;
Break;
case Nilai2: Aksi2;
Break;
case Nilai3: Aksi3;
}
Algoritma
Case ekspresi
Nilai1: Aksi1
Nilai2: Aksi2
Nilai3: Aksi3
Otherwise: Aksi4
End
case
Bahasa C
switch (ekspresi) {
case Nilai1: Aksi1;
Break;
case Nilai2: Aksi2;
Break;
case Nilai3: Aksi3;
Break;
default: Aksi4;
}
Algoritma
Case
ekspresi
Nilai-1,Nilai-2,Nilai-3: Aksi1
Nilai-4,Nilai-5: Aksi2
Nilai-6..Nilai-8: Aksi3
Otherwise: Aksi4
End Case
Daftar Pustaka
1.
Algorithm Data Structures and
Problem Solving with C++. 1997. Addison Wesley.
2.
Moh. Sjukani, Algoritma dan
Struktur Data. Mitra Wacana Media
3.
Rinaldi Munir, Algoritma dan Pemrograman.
Informatika Bandumg
Video Pembelajaran
Video Pembelajaran Runtunan dan Percabangan


0 Komentar