Anda di halaman 1dari 61

Search for...
Go!

 About
 Users
 Extra
 Podcast
 Sitemap
 Shortener
 Shop
 Playstore
 Contact

Struktur Dasar Algoritma Pemrograman 

Dalam sebuah algoritma langkah-langkah penyelesaian masalahnya dapat


berupa struktur urut (sequence), struktur pemilihan (selection), dan struktur
pengulangan (repetition). Ketiga jenis langkah tersebut membentuk konstrukti
suatu algoritma.
Struktur Dasar Algoritma Pemrograman

Substansi:

1. STRUKTUR URUT (SEQUENCE)


2. ALGORITMA LUAS PESEGI PANJANG
3. ALGORITMA ISI TABUNG
4. STRUKTUR PEMILIHAN (SELECTION) ATAU PENYELEKSIAN KONDISI
5. IF SEDERHANA
6. ALGORITMA KELULUSAN SISWA 1
7. IF … THEN … ELSE …
8. ALGORITMA KELULUSAN SISWA 2
9. ALGORITMA PEMBAYARAN GAJI
10. IF BERSARANG (NESTED IF)
11. ALGORITMA KONFERSI NILAI
12. STRUKTUR PENGULANGAN (REPETITION)
13. STRUKTUR FOR
14. ALGORITMA CETAK ANGKA FOR
15. ALGORITMA CETAK BILANGAN GENAP FOR
16. STRUKTUR WHILE
17. ALGORITMA CETAK ANGKA WHILE
18. ALGORITMA CETAK BILANGAN GENAP WHILE
19. STRUKTUR DO … WHILE
20. ALGORITMA CETAK ANGKA DO ... WHILE
21. ALGORITMA CETAK BILANGAN GENAP DO ... WHILE

1. Struktur Urut (Sequence)


Struktur urut adalah suatu struktur program dimana setiap baris program akan
dikerjakan secara urut dari atas ke bawah sesuai dengan urutan penulisannya.

Dari flowchart diatas mula-mula pemroses akan melaksanakan instruksi baris


program 1, instruksi baris program 2 akan dikerjakan jika instruksi baris program
1 telah selesai dikerjakan. Selanjutnya instruksi baris program 3 dikerjakan
setelah instruksi baris program 2 selesai dikerjakan. Setelah instruksi baris
program 3 selesai dilaksanakan maka algoritma berhenti. Contoh:

2. Algoritma Luas Persegi Panjang


Akan dihitung luas pesegi panjang yang diketahui panjang dan lebarnya, maka
algoritmanya sebagai berikut:

Diketahui sebuah pesegi panjang yang memiliki panjang dan lebar.

Deskripsi Struktur:

1. mulai
2. Baca panjang
3. Baca lebar
4. Hitung luas = panjang * lebar
5. Tampilkan luas
6. selesai

Flowchart Luas_Pesegi_Panjang:

3. Algoritma Isi Tabung


Akan dihitung isi sebuah tabung yang diketahui jari-jari lingkaran dan tinggi
tabung.

Tabung 1
Diketahui sebuah tabung yang diketahui jari-jari tabung dan tinggi tabung.

Deskripsi Struktur:

1. mulai
2. Baca jari_jari
3. Baca tinggi
4. Hitung luas_lingk = 3.14 * jari_jari * jari_jari
5. Hitung isi_tabung = luas_lingk * tinggi
6. Tampilkan isi_tabung
7. selesai

Flowchart Isi_Tabung1:

Perhatikan bahwa algoritma Isi_Tabung1 diatas memiliki 5 baris intruksi yang


harus dikerjakan sebelum algoritma selesai. Pada algoritma diatas bisa
disederhanakan lagi sehingga baris prosesnya lebih sedikit.

Tabung 2
Diketahui sebuah tabung yang diketahui jari-jari tabung dan tinggi tabung.
Deskripsi Struktur:

1. mulai
2. Baca jari_jari
3. Baca tinggi
4. Hitung isi_tabung = (3.14 * jari_jari * jari_jari) * tinggi
5. Tampilkan isi_tabung
6. selesai

Flowchart Isi_Tabung2 :

Dari kedua algoritma dan flowchart diatas terlihat bahwa algoritma yang kedua
lebih sedikit baris intruksinya, sehingga menyebabkan pemrosesan menjadi lebih
cepat selesai dengan hasil yang sama dengan algoritma pertama. Pada algorima
yang kedua jika diimplementasikan dalam program kebutuhan variabelnya juga
lebih sedikit sehingga menghemat penggunaan memori.

4. Struktur Pemilihan (Selection) / Penyeleksian


Kondisi
Pada struktur pemilihan tidak setiap baris program akan dikerjakan. Baris
prorgam yang dikerjakan hanya yang memenuhi syarat saja. Struktur pemilihan
adalah struktur program yang melakukan proses pengujian untuk mengambil
suatu keputusan apakah suatu baris atau blok instruksi akan diproses atau
tidak. Pengujian kondisi ini dilakukan untuk memilih salah satu dari beberapa
alternatif yang tersedia.

Pada pemrograman penyeleksian dilakukan pada suatu pernyataan boole, yang


dapat menghasilkan nilai benar (true) atau nilai salah (false). Biasanya sebuah
pernyataan pemilihan terdiri dari operand-operand yang dihubungkan dengan
operator relasi dan digabungkan dengan operator logika.

Contoh:

 7 = 7 (Benilai benar, sebab 7 sama dengan 7)


 5 = 9 (Bernilai salah, sebab 5 tidak sama dengan 9)
 4 > 2 (Bernilai benar, sebab 4 lebih besar dari pada 2)
 3 <> 8 (Bernilai benar, sebab 3 tidak sama dengan 8)
 X = 10 (Dapat benilai benar atau salah, tergantung isi variabel X)
 (X > 3) And (Y < 12) (Dapat benilai benar atau salah, tergantung isi variabel
X dan Y) Struktur pemilihan dalam penulisan program diimplementasikan
dengan instruksi IF.

Struktuf IF memiliki beberapa macam, diantaranya:

5. IF Sederhana
Bentuk IF sederhana adalah:

Pseudocode:
IF <syarat> THEN
<instruksi>

Bentuk flowchart:
Pada bentuk IF sederhana ini, intruksi akan dikerjakan jika syarat yang diuji
benilai benar (true). Jika syarat yang diuji benilai salah (false) maka tidak ada
instruksi yang dikerjakan.

Contoh-1:

6. Algoritma Kelulusan Siswa 1


Diketahui seorang siswa dikatakan lulus jika nilainya >= 60.

Deskripsi Struktur:

1. mulai
2. Baca nilai_siswa
3. Jika nilai_siswa >= 60 maka kerjakan langkah 4
4. Cetak “Siswa tersebut lulus”
5. selesai

Flowchart Kelulusan_Siswa1:
Dari flowchart diatas dapat dijelaskan bahwa setelah nilai_siswa dimasukkan
maka akan diuji apakah nilai_siswa lebih besar atau sama dengan 60? Jika
benar maka akan dicetak “Siswa tersebut lulus” kemudian selesai, jika tidak
maka selesai.

7. IF … THEN … ELSE …
Bentuk umum pseudocode:
IF <syarat> THEN
<instruksi1>
ELSE
<instruksi2>

Pada bentuk ini terdapat dua kemungkinan pilihan yang akan dikerjakan
berdasarkan hasil pengujian, jika syarat yang diuji benilai benar maka instruksi1
yang dikerjakan, dan jika syarat yang diuji bernilai salah maka instruksi2 yang
dikerjakan.

Bentuk flowchart:
8. Algoritma Kelulusan Siswa 2
Dibuat suatu aturan kelulusan seorang siswa yang diketahui dari hasil nilainya
dalam bentuk angka. Seorang siswa dikatakan lulus jika nilai lebih besar atau
sama dengan 60, dan jika nilainya lebih kecil dari 60 maka siswa tidak lulus.

Diketahui seorang siswa dikatakan lulus jika nilainya >= 60, dan jika nilainya <
60 maka siswa tidak lulus.

