Postingan

Penerapan Algoritma BFS dalam Kasus Knapsack (Pemilihan Barang ke Tas)

Gambar
  Narasi Cerita Bayangkan kamu hendak pergi berkemah dengan sebuah tas berkapasitas 10 kg . Kamu memiliki 5 barang dengan berat dan nilai yang berbeda: Barang 1: (6 kg, nilai 30) Barang 2: (3 kg, nilai 14) Barang 3: (4 kg, nilai 16) Barang 4: (2 kg, nilai 9) Barang 5: (5 kg, nilai 20) Tujuanmu adalah membawa barang-barang yang total nilainya paling besar, tanpa melebihi kapasitas tas (10 kg) . Masalah ini dapat diselesaikan dengan algoritma BFS (Breadth-First Search) . Ide utamanya adalah: Setiap node menyatakan kondisi (index barang, berat saat ini, nilai saat ini, daftar barang yang dipilih). Dari setiap node, ada dua kemungkinan : mengambil barang atau melewatkannya. BFS akan menelusuri semua kemungkinan kombinasi secara level demi level. Di akhir, kita pilih kombinasi dengan nilai terbesar . Kode Program : import java.util.*; class state {     int index;     int totalWeight;     int totalValue;     String chosen;   ...

Penerapan Algoritma DFS dalam Kasus Knapsack (Pemilihan Barang ke Tas)

Gambar
Kasus:  Suatu hari kamu ingin bepergian dengan tas berkapasitas 10 kg . Di rumah ada 5 barang dengan berat dan nilai berbeda: Barang 1: Berat 6 kg , Nilai 30 Barang 2: Berat 3 kg , Nilai 14 Barang 3: Berat 4 kg , Nilai 16 Barang 4: Berat 2 kg , Nilai 9 Barang 5: Berat 5 kg , Nilai 20 Karena kapasitas tas hanya 10 kg , kamu harus pintar memilih kombinasi barang agar total nilai maksimal tetapi tidak melebihi 10 kg . Untuk mencari solusinya, kita gunakan DFS (Depth-First Search) . DFS akan menelusuri semua kemungkinan kombinasi barang (ambil / tidak ambil), lalu memilih yang terbaik. Kode Program :  import java.util.HashMap; public class KnapsackDFSHashMap {     static int maxValue = 0;     static int bestWeight = 0;     static String bestChoice = "";     public static void main(String[] args) {         HashMap<Integer, int[]> items = new HashMap<>();         items.p...

Tugas 3 Algoritma – Kasus Knapsack dengan Algoritma Greedy

Gambar
  Cerita Kasus Bayangkan saya memiliki sebuah tas dengan kapasitas 10 kg . Ada 5 barang di depan saya, masing-masing dengan berat dan nilai yang berbeda. Saya ingin membawa barang dengan total nilai terbesar , tetapi beratnya tidak boleh lebih dari kapasitas tas . Data barang yang tersedia adalah: Barang 1: (6 kg, 30) Barang 2: (3 kg, 14) Barang 3: (4 kg, 16) Barang 4: (2 kg, 9) Barang 5: (5 kg, 20) Kode Program  import java.util.*; class Item {     int weight;     int value;     double ratio;     Item(int w, int v) {         weight = w;         value = v;         ratio = (double) v / w;     } } public class KnapsackGreedy {     public static void main(String[] args) {         int capacity = 10;         Item[] items = {             new Item(6, 30),      ...

TUGAS 2 INTERAKSI MANUSIA KOMPUTER

Gambar
  Tugas 1 – Analisis Usability Awalnya saya mencoba kalkulator yang sudah saya buat dengan desain standar. Dari situ saya mencoba menilai aspek usability (mudah dipahami, konsistensi, feedback, error handling, dll). ✅ Hal yang menurut saya sudah baik: Konsistensi tombol angka (0–9): Tata letak tombol angka mengikuti pola kalkulator fisik, sehingga pengguna langsung familiar. Feedback cepat: Hasil perhitungan muncul langsung di layar ketika tombol = ditekan. Layout familiar: Posisi tombol operator (+, −, ×, ÷) sesuai standar, sehingga mudah dipahami. Clear & Delete: Pengguna bisa menghapus angka satu per satu atau sekaligus, membuat pengalaman lebih fleksibel. ❌ Kekurangan yang saya temukan: Tidak ada tombol “±” untuk mengubah angka positif ↔ negatif. Semua tombol warnanya hampir sama, sehingga angka dan operator sulit dibedakan. Tidak ada pesan error untuk input yang salah (contoh: 10/0 , 5++2 ). Ukuran tombol relatif kecil jika dibuka di HP, membua...

Algoritma Brute Force Untuk Menemukan Kombinasi Barang Yang Tidak Lebih Dari 10kg dan Memiliki Nilai Tertinggi

Gambar
Kasus Cerita : Kamu memiliki tas dengan kapasitas 10 kg . Tersedia 5 barang dengan berat dan nilai berbeda: Barang 1 (6 kg, 30), Barang 2 (3 kg, 14), Barang 3 (4 kg, 16), Barang 4 (2 kg, 9), dan Barang 5 (5 kg, 20). Karena kapasitas terbatas, kamu harus memilih kombinasi barang yang memberikan nilai tertinggi tanpa melebihi 10 kg. Untuk menemukan pilihan terbaik, digunakan algoritma brute force , yaitu dengan mencoba semua kemungkinan kombinasi barang, menghitung total berat dan nilainya, lalu memilih kombinasi dengan nilai tertinggi yang masih sesuai kapasitas. Ringkasan Poin : Kapasitas tas: 10 kg. Barang tersedia: Barang 1 (6 kg, 30),  Barang 2 (3 kg, 14),  Barang 3 (4 kg, 16), Barang 4 (2 kg, 9),  Barang 5 (5 kg, 20). Brute force: cek semua kombinasi, hitung berat & nilai, singkirkan yang lebih besar dari 10 kg. Kode Program : public class KnapsackBruteForce{     public static void main(String[] args) {         int[] weight ...

TUGAS 1 INTERAKSI MANUSIA KOMPUTER

Gambar
Nama : Sitti Patima Kelas : Informatika B NIM : D0224013 Bagaimana lampu merah dapat ramah bagi penyandang buta warna? Solusi: Pada lampu merah diberi simbol tambahan: tangan merah dilampu merah (berhenti), tanda seru dipapan segitiga dilampu kuning(hati-hati), dan orang berjalan dilampu hijau (jalan). Simbol ini membantu penyandang buta warna agar tetap bisa memahami instruksi tanpa hanya bergantung pada warna. Bagaimana lampu merah dapat ramah bagi pejalan kaki? Solusi: Terdapat ikon orang berjalan pada lampu lalu lintas dan papan penunjuk pejalan kaki di samping jalan. Pejalan kaki memiliki jalur zebra cross yang jelas. Timer digital juga membantu pejalan kaki tahu berapa lama waktu yang tersedia untuk menyeberang. Bagaimana cara menempatkan lampu merah agar lebih strategis? Solusi: Lampu merah didesain tinggi dan dipasang di kedua sisi jalan, sehingga terlihat jela...

Kasus Pemilihan Buku dengan Algoritma Knapsack

TUGAS 1 ALGORITMA Nama : Sitti Patima Kelas : Informatika B NIM  : D0224013 1. Kasus Seorang siswa ingin membawa buku di dalam tasnya. Kapasitas tas hanya 5 kg. Ada beberapa buku dengan bobot dan nilai kepentingan berbeda. Dia ingin memilih buku yang paling penting tanpa melebihi kapasitas tas. a. Input 1. Buku B1: bobot 1kg, nilai 2. 2. Buku B2: bobot 2kg, nilai 4. 3. Buku B3: bobot 3kg, nilai 5. 4. Buku B4: bobot 4kg, nilai 6. b. Proses (Langkah-langkah Knapsack) 1. Mengecek semua kombinasi buku yang bisa masuk. 2. Menghitung total bobot dan nilai setiap kombinasi. 3. Memilih kombinasi dengan nilai terbesar tapi bobot ≤ 5. Contoh Kombinasi: a. (B1,B2) → bobot 3, nilai 6. b. (B1,B3) → bobot 4, nilai 7. c. (B1,B4) → bobot 5, nilai 8. d. (B2,B3) → bobot 5, nilai 9. e. (B2,B4) → bobot 6, nilai 11. f. (B3,B4) → bobot 7, nilai 13. c. Output Dari beberapa contoh kombinasi di atas, kombinasi terbaik adalah (B2,B3) dengan bobot 5 kg dan nilai 9. Bobotnya s...