## Main Program PROGRAM TiketKereta DECLARE totalTiket AS INTEGER DECLARE dataPenumpang AS ARRAY DECLARE totalHarga AS FLOAT CALL InputDataPenumpang(totalTiket, dataPenumpang) CALL HitungHargaTiket(dataPenumpang, totalHarga) CALL CetakDataTiket(dataPenumpang, totalHarga) END PROGRAM ## Input Data Penumpang MODULE InputDataPenumpang(totalTiket, dataPenumpang) INPUT "Masukkan jumlah tiket yang akan dibeli: " INTO totalTiket FOR i FROM 1 TO totalTiket DO DECLARE penumpang AS DICTIONARY INPUT "Masukkan nama penumpang ke-" + i + ": " INTO penumpang["nama"] INPUT "Masukkan kota tujuan penumpang ke-" + i + ": " INTO penumpang["kota"] ADD penumpang TO dataPenumpang END FOR END MODULE ## Hitung Harga Tiket MODULE HitungHargaTiket(dataPenumpang, totalHarga) DECLARE hargaPerKota AS DICTIONARY SET hargaPerKota["Jakarta"] = 100000 SET hargaPerKota["Bandung"] = 80000 SET hargaPerKota["Surabaya"] = 150000 totalHarga = 0 FOR EACH penumpang IN dataPenumpang DO SET kota = penumpang["kota"] penumpang["harga"] = hargaPerKota[kota] totalHarga = totalHarga + penumpang["harga"] END FOR END MODULE ## Cetak Data Tiket MODULE CetakDataTiket(dataPenumpang, totalHarga) FOR EACH penumpang IN dataPenumpang DO PRINT "Nama: " + penumpang["nama"] PRINT "Kota Tujuan: " + penumpang["kota"] PRINT "Harga Tiket: " + penumpang["harga"] PRINT "--------------------------" END FOR PRINT "Total Harga Tiket: " + totalHarga END MODULE