Deskripsi Struktur:

1. mulai
2. Baca nilai_siswa
3. Jika nilai_siswa >= 60 maka kerjakan langkah 4, selain itu kerjakan
langkah 5
4. Cetak “Siswa tersebut lulus”
5. Cetak “Siswa tidak lulus”
6. selesai

Flowchart Kelulusan_Siswa2:
Dari flowchart diatas dapat dijelaskan bahwa setelah nilai_siswa dimasukkan
maka akan diuji apakah nilai_siswa lebih besar atau sama dengan 60? Jika benar
maka akan dicetak “Siswa tersebut lulus” kemudian selesai, jika tidak maka
akan dicetak “Siswa tidak lulus” kemudian selesai.

Contoh 2:

9. Algoritma Pembayaran Gaji


Buatlah algoritma dan flowchart untuk menghitung jumlah pembayan gaji dengan
input nama, jumlah hari kerja dan jumlah jam lembur. Tarif untuk hari kerja
adalah Rp. 30.000,- per hari, sedangkan tarif perjam lembur adalah Rp.5.000,-.
Jika seorang karyawan jam lemburnya lebih dari 10 jam maka akan
mendapatkan tambahan transport lembur sebesar 10% dari jumlah uang lembur,
jika tidak maka tidak mendapatkan transport lembur.

Diketahui input data nama, jumlah hari kerja dan jumlah jam lembur, tarif per
hari kerja Rp. 30.000, tarif per jam lembur Rp. 5.000, jika jumlah jam lembur lebih
dari 10 jam maka akan mendapatkan tambahan uang transport lembur 10% dari
jumlah uang lembur. 

Deskripsi Struktur:
1. mulai
2. Baca nama
3. Baca jhr_kerja
4. Baca jjam_lembur
5. Hitung upah = jhr_kerja * 30000
6. Hitung uang_lembur = jjam_lembur * 5000
7. Jika jjam_lebur > 10 maka kerjakan langkah 8 selain itu kerjakan
langkah 9
8. Hitung trans_lembur = (10/100) * uang_lembur
9. trans_lembur = 0
10. Hitung gaji = upah + uang_lembur + trans_lembur
11. Tampilkan gaji
12. selesai

Flowchart Pembayaran_Gaji:
Dari flowchart diatas dapat dijelaskan bahwa setelah
nama, jhari_kerja, jjam_lembur dimasukkan maka akan dihitung besarnya
upah, kemudian dihitung besarnya uang_lembur, kemudian diuji
apakah jjam_lembur > 10, jika benar maka dihitung trans_lembur
10% dari uang_lembur, jika salah maka trans_lembur = 0, kemudian dihitung
besar gaji yang diperoleh. Terakhir dicetak berupa nama dan gaji, kemudian
selesai.

10. IF BERSARANG (NESTED IF)


Bentuk umum pseudocode:
IF <syarat1> THEN
<instruksi1>
ELSE IF <syarat2> THEN
<instruksi2>
ELSE IF <syarat3> THEN
<instruksi3>
ELSE IF <syaratm> THEN
<instruksim>
ELSE
<Instruksin>

Bentuk flowchart:
Pada bentuk ini terdapat banyak kemungkinan pilihan yang akan dikerjakan
berdasarkan hasil pengujian, proses pengujiannya adalah: 

jika syarat1 yang diuji benilai benar maka instruksi1 yang dikerjakan, jika
syarat1 yang diuji bernilai salah maka syarat2 diuji, jika syarat2 bernilai benar
maka instruksi2 yang dikerjakan, jika syarat2 bernilai salah maka syarat3 yang
diuji, jika syarat3 bernilai benar maka instruksi3 yang dikerjakan, jika syarat3
bernilai salah maka syaratm yang diuji, jika syaratm bernilai benar maka
instruksim yang dikerjakan, begitu seterusnya, jika tidak ada syarat yang
terpenuhi maka instruksin yang dikerjakan.

Contoh:
11. Algoritma Konversi Nilai
Buatlah algoritma dan flowchart untuk menghitung konfersi nilai siswa, input
berupa nama siswa dan nilai berupa nilai angka. Hasilnya akhir adalah berupa
nilai huruf hasil konfersi dengan aturan:

 Jika nilai_angka >= 80 maka nilai huruf sama dengan A


 Jika nilai_angka >= 70 maka nilai huruf sama dengan B
 Jika nilai_angka >= 60 maka nilai huruf sama dengan C
 Jika nilai_angka >= 50 maka nilai huruf sama dengan D
 Jika nilai_angka < 50 maka nilai huruf sama dengan E

Diketahui nilai angka seorang siswa yang akan dikonfersikan ke nilai huruf.

Deskripsi Struktur:

1. mulai
2. Baca nama_siswa
3. Baca nilai_angka
4. Jika nilai_angka >= 80 maka nilai_huruf = “A”, selain itu
5. jika nilai_angka >= 70 maka nilai_huruf = “B”, selain itu
6. jika nilai_angka >= 60 maka nilai_huruf = “C”, selain itu
7. jika nilai_angka >= 50 maka nilai_huruf = “D”, selain itu
8. nilai_huruf = “E”
9. Cetak nama_siswa dan nilai_huruf
10. selesai

Flowchart Konfersi_Nilai:
Pada bentuk IF bersarang ini yang perlu diperhatikan adalah bahwa jika suatu
syarat sudah terpenuhi maka syarat lain yang ada dibawahnya tidak akan diuji
lagi. Pada contoh diatas misalkan nilai_angka yang diinputkan 75 maka nilai
hurufnya adalah B (lihat bentuk flowchartnya), sehingga pengujian tidak
dilanjutkan lagi untuk kondisi dibawahnya. Dengan kata lain input nilai_angka 75
tidak akan diujikan untuk apakah nilai_angka >= 60, apakah nilai_angka >=50
atau apakah nilai_angka < 50.

12. STRUKTUR PENGULANGAN (REPETITION)


Struktur pengulangan merupakan struktur yang melakukan pengulangan
terhadap satu baris atau satu blok baris program beberapa kali sesuai dengan
persyaratan yang diberikan.

Struktur pengulangan mempunyai beberapa bentuk:

13. STRUKTUR FOR


Struktur pengulangan dengan intruksi for digunakan untuk mengulang satu baris
instruksi atau satu blok instruksi sampai jumlah perulangan yang disyaratkan
terpenuhi. Ciri utama pengulangan for adalah terdapat nilai awal dan nilai akhir
yang menunjukkan banyaknya pengulangan yang akan dilakukan.

Flowchart struktur for:

Dari gambar flowchart diatas dapat dijelaskan bahwa instruksi1, instruksi2,


instruksi3 akan dikerjakan berulang yang dimulai dari nilai_awal sampai
nilai_akhir yang diberikan. Jika pengulangan sudah sampai pada kondisi
nilai_akhir yang diberikan maka pengulangan akan berhenti.

Contoh 1:

14. ALGORITMA CETAK ANGKA FOR


Akan dicetak angka 1 sampai 10 dengan menggunakan perulangan for

Dicetak angka 1 sampai 10 dengan perulangan for.


Deskripsi Struktur:

1. mulai
2. kerjakan langkah 3 mulai i = 1 sampai i = 10
3. cetak i
4. selesai

Flowchart Cetak_Angka dengan for:

Dari gambar flowchart diatas dapat dijelaskan bahwa nilai i pertama akan berisi
1, kemudian dicetak nilai i, dalam perulangan for nilai variabel i akan bertambah
secara otomatis sehingga nilai variabel i sekarang menjadi 2, kemudian dicetak
nilai i, begitu seterusnya sampai nilai i berisi 10, maka proses pengulangan
selesai.

Contoh 2:

15. ALGORITMA CETAK BILANGAN GENAP FOR


Akan dicetak bilangan genap mulai dari 0 dengan batas akhir diinputkan dari
keyboard dengan menggunakan pengulangan for.

Dicetak bilangan genap dengan batas akhir diinputkan dengan menggunakan for.

Deskripsi Struktur:

