Anda di halaman 1dari 23

PROJECT AKHIR

PRAKTIKUM
ALGORITMA
DAN
PEMROGRAMAN
oleh Kelompok 7
The Crew
Kelompok 7 Kelas A
S1-IF / FIK’20 UPNVJ

Marshela Alya Fadia Alissafitri


Kusuma Wardani
Jihan Kamilah 2010511046
2010511006
2010511013
Table of Contents
Deskripsi Masalah 1 Algoritma 1

01 Topik: Pencarian dan


Pengurutan 02 Penyelesaian masalah dan
implementasi ke dalam kode
program

Deskripsi Masalah 2 Algoritma 2


03 Topik: Dynamic Programming
04 Penyelesaian masalah dan
implementasi ke dalam kode
program
01
DESKRIPSI
MASALAH
1
Topik: Pencarian dan Pengurutan
MASALAH 1 : KUALITAS BAJU
Pak Dengklek memiliki sebuah perusahaan baju. Terdapat N buah baju yang telah Pak Dengklek produksi pada tahun
sebelumnya. Setiap baju memiliki nilai kualitasnya masing-masing.

Pak Dengklek ingin menggunakan nilai median dari nilai-nilai kualitas produksi tahun sebelumnya sebagai indikator
keberhasilan pada tahun ini. Nilai median adalah nilai yang berada tepat di tengah data setelah data diurutkan. Jika
banyaknya data adalah genap, maka nilai median dari data tersebut adalah rata-rata kedua bilangan yang ada di tengah.

Bantulah Pak Dengklek untuk membuat program yang dapat menentukan nilai median dari data produksi tahun
sebelumnya, sehingga dapat langsung digunakan untuk indikator keberhasilan produksi tahun ini.
MASALAH 1 : KUALITAS BAJU
FORMAT MASUKAN FORMAT KELUARAN
Baris pertama berisi sebuah bilangan bulat N. N Sebuah baris berisi nilai median, dalam ketelitian tepat satu
baris berikutnya masing-masing berisi sebuah nilai angka di belakang koma.
kualitas baju.
CONTOH MASUKAN Contoh keluaran
5
1
1
3.0
3
4
6
02
ALGORI
TMA 1
Langkah-langkah Penyelesaian Masalah
“Kualitas Baju”
LANGKAH-LANGKAH

Step 1 Step 2 Step 3 Step 4


Input N (banyaknya Input nilai sebanyak N Melakukan pengurutan Pemanggilan fungsi
nilai) dan deklarasi list kali untuk dimasukkan ke data pada nKualitas median dengan
nKualitas (untuk dalam list nKualitas secara ascending parameter N dan
menampung nilai-nilai menggunakan looping menggunakan fungsi nKualitas (dilakukan
kualitas baju) sort() melalui perintah print
yang disertai type
casting float untuk
mencetak hasil)
LANGKAH-LANGKAH

