Berikut ini adalah pertanyaan dari pratiwifebriani502 pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
Algoritma (dalam pseudocode atau notasi algoritmik)
procedure Min_Maks_KurangDari80(data: array[1..15] of integer)
{****
Diberikan data dalam bentuk array 1 dimensi dari elemen bertipe integer.
Mencari nilai minimum dan maksimum dari 15 buah nilai dalam array data, hanya pada elemen yang bernilai kurang dari 80.
Mencetak nilai minimum dan maksimum yang ditemukan, atau informasi bahwa tidak ada elemen data yang memenuhi syarat (bernilai kurang dari 80).
Konstanta terdefinisi:
◇ MAX_INT adalah konstanta nilai integer maksimum.
◇ MIN_INT adalah konstanta nilai integer minimum.
****}
Deklarasi
min, max, i: integer
min_max_ada boolean
Algoritma
{ Inisialisasi }
min ← MAX_INT
max ← MIN_INT
min_max_ada ← false
{ Pencarian nilai min dan max }
for i ← 1 to 15 do
if data[i] < 80 then
min_max_ada ← true
if data[i] < min then
min ← data[i]
end if
if data[i] > max then
max ← data[i]
end if
end if
end for
{ Output }
if min_max_ada then
print “Nilai minimum = ”, min
print “Nilai maksimum = ”, max
else
print “Tidak ada elemen data yang bernilai kurang dari 80.”
end if
{--- akhir algoritma ---}
________________
Pembahasan
Untuk menjawab pertanyaan ini, ditetapkan asumsi-asumsi berikut ini.
- Diberikan array 1 dimensi berukuran 15 elemen, dengan elemen bertipe data numerik. Dalam hal ini, dipilih tipe data integer.
- Elemen array dapat bernilai sembarang, tidak harus kurang dari 80.
- Algoritma yang dirancang “bertugas“ mencari nilai minimum dan maksimum dari beberapa atau semua elemen array, terbatas pada elemen yang bernilai kurang dari 80. Sehingga, analisis kasus penentuan nilai minimum dan maksimum hanya dilakukan untuk elemen data yang bernilai kurang dari 80.
Algoritma di atas berbentuk procedure, atau function yang tidak mengembalikan nilai apapun, yang merupakan bagian dari sebuah program utama. Dalam program utama, dilakukan pembacaan elemen array dan pemanggilan procedure Min_Maks_KurangDari80.
Contoh algoritma program utama untuk persoalan ini adalah sebagai berikut.
program Mencari_Minimum_Maksimum
Deklarasi
data: array[1..15] of integer
i: integer
Algoritma
{ Input elemen array }
for i ← 1 to 15 do
read data[i]
end for
Min_Maks_KurangDari80(data)
{--- akhir algoritma ---}
Pada algoritma procedure Min_Maks_KurangDari80, digunakan dua buah konstanta terdefinisi, yaitu MIN_INT dan MAX_INT. Besaran nilainya tergantung dari implementasi tipe data integer pada bahasa pemrograman yang digunakan.
Contoh Kasus dan Penelusuran
Input:
- data = [12, 15, 1, 30, 70, 80, 79, 55, 120, 100, 78, 45, 130, 17, 31]
Pemanggilan procedure Min_Maks_KurangDari80(data)
Tahap Inisialisasi
- min = MAX_INT
- max = MIN_INT
- min_max_ada = false
Tahap Iterasi Pencarian Nilai Minimum dan Maksimum
- (i = 1) Evaluasi data[1] = 12
12 < 80 bernilai true
⇒ min_max_ada = true
12 < min bernilai true
⇒ min = 12
12 > max bernilai true
⇒ max = 12
- (i = 2) Evaluasi data[2] = 15
(min = 12, max = 12, min_max_ada = true)
15 < 80 bernilai true
⇒ min_max_ada = true
15 < min bernilai false
15 > max bernilai true
⇒ max = 15
- (i = 3) Evaluasi data[3] = 1
(min = 12, max = 15, min_max_ada = true)
1 < 80 bernilai true
⇒ min_max_ada = true
1 < min bernilai true
⇒ min = 1
1 > max bernilai false
- (i = 4) Evaluasi data[4] = 30
(min = 1, max = 15, min_max_ada = true)
30 < 80 bernilai true
⇒ min_max_ada = true
30 < min bernilai false
30 > max bernilai true
⇒ max = 30
- (i = 5) Evaluasi data[5] = 70
(min = 1, max = 30, min_max_ada = true)
70 < 80 bernilai true
⇒ min_max_ada = true
70 < min bernilai false
70 > max bernilai true
⇒ max = 70
- (i = 6) Evaluasi data[6] = 80
(min = 1, max = 70, min_max_ada = true)
80 < 80 bernilai false
- (i = 7) Evaluasi data[7] = 79
(min = 1, max = 70, min_max_ada = true)
79 < 80 bernilai true
⇒ min_max_ada = true
79 < min bernilai false
79 > max bernilai true
⇒ max = 79
- (i = 8) Evaluasi data[8] = 55
(min = 1, max = 79, min_max_ada = true)
55 < 80 bernilai true
⇒ min_max_ada = true
55 < min bernilai false
55 > max bernilai false
- (i = 9) Evaluasi data[9] = 120
(min = 1, max = 79, min_max_ada = true)
120 < 80 bernilai false
- (i = 10) Evaluasi data[10] = 100
(min = 1, max = 79, min_max_ada = true)
100 < 80 bernilai false
Dan seterusnya...
- (i = 15) Evaluasi data[15] = 31
(min = 1, max = 79, min_max_ada = true)
31 < 80 bernilai true
⇒ min_max_ada = true
31 < min bernilai false
31 > max bernilai false
Pada akhir iterasi, diperoleh:
min = 1, max = 79, min_max_ada = true
Tahap Output
Mencetak:
- “Nilai minimum = 1”
- “Nilai maksimum = 79”
________________
Detail Jawaban
Mata Pelajaran: Informatika
Kelas: 10 (X)
Materi: Algoritma dan Pemrograman
Kode Kategorisasi: 10.11.7
Semoga dengan pertanyaan yang sudah terjawab oleh henriyulianto dapat membantu memudahkan mengerjakan soal, tugas dan PR sekolah kalian.
Apabila terdapat kesalahan dalam mengerjakan soal, silahkan koreksi jawaban dengan mengirimkan email ke yomemimo.com melalui halaman Contact
Last Update: Mon, 26 Dec 22