1. mulai
2. Baca batas_akhir
3. Kerjakan langkah 4 sampai langkah 5 mulai i = 1 sampai i =
batas_akhir
4. jika i habis dibagi 2 maka kerjakan langkah 5
5. cetak i
6. selesai

Flowchart cetak bilangan genap dengan for:

Dari gambar flowchart diatas dapat dijelaskan pertama kali dibaca batas_akhir
perulangan, kemudian nilai i pertama kali akan berisi 1, kemudian akan diuji
apakah nilai i habis dibagi dua, jika benar maka dicetak nilai i, kemudian
pengulangan dilanjutkan dengan nilai i menjadi 2, jika tidak maka pengulangan
akan dilanjutkan dengan nilai i menjadi 2, begitu seterusnya sampai nilai i lebih
besar batas_akhir.

16. STRUKTUR WHILE


Struktur pengulangan dengan instruksi while digunakan untuk mengulang satu
baris instruksi atau satu blok baris instruksi selama syarat yang diberikan masih
terpenuhi. Ciri utama pengulangan while adalah syarat akan uji terlebih dahulu
sebelum instruksi yang akan diulang dikerjakan dengan kata lain dalam instruksi
while syarat akan diuji didepan, sehingga ada kemungkinan baris instruksi yang
akan diulang tidak dikerjakan sama sekali (syarat tidak terpenuhi).
Flowchart struktur while:

Dari gambar diatas dapat dijelaskan bahwa syarat akan diuji terlebih dahulu
sebelum masuk blok yang diulang. Jika syarat yang diuji bernilai benar maka
instruksi1, instruksi2, instruksi3 akan dikerjakan, setelah mengerjakan
instruksi1, instruksi2, instruksi3 maka syarat akan diuji lagi. Jika syarat yang
diuji bernilai benar maka instruksi1, instruksi2, instruksi3 akan dikerjakan lagi,
pengulangan akan berhenti jika syarat yang diuji bernilai salah.

Contoh:

17. ALGORITMA CETAK ANGKA WHILE


Akan dibuat contoh diatas dengan menggunakan while.

Dicetak angka 1 sampai 10 dengan perulangan while.

Deskripsi:

1. mulai
2. i = 1
3. selama i <= 10 kerjakan langkah 4 sampai langkah 5
4. cetak i
5. i = i + 1
6. selesai

Flowchart Cetak_Angka:
Dari gambar flowchart diatas dapat dijelaskan pertama kali i bernilai 1,
kemudian diuji apakah i lebih kecil atau sama dengan 10, jika benar maka
dicetak nilai i, kemudian nilai i dinaikkan sebesar 1, kemudian nilai i diuji
kembali apakah masih lebih kecil atau sama dengan 10 jika benar maka dicetak
nilai i, begitu seterusnya. Perulangan akan berhenti jika nilai i lebih besar 10.

18. ALGORITMA CETAK BILANGAN GENAP WHILE


Akan dibuat contoh diatas dengan menggunakan while.

Dicetak bilangan genap dengan batas akhir diinputkan dengan menggunakan


while.

Deskripsi Struktur:

1. mulai
2. Baca batas_akhir
3. i = 1
4. selama i <= batas_akhir kerjakan langkah 5 sampai langkah 7
5. jika i habis dibagi 2 kerjakan langkah 6
6. cetak i
7. i = i + 1
8. selesai

Flowchart Cetak_Angka_Genap:

Dari gambar flowchart diatas dapat dijelaskan pertama kali dibaca batas_akhir
perngulangan, kemudian i diberi nilai 1, kemudian diuji apakah i lebih kecil atau
sama dengan batas_akhir, jika benar maka diuji apakah nilai i habis dibagi 2, jika
benar maka dicetak nilai i, kemudian nilai i dinaikkan sebesar 1 sehingga nilai i
menjadi 2, jika tidak maka nilai i langsung dinaikkan 1 sehingga nilai i menjadi 2,
kemudian nilai i diuji kembali apakah masih lebih kecil atau sama dengan
batas_akhir jika benar maka diuji apakah nilai i habis dibagi 2, jika benar maka
dicetak nilai i, kemudian nilai i dinaikkan sebesar 1 menjadi 3, jika tidak maka
nilai i langsung dinaikkan 1 menjadi 2, begitu seterusnya sampai nilai i lebih
besar batas_akhir sehingga perulangan berakhir.

19. STRUKTUR DO … WHILE


Struktur pengulangan dengan instruksi do…while digunakan untuk mengulang
satu baris instruksi atau satu blok baris instruksi sampai syarat tidak terpenuhi.
Ciri utama pengulangan do…while adalah syarat akan uji setelah instruksi yang
akan diulang dikerjakan, dengan kata lain dalam instruksi do…while syarat akan
diuji dibelakang, sehingga baris instruksi yang masuk dalam blok do…while
minimal akan dikerjakan satu sekali.

Flowchart struktur do…while:

Dari gambar diatas dapat dijelaskan bahwa instruksi1, instruksi2, instruksi3


akan dikerjakan terlebih dahulu baru syarat diuji. Jika syarat yang diuji bernilai
benar maka instruksi1, instruksi2, instruksi3 akan dikerjakan lagi, setelah itu
syarat diuji lagi, pengulangan akan berhenti jika syarat yang diuji bernilai salah.

Contoh:

20. ALGORITMA CETAK ANGKA DO ... WHILE


Akan dibuat contoh diatas dengan menggunakan do…while.

Dicetak angka 1 sampai 10 dengan perulangan while.

Deskripsi Struktur:

1. mulai
2. i = 0
3. i = i + 1
4. cetak i
5. jika i < 10 kerjakan langkah 3 sampai langkah 4
6. selesai
Flowchart Cetak_Angka:

Dari gambar flowchart diatas dapat dijelaskan pertama kali i diberi nilai awal 0,
kemudian nilai i dinaikkan sebesar 1 sehingga nilai i menjadi 1, kemudian nilai i
dicetak. Setelah dicetak nilai i diuji apakah i lebih kecil atau sama dengan 10,
jika banar maka nilai i dinaikkan 1, sehingga i menjadi 2, kemudian nilai i
dicetak. Setelah itu nilai i diuji lagi apakah i lebih keci atau sama dengan 10,
begitu seterusnya sampai nilai i lebih besar 10 maka perulangan akan berhenti.

Contoh :

21. ALGORITMA CETAK BILANGAN GENAP DO ...


WHILE
Akan dibuat contoh diatas dengan menggunakan do…while

Dicetak bilangan genap dengan batas akhir diinputkan dengan menggunakan


do..while.

Deskripsi Struktur:

1. mulai
2. Baca batas_akhir
3. i = 1
4. Selama i <= batas_akhir kerjakan langkah 5 sampai langkah 7
5. jika i habis dibagi 2 kerjakan langkah 6
6. cetak i
7. i = i + 1
8. selesai

Flowchart Cetak_Angka_Genap:

Dari gambar flowchart diatas dapat dijelaskan pertama kali dibaca batas_akhir
perngulangan, kemudian i diberi nilai awal 1, setelah itu diuji apakah nilai habis
dibagi 2, jika benar maka cetak nilai i, kemudian nilai i dinaikkan 1 sehingga i
menjadi 2, jika tidak maka nilai i langsung dinaikkan sebesar 1, sehingga nilai i
menjadi 2. Setelah diuji apakah nilai i lebih kecil atau sama dengan batas_akhir,
jika benar maka kembali diuji setelah itu diuji apakah nilai habis dibagi 2, jika
benar maka cetak nilai i, kemudian nilai i dinaikkan 1 sehingga i menjadi 3, jika
tidak maka nilai i langsung dinaikkan sebesar 1, sehingga nilai i menjadi 3.
Setelah diuji apakah nilai i lebih kecil atau sama dengan batas_akhir, begitu
seterusnya sampai nilai i lebih besar batas_akhir sehingga perulangan selesai.
Sumber:
© STMIK El Rahma Yogyakarta. Disusun Oleh Bp. Eko Riswanto, S.T., M.Cs,

===================================================================
===================

Struktur Algoritma Pemrograman Versi


