## 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