Anda di halaman 1dari 5

TUGAS I Pengantar Rekayasa Desain

FMIPA Kelas 05
1. Petunjuk Pengerjaan Tugas
A) Tugas dikerjakan pada Google Colabs.
B) Buka google drive anda.
C) Buat Folder dengan format penamaan [NIM]-[Nama Lengkap] misalkan 18315031-Abdullah
Faqih Al Mubarok.
D) Buat file google colabs, dan buatlah source code pemecahan masalah disertai dengan deskripsi
singkat dari masing-masing bagian source code, tidak harus per line. Cukup mendeskripsikan
suatu blok fungsi. Dengan Format sebagai berikut:
(a) Pada bagian awal buat deskripsi dengan Format :
TUGAS XX PRD - Judul Tugas
Nama/NIM : [Nama]/[NIM]
Asisten : - Ahmad Habbie Thias (untuk absen genap)
- Abdullah Faqih Almubarok (untuk absen ganjil)
Tanggal Pengerjaan :
(b)Untuk satu nomor soal dikerjakan dalam satu blok source code, dengan format sebagai
berikut :

(c) Deskripsikan Permasalahan dengan Jelas dan Singkat


4. Simpan file pada nomor 4 dengan format penamaan [Asisten]-[Tugas01]-[NIM].ipynb
5. Dari Google Drive klik kanan Folder pada poin 3 lalu pilih share, ketik alamat email
prdfmipa05@gmail.com
6. Dilarang menyalin pekerjaan orang lain, pelanggaran ini akan dikenai sanksi nilai 0 pada nilai
tugas tersebut.
7. Level kesulitan merespresentasikan tingkat kesulitan, 1 untuk soal paling sulit dan 3 untuk
soal yang paling mudah.
2. Pertanyaan
A) Tuple bilangan dan kuadratnya (tingkat kesulitan : 1 | poin : 10)
Diberikan suatu masukan n-angka, buatlah sebuah program yang menghasilkan suatu kumpulan nilai
(i, i*i) dari 1 s.d. n. Program harus meminta nilai kepada user, asumsi input selalu lebih besar dari 0.
Format input adalah sebagai berikut.
---------------------------------------------------------------------------------------------------------------
input = Masukan nilai n : (jika user memasukkan bilangan 4)
output = {1:1, 2:4, 3:9, 4:16}
---------------------------------------------------------------------------------------------------------------
Catatan : format input dan output harus persis dengan contoh diatas.
B) Faktorial (tingkat kesulitan : 1 | poin : 10)
Buatlah suatu program yang dapat menghitung nilai faktorial dari sebuah angka masukan dari user
dengan format sebagai berikut.
---------------------------------------------------------------------------------------------------------------
Input = masukan dan keluaran program : (Jika Masukan nilai n : 0)
Output = Nilai faktorial dari n : 1
---------------------------------------------------------------------------------------------------------------
Input = masukan dan keluaran program : (Jika Masukan nilai n: 6)
Output = Nilai faktorial dari n : 720
---------------------------------------------------------------------------------------------------------------
C) Plat Ganjil Genap (tingkat kesulitan : 3 | poin : 30)
Pak Budi merupakan seorang polisi lalulintas yang bertugas untuk menjaga peraturan plat nomor
ganjil genap di jalanan. Peraturan tersebut membatasi kendaraan dengan membolehkan kendaraan
berplat yang sesuai dengan tanggal ganjil atau genap. Pada hari Pak Budi bertugas, ternyata hari
tersebut merupakan tanggal ganjil di bulan Oktober. Asumsikan bahwa seluruh plat nomor memiliki
format standar yakni :
XX YYYY ZZZ dimana angka berada pada bagian YYYY, dan XX dan ZZZ merupakan huruf.
Buatlah sebuah program untuk membantu Pak Budi menilai sebuah plat nomor pada hari tersebut
melanggar atau tidak! (Hint : gunakan split() dan isdigit() method pada API Python)
---------------------------------------------------------------------------------------------------------------
Input = Masukan plat nomor : (Jika input : D 1829 JA)
Output = Terimakasih telah mentaati peraturan :)
---------------------------------------------------------------------------------------------------------------
Input = Masukan plat nomor : (jika input : BE 5472 ADD)
Output = Anda melanggar lalulintas!