Lain
Algoritma adalah urutan langkah-langkah logis penyelesaian masalah yang
disusun secara sistematis. Masalah dapat berupa apa saja, dengan catatan
untuk setiap masalah, ada syarat kondisi awal yang harus dipenuhi sebelum
menjalankan algoritma. Konsep algoritma sering kali disetarakan dengan sebuah
resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan
digunakan, urutan pengerjaan dan bagaimana hasil dari urutan pengerjaan
tersebut. Apabila bahan yang digunakan tidak tertera (tidak tersedia) maka
resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan
pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat
diperoleh.

Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan syarat
yang sama. Tingkat kerumitan dari suatu algoritma merupakan ukuran seberapa
banyak komputasi yang dibutuhkan algoritma tersebut untuk menyelesaikan
masalah. Umumnya, algoritma yang dapat menyelesaikan suatu permasalahan
dalam waktu yang singkat memiliki tingkat kerumitan yang rendah, sementara
algoritma yang membutuhkan waktu lama untuk menyelesaikan suatu masalah
membutuhkan tingkat kerumitan yang tinggi.

Perhatikan algoritma sederhana berikut.

Contoh 5.10. Algoritma menghitung luas segitiga

1. Start
2. Baca data alas dan tinggi.
3. Luas adalah alas kali tinggi kali 0.5
4. Tampilkan Luas
5. Stop

Algoritma di atas adalah algoritma yang sangat sederhana, hanya ada lima
langkah. Pada algoritma ini tidak dijumpai perulangan ataupun pemilihan. Semua
langkah dilakukan hanya satu kali.
Sekilas algoritma di atas benar, namun apabila dicermati maka algoritma ini
mengandung kesalahan yang mendasar, yaitu tidak ada pembatasan pada nilai
data untuk alas dan tinggi. Bagaimana jika nilai data alas atau tinggi adalah
bilangan 0 atau bilangan negatif ? Tentunya hasil yang keluar menjadi tidak
sesuai dengan yang diharapkan. Dalam kasus seperti ini kita perlu
menambahkan langkah untuk memastikan nilai alas dan tinggi memenuhi syarat,
misalnya dengan melakukan pengecekan pada input yang masuk. Apabila input
nilai alas dan tinggi kurang dari 0 maka program tidak akan dijalankan. Sehingga
algoritma di atas dapat dirubah menjadi seperti contoh berikut.

Contoh 5.11. Hasil perbaikan algoritma perhitungan luas segitiga

1. Start
2. Baca data alas dan tinggi.
3. Periksa data alas dan tinggi, jika nilai data alas dan tinggi lebih
besar dari nol maka lanjutkan ke langkah ke 4 jika tidak maka stop
4. Luas adalah alas kali tinggi kali 0.5
5. Tampilkan Luas
6. Stop

Dari penjelasan di atas dapat diambil kesimpulan pokok tentang algoritma.


Pertama, algoritma harus benar. Kedua algoritma harus berhenti, dan setelah
berhenti, algoritma memberikan hasil yang benar.

1. Cara Penulisan Algoritma


Ada tiga cara penulisan algoritma, yaitu:

Structured English (SE)


SE merupakan alat yang cukup baik untuk menggambarkan suatu algoritma.
Dasar dari SE adalah Bahasa Inggris, namun kita dapat memodifikasi dengan
Bahasa Indonesia sehingga kita boleh menyebutnya sebagai Structured
Indonesian (SI). Algoritma seperti pada Contoh 5.10 dan 5.11 merupakan
algoritma yang ditulis menggunakan SI. Karena dasarnya adalah bahasa sehari-
hari, maka SE atau SI lebih tepat untuk menggambarkan suatu algoritma yang
akan dikomunikasikan kepada pemakai perangkat lunak.

Pseudocode
Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE dan
Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau menyerupai,
sedangkan code menunjuk pada kode program. Sehingga pseudocode adalah
kode yang mirip dengan instruksi kode program sebenarnya. Pseudocode
didasarkan pada bahasa pemrograman yang sesungguhnya seperti BASIC,
FORTRAN atau PASCAL. Pseudocode yang berbasis bahasa PASCAL merupakan
pseudocode yang sering digunakan. Kadang-kadang orang menyebut pseudocode
sebagai PASCAL-LIKE algoritma. Apabila Contoh 5.10 ditulis dalam pseudocode
berbasis bahasa BASIC akan tampak seperti pada contoh 5.12.

Contoh 5.12. Pseudocode

1. Start
2. READ alas, tinggi
3. Luas = 0.5 * alas * tinggi
4. PRINT Luas
5. Stop
6. Start
7. READ alas, tinggi
8. Luas = 0.5 * alas * tinggi
9. PRINT Luas
10. Stop

Pada Contoh 5.12 tampak bahwa algoritma sudah sangat mirip dengan bahasa
BASIC. Pernyataan seperti READ dan PRINT merupakan keyword yang ada pada
bahasa BASIC yang masing-masing menggantikan kata “baca data” dan
“tampilkan”. Dengan menggunakan pseudocode seperti di atas maka proses
penterjemahan dari algoritma ke kode program menjadi lebih mudah.

Flowchart
Flowchart atau bagan alir adalah skema/bagan (chart) yang menunjukkan aliran
(flow) di dalam suatu program secara logika. Flowchart merupakan alat yang
banyak digunakan untuk menggambarkan algoritma dalam bentu notasi-notasi
tertentu. Secara lebih detil bagian ini akan dibahas pada bagian berikutnya.

Pada flowchart ada beberapa simbol penting yang digunakan untuk membuat
algoritma sebagaimana tercantum pada Gambar 5.3.

Notasi ini disebut Terminator yang berarti digunakan untuk menunjukkan awal
dan akhir suatu algoritma
Notasi ini disebut Data yang digunakan untuk mewakili data input atau output
atau menyatakan operasi pemasukan data dan pencetakan hasil.

Notasi ini disebut Process yang digunakan untuk mewakili suatu proses

Notasi ini disebut Decision yang digunakan untuk suatu pemilihan, penyeleksian
kondisi di dalam suatu program

Notasi ini disebut Preparation yang digunakan untuk memberi nilai awal, nilai
akhir, penambahan/pengurangan bagi suatu variable counter.

Notasi ini disebut Predefined Process yang digunakan untuk menunjukkan suatu
operasi yang rinciannya ditunjukkan ditempat lain (prosedur, sub-prosedur,
fungsi)

Notasi ini disebut Connector yang digunakan untuk menunjukkan sambungan


dari flowchart yang terputus di halaman yang sama atau haraman berikutnya.

Notasi ini disebut Arrow yang digunakan untuk menunjukkan arus data atau
aliran data dari proses satu ke proses lainnya.
Program Flowchart dapat terdiri dari dua macam, yaitu bagan alir logika program
(program logic flowchart) dan bagan alir program komputer terinci (detailed
computer program flowchart). Bagan alir logika program digunakan untuk
menggambarkan tiap-tiap langkah di dalam program komputer secara logika dan
biasanya dipersiapkan oleh seorang analis system. Sedangkan bagan alir
program komputer terinci digunakan untuk menggambarkan instruksiinstruksi
program komputer secara terinci dan biasanya dipersiapkan oleh seorang
programmer. Apabila Contoh 5.10 dibuat program flowchartnya maka akan
tampak pada gambar 5.4.

Gambar 5.4. Program flowchart

2. Struktur Algoritma Berurutan


Ada tiga struktur dasar yang digunakan dalam membuat algoritma yaitu struktur
berurutan (sequencing), struktur pemilihan/keputusan/percabangan (branching)
dan struktur pengulangan (looping). Sebuah algoritma biasanya akan
menggabungkan ketiga buah struktur ini untuk menyelesaikan masalah.

Pada bagian ini kita akan bahas lebih dulu struktur algoritma berurutan. Struktur
berurutan dapat kita samakan dengan mobil yang sedang berjalan pada jalur
lurus yang tidak terdapat persimpangan seperti tampak pada Gambar 5.5. Mobil
tersebut akan melewati kilometer demi kilometer jalan sampai tujuan tercapai.

