3.
Struktur Kendali Bagian 1
Struktur
Kendali
Visual Basic menyediakan tiga jenis
struktur seleksi, yang akan didiskusikan pada bab ini dan bab berikutnya.
Struktur seleksi If/Then menyeleksi
(melakukan) sebuah aksi (atau runtun aksi) jika kondisi bernilai true atau
melompati sebuah aksi (atau runtun aksi) jika kondisi benilai false. Struktur
seleksi If/Then/Else melakukan
(menyeleksi) sebuah aksi (atau runtun aksi) jika kondisi bernilai true dan
melakukan sebuah aksi yang berbeda jika kondisi bernilai false. Struktur Select Case, yang didiskusikan pada Bab
4, melakukan salah satu dari banyak aksi (runtun aksi), bergantung pada nilai
dari sebuah ekspresi.
Struktur If/Then dikenal dengan struktur seleksi-tunggal karena ia memilih
atau mengabaikan sebuah aksi tunggal (atau sebuah runtun aksi). Struktur If/Then/Else dikenal dengan struktur
seleksi-ganda karena memilih di antara dua aksi yang berbeda (atau dua runtun
aksi yang berbeda). Struktur Select Case
dikenal dengan struktur seleksi-jamak karena memilih di antara berbagai aksi
atau runtun aksi yang berbeda.
Visual Basic menyediakan tujuh jenis
struktur repetisi, While, Do While/Loop, Do/Loop While, Do Until/Loop,
Do/Loop Until, For/Next, dan For Each/Next.
Struktur repetisi While, Do While/Loop, dan Do Until/Loop akan dibahas pada bab ini; Do/Loop While, Do Loop/Until,
dan For/Next akan dibahas pada Bab
4. Struktur kendali For Each/Next
akan dijelaskan pada Bab 6.
Kata-kata If, Then, Else, End, Select, Case, While, Do, Until, Loop, For, Next, dan Each semuanya adalah katakunci Visual Basic (lihat Gambar 3.1).
Visual Basic memiliki himpunan katakunci yang jauh lebih besar dari bahasa
pemrograman lainnya.
Struktur
Seleksi If/Then
Dalam sebuah program, struktur seleksi
memilih di antara beberapa aksi. Sebagai contoh, jika dimisalkan bahwa syarat
nilai kelulusan pada suatu ujian adalah 60 (dari skala 100), maka statemen
pseudocode
If nilai mahasiswa lebih besar dari atau sama dengan 60
Tampilkan “Lulus”
menentikan apakah kondisi “nilai
mahasiswa lebih besar dari atau sama dengan 60” bernilai true atau false. Jika
kondisi bernilai true, maka “Lulus” akan ditampilkan, dan statemen pseudocode
berikutnya akan dieksekusi (ingat bahwa pseudocode bukanlah bahasa pemrograman
riil). Jika kondisi bernilai false, maka statemen untuk menampilkan akan
diabaikan, dan statemen pseudocode berikutnya akan dieksekusi.
Gambar 3.1 Katakunci dalam Visual Basic
Statemen pseudocode tersebut dapat
ditulis dalam Visual Basic sebagai
If nilaiMahasiswa >= 60 Then
Console.WriteLine("Lulus")
End If
Struktur seleksi If/Then tersebut dapat pula ditulis dalam satu baris sebagai
If nilaiMahasiswa >= 60 Then Console.WriteLine("Lulus")
Grafik-alir pada Gambar 3.2
mengilustrasikan struktur If/Then
seleksi-tunggal. Grafik-alir ini memuat simbol paling penting: simbol diamond
(atau keputusan), yang mengindikasikan bahwa sebuah keputusan harus dibuat.
Simbol keputusan memuat sebuah kondisi, yang bisa bernilai true atau false.
Simbol keputusan memiliki dua garis yang mengalir keluar. Satu garis
mengindikasikan arah yang akan diambil ketika kondisi di dalam simbol bernilai
true; garis yang lain mengindikasikan arah yang akan diambil ketika kondisi
bernilai false.
Gambar 3.2 Grafik-alir struktur seleksi-tunggal If/Then
Struktur
Seleksi If/Then/Else
Seperti yang telah dijelaskan, struktur
seleksi If/Then melakukan sebuah
aksi (atau runtun aksi) hanya jika kondisi bernilai true; sebaliknya, aksi
(runtun aksi) akan dilompati. Struktur seleksi If/Then/Else mengijinkan programer untuk menentukan sebuah aksi
(runtun aksi) dilakukan ketika kondisi bernilai true dan melakukan sebuah aksi
(runtun aksi) yang berbeda ketika kondisi bernilai false. Sebagai contoh,
statemen pseudocode
If nilai mahasiswa lebih besar dari atau sama dengan 60
Tampilkan “Lulus”
Else
Tampilkan “Gagal”
akan menampilkan “Lulus” jika nilai
mahasiswa lebih dari atau sama dengan 60, dan menampilkan “Gagal” jika nilai
mahasiswa kurang dari 60. Pada tiap kasus, setelah pesan ditampilkan,
pseudocode berikutnya akan dieksekusi.
Statemen pseudocode If/Then/Else tersebut dapat dituliskan
dalam Visual Basic sebagai
If nilaiMahasiswa >= 60 Then
Console.WriteLine("Lulus")
Else
Console.WriteLine("Gagal")
End If
Perhatikan bahwa tubuh klausa Else diidentasi sehingga sejajar dengan
tubuh klausa If.
Grafik-alir pada Gambar 3.3
mengilustrasikan aliran kendali pada struktur If/Then/Else. Pada model pemrograman aksi/keputusan berikut, di
samping simbol lingkaran kecil dan anak-panah, digunakan simbol persegi-panjang
(untuk aksi) dan simbol diamond (untuk keputusan).
Gambar 3.3 Grafik-alir struktur seleksi-ganda If/Then/Else
Struktur seleksi If/Then/Else bersarang untuk kondisi jamak dikonstruksi dengan
menempatkan struktur seleksi If/Then/Else
di dalam struktur If/Then/Else
lainnya. Sebagai contoh, statemen pseudocode berikut akan menampilkan “A” untuk nilai ujian yang lebih besar
dari atau sama dengan 90, “B” untuk
nilai dalam rentang 80-89, “C” untuk
nilai dalam rentang 70-79, “D” untuk
nilai dalam rentang 60-69, dan “F” untuk
nilai lainnya.
If nilai mahasiswa lebih besar dari atau sama dengan 90
Tampilkan “A”
Else
If nilai mahasiswa lebih besar
dari atau sama dengan 80
Tampilkan “B”
Else
If nilai mahasiswa lebih
besar dari atau sama dengan 70
Tampilkan “C”
Else
If nilai mahasiswa lebih
besar dari atau sama dengan 60
Tampilkan “D”
Else
Tampilkan “F”
Pseudocode di atas dapat dituliskan
dalam Visual Basic sebagai
If nilaiMahasiswa >= 90 Then
Console.WriteLine("A")
Else
If nilaiMahasiswa >= 80 Then
Console.WriteLine("B")
Else
If nilaiMahasiswa
>= 70 Then
Console.WriteLine("C")
Else
If nilaiMahasiswa
>= 60 Then
Console.WriteLine("D")
Else
Console.WriteLine("F")
End If
End If
End If
End If
Jika nilaiMahasiswa lebih besar dari atau sama dengan 90, maka empat
kondisi pertama akan bernilai true, tetapi hanya statemen Console.WriteLine dalam tubuh pengujian pertama yang akan
dieksekusi. Setelah Console.WriteLine
tersebut dieksekusi, klausa Else
dari statemen If/Then/Else sebelah
luar dilompati.
Kebanyakan programer Visual Basic lebih
suka menulis struktur If/Then/Else
tersebut menggunakan katakunci ElseIf
sebagai
If nilaiMahasiswa >= 90 Then
Console.WriteLine("A")
ElseIf nilaiMahasiswa >= 80 Then
Console.WriteLine("B")
ElseIf nilaiMahasiswa >= 70 Then
Console.WriteLine("C")
ElseIf nilaiMahasiswa >= 60 Then
Console.WriteLine("D")
Else
Console.WriteLine("F")
End If
Struktur
Repetisi While
Struktur repetisi memampukan programer
untuk menentukan sebuah aksi yang akan diulang, bergantung pada nilai dari
kondisi. Statemen pseudocode
While masih terdapat item pada daftar belanja
Beli item berikutnya
Hapus dari daftar belanja
menjelaskan aksi repetitif yang terjadi
pada saat seseorang berbelanja. Kondisi, “masih terdapat item pada daftar
belanja” dapat bernilai true atau false. Jika bernilai true, maka aksi “Beli
item berikutnya” dan “Hapus dari daftar belanja” akan dilakukan secara
berurutan. Kedua aksi ini dieksekusi secara berulang ketika kondisi tetap
bernilai true. Jika kondisi bernilai false, maka repetisi akan berhenti, dan
statemen pertama yang berada setelah struktur repetisi akan dieksekusi.
Sebagai contoh dari sebuah struktur While, perhatikan program berikut yang
didesain untuk mencari angka pertama (yang dipangkat dua) yang lebih besar dari
1000 (kode 3.1). Pada baris 7, dipakai sebuah fitur Visual Basic yang
memampukan penginisialisasian variabel digabungkan dengan deklarasinya. Ketika
struktur While dieksekusi (baris
11), hasil bernilai 2. Variabel hasil secara berulang dikalikan dengan
2 (baris 13), yang menghasilkan 4, 8, 16, 32, 64, 128, 256, 512, dan 1024.
Ketika hasil menjadi 1024, kondisi hasil <= 1000 di dalam struktur While menjadi false. Ini akan menghentikan
repetisi, dimana 1024 menjadi nilai akhir dari hasil. Eksekusi akan berlanjut ke statemen berikutnya yang berada
setelah katakunci End While.
Grafik-alir pada Gambar 3.4
mengilustrasikan aliran kendali dari struktur repetisi While, yang tercantum pada kode 3.1. Perhatikan bahwa (di samping
simbol lingkaran kecil dan anak-panah) grafik-alir hanya memuat simbol
persegi-panjang dan simbol diamond.
Gambar 3.4 Grafik-alir struktur repetisi While
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
' Kode 3.1: While.vb
' Demonstrasi struktur While.
Module modWhile
Sub Main()
Dim hasil As Integer =
2
' struktur mengalikan dan
menampilkan hasil
' ketika hasil kurang dari
atau sama dengan 1000
While hasil <= 1000
Console.Write("{0} ", hasil)
hasil = hasil * 2
End While
Console.WriteLine() '
menampilkan baris kosong
' menampilkan hasil
Console.WriteLine("Pangkat dua terkecil " & _
"yang lebih besar dari 1000 adalah
{0}", hasil)
End Sub ' Main
End Module ' modWhile
|
2 4 8 16 32 64 128 256 512
Pangkat dua terkecil yang lebih besar dari 1000 adalah 1024
|
Struktur
Repetisi Do While/Loop
Struktur repetisi Do While/Loop berperilaku seperti struktur repetisi While. Sebagai suatu contoh dari sebuah
struktur Do While/Loop, perhatikan
versi lain dari program yang didesain untuk mencari pangkat dua pertama yang
lebih besar dari 1000 (kode 3.2).
Ketika struktur Do While/Loop dieksekusi, nilai dari hasil adalah 2. Variabel hasil
secara berulang dikalikan dengan 2, yang menghasilkan nilai-nilai 4, 8, 16, 32,
64, 128, 256, 512, dan 1024. Ketika hasil
menjadi 1024, kondisi di dalam struktur Do
While/Loop, hasil <= 1000,
menjadi false. Ini akan menghentikan repetisi, dnegan nilai akhir dari hasil adalah 1024. Eksekusi program
berlanjut ke statemen pertama yang berada setelah struktur Do While/Loop. Grafik-alir pada Gambar 3.5 mengilustrasikan aliran
kendali pada struktur repetisi Do
While/Loop, yang identik dengan aliran kendali pada struktur repetisi While pada Gambar 3.4.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
' Kode 3.2: DoWhile.vb
' Demonstrasi struktur DoWhile.
Module modDoWhile
Sub Main()
Dim hasil As Integer =
2
' struktur mengalikan dan
menampilkan hasil
' ketika hasil kurang dari
atau sama dengan 1000
Do While hasil <= 1000
Console.Write("{0} ", hasil)
hasil = hasil * 2
Loop
Console.WriteLine() '
menampilkan baris kosong
' menampilkan hasil
Console.WriteLine("Pangkat dua terkecil " & _
"yang lebih besar dari 1000 adalah {0}",
hasil)
End Sub ' Main
End Module ' modDoWhile
|
2 4 8 16 32 64 128 256 512
Pangkat dua terkecil yang lebih besar dari 1000 adalah 1024
|
Gambar 3.5
Grafik-alir struktur repetisi DoWhile/Loop
Struktur
Repetisi Do Until/Loop
Tidak seperti struktur repetisi While dan Do While/Loop, struktur repetisi Do Until/Loop menguji kondisi apakah bernilai false agar repetisi
dapat dilanjutkan. Statemen-statemen dalam tubuh Do Until/Loop dieksekusi secara berulang sepanjang pengujian
kontinuasi-loop bernilai false. Sebagai sebuah contoh dari suatu struktur
repetisi Do Until/Loop, sekali lagi
perhatikan sebuah program (kode 3.3) yang dirancang untuk menemukan pangkat dua
pertama yang lebih besar dari 1000.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
|
' Kode 3.3: DoUntil.vb
' Demonstrasi atas struktur Do Until/Loop.
Module modDoUntil
Sub Main()
Dim hasil As Integer =
2
' mencari pangkat dua
pertama yang lebih besar dari 1000
Do Until hasil > 1000
Console.Write("{0} ", hasil)
hasil = hasil * 2
Loop
Console.WriteLine() '
menampilkan baris kosong
' menampilkan hasil
Console.WriteLine("Pangkat 2 terkecil " & _
"yang lebih besar dari 1000 adalah {0}",
hasil)
End Sub ' Main
End Module ' modDoUntil
|
2 4 8 16 32 64 128 256 512
Pangkat 2 terkecil yang lebih besar dari 1000 adalah 1024
|
Grafik-alir pada Gambar 3.6
mengilustrasikan aliran kendali dalam struktur repetisi Do Until/Loop yang ditunjukkan pada kode 3.3.
Gambar 3.6 Grafik-alir struktur repetisi Do Until/Loop
Operator
Penugasan
Visual Basic .NET menyediakan beberapa
operator penugasan untuk statemen penugasan dipersingkat. Sebagai contoh,
statemen
nilai = nilai + 3
dapati disingkat dengan operator
penugasan penjumlahan += sebagai
nilai += 3
Operator += menjumlahkan nilai dari
operand kanan ke nilai dari operand kiri dan menyimpan hasil penjumlahan pada
variabel operand kiri. Sembarang statemen dengan bentuk
variabel = variabel operator
ekspresi
dapat dituliskan menjadi bentuk
variabel operator= ekspresi
dimana operator adalah salah satu dari
operator-operator biner +, -, *, ^, &, / atau \, dan variabel merupakan sebuah lvalue (“nilai kiri”). Lvalue
merupakan sebuah variabel yang dapat ditempatkan di sisi kiri dari suatu
statemen penugasan. Gambar 3.7 mencantumkan semua operator penugasan aritmatik,
ekspresi contoh menggunakan operator-operator tersebut, dan penjelasannya.
Meskipun simbol =, +=, -=, *=, /=, \=, ^=, dan &= merupakan
operator, yang tidak dicantumkan pada tabel derajat keutamaan operator. Ketika
sebuah operator penugasan dievaluasi, ekspresi yang ada di sisi kanan operator
selalu dievaluasi terlebih dahulu, kemudian ditugaskan kepada lvalue di sebelah kiri. Tidak seperti
operator lain pada Visual Basic, operator penugasan hanya bisa terjadi dalam
sebuah statemen. Kode 3.4 menghitung pangkat dua menggunakan operator penugasan
eksponensiasi.
Operasi Penugasan
|
Contoh ekspresi
|
Penjelasan
|
Menugaskan
|
Diasumsikan: c = 4, d = “Ha”
+=
-=
*=
/=
\=
^=
&=
|
c +=7
c -= 3
c *= 4
c /= 2
c \= 3
c ^= 2
d &= “llo”
|
c = c + 7
c = c – 3
c = c * 4
c = c / 2
c = c \ 3
c = c ^ 2
d = d &
“llo”
|
11 kepada c
1 kepada c
16 kepada c
2 kepada c
1 kepada c
16 kepada c
“Hallo” kepada
d
|
Gambar 3.7 Operator-operator penugasan
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
' Kode 3.4: Penugasan.vb
' Menggunakan operator penugasan untuk menghitung pangkat 2.
Module modPenugasan
Sub Main()
Dim eksponen As Integer
' masukan pangkat oleh pengguna
Dim hasil As Integer =
2 ' tingkat kepangkatan
' meminta pengguna untuk
memasukkan eksponen
Console.Write("Masukkan sebuah eksponen integer:
")
eksponen = Console.ReadLine()
hasil ^= eksponen ' sama
hasilnya dengan hasil = hasil ^ eksponen
Console.WriteLine("hasil ^= eksponen: {0}", hasil)
hasil = 2 ' mereset hasil
menjadi 2
hasil = hasil ^ eksponen
Console.WriteLine("hasil = hasil ^ eksponen: {0}",
hasil)
End Sub ' Main
End Module ' modPenugasan
|
Masukkan sebuah eksponen integer: 9
hasil ^= eksponen: 512
hasil = hasil ^ eksponen: 512
|
Baris 14 dan 18 memiliki efek sama pada
variabel hasil. Perhatikan bahwa
hasil dari kedua perhitungan adalah identik.
Memformulasikan
Algoritma: Studi Kasus 1 (Repetisi Terkendali Kounter)
Untuk mengilustrasikan bagaimana
algoritma dikembangkan, berikut akan diselesaikan dua variasi dari sebuag
masalah pererataan kelas. Perhatikan statemen masalah berikut:
Sebuah kelas yang terdiri-dari sepuluh mahasiswa mengadakan kuis.
Nilai-nilai (integer dalam rentang 0 sampai 100) untuk kuis ini tersedia bagi
Anda. Tentukan rerata kuis tersebut.
Rerata kelas sama dengan jumlah nilai
dibagi dengan jumlah mahasiswa. Algoritma untuk menyelesaikan masalah ini pada
sebuah komputer adalah membaca masukan setiap nilai, melakukan perhitungan
pererataan, dan menampilkan hasil.
Akan digunakan pseudocode untuk
mencantumkan aksi-aski yang akan dieksekusi dan untuk menentukan urutan
eksekusi. Akan digunakan repetisi terkendali kounter untuk membaca nilai satu
demi satu. Teknik ini menggunakan sebuah variabel yang dinamakan dengan sebuah
kounter untuk menentukan berapa kali sehimpunan statemen akan dieksekusi.
Repetisi terkendali kounter juga disebut dengan repetisi definitif karena
jumlah repetisi telah diketahui sebelum loop dieksekusi. Pada contoh ini,
repetisi berhenti ketika kounter melebihi 10. Bagian ini menyajikan sebuah
algoritma pseudocode (Gambar 3.8) dan
program terkait (kode 3.5).
Tetapkan total menjadi
nol
Tetapkan kounter nilai
menjadi satu
While kounter nilai
kurang dari atau sama dengan 10
Baca nilai berikutnya
Jumlahkan nilai pada total
Tambahkan satu pada kounter nilai
Tetapkan rerata kelas
sebagai total dibagi dengan 10
Tampilkan rerata kelas
Gambar 3.8 Algoritma
pseudocode yang menggunakan repetisi terkendali kounter untuk menyele-saikan
masalah pererataan kelas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
' Kode 3.5: Rerata1.vb
' Menggunakan repetisi terkendali kounter.
Module modRerata
Sub Main()
Dim total As Integer '
jumlah nilai
Dim kounterNilai As
Integer ' jumlah nilai yang dimasukkan
Dim nilai As Integer '
nilai yang dimasukkan pengguna
Dim rerata As Double '
rerata kelas
' fase inisialisasi
total = 0 ' menetapkan
total menjadi nol
kounterNilai = 1 '
menyiapkan loop
' fase pemrosesan
While kounterNilai <= 10
' meminta masukan dari
pengguna
Console.Write("Masukkan nilai integer: ")
nilai =
Console.ReadLine()
total += nilai '
menambahkan nilai pada total
kounterNilai += 1 '
menambahkan 1 pada kounterNilai
End While
' fase terminasi
rerata = total / 10
' menampilkan baris kosong
dan rerata kelas
Console.WriteLine()
Console.WriteLine("Rerata kelas adalah {0}",
rerata)
End Sub ' Main
End Module ' modRerata
|
Masukkan nilai integer: 89
Masukkan nilai integer: 70
Masukkan nilai integer: 73
Masukkan nilai integer: 85
Masukkan nilai integer: 88
Masukkan nilai integer: 92
Masukkan nilai integer: 57
Masukkan nilai integer: 98
Masukkan nilai integer: 67
Masukkan nilai integer: 76
Rerata kelas adalah 79.5
|
Perhatikan referensi algoritma (Gambar
3.8) dari total dan kounter. Total merupakan merupakan sebuah variabel yang
dipakai untuk menghitung penjumlahan dari sederet nilai. Kounter adalah sebuah
variabel yang menghitung, pada kasus ini, kounter menjejak banyaknya nilai yang
dimasukkan oleh pengguna. Adalah hal penting bagi variabel yang dipakai sebagai
total dan kounter untuk diberikan nilai awal sebelum digunakan. Kounter
biasanya diinisialisasi dengan nol. Total umumnya diinisialisasi dengan nol.
Jika variabel numerik tidak diinisialisasi sebelum digunakan, maka Visual Basic
akan menginisialisasinya dengan nol.
Baris 7-10 mendeklarasikan variabel total, kounterNilai, dan nilai
menjadi bertipe Integer dan rerata menjadi bertipa Double. Pada contoh ini, total mengakumulasi penjumlahan nilai
yang dimasukkan, dan kounterNilai
menghitung banyaknya nilai yang dimasukkan. Variabel nilai menyimpan nilai yang dimasukkan (baris 21).
Perhatikan dari keluaran bahwa meskipun
setiap nilai yang dimasukkan adalah integer, kalkulasi pererataan sangat
mungkin akan menghasilkan sebuah angka dengan titik desimal (angka pecahan atau
titik-mengambang). Tipe Integer
tidak bisa merepresentasikan angka pecahan, jadi program ini menggunakan tipe
data Double, yang menyimpan
angka-angka titik-mengambang kepresisian-ganda. Visual Basic juga menyediakan
tipe data Single untuk menyimpan
angka titik-mengambang kepresisian-tunggal. Tipe data Double memerlukan memori yang lebih besar dalam menyimpan sebuah
nilai titik-mengambang, tetapi lebih akurat daripada Single. Tipe Single
berguna dalam aplikasi yang menghemat memori dan tidak memerlukan keakuratan
seperti Double.
Baris 13-14 menginisialisasi total dengan 0 dan kounterNilai dengan 1. Baris 17 mengindikasikan bahwa struktur While harus beriterasi ketika nilai
dari kounterNilai kurang dari atau
sama dengan 10. Baris 20-21 berkaitan dengan statemen pseudocode “Masukkan nilai
berikutnya”. Statemen pada baris 20 menampilkan “Masukkan nilai integer: ” pada command
window. Statemen kedua (baris 21) membaca nilai yang dimasukkan pengguna,
dan menyimpannya dalam variabel nilai.
Selanjutnya, program memperbarui total dengan nilai baru yang dimasukkan pengguna, baris 23 menjumlahkan nilai pada nilai sebelumnya dari total dan menugaskan hasilnya kepada total menggunakan operator penugasan +=. Variabel kounterNilai diinkremen (baris 25) untuk mengindikasikan bahwa
sebuah nilai telah diproses. Baris 25 menambahkan 1 pada kounterNilai, sehingga kondisi dalam struktur While akhirnya menjadi false dan menghentikan loop. Baris 29
menugaskan hasil dari perhitungan rerata kepada variabel rerata. Baris 32 menampilkan suatu baris kosong untuk mempercantik
keluaran. Baris 33 menampilkan sebuah pesan yang memuat string “Rerata kelas adalah “ yang diikuti oleh
nilai dari variabel rerata.
Memformulasikan
Algoritma: Studi Kasus 2 (Repetisi Terkendali Sentinel)
Akan digeneralisir permasalahan
pererataan kelas. Perhatikan permasahalan berikut:
Kembangkanlah sebuah permasalahan pererataan kelas yang mereratakan
sejumlah (banyak sembarang) nilai setiap kali program dijalankan.
Pada contoh pererataan kelas yang
pertama, banyak nilai (10) telah diketahui lebih dahulu. Pada contoh ini, tidak
ada indikasi yang diberikan tentang berapa banyak nilai yang akan dimasukkan.
Program harus memproses sembarang jumlah nilai. Bagaimana program menentukan
kapan harus berhentu membaca masukan? Bagaimana program mengetahui kapan
menghitung dan menampilkan rerata kelas?
Salah satu cara menyelesaikan
permasalahan ini adalah dengan menggunakan sebuah nilai spesial, yang dikenal
dengan nilai sentinel (nilai pengawal), untuk mengindikasikan akhir pembacaan
data. Pengguna memasukkan semua nilai dan kemudian mengetikkan nilai sentinel
untuk mengindikasikan bahwa nilai terakhir telah dimasukkan. Repetisi
terkendali sentinel disebut pula dengan repetisi tak-pasti karena jumlah
repetisi tidak diketahui sebelum loop mulai dieksekusi.
Sangat penting untuk menggunakan sebuah
nilai sentinel yang berbeda dari nilai masukan yang diinginkan. Nilai-nilai
pada sebuah kuis normalnya adalah integer tak-negatif, jadi -1 merupakan nilai
sentinel yang logis untuk masalah ini. Program, misalnya, akan memproses aliran
masukan seperti 96, 95, 87, 74, 89, dan -1. Program akan menghitung dan
menampilkan rerata kelas untuk nilai-nilai 96, 95, 87, 74, dan 89. Nilai
sentinel -1 tidak disertakan dalam perhitungan rerata.
Ketika menyelesaikan masalah yang lebih
kompleks, representasi pseudocode
sangat diperlukan. Akan dimulai representasi pseudocode teratas:
Menentukan rerata kelas untuk kuis
Statemen di atas menyampaikan tujuan
umum dari program, yang merupakan representasi utuh dari sebuah program. Karena
sifatnya yang umum, maka perlu buat lebih spesifik. Hal ini melibatkan
pembagian statemen tersebut menjadi beberapa tugas yang lebih kecil sebagai
berikut:
Menginisialisasi variabel-variabel
Membaca, menjumlahkan, dan menghitung banyak nilai kuis
Menghitung dan menampilkan rerata kelas
Untuk melanjutkan ke level penspesifikasian
berikutnya. Diperlukan total berjalan dari angka-angka yang dimasukkan, kounter
untuk menghitung berapa banyak angka yang telah diproses, sebuah variabel untuk
menerima nilai dari setiap masukan, dan sebuah variabel untuk menampung rerata
yang telah dihitung. Statemen pseudocode
Menginisialisasi variabel-variabel
dapat dispesifikasi sebagai berikut:
Menginisialisasi total menjadi nol
Menginisialisasi kounter menjadi nol
Perhatikan bahwa hanya variabel total dan kounter yang diinisialisasi sebelum digunakan; variabel rerata dan nilai (program pada kode 3.5 menggunakan kedua variabel tersebut
untuk rerata terhitung dan masukan pengguna) tidak perlu diinisialisasi karena
penugasan nilainya tidak bergantung pada nilai sebelumnya.
Statemen pseudocode
Membaca, menjumlahkan, dan menghitung nilai kuis
memerlukan sebuah struktur repetisi
(sebuah loop) yang memproses setiap nilai. Anda tidak mengetahui berapa banyak
nilai yang akan diproses, jadi digunakan repetisi terkendali sentinel. Pengguna
memasukkan nilai yang valid satu demi satu. Setelah nilai valid terakhir
diketikkan, pengguna mengetikkan nilai sentinel. Program menguji nilai setinel
setelah tiap nilai dibaca dan menghentikan loop ketika pengguna memasukkan
nilai sentinel. Penspesifikasian atas statemen pseudocode tersebut adalah
Memasukkan nilai pertama (bisa saja nilai sentinel)
Ketika pengguna tidak memasukkan sentinel
Tambahkan nilai ini pada total
berjalan
Tambahkan satu pada kounter
nilai
Masukkan nilai berikutnya (bisa
saja sentinel)
Statemen pseudocode
Menghitung dan menampilkan rerata kelas
dapat dispesifikasi sebagai berikut:
If kounter tidak sama dengan nol
Menetapkan rerata sebagai total
dibagi dengan kounter
Menampilkan rerata
Else
Menampilkan “Tidak ada nilai
yang dimasukkan”
Penspesifikasian utuh dari algoritma
pseudocode atas permasalahan pererataan kelas ditampilkan pada Gambar 3.9.
Menginisialisasi total menjadi nol
Menginisialisasi kounter menjadi nol
Memasukkan nilai pertama (bisa saja nilai sentinel)
Ketika pengguna tidak memasukkan sentinel
Tambahkan nilai ini pada total
berjalan
Tambahkan satu pada kounter
nilai
Masukkan nilai berikutnya (bisa
saja sentinel)
If kounter tidak sama dengan nol
Menetapkan rerata sebagai total
dibagi dengan kounter
Menampilkan rerata
Else
Menampilkan “Tidak ada nilai yang dimasukkan”
Gambar 3.9 Algoritma pseudocode yang menggunakan repetisi
terkendali sentinel untuk menyelesaikan permasalahan rerata kelas
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
' Kode 3.6: RerataKelas2.vb
' Menggunakan repetisi terkendali sentinel untuk
' menampilkan rerata kelas.
Module modRerataKelas
Sub Main()
Dim total As Integer '
jumlah nilai
Dim kounterNilai As
Integer ' banyak nilai yang dimasukkan
Dim nilai As Integer '
nilai yang dimasukkan pengguna
Dim rerata As Double '
rerata dari semua nilai
' fase inisialisasi
total = 0 '
menginisialisasi total
kounterNilai = 0 '
menyiapkan loop
' fase pemrosesan
' meminta masukan dan
membaca masukan dari pengguna
Console.Write("Masukkan nilai integer, -1 untuk keluar:
")
nilai = Console.ReadLine()
' loop terkendali sentinel
dimana -1 adalah nilai sentinel
While nilai <> -1
total += nilai '
menambahkan nilai pada total
kounterNilai += 1 '
menambahkan 1 pada kounterNilai
' meminta masukan dan
membaca masukan dari pengguna
Console.Write("Masukkan nilai integer, -1 untuk keluar:
")
nilai =
Console.ReadLine()
End While
' fase terminasi
If kounterNilai <> 0 Then
rerata = total /
kounterNilai
' menampilkan rerata
kelas
Console.WriteLine()
Console.WriteLine("Rerata
kelas adalah {0:F}", rerata)
Else ' tidak ada nilai yang dimasukkan
Console.WriteLine("Tidak
ada nilai yang dimasukkan")
End If
End Sub ' Main
End Module ' modRerataKelas
|
Masukkan nilai integer, -1 untuk keluar: 97
Masukkan nilai integer, -1 untuk keluar: 88
Masukkan nilai integer, -1 untuk keluar: 75
Masukkan nilai integer, -1 untuk keluar: -1
Rerata kelas adalah 86.67
|
Program Visual Basic untuk pseudocode
ini ditunjukkan pada kode 3.6. Pada contoh ini, akan diuji bagaimana
mengendalikan beberapa struktur yang ditumpuk satu di atas yang lain. Struktur While (baris 23-31) diikuti dengan
struktur If/Then (baris 34-42).
Banyak kode pada program ini identik dengan kode pada kode 3.5, sehingga yang
akan dibahas hanya pada beberapa fitur baru.
Baris 11 mendeklarasikan variabel rerata sebagai Double. Ini membuat hasil dari perhitungan rerata kelas dapat disimpan
sebagai angka titik-mengambang. Baris 15 menginisialisasi kounterNilai menjadi 0 karena belum ada nilai yang dimasukkan,
ingat bahwa program ini menggunakan repetisi terkendali sentinel. Untuk menjaga
keakuratan rekaman banyak nilai yang dimasukkan, variabel kounterNilai diinkremen hanya ketika nilai valid dimasukkan.
Perhatikan perbedaan antara repetisi
terkendali sentinel dan repetisi terkendali kounter. Pada repetisi terkendali
kounter, Anda membaca sebuah nilai dari pengguna selama tiap iterasi pada
struktur While. Pada repetisi
terkendali sentinel, Anda membaca sebuah nilai (baris 20) sebelum program
mengeksekusi struktur While. Nilai
ini menentukan apakah aliran kendali program harus memasuki tubuh struktur While atau tidak. Jika kondisi struktur
While bernilai false (pengguna
memasukkan nilai sentinel), maka tubuhnya tidak akan dieksekusi (tidak ada
nilai yang dimasukkan).
Jika, di sisi lain, kondisi bernilai
true, maka tubuh While akan
dieksekusi, dan nilai yang dimasukkan pengguna akan diproses (ditambahkan pada total). Setelah nilai tersebut
diproses, nilai berikutnya dimasukkan oleh pengguna sebelum akhir tubuh
struktur While. Ketika End While dicapai pada baris 30,
eksekusi berlanjut ke pengujian berikutnya pada kondisi struktur While. Nilai baru yang dimasukkan oleh
pengguna mengindikasikan apakah tubuh struktur While akan dieksekusi kembali atau tidak. Perhatikan bahwa nilai
berikutnya selalu dimasukkan oleh pengguna tepat sebelum kondisi struktur While dievaluasi (baris 23). Ini
memampukan program dalam menentukan apakah nilai yang dimasukkan nilai sentinel
atau tidak sebelum memproses nilai tersebut (menambahkannya pada total). Jika nilai yang dimasukkan
adalah nilai sentinel, maka struktur While
akan berhenti, dan nilai tersebut tidak ditambahkan pada total.
Pada baris 38 pada kode 3.6, metode WriteLine menggunakan format {0:F} untuk menampilkan nilai dari
rerata pada command window sebagai sebuah angka titik-tetap (sebuah angka
dengan jumlah dijit setelah titik desimal ditentukan). Visual Basic menyediakan
format angka standar untuk mengendalikan cara bagaimana angka ditampilkan
sebagai String. Hal ini akan
didiskusikan pada Bab 4.
Memformulasikan
Algoritma: Studi Kasus 3 (Struktur Kendali Bersarang)
Akan dibahas permasalahan lain yang
lebih kompleks. Lagi, akan diformulasikan sebuah algoritma menggunakan pseudocode,
dengan penspesifikasian bertingkat. Perhatikan statemen permasalahan berikut:
Sebuah universitas menawarkan suatu pelatihan untuk mempersiapkan para
mahasiswa yang ingin mengambil ujian sertifikasi pemrograman Microsoft. Tahun
lalu, 10 dari para mahasiswa yang menyelesaikan pelatihan ini ikut serta dalam
ujian sertifikasi pemrograman. Universitas ingin mengetahui kinerja 10
mahasiswa yang mengikuti ujian sertifikasi tersebut. Anda diminta untuk menulis
sebuah program yang dapat menyimpulkan hasil respon dari para mahasiswa
tersebut. Pada Anda diberikan daftar 10 mahasiswa tersebut. Di samping tiap
nama, dituliskan “P” jika mahasiswa terkait lulus dan dituliskan “F” jika
mahasiswa terkait gagal.
Program Anda harus menganalisa hasil ujian sebagai berikut:
1.
Masukkan setiap
hasil ujian (“P” atau “F”). Tampilkan pesan “Masukkan hasil” setiap kali
program meminta hasil ujian yang lain.
2. Hitung banyaknya mahasiswa yang lulus dan yang
gagal.
3. Tampilkan kesimpulan dari hasil ujian, yang
mengindikasikan jumlah mahasiswa yang lulus dan jumlah mahasiswa yang gagal.
4.
Jika lebih dari
8 mahasiswa lulus dalam ujian, tampilkan pesan “Naikkan biaya pelatihan”.
Setelah membaca statemen permasalahan,
Anda melakukan pengamatan sebagai berikut:
1.
Program harus memproses hasil ujian untuk 10 mahasiswa,
sehingga loop terkendali kounter cocok untuk kasus ini.
2.
Setiap hasil ujian adalah sebuah String, berupa “P” atau “F”. Setiap
kali program membaca sebuah hasil ujian, program harus menentukan apakah
masukan adalah “P” atau “F”. Anda harus menguji “P” dalam algoritma. Jika
masukan bukan “P”, maka diasumsikan ia berupa “F”.
3.
Dua kounter diperlukan untuk menyimpan hasil
ujian, satu untuk menjejak banyak mahasiswa yang lulus ujian dan satu kounter
untuk menjejak banyak mahasiswa yang gagal ujian.
4. Setelah program
memproses semua hasil ujian, ia harus menentukan apakah terdapat lebih dari 8
mahasiswa yang lulus ujian atau tidak.
Selanjutnya, akan dilakukan
penspesifikasian bertingkat atas pseudocode.
Dimulai dari representasi atas tujuan umum program:
Menganalisa hasil ujian dan menentukan apakah biaya pelatihan perlu
dinaikkan atau tidak
Sekali lagi, adalah hal penting untuk
menekankan bahwa tujuan umum program perlu dispesifikasi lebih detil sehingga
dapat dikembangkan menjadi sebuah program Visual Basic. Penspesifikasian
pertama adalah
Menginisialisasi variabel-variabel
Membaca sepuluh nilai ujian dan menjejak (menghitung banyak) keberhasilan
dan kegagalan
Menampilkan kesimpulan hasil ujian dan menentukan jika biaya pelatihan
perlu dinaikkan atau tidak
Statemen pseudocode berikut
Menginisialisasi variabel-variabel
dapat dispesifikasi kembali menjadi
Menginisialisasi keberhasilan dengan nol
Menginisialisasi kegagalan dengan nol
Menginisialisasi kounter mahasiswa dengan satu
Hanya kounter untuk jumlah
keberhasilan, jumlah kegagalan, dan jumlah mahasiswa yang perlu diinisialisasi.
Statemen pseudocode
Membaca sepuluh nilai ujian dan menjejak (menghitung banyak) keberhasilan
dan kegagalan
memerlukan sebuah loop yang membaca
setiap hasil ujian. Di sini, telah diketahui bahwa terdapat 10 hasil ujian,
jadi repetisi terkendali kounter cocok digunakan. Di dalam loop (bersarang di
dalam loop), terdapat sebuah struktur seleksi-ganda untuk menentukan apakah
setiap hasil ujian adalah sebuah keberhasilan atau sebuah kegagalan, dan
struktur tersebut menginkremen kounter terkait. Penspesifikasi atas pseudocode tersebut adalah
Ketika kounter mahasiswa kurang dari atau sama dengan sepuluh
Membaca hasil ujian berikutnya
If mahasiswa lulus ujian
Menambahkan satu pada
keberhasilan
Else
Menambahkan satu pada kegagalan
Menambahkan satu pada kounter mahasiswa
Statemen pseudocode
Menampilkan kesimpulan hasil ujian dan menentukan jika biaya pelatihan
perlu dinaikkan atau tidak
dapat dispesifikasi sebagai berikut:
Menampilkan banyaknya keberhasilan
Menampilkan banyaknya kegagalan
If lebih dari delapan mahasiswa lulus ujian
Tampilkan “Naikkan biaya
pelatihan”
Statemen pseudocode utuh ditunjukkan pada Gambar 3.10.
Menginisialisasi keberhasilan dengan nol
Menginisialisasi kegagalan dengan nol
Menginisialisasi kounter mahasiswa dengan satu
Ketika kounter mahasiswa kurang dari atau sama dengan sepuluh
Membaca hasil ujian berikutnya
If mahasiswa lulus ujian
Menambahkan satu pada
keberhasilan
Else
Menambahkan satu pada kegagalan
Menambahkan satu pada kounter mahasiswa
Menampilkan banyaknya keberhasilan
Menampilkan banyaknya kegagalan
If lebih dari delapan mahasiswa lulus ujian
Tampilkan “Naikkan biaya pelatihan”
Gambar 3.10 Pseudocode utuh
untuk permasalahan pengujian hasil ujian
Program Visual Basic atas pseudocode pada Gambar 3.10 ditampilkan
pada kode 3.7. Loop While (baris
13-25) membaca dan memproses 10 hasil ujian. Struktur If/Then/Else pada baris 18-22 merupakan sebuah struktur kendali
bersarang karena ia diapit di dalam While.
Kondisi pada baris 18 menguji apakah variabel String, hasil, sama
dengan “P” atau tidak. Jika ya, keberhasilan
diinkremen sebesar 1. Sebaliknya, kegagalan
diinkremen sebesar 1.
Perhatikan bahwa baris 29 memuat sebuah
pengenal, vbCrLf, yang tidak dideklarasikan
secara eksplisit dalam kode program. Pengenal vbCrLf adalah satu dari beberapa konstanta yang disediakan Visual
Basic. Tiap konstanta itu memuat nilai yang tidak bisa dimodifikasi oleh
programer. Pada kasus vbCrLf, nilai
yang direpresentasikan adalah kombinasi dari karakter carriage return dan karakter linefeed.
Ketika ditampilkan, efek pada konstanta ini sama dengan pemanggilan Console.WriteLine().
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
' Kode 3.7: Analisis.vb
' Menggunakan repetisi terkendali kounter untuk menampilkan hasil ujian.
Module modAnalisis
Sub Main()
Dim keberhasilan As
Integer = 0 ' banyak keberhasilan
Dim kegagalan As Integer
= 0 ' banyak kegagalan
Dim mahasiswa As Integer
= 1 ' kounter mahasiswa
Dim hasil As String '
satu hasil ujian
' memproses 10 hasil
ujian; menggunakan loop terkendali kounter
While mahasiswa <= 10
Console.Write("Masukkan hasil (P = lulus, F = gagal):
")
hasil =
Console.ReadLine()
' struktur kendali
bersarang
If hasil = "P" Then
keberhasilan += 1
' menginkremen banyak keberhasilan
Else
kegagalan += 1 '
menginkremen banyak kegagalan
End If
mahasiswa += 1 '
menginkremen kounter mahasiswa
End While
' menampilkan hasil ujian
Console.WriteLine("Lulus: {0}{1}Gagal: {2}",
keberhasilan, _
vbCrLf, kegagalan)
' menaikkan biaya
pelatihan jika lebih dari 8 mahasiswa lulus
If keberhasilan > 8 Then
Console.WriteLine("Naikkan
biaya pelatihan")
End If
End Sub ' Main
End Module ' modAnalisis
|
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): F
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Lulus: 9
Gagal: 1
Naikkan biaya pelatihan
|
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): F
Masukkan hasil (P = lulus, F = gagal): F
Masukkan hasil (P = lulus, F = gagal): F
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): P
Masukkan hasil (P = lulus, F = gagal): F
Lulus: 6
Gagal: 4
|
Memformulasikan
Algoritma: Studi Kasus 4 (Struktur Repetisi Bersarang)
Sekarang akan disajikan contoh lain.
Sekali lagi, akan diformulasikan algoritma menggunakan pseudocode dan penspesifikasian bertingkat, sebelum penulisan
program Visual Basic dilakukan. Perhatikan statemen permasalahan berikut:
Menulis sebuah program untuk menggambar sebuah persegi yang memuat karakter-karakter
* pada command window. Sisi persegi (jumlah karakter * yang akan ditampilkan)
harus dimasukkan oleh pengguna dan tidak melebihi 20 karakter *.
Program Anda harus menggambarkan
persegi sebagai berikut:
1.
Membaca sisi persegi dari pengguna.
2.
Memvalidasi bahwa sisi kurang dari atau sama
dengan 20. (Perhatikan bahwa memungkinkan bagi pengguna untuk memasukkan nilai
kurang dari 1. Lakukan apa yang diperlukan untuk mencegah hal ini).
3. Menggunakan
repetisi untuk menggambarkan persegi yang memuat karakter-karakter *.
Setelah membaca statemen permasalahan,
Anda melakukan beberapa observasi berikut:
1.
Program harus menggambarkan n baris, masing-masing
baris memuat n buah karakter *.
2.
Pengujian harus dilakukan untuk memastikan bahwa
nilai n kurang dari atau sama dengan 20.
3. Tiga variabel
harus digunakan, satu yang merepresentasikan panjang sisi persegi, satu yang
merepresentasikan baris persegi, dan satu lagi yang merepresentasikan kolom
persegi.
Akan dimulai tahap penspesifikasian.
Dimulai dari representasi pseudocode
atas tujuan umum program:
Menggambar sebuah persegi yang memuat karakter-karakter *
Sekali lagi, sangat penting untuk
menekankan bahwa statemen di atas adalah representasi atas tujuan umum program
yang perlu dispesifikasi. Penspesifikasian pertamanya adalah
Menginisialisasi variabel-variabel
Membaca sisi persegi dan memastikan bahwa ia kurang dari atau sama dengan
20
Menggambar persegi
Penspesifikasian tahap kedua atas pseudocode berikut
Menginisialisasi variabel-variabel
adalah
Menginisialisasi baris dengan satu
Menginisialisasi sisi dengan masukan dari pengguna
Statemen pseudocode
Membaca sisi persegi dan memastikan bahwa ia kurang dari atau sama dengan
20
dapat dispesifikasi tahap kedua menjadi
If sisi kurang dari atau sama dengan 20
Statemen pseudocode
Menggambar persegi
dapat dispesifikasi tahap kedua menjadi
Ketika baris kurang dari atau sama dengan sisi
Menetapkan kolom menjadi satu
Ketika kolom kurang dari atau
sama dengan sisi
Menampilkan *
Menginkremen kolom sebesar satu
Menampilkan sebuah line feed
atau carriage return
Menginkremen baris sebesar satu
Pseudocode sekarang sudah
cukup terspesifikasi untuk dikonversi menjadi program Visual Basic. Program
Visual Basic ditampilkan pada kode 3.8.
Menginisialisasi baris dengan satu
Menginisialisasi sisi dengan masukan dari pengguna
If sisi kurang dari atau sama dengan 20
Ketika baris kurang dari atau
sama dengan sisi
Menetapkan kolom menjadi
satu
Ketika kolom kurang dari
atau sama dengan sisi
Menampilkan *
Menginkremen kolom sebesar satu
Menampilkan sebuah line feed
atau carriage return
Menginkremen baris sebesar
satu
Else
Menampilkan “Sisi terlalu besar”
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
|
' Kode 3.8: TampilPersegi.vb
' Program menggambar persegi dari *.
Module modTampilPersegi
Sub Main()
Dim sisi As Integer '
sisi persegi
Dim baris As Integer =
1 ' baris sekarang
Dim kolom As Integer '
kolom sekarang
' mendapatkan sisi dari
pengguna
Console.Write("Masukkan panjang sisi (harus 20 atau kurang): ")
sisi = Console.ReadLine()
If sisi <= 20 Then
' jika true, while akan diuji
' While ini bersarang
di dalam If
While baris <= sisi ' mengendalikan baris
kolom = 1
' loop ini
menampilkan satu baris karakter *
' dan bersarang di
dalam While pada baris 18
While kolom <= sisi
Console.Write("* ") ' menampilkan karakter *
kolom += 1 ' menginkremen
kolom
End While
Console.WriteLine() ' memposisikan kursor pada baris berikutnya
baris += 1 '
menginkremen baris
End While
Else ' kondisi (sisi <= 20) bernilai false
Console.WriteLine("Sisi
terlalu besar")
End If
End Sub ' Main
End Module ' modTampilPersegi
|
Masukkan panjang sisi (harus 20 atau kurang): 8
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
* * * * * * * *
|
Latihan
1.
Tulislah statemen Visual Basic untuk melakukan
beberapa tugas berikut:
a) Mendeklarasikan
variabel jum dan angka agar bertipe Integer.
b) Menugaskan 1
kepada variabel angka.
c) Menugaskan 0
kepada variabel jum.
d) Menjumlahkan jum dan angka, dan menugaskan hasilnya pada variabel jum.
e) Menampilkan “Penjumlahannya adalah: “ diikuti dengan
nilai variabel jum.
2.
Identifikasi dan koreksilah error pada tiap kasus
berikut:
a) Asumsikan bahwa
nilai telah diinisialisasi dengan
50. Nilai-nilai dari 0 sampai 50 harus dijumlahkan
While nilai >= 0
jum += nilai
End While
b) Segmen kode ini
harus membaca sembarang banyak angka dari pengguna dan menjumlahkannya.
Asumsikan bahwa angka dan total dideklarasikan Integer.
total = 0
Do Until angka = -1
Console.Write("Masukkan
sebuah nilai ")
angka = Console.ReadLine()
total += angka
Loop
Console.WriteLine(total)
c) Kode berikut
harus menampilkan kuadrat atas 1 sampai 10 pada sebuah MessageBox:
Dim angka As Integer = 1
Do While angka < 10
MessageBox.Show(angka ^ 2)
While End
d) Segemen kode
ini harus menampilkan nilai-nilai dari 888 sampai 1000. Asumsikan bahwa nilai telah didekarasikan sebagai Integer.
nilai = 888
While nilai <= 1000
nilai -= 1
End While
3. Tulislah sebuah
program yang menggunakan loop untuk menampilkan tabel nilai berikut:
N 10*N 100*N 1000*N
1 10 100 1000
2 20 200 2000
3 30 300 3000
4 40 400 4000
5 50 500
5000
4. Tulislah sebuah
aplikasi yang menaksi nilai dari konstanta matematik
menggunakan formula:
5. Tulislah sebuah
aplikasi yang menaksi nilai dari
menggunakan formula:
No comments:
Post a Comment