🐍 📝 Bagian 3 (Jobsheet Praktikum Terstruktur) • Modul JS-03 100% Standar Industri & Vokasi

Jobsheet 03: Manajemen Koleksi Struktur Data

Praktikum terstruktur: Pengelolaan inventaris barang toko dengan List & Dictionary, agregasi data nilai siswa, dan operasi himpunan kategori.

1. Kompetensi Dasar & Indikator

Tujuan Praktikum:
  • Mampu menyimpan data multi-atribut menggunakan List of Dictionaries.
  • Melakukan operasi penambahan (append), pencarian data, pengubahan nilai, dan penghapusan (pop/del).
  • Menerapkan Set untuk mencari data unik dan operasi irisan/selisih.
  • Menggunakan List Comprehension untuk memfilter data dengan performa tinggi.

2. Aktivitas Terbimbing: Analisis Data Mahasiswa

Ketik dan jalankan file lab3_data_siswa.py:

python (lab3_data_siswa.py)
# Kumpulan data siswa berbentuk List of Dictionaries
data_siswa = [
    {"nim": "101", "nama": "Rian Ardiansyah", "nilai": 88, "jurusan": "Informatika"},
    {"nim": "102", "nama": "Siti Nurhaliza", "nilai": 94, "jurusan": "Sistem Informasi"},
    {"nim": "103", "nama": "Budi Wicaksono", "nilai": 62, "jurusan": "Informatika"},
    {"nim": "104", "nama": "Dewi Sartika", "nilai": 78, "jurusan": "Teknik Komputer"}
]

print("=== DAFTAR REKAP NILAI SISWA ===")
for s in data_siswa:
    status = "LULUS" if s["nilai"] >= 75 else "REMEDIAL"
    print(f"NIM: {s['nim']} | {s['nama']:<16} | Nilai: {s['nilai']} | {status}")

# 1. Filter Siswa Lulus menggunakan List Comprehension
siswa_lulus = [s["nama"] for s in data_siswa if s["nilai"] >= 75]
print(f"\nTotal Siswa Lulus ({len(siswa_lulus)}): {', '.join(siswa_lulus)}")

# 2. Ambil Daftar Jurusan Unik dengan Set
jurusan_unik = {s["jurusan"] for s in data_siswa}
print(f"Program Studi Aktif: {jurusan_unik}")

# 3. Hitung Rata-rata Nilai Kelas
semua_nilai = [s["nilai"] for s in data_siswa]
rata_rata = sum(semua_nilai) / len(semua_nilai)
print(f"Rata-rata Nilai Angkatan: {rata_rata:.2f}")

3. Tugas Mandiri: Sistem Inventaris Toko Retail

Studi Kasus: Manajemen Stok Gudang Interaktif

Buat program inventaris_gudang.py yang menggunakan struktur data Dictionary atau List of Dicts dengan menu interaktif loop:
1. Tampilkan Semua Barang (Kode, Nama, Harga, Jumlah Stok)
2. Tambah Barang Baru (Validasi agar kode barang tidak boleh duplikat)
3. Update Jumlah Stok Barang (Berdasarkan kode barang)
4. Laporan Barang Menipis (Tampilkan hanya barang dengan stok ≤ 5 unit)
5. Hitung Total Nilai Aset Gudang (Total dari Harga * Stok untuk semua barang)
6. Keluar Program

Kriteria Keberhasilan: Program dapat terus menerima transaksi hingga user memilih menu keluar, dan data inventaris termutakhirkan secara konsisten.

4. Rubrik Evaluasi & Penilaian

Aspek Penilaian Bobot Kriteria Sempurna
Operasi CRUD Dictionary & List 35% Fitur Tambah, Edit Stok, dan Filter berfungsi 100% tanpa error.
Pencegahan Duplikasi Kode (Set/Key) 25% Kode barang duplikat ditolak dengan notifikasi yang informatif.
Kalkulasi Agregasi Aset 25% Perhitungan total nilai aset inventaris akurat.
Integrasi Menu CLI Interaktif 15% Alur navigasi perulangan menu while berjalan mulus.