Berikut ini adalah pertanyaan dari sallomiant pada mata pelajaran TI untuk jenjang Sekolah Menengah Atas
Dollar = 8250
Yen = Rupiah 4000
Peso = Rupiah 2500
Soal 2
Studi Kasus Buatlah Algoritma bahasa manusia, Flochart & Pseudocode Untuk Menentukan Apakah suatu bilangan merupakan bilangan Prima atau bukan!
Jawaban dan Penjelasan
Berikut ini adalah pilihan jawaban terbaik dari pertanyaan diatas.
SOAL 1
Untuk persoalan ini, kita punya tiga alternatif dalam penentuan nilai ekuivalensi mata uang, yaitu:
- sebagai konstanta,
- sebagai masukan dari user,
- sebagai data yang diambil dari sumber data di luar program.
Kita gunakan versi yang paling dasar, yaitu menetapkan ekuivalensi mata uang sebagai konstanta.
Algoritma Bahasa Manusia (Bahasa Alami/Natural)
- Tetapkan konstanta:
◇
◇
◇ - Baca masukan , yaitu nilai uang (dalam rupiah).
- Kalkulasi:
◇
◇
◇ - Tampilkan , , .
Algoritma dalam bentuk Pseudocode
Algoritma Menghitung Nilai Uang
{ Menerima input/masukan berupa nilai uang dalam rupiah,
melakukan konversi menjadi dollar, yen, dan peso, serta
menampilkan hasil konversi pada perangkat output. }
Kamus
const DOLLAR: real = 8250
const YEN: real = 4000
const PESO: real = 2500
rupiah: real
dollar: real
yen: real
peso: real
Algoritma
read rupiah
dollar ← rupiah * DOLLAR
yen ← rupiah * YEN
peso ← rupiah * PESO
print dollar, yen, peso
Algoritma dalam bentuk Flowchart
(terdapat pada gambar)
______________
SOAL 2
Untuk menentukan suatu bilangan merupakan bilangan prima atau bukan, sepengetahuan saya, terdapat dua metode. Saya namakan kedua metode ini: metode biasa (naif)danmetode teroptimasi.
1. METODE BIASA (NAIF)
Misalkan bilangan yang diperiksa adalah n. Pada metode ini, kita periksa apakah n habis dibagi oleh 2, 3, 4, dst. hingga n–1. Salah satu saja habis membagi n, maka bilangan n bukan prima.
Kita gunakan variabel bantuan bertipe boolean (true atau false), yaitu . Kita juga akan menggunakan variabel untuk looping/iterasi.
Untuk menentukan keterbagian bilangan, kita gunakan operator “mod“. Jika a mod b = 0, maka a habis dibagi b. Pada pseudocode, operator ”mod“ dilambangkan dengan ”%“, seperti pada implementasi bahasa pemrograman pada umumnya.
Algoritma Bahasa Manusia (Bahasa Alami/Natural)
- Baca masukan bilangan bulat positif \tt n.
- Jika , maka tampilkan “Bukan prima”, dan proses selesai.
- Asumsikan n prima dengan inisialisasi .
- Dari hingga, lakukan iterasi:
◇ Jika ,
maka , dan hentikan iterasi.
◇ Jika tidak, lanjutkan iterasi. - Jika , maka tampilkan “Prima”.
Jika tidak (), maka tampilkan “Bukan prima”.
Algoritma dalam bentuk Pseudocode
Algoritma Menentukan Prima atau Bukan Prima
{ Menerima masukan bilangan bulat positif,
menentukan apakah bilangan tersebut prima,
dan menampilkan hasilnya. }
Kamus
n: integer ≥ 0 {unsigned integer}
i: integer
apakahPrima: boolean
Algoritma
read n
if n = 1 then
print “Bukan prima”
exit {proses selesai, keluar dari program}
end if
apakahPrima ← true
for i ← 2 to n–1 do
if (n % i = 0) then
apakahPrima ← false
break {hentikan iterasi}
end if
end for
ifapakahPrimathen
print “Prima”
else
print “Bukan prima”
end if
Algoritma dalam bentuk Flowchart
(terdapat pada gambar)
2. METODE TEROPTIMASI
Optimasi algoritma penentuan sebuah bilangan prima atau bukan, dapat dilakukan dengan sebuah metode yang dapat disebut sebagai “optimasi 6k+1”.
Kita langsung jabarkan prosesnya dalam bentuk algoritma bahasa manusia.
Asumsi: Terdefinisi fungsi , yang menghasilkan bagian bilangan bulat dari sebuah bilangan pecahan (pecahan desimal atau pecahan campuran). Misalnya: menghasilkan 2.
Algoritma Bahasa Manusia (Bahasa Alami/Natural)
1. Baca masukan bilangan bulat positif .
2. Asumsikan n prima dengan inisialisasi .
3.1. Jika , maka jika.
3.2. Selain itu (untuk n > 3):
3.2.1. Jika n mod 2 = 0 atau n mod 3 = 0,
maka .
3.2.2. Jika tidak:
3.2.2.1. Inisialisasi .
3.2.2.2. Selama :
3.2.2.2.1. Jika n mod i = 0, atau n mod (i+2) = 0,
maka , dan hentikan iterasi.
3.2.2.2.2. Inkrementasi dengan 6: .
4.1. Jika , maka tampilkan “Prima”.
4.2. Jika tidak (), maka tampilkan “Bukan prima”.
Algoritma dalam bentuk Pseudocode
(terdapat pada gambar, karena konten jawaban tidak mencukupi)
Algoritma dalam bentuk Flowchart
(terdapat pada gambar)
______________
Detail Jawaban
Mata Pelajaran: Informatika
Materi: Algoritma dan Pemrograman
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: Thu, 29 Dec 22