D) Print Bilangan (tingkat kesulitan : 2 | poin : 20)


Ibu Rini memberikan anda suatu bilangan bulat. Anda diharuskan membuat sebuah program
yang mencetak nilai 1 sampai dengan N dari bilangan yang diberikan Ibu Rini dengan
melompati bilangan berkelipatan 10 dan mencetak “ERROR” jika angka yang dicetak
merupakan kelipatan 3. Berikut masukan dan keluaran program.
---------------------------------------------------------------------------------------------------------------
Input = Masukan suatu bilangan bulat: (misal : 15)
Output = 1, 2, Error, 4, 5, Error, 7, 8, Error, 11, Error, 13, 14, Error
---------------------------------------------------------------------------------------------------------------
E) RGB to HSV (tingkat kesulitan : 3 | poin : 30)
RGB dan HSV merupakan contoh format model warna yang sering digunakan. RGB merupakan
model warna yang terdiri dari tiga parameter yakni red, green dan blue. Sedangkan HSV merupakan
sebuah model warna yang terdiri dari hue, saturation, dan value. Dalam computer vision, model HSV
merupakan model warna yang paling sering digunakan karena model tersebut merupakan model yang
terbaik merepresentasikan bagaimana mata manusia menginterpretasikan warna.

Warna dengan format HSV Warna dengan format RGB

RGB standar (8-bit) memiliki rentang nilai 0-255 untuk masing-masing R,G, dan B.
Sedangkan HSV memiliki nilai 0-360o untuk hue, dan 0-100% untuk saturation dan value.
Untuk mengkonversi HSV menjadi RGB, digunakan fungsi matematis sebagai berikut :
𝑅 ′ 𝐺 ′ 𝐵
𝑅′ = 𝐺 = 𝐵 =
255 255 255
Budi merupakan mahasiswa ITB yang sedang mengembangkan robot autonomous yang
mengejar bola berwarna oranye. Kamera yang digunakan menangkap gambar dalam format
RGB. Untuk itu, Budi perlu mengubah format RGB dari hasil kamera robotnya menjadi
format HSV agar hasil yang ia dapat lebih baik. Bantulah Budi untuk mengubah gambar dari
kameranya menjadi format HSV! Nyatakanlah HSV dalam (Ho, S%, V%) dan bulatkan nilai
HSV. Berikut masukan dan keluaran program.
---------------------------------------------------------------------------------------------------------------
INPUT :
Masukkan nilai R : (misalkan input : 192)
Masukkan nilai G : (misalkan input : 192)
Masukkan nilai B : (misalkan input : 192)

OUTPUT : Nilai konversi HSV : (0°, 0%, 75%)


---------------------------------------------------------------------------------------------------------------
INPUT :
Masukkan nilai R : (misalkan input : 128)
Masukkan nilai G : (misalkan input : 128)
Masukkan nilai B : (misalkan input : 0)

OUTPUT : Nilai konversi HSV : (60°, 100%, 50%)


---------------------------------------------------------------------------------------------------------------
Program yang dapat menanggulangi nilai input yang diluar range 0-255 akan
mendapatkan bonus 10 poin, jika input salah maka akan meminta nilai input sampai hasil
valid. Contoh :
---------------------------------------------------------------------------------------------------------------
INPUT :
Masukkan nilai R : [INPUT] (misalkan input : 270)

OUTPUT :
input salah, harus pada range 0-255
Masukkan nilai R : [INPUT] (misalkan input : -5)

OUTPUT :
input salah, harus pada range 0-255
Masukkan nilai R : [INPUT] (misalkan input : 20)
Masukkan nilai G : [INPUT] (misalkan input : 128)
Masukkan nilai B : [INPUT] (misalkan input : 0)

OUTPUT : Nilai konversi HSV : (60°, 100%, 50%)


---------------------------------------------------------------------------------------------------------------

Anda mungkin juga menyukai