Lompat ke konten utama

Kompetisi Ajak Teman: hadiah total Rp1.000.000 tunai untuk 3 pengajak terbanyak. Berakhir 29 November 2026. Ikut kompetisi

←

Bash Lanjutan

Pelajaran 4 dari 15

Membaca masukan skrip

Misi: rekap absensi cabang

Setelah pelajaran ini kamu bisa menulis skrip yang menerima argumen dan opsi, membaca CSV per baris, dan menghitung dengan case.

±17 menitDiperiksa 5 Okt 2026

Materi

Mesin absensi di cabang Medan dan Solo mengekspor satu berkas CSV per hari dengan dua kolom: nama dan status. Statusnya hadir, izin, sakit, atau alpa. Bagian personalia ingin rekap singkat per cabang tanpa membuka berkasnya satu per satu, dan ingin daftar karyawan yang alpa.

Empat latihan berikut membangunnya. Lulus misi ini bila minimal 80 persen latihannya benar.

Ekspor dari mesin Medan tidak diakhiri newline, jadi perulangan while read harus menjaga baris terakhir. Status izin dan sakit dihitung bersama sebagai izin dalam rekap. Skrip menerima nama berkas sebagai argumen, bukan menuliskannya di dalam skrip, supaya skrip yang sama bisa dipakai untuk cabang mana pun dan hari apa pun.

Pola yang dipakai: while IFS=, read -r nama status || [ -n "$nama" ] untuk membaca baris; case "$status" in untuk memilah; aritmetika $((H+1)) untuk menghitung; dan case "$1" in -q) untuk opsi di depan argumen. Skrip penggabung memakai "$@" supaya berapa pun berkas yang diberikan ikut diproses.

Latihan

0/4 lulus

Misi akhir modul: luluskan minimal 4 dari 4 tugas. Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 4 dari 4

Ekspor baru menambah kolom keterangan. Baris Siti Aminah,hadir,terlambat 10 menit dibaca hitung.sh yang masih memakai IFS=, read -r nama status. Ke mana Siti dihitung?

while IFS=, read -r nama status || [ -n "$nama" ]; do
  case "$status" in
    hadir) H=$((H+1)) ;;
    izin|sakit) I=$((I+1)) ;;
    alpa) A=$((A+1)) ;;
  esac
done < "$1"
Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke

Tampilkan 1 lagi