Struktur berurutan terdiri satu atau lebih instruksi. Tiap instruksi dikerjakan
secara berurutan sesuai dengan urutan penulisannya, yaitu sebuah instruksi
dieksekusi setelah instruksi sebelumnya selesai dieksekusi. Urutan instruksi
menentukan keadaan akhir dari algoritma. Bila urutannya diubah, maka hasil
akhirnya mungkin juga berubah. Menurut Goldshlager dan Lister (1988) struktur
berurutan mengikuti ketentuan-ketentuan sebagai berikut:

1. tiap instruksi dikerjakan satu persatu


2. tiap instruksi dilaksanakan tepat sekali, tidak ada yang diulang
3. urutan instruksi yang dilaksanakan pemroses sama dengan urutan aksi
sebagaimana yang tertulis di dalam algoritmanya
4. akhir dari instruksi terakhir merupakan akhir algoritma.

Contoh 5.13. Flowchart untuk menghitung luas bangun


Buatlah flowchart untuk menghitung:

 a. volume balok
 b. luas lingkaran
Penyelesaian:
Soal ini merupakan permasalahan dengan algoritma struktur berurutan karena
tidak ada proses pemilihan atau pengulangan. Untuk volume balok, kita harus
menentukan variabel input dan output yang dibutuhkan. Untuk menghitung
volume balok dibutuhkan variabel input panjang, lebar dan tinggi. Sedangkan
variabel outputnya adalah volume. Pada luas lingkaran dibutuhkan variabel input
radius dan variabel output luas. Untuk menghitung luas lingkaran ini kita juga
membutuhkan konstanta phi. Flowchart untuk dua masalah ini dapat dilihat pada
Gambar 5.6.

Contoh 5.14. Flowchart untuk konversi suhu.


Buat flowchart untuk mengubah temperatur dalam Fahrenheit menjadi
temperatur dalam Celcius dengan rumus oC = 5/9 x (oF -32).

Penyelesaian:
Soal ini juga masih menggunakan algoritma dengan struktur berurutan. Variabel
input yang dibutuhkan adalah F dan variabel outputnya adalah C. Flowchart
untuk dua masalah ini dapat dilihat pada Gambar 5.7.
Gambar 5.6. Flowchart menghitung volume balok dan luas lingkaran

3. Struktur Algoritma Percabangan


Sebuah program tidak selamanya akan berjalan dengan mengikuti struktur
berurutan, kadang-kadang kita perlu merubah urutan pelaksanaan program dan
menghendaki agar pelaksanaan program meloncat ke baris tertentu. Peristiwa
ini kadang disebut sebagai percabangan/pemilihan atau keputusan. Hal ini
seperti halnya ketika mobil berada dalam persimpangan seperti pada Gambar
5.7. Pengemudi harus memutuskan apakah harus menempuh jalur yang kanan
atau yang kiri.
Gambar 5.8. Mobil sedang dalam persimpangan.

Pada struktur percabangan, program akan berpindah urutan pelaksanaan jika


suatu kondisi yang disyaratkan dipenuhi. Pada proses seperti ini simbol
flowchart Decision harus digunakan. Simbol decision akan berisi pernyataan
yang akan diuji kebenarannya. Nilai hasil pengujian akan menentukan cabang
mana yang akan ditempuh.

Contoh 5.15. Struktur percabangan untuk masalah batasan umur


Sebuah aturan untuk menonton sebuah film tertentu adalah sebagai berikut, jika
usia penonton lebih dari 17 tahun maka penonton diperbolehkan dan apabila
kurang dari 17 tahun maka penonton tidak diperbolehkan nonton. Buatlah
flowchart untuk permasalahan tersebut.

