Soal 2: JumlahMahasiswaLulus
Flowchart
Pseudocode
# PROGRAM: JumlahMahasiswaLulus
# Spesifikasi: MEnghitung jumlah mahasiswa lulus berdasarkan input nilai
# Asumsi: Jml Mahasiswa > 0 dan Input selalu benar
# KAMUS
jml_lulus = 0 # int
jml_galulus = 0 # int
# ALGORITMA
INPUT N
FOR i in range(N) THEN
INPUT nilai
IF nilai == 'A' or nilai == 'B' or nilai == 'C' or nilai == 'D' THEN
jml_lulus += 1
ELSEIF nilai == 'E' or nilai == 'F' THEN
jml_galulus += 1
ELSE
OUTPUT 'Input Nilai Salah'
OUTPUT jml_lulus
OUTPUT jml_galulus
Script Code
# PROGRAM: JumlahMahasiswaLulus
# Spesifikasi: MEnghitung jumlah mahasiswa lulus berdasarkan input nilai
# Asumsi: Jml Mahasiswa > 0 dan Input selalu benar
# KAMUS
jml_lulus = 0 # int
jml_galulus = 0 # int
# ALGORITMA
N = int(input('Masukkan Jumlah Mahasiswa: '))
for i in range(N):
nilai = input('Masukkan Nilai Mahasiswa ke-{}: '.format(i+1))
if nilai == 'A' or nilai == 'B' or nilai == 'C' or nilai == 'D':
jml_lulus += 1
elif nilai == 'E' or nilai == 'F':
jml_galulus += 1
else:
print('Input Nilai Salah')
print('\nJumlah Mahasiswa Lulus Ialah {} orang'.format(int(jml_lulus)))
print('Jumlah Mahasiswa Tidak Lulus Ialah {} orang'.format(int(jml_galulus
)))
Soal 3: JumlahGanjilGenap
Flowchart
Pseudocode
# PROGRAM: JumlahGanjilGenap
# Spesifikasi: MEnghitung jumlah bliangan ganjil/genap berdasarkan input n
ilai
# Asumsi: Input bilangan berupa integer positif dan berakhir saat input ne
gatif
# KAMUS
jml_ganjil = 0 # int
jml_genap = 0 # int
angka = 0 # int
# ALGORITMA
WHILE angka >= 0 THEN
INPUT angka
IF angka >= 0 THEN
IF angka % 2 == 0 THEN
jml_genap += 1
ELSE
jml_ganjil += 1
OUTPUT jml_genap, jml_ganjil
Script Code
# PROGRAM: JumlahGanjilGenap
# Spesifikasi: MEnghitung jumlah bliangan ganjil/genap berdasarkan input n
ilai
# Asumsi: Input bilangan berupa integer positif dan berakhir saat input ne
gatif
# KAMUS
jml_ganjil = 0 # int
jml_genap = 0 # int
angka = 0 # int
# ALGORITMA
while angka >= 0:
angka = int(input('Masukkan Angka '))
if angka >= 0:
if angka % 2 == 0:
jml_genap += 1
else:
jml_ganjil += 1
print('\nJumlah Angka Genap adalah',int(jml_genap))
print('Jumlah Angka Ganjil adalah',int(jml_ganjil))
Soal 4: LaguAnakAyam
Flowchart
Pseudocode
# PROGRAM: LaguAnakAyam
# Spesifikasi: Menuliskan lirik lagu anak ayam sebanyak input menggunakan
FOR/WHILE
# Asumsi: Input selalu lebih dari 0
# KAMUS
# anak_ayam : int
# ALGORITMA
INPUT anak_ayam
OUTPUT 'Anak ayam turunlah ', anak_ayam
# Menggunakan For
FORi in range(1,anak_ayam) THEN
OUTPUT 'Mati satu tinggallah', (anak_ayam – i)
OUTPUT 'Mati satu tinggal induknya'
# Menggunakan While
WHILE anak_ayam > 0:
anak_ayam -= 1
OUTPUT 'Mati satu tinggallah', anak_ayam
OUTPUT 'Mati satu tinggal induknya'
Script Code
# PROGRAM: LaguAnakAyam
# Spesifikasi: Menuliskan lirik lagu anak ayam sebanyak input menggunakan
FOR
# Asumsi: Input selalu lebih dari 0
# KAMUS
# anak_ayam : int
# ALGORITMA
anak_ayam = int(input('Masukkan Jumlah Anak Ayam: '))
print('\nAnak ayam turunlah ', anak_ayam)
for i in range(1,anak_ayam):
print('Mati satu tinggallah', anak_ayam - i)
print('Mati satu tinggal induknya')
# PROGRAM: LaguAnakAyam
# Spesifikasi: Menuliskan lirik lagu anak ayam sebanyak input menggunakan
WHILE
# Asumsi: Input selalu lebih dari 0
# KAMUS
# anak_ayam : int
# ALGORITMA
anak_ayam = int(input('Masukkan Jumlah Anak Ayam: '))
print('\nAnak ayam turunlah ', anak_ayam)
while anak_ayam > 0:
anak_ayam -= 1
print('Mati satu tinggallah', anak_ayam)
print('Mati satu tinggal induknya')
Komentar
Kedua metode (for atau while) dapat digunakan. Metode for bisa digunakan karena
batasan jumlah iterasi dapat dihitung sejak awal sedangkan metode while juga bisa
digunakan karena kondisi yang hendak dipenuhi dapat diparameterisasi (anak ayam
lebh dari 0). Keduanya tepat digunakan tapi hanya terbatas pada kasus latihan saja.
Bila batasan jumlah iterasi tidak dapat ditentukan sejak awal, maka lebih baik
menggunakan while, begitu juga sebaliknya.
Soal 5: HitungIntegral
Flowchart
Pseudocode
# PROGRAM: HitungIntegral
# Spesifikasi: Menghitung integral scr numerik menggunakan metode trapezod
ial
# Fungsi: x^3 + x + 1
# Asumsi: a < b; a>= 0, b > 0, delta > 0
# KAMUS
# a,b,delta : float
integral = 0 #float
# ALGORITMA
INPUT a, b, delta
IF a >= 0 and b > 0 and a < b and delta > 0 THEN
FOR i in range(1,int(((b - a) / delta) + 1)) THEN
c1 = a + delta * (i - 1)
c2 = a + delta * i
f1 = c1**3 + c1 + 1
f2 = c2**3 + c2 + 1
integral += (c2 - c1) * (f1 + f2) * 0.5
OUTPUT integral
ELSE
OUTPUT 'Input Tidak Sesuai Asumsi'
Script Code
# PROGRAM: HitungIntegral
# Spesifikasi: Menghitung integral scr numerik menggunakan metode trapezod
ial
# Fungsi: x^3 + x + 1
# Asumsi: a < b; a>= 0, b > 0, delta > 0
# KAMUS
# a,b,delta : float
integral = 0 #float
# ALGORITMA
a = float(input('Masukkan Batas Bawah: ')) #float
b = float(input('Masukkan Batas Atas: ')) #float
delta = float(input('Masukkan Interval: ')) #float
if a >= 0 and b > 0 and a < b and delta > 0:
for i in range(1,int(((b - a) / delta) + 1)):
c1 = a + delta * (i - 1)
c2 = a + delta * i
f1 = c1**3 + c1 + 1
f2 = c2**3 + c2 + 1
integral += (c2 - c1) * (f1 + f2) * 0.5
print('Hasil integrasi:', integral)
else:
print('Input Tidak Sesuai Asumsi')
Soal 6: StatistikaDasar
Flowchart
Pseudocode
# PROGRAM: StatistikDasar
# Spesifikasi: Menghitung statistik dasar (mean,max,min) dari input data o
leh user
# KAMUS
jml_data = 0.0 # float
suhu_min = 0.0 # float
suhu_max = 0.0 # float
# ALGORITMA
INPUT N
FOR i in range(N) THEN
INPUT data
jml_data += data
IF i == 0 THEN
suhu_max = data
ELSE:
IF data > suhu_max THEN
suhu_max = data
IF i == 0 THEN
suhu_min = data
ELSE
IF data < suhu_min THEN
suhu_min = data
OUTPUT jml_data/N, suhu_max, suhu_min
Script Code
# PROGRAM: StatistikDasar
# Spesifikasi: Menghitung statistik dasar (mean,max,min) dari input data o
leh user
# KAMUS
jml_data = 0.0 # float
suhu_min = 0.0 # float
suhu_max = 0.0 # float
# ALGORITMA
N = int(input('Masukkan Jumlah Hari: '))
for i in range(N):
data = float(input('Masukkan data hari ke-{}: '.format(i+1)))
jml_data += data
if i == 0:
suhu_max = data
else:
if data > suhu_max:
suhu_max = data
if i == 0:
suhu_min = data
else:
if data < suhu_min:
suhu_min = data
print('Suhu udara rata-rata: {} derajat'.format(jml_data/N))
print('Suhu udara tertinggi: {} derajat'.format(suhu_max))
print('Suhu udara terendah: {} derajat'.format(suhu_min))