Langsung ke konten utama

Unggulan

Church-Turing Thesis dan Kaitannya dengan Bahasa Pemrograman - Tugas Otomata W14

Daftar Isi Pendahuluan Pengertian dan Konsep Rumusan Masalah Turing Equivalent dan Turing Complete Manfaat Turing Equivalent dan Turing Complete Contoh Bahasa yang Turing Complete dan Penjelasannya Contoh Bahasa yang Tidak Turing Complete dan Penjelasannya Kesimpulan Pendahuluan Dalam dunia ilmu komputer, pemahaman tentang batasan dan kemampuan komputasi adalah fundamental. Salah satu konsep paling mendasar yang membentuk landasan teori komputasi adalah Church-Turing Thesis. Tesis ini, meskipun bukan sebuah teorema yang dapat dibuktikan secara matematis, merupakan hipotesis kuat yang menghubungkan konsep intuitif dari "algoritma" atau "komputabilitas efektif" dengan model komputasi formal seperti Turing Machine. Dengan memahami Church-Turing Thesis, kita dapat menggali lebih dalam tentang apa yang dapat dilakukan oleh komputer dan, yang tak kalah penting, apa yang tidak dapat mereka lakukan. Esai ini akan membahas pengertian, rumusan mas...

Tugas Pertemuan 4 - Interaksi Objek (Clock Display)

Tugas Pertemuan 4 - Clock Display

Berikut merupakan program digital untuk menampilkan waktu menggunakan konsep pemrograman berorientasi objek (OOP) di Java. Program ini menggunakan dua kelas utama, yaitu ClockDisplay dan NumberDisplay, untuk membentuk simulasi jam digital 24 jam dengan format "HH". Kelas ClockDisplay berfungsi sebagai pengelola utama yang menangani logika penambahan jam dan menit serta pembaruan tampilan waktu secara keseluruhan. Sedangkan, kelas NumberDisplay bertanggung jawab untuk menangani penghitungan nilai numerik (jam dan menit) dengan pembatasan nilai tertentu, seperti 24 untuk jam dan 60 untuk menit.

Source Code : Link Github

Kelas NumberDisplay


Penjelasan :

NumberDisplay adalah kelas yang menangani penghitungan dan penampilan angka, khususnya pada jam dan menit. Berikut adalah fungsi dari kelas ini:
Atribut :

  • nilai : Menyimpan nilai saat ini (seperti jam atau menit).
  • batas : Menyimpan batas maksimum angka (24 untuk jam, 60 untuk menit).
Metode utama :
  • increment() : Menambah nilai yang disimpan. Jika nilai mencapai batas, ia akan kembali ke 0. Ini berguna untuk jam (dari 23 ke 0) dan menit (dari 59 ke 0).
  • getNilai() : Mengembalikan nilai saat ini.
  • setNilai(int nilaiBaru) : Mengatur nilai ke nilai baru.
  • getNilaiTampilan() : Mengembalikan nilai dalam bentuk string, biasanya dalam format dua digit (misalnya, "08" bukan "8").
Cara Kerja : Misalnya, untuk menampilkan menit : Jika menit saat ini adalah 59, ketika metode increment() dipanggil, menit akan menjadi 0 dan juga menyebabkan jam bertambah satu.

Kelas ClockDisplay

Penjelasan :

Kelas ClockDisplay merupakan kelas utama yang menggabungkan dua objek NumberDisplay untuk merepresentasikan jam dan menit pada sebuah jam digital.
Atribut :

  • jam : Objek NumberDisplay yang menyimpan nilai jam (dari 0 hingga 23).
  • menit : Objek NumberDisplay yang menyimpan nilai menit (dari 0 hingga 59).
  • stringTampilan : Sebuah string yang menyimpan tampilan waktu dalam format "HH".
Konstruktor : Konstruktor pertama membuat objek ClockDisplay dengan jam diatur ke 00:00. Konstruktor kedua memungkinkan pengguna menentukan jam dan menit awal secara manual.
Metode utama :
  • detikWaktu() : Metode ini memajukan menit pada objek ClockDisplay. Ketika menit mencapai 60 (menjadi 0), metode ini juga akan memajukan jam. Jadi, metode ini seperti pengatur waktu yang menambah waktu setiap menit.
  • aturWaktu(int jam, int menit) : Mengatur waktu pada objek ClockDisplay sesuai dengan parameter jam dan menit yang diberikan.
  • ambilWaktu() : Mengembalikan waktu saat ini dalam format "HH" sebagai string, yang dapat digunakan untuk ditampilkan ke pengguna.
  • perbaruiTampilan() : Metode ini menggabungkan nilai dari objek jam dan menit menjadi sebuah string dengan format "HH" yang diperbarui setiap kali waktu berubah.

Cara Kerja : Saat objek ClockDisplay dibuat, ia akan memulai dengan nilai waktu default (00:00) atau waktu yang diatur oleh pengguna. Setiap kali metode detikWaktu() dipanggil, menit akan bertambah satu. Jika menit mencapai 60, menit akan kembali ke 0 dan jam akan bertambah satu. Waktu yang diperbarui akan disimpan sebagai string di stringTampilan dan bisa diakses menggunakan metode ambilWaktu().
Secara keseluruhan, objek NumberDisplay digunakan untuk menangani penambahan jam dan menit, sementara ClockDisplay mengelola tampilan dan pembaruan waktu pada jam digital.

Uji Coba di BlueJ

Abstraksi Diagram Objek:

Kode NumberDisplay :
Kode ClockDisplay :
Diagram kelas dan relasi :
Membuat objek baru :
Hasil :

Komentar

Postingan Populer