Penyelesaian:
Permasalahan diatas merupakan ciri permasalahan yang menggunakan struktur
percabangan. Hal ini ditandai dengan adanya pernyataan jika .. maka ...(atau If ...
Then dalam Bahasa Inggris.

Flowchart penyelesaian masalah tampak pada Gambar 5.9. Pada gambar


tersebut, tampak penggunaan simbol Decision. Pada simbol ini terjadi
pemeriksaan kondisi, yaitu apakah usia lebih dari 17 tahun atau tidak. Jika
jawaban ya maka program akan menghasilkan keluaran teks “Silahkan
Menonton”, sedangkan jika input usia kurang dari 17 tahun maka program akan
menghasilkan keluaran teks “Anda Tidak Boleh Menonton”.
Gambar 5.9. Flowchart penyelesaian masalah nonton film.

Contoh 5.16. Struktur percabangan untuk perhitungan dua buah


bilangan
Dalam suatu perhitungan nilai P = X + Y. Jika P positif, maka Q = X * Y,
sedangkan jika negative maka nilai Q = X/Y. Buatlah flowchart untuk mencari
nilai P dan Q.

Penyelesaian:
Pada contoh ini input yang dibutuhkan adalah nilai X dan Y, sedangkan proses
pemeriksaan kondisi dilakukan pada nilai P apakah positif (termasuk 0) ataukah
negative. Perhatikan flowchart  penyelesaian masalah pada Gambar 5.10.
Gambar 5.10. Flowchart penyelesaian untuk perhitungan dua buah bilangan

Kedua contoh di atas (5.15 dan 5.16) merupakan contoh struktur percabangan
sederhana yang melibatkan hanya satu percabangan. Pada masalah-masalah
yang lebih rumit, kita akan menjumpai lebih banyak percabangan. Kita juga akan
menjumpai suatu struktur percabangan berada di dalam struktur percabangan
yang lain, atau yang biasa disebut nested (bersarang). Perhatikan contoh-contoh
berikut.

Contoh 5.17. Struktur percabangan bersarang untuk masalah


fotokopi
Sebuah usaha fotokopi mempunyai aturan sebagai berikut:

 jika yang fotokopi statusnya adalah langganan, maka berapa lembar pun
dia fotokopi, harga perlembarnya Rp. 75,-
 jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari
100 lembar harga perlembarnya Rp. 100,-. Sedangkan jika lebih atau sama
dengan 100 lembar maka harga perlembarnya Rp. 85,-.
Buat flowchart untuk menghitung total harga yang harus dibayar jika seseorang
memfotokopi sejumlah X lembar.

Penyelesaian:
Pada contoh ini, masalah terlihat lebih rumit. Ada dua percabangan yang terjadi.
Yang pertama adalah pemeriksaan apakah status seseorang pelanggan atau
bukan. Kedua, apabila status seseorang bukan pelanggan, maka dilakukan
pemeriksaan berapa jumlah lembar fotokopi, apakah lebih dari 100 lembar atau
tidak.

Pada soal ini kita juga menjumpai apa yang disebut sebagai nested. Perhatikan
pernyataan pada syarat kedua dari persoalan di atas.

Jika yang fotokopi bukan langganan, maka jika dia fotokopi kurang dari 100
lembar harga perlembarnya Rp.100.

Pernyataan jika yang kedua berada di dalam jika yang pertama. Input yang
dibutuhkan untuk permasalahan ini adalah status orang yang fotokopi dan
jumlah lembar yang difotokopi. Sehingga variable input yang digunakan adalah:

 Status untuk status orang yang fotokopi


 JLF untuk jumlah lembar yang difotokopi

Selain itu terdapat variable dengan nama HPP yang digunakan untuk menyimpan
harga per lembar dan TH untuk menyimpan nilai total harga. Perhatikan, variable
Status bertipe data char, sehingga penulisannya harus menggunakan tanda “ “.

Flowchart penyelesaian masalah ini dapat dilihat pada Gambar 5.11


Gambar 5.11. Flowchart penyelesaian untuk masalah fotokopi

Contoh 5.18. Struktur percabangan bersarang untuk masalah


kelulusan siswa
Aturan kelulusan siswa pada mata pelajaran Pemrograman Web diterapkan
sebagai berikut:

 Jika nilai ujian tengah semester (UTS) lebih besar dari 70 maka siswa
dinyatakan lulus dan Nilai Akhir sama dengan nilai UTS.
 Jika nilai UTS kurang atau sama dengan 70 maka siswa dinyatakan lulus
jika Nilai Akhir lebih besar atau sama dengan 60 dimana Nilai Akhir = (nilai
UTS x 40%) + (nilai UAS x 60%).
Buatlah flowchart penyelesaian masalah tersebut apabila output yang diinginkan
adalah NIM, Nama Siswa, Nilai Akhir dan Status Kelulusan.

Penyelesaian:
Pada contoh ini, ada dua percabangan. Yang pertama adalah pemeriksaan
apakah nilai UTS siswa lebih dari 70. Kedua, apabila nilai UTS tidak lebih dari 70,
maka dilakukan pemeriksaan apakah nilai akhir lebih dari 60.

Input yang dibutuhkan untuk permasalahan ini adalah NIM, nama siswa, nilai
UTS, dan nilai UAS. Sehingga variable input yang digunakan adalah: NIM untuk
Nomor induk siswa, nama untuk nama siswa, NUTS untuk nilai ujian tengah
semester, dan NUAS untuk nilai ujian akhir semester. Sedangkan variabel ouput
terdiri dari NA yang digunakan untuk menyimpan nilai akhir dan Status untuk
menyimpan status kelulusan.
Gambar 5.12. Flowchart penyelesaian untuk kelulusan siswa.

4. Struktur Algoritma Pengulangan


Gambar 5.13. Lomba balap mobil di sirkuit.

Dalam banyak kasus seringkali kita dihadapkan pada sejumlah pekerjaan yang
harus diulang berkali.

Salah satu contoh yang gampang kita jumpai adalah balapan mobil seperti
tampak pada gambar 5.13. Mobil-mobil peserta harus mengelilingi lintasan
sirkuit berkali-kali sesuai yang ditetapkan dalam aturan lomba. Siapa yang
mencapai garis akhir paling cepat, dialah yang menang.

Pada pembuatan program komputer, kita juga kadang-kadang harus mengulang


satu atau sekelompok perintah berkali-kali agar memperoleh hasil yang
diinginkan. Dengan menggunakan komputer, eksekusi pengulangan mudah
dilakukan. Hal ini karena salah satu kelebihan komputer dibandingkan dengan
manusia adalah kemampuannya untuk mengerjakan tugas atau suatu instruksi
berulangkali tanpa merasa lelah, bosan, atau malas. Bandingkan dengan
pengendara mobil balap, suatu ketika pasti  ia merasa lelah dan bosan untuk
berputar-putar mengendarai mobil balapnya.

Struktur pengulangan terdiri dari dua bagian:

1. Kondisi pengulangan, yaitu syarat yang harus dipenuhi untuk


melaksanakan pengulangan. Syarat ini biasanya dinyatakan dalam ekspresi
Boolean yang harus diuji apakah bernilai benar (true) atau salah (false)
2. Badan pengulangan (loop body), yaitu satu atau lebih instruksi yang akan
diulang.

Pada struktur pengulangan, biasanya juga disertai bagian inisialisasi dan bagian
terminasi. Inisialisasi adalah instruksi yang dilakukan sebelum pengulangan
dilakukan pertama kali. Bagian insialisasi umumnya digunakan untuk memberi
nilai awal sebuah variable. Sedangkan terminasi adalah instruksi yang dilakukan
setelah pengulangan selesai dilaksanakan.

Ada beberapa bentuk pengulangan yang dapat digunakan, masing-masing


dengan syarat dan karakteristik tersendiri. Beberapa bentuk dapat dipakai untuk
kasus yang sama, namun ada bentuk yang hanya cocok untuk kasus tertentu
saja. Pemilihan bentuk pengulangan untuk masalah tertentu dapat
mempengaruhi kebenaran algoritma. Pemilihan bentuk pengulangan yang tepat
bergantung pada masalah yang akan diprogram.

Struktur pengulangan dengan For


Pengulangan dengan menggunakan For, merupakan salah teknik pengulangan
yang paling tua dalam bahasa pemrograman. Hampir semua bahasa
pemrograman menyediakan metode ini, meskipun sintaksnya mungkin berbeda.
Pada struktur For kita harus tahu terlebih dahulu seberapa banyak badan loop
akan diulang. Struktur ini menggunakan sebuah variable yang biasa disebut
sebagai loop’s counter, yang nilainya akan naik atau turun selama proses
pengulangan. Flowchart umum untuk struktur For tampak pada Gambar 5.14.
Perhatikan penggunaan simbol preparation pada flowchart tersebut.

Gambar 5.14. Struktur algoritma pengulangan dengan For.

Dalam mengeksekusi sebuah pengulangan dengan For, urutan langkahlangkah


adalah sebagai berikut:

1. Menetapkan nilai counter sama dengan awal.


2. Memeriksa apakah nilai counter lebih besar daripada nilai akhir. Jika
benar maka keluar dari proses pengulangan. Apabila kenaikan bernilai
negatif, maka proses akan memeriksa apakah nilai counter lebih kecil
daripada nilai akhir. Jika benar maka keluar dari proses pengulangan.
3. Mengeksekusi pernyataan yang ada di badan loop
4. Menaikkan/menurunkan nilai counter sesuai dengan jumlah yang
ditentukan pada argument increment. Apabila argument increment tidak
ditetapkan maka secara default nilai counter akan dinaikkan 1.
5. Ulang kembali mulai langkah no 2.

Satu hal yang penting yang harus kita perhatikan adalah nilai counter selalu
ditetapkan diawal dari pengulangan. Apabila kita mencoba merubah nilai akhir
pada badan loop, maka tidak akan berdampak pada berapa banyak pengulangan
akan dilakukan.
Contoh 5.19. Algoritma untuk mencetak pernyataan sebanyak 100
kali
Mungkin kalian pernah ketika masih di sekolah dasar melakukan perbuatan
nakal yang membuat kalian disuruh menuliskan pernyataan tertentu sebanyak
100 kali sebagai hukuman atas kenakalan tersebut. Misalkan pernyataan yang
harus ditulis adalah “Saya tidak akan mengulangi perbuatan itu lagi”.
Bagaimanakah caranya algoritma untuk kasus ini?

Penyelesaian:
Pada contoh ini, kita memerlukan variabel counter, misalkan kita beri nama I.
Nilai awalnya adalah 1 dan nilai akhirnya adalah 100. Sedangkan increment atau
kenaikan tiap kali pengulangan dari I adalah satu. Perintah untuk mencetak
pernyataan akan diulang satu persatu sampai nilai akhir dari counter terpenuhi
(100). Flowchart penyelesaian untuk contoh ini dapat dilihat pada Gambar 5.15.

Gambar 5.15. Flowchart menulis pernyataan 100 kali.

Perhatikan bagaimana mudahnya kita melakukan pengulangan. Pada Gambar


5.15 tersebut increment tidak dicantumkan, karena sesuai langkah-langkah yang
dijelaskan sebelumnya, jika tidak dicantumkan maka otomatis nilai increment
adalah satu.

Contoh 5.20. Flowchart untuk mencetak anggota suatu himpunan


Diketahui sebuah himpunan A yang beranggotakan bilangan 1, 3, 5, .., 19.
Buatlah flowchart untuk mencetak anggota himpunan tersebut.

Penyelesaian:
Pada contoh ini, kita memerlukan variabel counter, misalkan kita beri nama A
(sesuai dengan nama himpunan). Nilai awalnya adalah 1 dan nilai akhirnya
adalah 19. Dari pola himpunan kita tahu bahwa kenaikan bilangan adalah 2 (1 ke
3, 3 ke 5, dan seterusnya). Sehingga bisa kita nyatakan increment atau kenaikan
tiap kali pengulangan dari A adalah 2. Flowchart penyelesaian untuk contoh ini
dapat dilihat pada Gambar 5.16.

Gambar 5.16. Flowchart mencetak anggota himpunan.

Pada Gambar 5.16 tersebut, perhatikan pada simbol preparation. Terdapat


tambahan pernyataan step 2. Inilah yang disebut sebagai increment. Setiap kali
pengulangan, maka nilai counter yaitu A akan bertambah 2 sehingga yang akan
tercetak adalah 1, 3, 5, .., 19.
Contoh 5.21. Menentukan hasil dari suatu flowchart pengulangan
Perhatikan flowchart pada Gambar 5.17. Tentukan hasil dari flowchart tersebut.

Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart.
Bagaimana menurut kalian jawabannya? Marilah kita uraikan jalannya fowchart
tersebut.

Pada flowchart, setelah Start, kita meletakkan satu proses yang berisi
pernyataan A = 1. Bagian inilah yang disebut inisialisasi. Kita memberi nilai awal
untuk A = 1. Variabel counter-nya adalah X dengan nilai awal 1 dan nilai akhir 10,
tanpa increment (atau secara default increment-nya adalah 1). Ketika masuk ke
badan loop untuk pertama kali maka akan dicetak langsung nilai variabel A. Nilai
variabel A masih sama dengan 1. Kemudian proses berikutnya adalah pernyataan
A = A + 2. Pernyataan ini mungkin agak aneh, tapi ini adalah sesuatu yang
pemrograman. Arti dari pernyataan ini adalah gantilah nilai A yang lama dengan
hasil penjumlah nilai A lama ditambah 2. Sehingga A akan bernilai 3. Kemudian
dilakukan pengulangan yang ke-dua. Pada kondisi ini nilai A adalah 3, sehingga
yang tercetak oleh perintah print adalah 3. Baru kemudian nilai A kita ganti
dengan penjumlahan A + 2. Nilai A baru adalah 5. Demikian seterusnya. Sehingga
output dari flowchart ini adalah 1, 3, 5, 7, .., 19.
Gambar 5.17. Flowchart mencetak bilangan tertentu

Kita dapat melihat sekarang bahwa Gambar 5.16 dan 5.17 memberikan output
yang sama. Dari kedua flowchart tersebut, Gambar 5.17 merupakan flowchart
yang disarankan. Meskipun lebih panjang tetapi lebih terstruktur. Selain itu tidak
semua bahasa pemrograman memberi fasilitas pengaturan increment.

Flowchart pada Gambar 5.17 harus kita perhatikan benarbenar, terutama posisi
pernyataan Print A. Cobalah membalik posisinya sehingga letak pernyataan A =
A + 2 berada di atas pernyataan Print A. Bagaimanakah hasilnya? Seperti halnya
struktur percabangan, kita juga akan menjumpai bentuk struktur pengulangan
bersarang (nested). Artinya, ada suatu pengulangan yang berada di dalam
pengulangan yang lain. Perhatikan Contoh 5.22 berikut ini.

Contoh 5.21. Menentukan hasil dari suatu flowchart pengulangan


Perhatikan flowchart pada Gambar 5.18. Tentukan hasil dari flowchart tersebut.

Penyelesaian:
Pada contoh ini, kita mencoba menentukan hasil dari sebuah flowchart dengan
pengulangan bersarang. Bagaimana menurut kalian jawabannya? Marilah kita
uraikan jalannya flowchart tersebut.

Pada Gambar 5.18 tersebut, terlihat ada dua simbol preparation. Yang pertama
dengan variabel counter X dan yang kedua dengan variabel counter Y. Dalam
posisi, variabel counter Y terletak setelah variabel counter X. Hal ini berarti
pengulangan dengan variabel counter Y terletak di dalam variabel counter X.
Inilah yang disebut sebagai pengulangan bersarang.

Pada bentuk pengulangan seperti ini, alur eksekusi program akan berjalan
sebagai berikut:
Gambar 5.18. Flowchart dengan pengulangan bersarang

1. Variabel X akan diisi dengan nilai awal counter-nya yaitu 1.


2. Variabel Y akan diisi dengan nilai awal counter-nya yaitu 0
3. Nilai Z dihitung dengan mengalikan X dengan Y. Nilai X = 1 dan nilai Y = 0
jadi nilai Z = 0
4. Nilai X, Y dan Z dicetak di layar.
5. Alur berputar, dan nilai Y dinaikkan menjadi 1 sedangkan nilai X masih
satu (karena bagian X belum berputar).
6. Nilai Z = 1 hasil perkalian X = 1 dan Y = 1.
7. Nilai X, Y, dan Z akan dicetak lagi di layar.
8. Alur berputar kembali sehingga nilai Y menjadi 2, sehingga nilai Z akan
menjadi 2.
9. Setelah ini perputaran akan keluar dari Y karena nilai akhir counter yaitu
sudah tercapai.
10. Nilai X akan dinaikkan 1 menjadi 2, dan proses kembali melakukan
pengulangan pada bagian Y seperti di atas.
11. Proses pengulangan diulang terus sampai nilai akhir dari counter X yaitu 3
tercapai. Sehingga hasil akhir dari flowchart tersebut adalah sebagai
berikut:

Dari Contoh 5.21. di atas kita bisa melihat ada aturan-aturan yang harus dipenuhi
dalam pengulangan bersarang, yaitu:

 Masing-masing pengulangan (badan loop) mempunyai variabel counter


sendiri-sendiri.
 Pengulangan-pengulangan tersebut tidak boleh tumpang tindih.

Struktur pengulangan dengan While


Pada pengulangan dengan For, banyaknya pengulangan diketahui dengan pasti
karena nilai awal (start) dan nilai akhir (end) sudah ditentukan diawal
pengulangan. Bagaimana jika kita tidak tahu pasti harus berapa kali mengulang?
Pengulangan dengan While merupakan jawaban dari permasalahan ini. Seperti
halnya For, struktur pengulangan dengan While juga merupakan struktur yang
didukung oleh hampir semua bahasa pemrograman namun dengan sintaks yang
berbeda.
Gambar 5.19. Flowchart umum While.

Struktur While akan mengulang pernyataan pada badan loop sepanjang kodisi
pada While bernilai benar. Dalam artian kita tidak perlu tahu pasti berapa kali
diulang. Yang penting sepanjang kondisi pada While dipenuhi maka pernyataan
pada badan loop akan diulang. Flowchart umum untuk struktur While dapat
dilihat pada Gambar 5.19.

Pada Gambar 5.19., tampak bahwa simbol preparasi untuk pengulangan seperti
pada For tidak digunakan lagi. Namun kita menggunakan simbol decision untuk
mengendalikan pengulangan. Selain kondisi, biasanya pada pengulangan While
harus dilakukan inisialisasi variabel terlebih dahulu.

Contoh 5.22. Pengulangan dengan While untuk mencetak nilai


tertentu.
Perhatikan flowchart pada Gambar 5.20. Bagaimanakah output dari flowchart
tersebut?

Penyelesaian:
Perhatikan Gambar 5.20. bisakah kalian menentukan hasil dari lowchart
tersebut? Perhatikan tahapan eksekusi flowchart berikut ini.
Gambar 5.20. Flowchart pengulangan dengan while untuk mencetak nilai
tertentu.

1. Pada flowchart ini ada dua variabel yang kita gunakan yaitu A dan B.
Kedua variabel tersebut kita inisialisasi nilai awalnya (A = 1 dan B = 0)
sebelum proses loop terjadi. Variabel A adalah variabel counter.
2. Pada simbol decision, nilai A akan diperiksa apakah memenuhi kondisi (<
10). Jika Ya maka perintah berikutnya dieksekusi, jika tidak maka program
akan berhenti. Pada awal eksekusi ini kondisi akan terpenuhi karena nilai A
= 1.
3. Jalankan perintah Print B.
4. Nilai variabel A kemudian diganti dengan nilai A lama (1) ditambah 2.
Sehingga nilai variabel A baru adalah 3. Sedangkan nilai variabel B = 9 (hasil
perkalian A = 3).
5. Program akan berputar kembali untuk memeriksa apakah nilai variabel A
masih lebih kecil dari 10. Pada kondisi ini nilai A = 3, sehingga kondisi masih
terpenuhi. Kemudian langkah berulang ke langkah ke 3. Begitu seterusnya
sampai nilai variabel A tidak lagi memenuhi syarat kurang dari 10. Sehingga
output dari flowchart ini adalah : 0, 9, 25, 49, 81.

Seperti halnya pengulangan dengan For, pengulangan dengan While juga


memungkinkan terjadinya pengulangan bersarang. Aturan dan cara yang
dilakukan sama dengan pengulangan dengan For.

Pada beberapa bahasa pemrograman juga disediakan pengulangan dengan cara


Do ... Loop dan Repeat .. Until. Kedua cara ini mirip dengan While, perbedaannya
adalah letak dari kondisi. Pada While pemeriksaan kondisi diletakkan sebelum
badan loop. Sedangkan Do ... Loop dan Repeat ... Until, pemeriksaan kondisi
dilakukan setelah badan loop.

Posted by Mr. Root on 2018-11-10 01:49:14  algorithm

Komentar

dummy

2018-10-04 03:02:55

1. JEFRY DEWANGGA 13 Apr 2015, 08:34:00 = Kebanyakan


struktur pemrograman digambarkan menggunakan flow chart ya...
Jadi lebih mudah emang buat memahami jika digambarkan.
2. SOPANDII ART 20 Apr 2015, 09:56:00 = Kalo penjumlahan
fungsi array ada ga gan programnya. saya masih belum pahan
terima kasih
3. ANONYMOUS 16 Nov 2015, 10:44:00 = gan tolong post yang
perbedaan for next dengan for yang lain ya masih bngung 2 tu
bedanya ap si gan
4. ANONYMOUS 16 Nov 2015, 14:48:00 = disini memang gak ada
tapi saya cek diwebsite yang lain disebutkan bahwa for punya 4
macam for positif, negatif, tersarang dan for next jadinya cuma
bingung perbedaan for next dengan for yang lain aja
5. ANONYMOUS 16 Nov 2015, 15:47:00 = Oo ok gan thanks yah
infonya akhirnya aku mengerti sekarang (Y)
6. WORLD BALON 3 Feb 2016, 13:01:00 = SUKSES DAN TERUS
BERPRESTASI
7. BELAJARCODINGS.COM 11 May 2016, 06:40:00 = Mantab ini
:D, postingannya bisa jadi modul algoritma pemrograman. terima
kasih mas wawan
8. AHMAD_AZHAR 1 Aug 2016, 17:46:00 = mau nanya mas,
gimana algoritmanya program yang menggunakan procedure seperti
program menghitung bangun ruang. Trima kasi..
9. KHABIB MUBARAK 1 Nov 2016, 19:57:00 = Gimana si
deskripsi,flowchart n program ..menjumlahkan N buah
bilangan,namun hanya bil ganjil yg dijumlahkan. Mohon
penjelasanya gan
10. KHABIB MUBARAK 3 Nov 2016, 19:45:00 = Itu awalnya
pertanyaan yang berbuah menjadi tugas..hahaha Sebenarnya udah
bikin.tapi blom yakin.. Bikin flowchartnya aja gan..mohon bantuan ..
#menjumlah n buah bilangan masukkan, hanya bil ganjil yg
dijumlah.. Thanks
11. AZKAEXCEL 13 Jan 2017, 10:27:00 = Mantap gan
penjelasannya izin buat refrensi n izin share... Thanks infonya, inilah
yg ane butuhkan.
12. ERIK WIBOWO 22 May 2017, 14:33:00 = sangat membantu
trima kasih
root

2018-10-04 03:08:42

13. Betul sekali mas Jefy Dewangga, jadi flow chart banyak sekali
manfaatnya, selain fungsi utamanya adalah sebagai kerangka kerja,
juga berguna untuk mempresentasikan suatu sistem program
kepada public, juga bisa membantu seorang programmer dalam
melakukan troubleshooting atau developing dengan acuan
flowchart tersebut.
14. konsepnya sama gan, gunakan perulangan untuk
menambahkan fungsi array, sebagaimana mas SPANDII ART
menggunakan perulangan untuk menampilkan isi array,
15. Hallo Anonymous, maaf for next yang mana ya? sebab di
postingan ini tidak mengulas tentang for next, jadi mohon maaf, jika
berkenan silakan comment lagi di postingan yang terkait, sehingga
kami bisa mejawabnya dengan baik dan berkesinambungan..
terimakasih,
16. Oh, sebenarnya "for" (selama) adalah representasi dari
perulangan, disamping itu perulangan juga tidak hanya "for"
(selama) saja, melainkan ada juga "while" (saat), jadi Anonymous
tidak perlu bingung, karena perulangan "for" itu cuman satu, tidak
ada "for" jenis "for" yang lain. Adapun yang dimaksud next, negatif,
positif itu adalah nama "variabel" karena nama variabel itu bersifat
bebas, jadi tidak ada standar khusus untuk penamaannya, boleh
saja pembuat program memberikan nama variabelnya a, b, c, atau
nama object seperti tikus, roda, gajah, anu, dll. semua itu
tergantung konteksnya. Jadi, pada kasus Anonymous seperti "for
positif" itu merupakan representasi perulangan khusus untuk
aritmatika bilangan positif, sedangkan "for negatif" untuk
perulangan aritmatika bilangan negatif, sementara itu "for next"
adalah perulangan untuk parameter kapan harus lanjut, jadi jika di
tuliskan ke dalam bentuk bahasa preposition logic menjadi: "for
positif" = " Selama variabel positif bernilai ini (ditentukan), maka
program dalam satu block {...} dieksekusi" sekarang, Anonymous
bisa mengartikannya sendiri maksud dari for - for yang lain.. Agar
bisa memahami lebih jauh tentang perulangan dan percabangan,
silakan bisa pelajari materi di label "algorithm" & "c++"
17. Amin.. terimakasih
18. ok, you are welcome, silakan
19. Sebenarnya bisa pake apa aja, untuk pertamakalinya belajar
dulu saya masih menerapkan struktur urut (sequence) sepertihalnya
algoritma memasak mie instan. Misalkan kubus, maka langkah
pertama siapkan variabel yang diperlukan seperti Panjang, Lebar,
Tinggi. Kemudian dari tiga bahan tersebut kita bisa buat untuk
kalkulator Luas Alasnya atau Volumenya begitu.
20. Hii KHABIB MUBARAK, pertanyaan mu boleh singkat tapi
jawabannya tidak sesingkat itu. Oya itu pertanyaan atau soal tugas
ya? hehehe, Silakan baca-baca dulu dan pahami, sehingga
pertanyaan yang diajukan lebih spesifik. Terimakasih
21. Hi AZKAEXCEL, silakan gan, dengan senang hati, sama-sama.
22. Sama-sama gan ERIK WIBOWO

Comment

Sponsor
Sponsor
Categories

 ajax

 alat-kontrol-industri

 algorithm

 aljabar-boolean

 aljabar-linear

 android

 android-kotlin

 apache
 artificial-intelligence

 assembly

 blogger

 bootstrap

 browser

 c

 c++

 codeigniter

 css

 cybersecurity

 dbms

 elektronika

 elektronika-reparasi

 geosystems

 git

 github

 google-drive

 google-sheets

 htaccess

 html
 imk

 inkscape

 instalasi-hardware

 instalasi-software

 jaringan-komputer

 java

 javascript

 jquery

 laravel

 linux

 maintenance

 markdown

 metode-numerik

 mikrokomputer

 mikrokontroler

 mikroprosesor

 multimedia

 mysql

 notepad++

 office-excel
 office-presentation

 office-word

 oop

 penelitian

 pengantar-ti

 php

 plc

 regex

 riset-operasi

 rpl

 scriptshit

 seo

 sig

 sistem-analog

 sistem-digital

 sistem-operasi

 sistem-pakar

 sistem-terdistribusi

 spk

 sql
 statistik

 struktur-data

 sublimetext

 tools

 troubleshooting

 virtual-machines

 visual-basic

 web

 web-service

 windows

 wordpress

 © 2020 Bundet, Inc.
 Terms
 Privacy
 Disclaimer
 FAQ

 Facebook
 Instagram
 Twitter
 Github
 Built with 

Anda mungkin juga menyukai