Step 5 Step 6
Dalam fungsi median: Jika N = ganjil, maka pencarian nilai tengan
Jika N = genap, cari nilai tengah pada list dilakukan dengan cara
nKualitas dengan cara pembagian floor division →
untuk mengetahui data pada index berapa yang nKualitas[(N-1)//2]
merupakan 2 nilai tengah
→ Hasil yang didapatkan merupakan nilai median
(nKualitas[N//2] + nKualitas[N//2-1])/2 dan dimasukkan ke variabel result, lalu
dikembalikan ke fungsi utama untuk dicetak
IMPLE
MENTA
SI KE
dalam
KODE
PROGR
KODE PROGRAM (PYTHON 3)
OUTPUT
03
DESKRIPSI
MASALAH 2
Topik: Dynamic Programming
MASALAH 2 : KNAPSACK
Anda memasuki gua yang mengandung K batu mulia. Batu-batu dinomori dari 1 sampai dengan K. Batu ke­-i
memiliki berat Wi kg dan harga jual Hi rupiah.

Anda membawa sebuah tas dengan kapasitas N kg. Batu-batu harus dimasukkan ke tas ini untuk dibawa keluar,
dan tentu saja tas ini tidak bisa muat batu-batu dengan total berat lebih dari N kg. Sebuah batu juga tidak boleh
dipecah dan diambil sebagian saja.

Tentukan batu mana saja yang perlu dibawa, supaya total harga jual dari batu-batu yang dibawa dengan tas
semaksimal mungkin. Anda boleh saja membawa sejumlah batu, sedemikian sehingga total beratnya masih
kurang dari N kg.
MASALAH 2 : KNAPSACK
FORMAT MASUKAN FORMAT KELUARAN
Baris pertama berisi dua buah bilangan bulat Cetak nomor batu-batu yang perlu dibawa supaya total harga jualnya maksimal dan total
dipisahkan spasi, yaitu N dan K. beratnya tidak lebih dari N, satu nomor pada satu baris. Cetak nomor-nomor ini terurut
dari kecil ke besar.
K baris berikutnya berisi dua bilangan, yang
menyatakan deskripsi dari suatu batu. Kedua bilangan Jika ada lebih dari satu cara pengambilan batu yang optimal, cetak cara pengambilan batu
pada baris ke­i ini adalah Wi dan Hi. yang meminimalkan beratnya.

Jika masih ada lebih dari satu cara, utamakan batu dengan nomor lebih kecil.

CONTOH MASUKAN Contoh keluaran


11 3
10 30 2
6 17 3
5 14
04
ALGORI
TMA 2
Langkah-langkah Penyelesaian Masalah
“Knapsack”
LANGKAH-LANGKAH

Step 1 Step 2 Step 3 Step 4


Inisialisasi variabel N Looping sebanyak range Membuat tabel berupa Set tabel agar seluruhnya
(kapasitas maksimum) K untuk menginput data array 2 dimensi,dengan terisi dengan 0. Untuk
dan K (jumlah batu). dari batu. Setiap inputan row sebanyak N+1 dan mengisi tabel, gunakan
Karena inputan berupa 2 berupa 2 nilai, nilai column sebanyak K+1. nested looping sebanyak
nilai yang dipisah oleh pertama dimasukkan ke Tabel akan menyimpan K*(N+1).
spasi, gunakan fungsi dalam list berat, nilai nilai maksimum setiap IF: Jika berat maksimum
map untuk memisahkan kedua ke dalam list harga kemungkinan batu yang (w) < berat[i], maka isi
kedua nilai bisa dibawa pada batas tabel[i+1][w] = tabel[i]
berat tertentu [w]
LANGKAH-LANGKAH

Step 5 Step 6 Step 7 Step 8


ELSE: Jika berat[i] <= w, Ketika looping berakhir, Untuk mendapatkan Selanjutnya, lakukan 2
ambil nilai terbesar antara kembalikan nilai row dan kali backward looping.
nomor batu yang
berat pada tabel[1][w] column terakhir sebagai Looping pertama
dimasukkan ke knapsack,
atau hasil penjumlahan jawabannya. Nilai dilakukan sebanyak N
buat list kosong bernama kali. Jika tabel[K][i] =
dari tabel[i][w - berat[i] + tersebut dimasukkan ke
harga[i] variabel bernama bantu batu guna menampung bantu, maka simpan nilai
yang akan menyimpan nomor batu yang akan pada variabel x.
nilai pada tabel[K][N], dibawa knapsack.
LANGKAH-LANGKAH

Step 9 Step 10
Backward looping kedua dilakukan sebanyak K Selanjutnya, gunakan fungsi sort untuk
kali, yakni untuk mendapatkan nilai i sebagai mengurutkan data secara ascending pada list
output nomor batu yang dimasukan ke batu yang telah diperoleh. Setelah list selesai
knapsack. Jika nilai pada tabel[i][x] != tabel[i- diurutkan, maka lakukan looping untuk
1][x], maka nilai i dimasukkan ke list batu. mencetak nomor batu. Hasil yang tercetak
Kemudian mengurangi nilai variabel x dengan adalah dari angka yang lebih kecil ke yang lebih
dengan berat[i - 1] yakni berat batu yang telah besar.
masuk ke knapsack.
IMPLE
MENTA
SI KE
dalam
KODE
PROGR
KODE PROGRAM (PYTHON 3)
OUTPUT
Thanks!

CREDITS: This presentation template was created by Slidesgo,


including icons by Flaticon, infographics & images by Freepik

Please keep this slide for attribution

Anda mungkin juga menyukai