Senin, 23 Juni 2025

Jam buka dan jam tutup kuil Suci Suci Sulaiman

Simulasi logika pembukaan dan penutupan Kuil Suci Sulaiman berdasarkan waktuBuka dan waktuTutup dan jam saat ini, menggunakan pendekatan berbasis objek, fungsi, dan kondisi.

/--
- Menggunakan modul atur untuk menyimpan nilai dari varibel, nilai sebagai informasi dasar. tentang kuil suci ke dalam memory.
- Semua disimpan dalam format variabel seperti :nama:, :lokasi:, :waktuBuka:, dsb.
--/
atur :nama: = "Kuil Suci Sulaiman"
atur :lokasi: = "Yerusalem"
atur :waktuBuka: = "06:00"
atur :waktuTutup: = "18:00"
atur :status: = "Tutup"

/--
- Menggunakan modul kelas.
- `punggung` berarti "inherit" nilai dari memory sebagai instance bawaan.
- Kelas ini akan memiliki properti kuil secara bawaan ketika di instalasi.
--/
kelas :kuilSuci:
  punggung :nama:, :lokasi:, :waktuBuka:, :waktuTututp:, :status:

  /--
  - Metode ini mengecek waktu :sekarang: dan membandingkan dengan jam buka-tutup.
  - Jika dalam rentang waktu buka, maka status diubah dan ditampilkan.
  --/
  metode buka():
    jika sekarang >= :waktuBuka: dan sekarang < :waktuTutup maka
      atur :status: = "Terbuka"
      tampilkan "Kuil Suci Sulaiman sekarang buka."
    jika tidak
      atur :status: = "Tutup"
      tampilkan "Kuil Suci Sulaiman sedang tutup."

-- Metode alternatif lainnya, jika ingin menutup kuil secara paksa. --
  metode tutup():
    atur :status: = "Tutup"
    tampilkan "Kuil Suci Sulaiman sedang tutup."

/--
- Membuat objek kuil dari kelas kuilSuci.
- Modul atur akan mengenali bahwa Anda membuat objek karena menggunakan (...).
--/
atur :kuil: = (kuilSuci)

-- Mneyusun ulang atribut ke dalam instace :kuil: yang ingin mengupdate manual --
atur :kuil:.nama = :nama:
atur :kuil:.waktuBuka = :waktuBuka:
atur :kuil:.waktuTutup = :waktuTutup:
atur :kuil:.status = :status:

/--
- Modul fungsi mendefinisikan fungsi bersama cekStatus
- Baris pertama: ambil waktu saat ini dalam format jam-menit (misalnya 14:23) disimpan ke :sekarang: (pakai modul waktu).
- Baris ketiga: mengeksekusi fungsiBuka() - yang berarti memanggil metode buka() dari kuil tersebut.
--/
fungsi cekStatus():
  waktu formatkustom "JJ:mm" ke :sekarang:
  fungsiBuka = :kuil:.buka
  fungsiBuka()

-- Menjalankan fungsi --
cekStatus()


Tidak ada komentar:

Posting Komentar

Postingan lainnya

Perkenalkan Konstanta Sigma Spiral

  "Konstanta Sigma Spiral (Σs ≈ 18.53) adalah sebuah angka yang menggambarkan pola pertumbuhan spiral logaritmik, yang sering kita temu...