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 5 - Music Organizer

Tugas Pertemuan 5 - Music Organizer

Program Music Organizer dibuat memanfaatkan konsep koleksi (collection), overloading, dan overriding dalam pemrograman berorientasi objek untuk meningkatkan fungsionalitas dan fleksibilitas aplikasi. Dalam program ini, ArrayList digunakan sebagai struktur data untuk menyimpan daftar trek musik, memungkinkan penambahan dan penghapusan trek secara dinamis. Selain itu, metode dalam kelas Track menggunakan overloading untuk memungkinkan pembuatan objek trek dengan parameter yang berbeda, memberikan kemudahan dalam pengelolaan data. Konsep overriding juga diterapkan, di mana metode yang terdapat dalam kelas induk dapat diubah pada kelas turunan, memberikan implementasi yang lebih spesifik sesuai kebutuhan program. Dengan kombinasi ini, Music Organizer menjadi aplikasi yang efisien dan mudah digunakan, memungkinkan pengguna untuk mengelola koleksi musik mereka dengan cara yang intuitif.

Contoh Implementasi : Link Source Code Github

Class Track

Penjelasan

  1. Deklarasi Kelas :
  2. public class Track : mendefinisikan kelas Track yang merepresentasikan trek musik.
  3. Deklarasi Atribut :
  4. artist dan title : variabel untuk menyimpan nama artis dan judul lagu. Bersifat public, sehingga bisa diakses dari luar kelas.
  5. Konstruktor :
  6. Track(String title, String artist) : konstruktor untuk menginisialisasi objek Track dengan judul dan artis yang diberikan.
    this.artist dan this.title : digunakan untuk menetapkan nilai artis dan judul ke variabel instance.
  7. Method getTitle :
  8. Mengembalikan judul trek (lagu) yang disimpan di variabel title.
  9. Method getArtist :
  10. Mengembalikan nama artis yang disimpan di variabel artist.
  11. Method getDetails :
  12. Mencetak detail trek, termasuk judul dan nama artis. Memanggil metode getTitle() dan getArtist() untuk mengambil data dan mencetaknya dengan format yang sesuai.

    Class MusicPlayer

    Penjelasan

    1. Deklarasi Kelas :
    2. public class MusicPlayer mendefinisikan kelas MusicPlayer, yang merepresentasikan pemutar musik sederhana.
    3. Deklarasi Atribut :
    4. private boolean isPlaying : variabel yang menyimpan status apakah ada trek yang sedang dimainkan (true = sedang bermain, false = tidak bermain).
      private String trackPlaying: variabel yang menyimpan judul lagu yang sedang dimainkan.
    5. Konstruktor :
    6. MusicPlayer() : konstruktor untuk menginisialisasi objek MusicPlayer. Pada awalnya, isPlaying diset ke false (tidak ada lagu yang dimainkan), dan trackPlaying diset ke null (tidak ada trek yang diputar).
    7. Method startPlaying :
    8. startPlaying(String trackTitle) : digunakan untuk memulai memutar trek dengan judul yang diberikan.
      Jika sebuah trek sudah diputar (isPlaying == true), metode ini terlebih dahulu memanggil stopPlaying() untuk menghentikan trek yang sedang diputar sebelum memutar trek baru.
      Menetapkan trackPlaying ke trackTitle (judul lagu baru) dan mengubah isPlaying menjadi true.
      Mencetak pesan bahwa trek tersebut sedang dimainkan.
    9. Method stopPlaying :
    10. stopPlaying() : digunakan untuk menghentikan pemutaran trek saat ini.
      Jika ada trek yang sedang diputar (isPlaying == true), metode ini mencetak pesan bahwa trek tersebut dihentikan dan mengubah isPlaying menjadi false.
      Jika tidak ada trek yang diputar (isPlaying == false), metode ini mencetak pesan bahwa tidak ada trek yang sedang diputar.

    Class MusicOrganizer

    Penjelasan

    1. Deklarasi Kelas :
    2. public class MusicOrganizer: mendefinisikan kelas MusicOrganizer, yang berfungsi sebagai organizer atau pengelola daftar trek musik.
    3. Deklarasi Atribut :
    4. private ArrayList tracks: daftar (list) trek yang disimpan menggunakan ArrayList. private MusicPlayer player: objek MusicPlayer yang digunakan untuk memutar trek musik.
    5. Konstruktor :
    6. MusicOrganizer(): konstruktor yang menginisialisasi tracks sebagai ArrayList kosong dan membuat objek MusicPlayer baru.
    7. Method addTrack :
    8. addTrack(Track track): menambahkan objek Track ke dalam daftar tracks.
      Mencetak pesan konfirmasi bahwa trek berhasil ditambahkan.
    9. Method getNumberOfTracks :
    10. getNumberOfTracks(): mencetak jumlah trek yang ada di dalam daftar tracks dengan menggunakan metode size() dari ArrayList.
    11. Method listATrack :
    12. listATrack(int index): menampilkan detail trek berdasarkan indeks yang diberikan.
      Jika indeks valid, trek ditampilkan, jika tidak, akan mencetak pesan kesalahan.
    13. Method listAllTracks :
    14. listAllTracks(): menampilkan semua trek yang ada dalam daftar tracks dengan mencetak detail setiap trek menggunakan metode getDetails() dari kelas Track.
    15. Method removeTrack :
    16. removeTrack(int index): menghapus trek dari daftar berdasarkan indeks.
      Jika indeks valid, trek dihapus, jika tidak, pesan kesalahan ditampilkan.
    17. Method trackSearch :
    18. trackSearch(String trackSearch): mencari trek yang berisi string tertentu dalam judulnya.
      Menggunakan pencarian linier (while-loop) untuk menemukan trek yang judulnya mengandung string pencarian.
      Jika ditemukan, indeks trek ditampilkan, jika tidak, pesan "track not found" muncul.
    19. Method playTrack :
    20. playTrack(int index): memutar trek berdasarkan indeks menggunakan metode startPlaying() dari MusicPlayer.
      Jika trek ditemukan, akan memutar trek dan menampilkan detailnya.
    21. Method stopTrack :
    22. stopTrack(): menghentikan pemutaran trek saat ini menggunakan metode stopPlaying() dari MusicPlayer.

    Class Main

    Penjelasan

    1. Kelas Main :
    2. public class Main: mendefinisikan kelas Main, yang berfungsi sebagai antarmuka untuk menjalankan MusicOrganizer.
    3. Method showCommands :
    4. showCommands(): metode yang mencetak daftar perintah yang tersedia bagi pengguna untuk mengoperasikan MusicOrganizer.
      Berisi perintah seperti menambahkan trek, menampilkan semua trek, mencari trek, memutar trek, dan lainnya.
    5. Method main :
    6. main(String[] args): metode utama yang menjalankan program. Ini adalah titik awal eksekusi program.
      • Deklarasi Objek :
      • Membuat objek Main bernama mainCommands dan objek MusicOrganizer bernama musicApp.
        Scanner scanner: objek untuk membaca input dari pengguna.
      • Perulangan Utama (while-loop) :
      • Selama variabel exit bernilai false, program akan terus meminta pengguna memasukkan perintah melalui scanner.nextInt().
        Berdasarkan nilai perintah yang dimasukkan, program menjalankan fungsi yang sesuai dengan menggunakan switch-case.
    7. Perintah yang Dapat Dijalankan :
      • Case 0: Tampilkan Perintah
      • Memanggil mainCommands.showCommands() untuk menampilkan daftar perintah lagi.
      • Case 1: Tambah Trek
      • Meminta pengguna memasukkan judul dan artis trek.
        Membuat objek Track baru dengan judul dan artis yang dimasukkan, lalu memanggil musicApp.addTrack() untuk menambahkannya ke dalam daftar.
      • Case 2: Jumlah Trek
      • Memanggil musicApp.getNumberOfTracks() untuk menampilkan jumlah trek yang ada dalam daftar.
      • Case 3: Daftar Trek Berdasarkan Indeks
      • Meminta pengguna memasukkan indeks, lalu memanggil musicApp.listATrack(index) untuk menampilkan trek berdasarkan indeks tersebut.
      • Case 4: Daftar Semua Trek
      • Memanggil musicApp.listAllTracks() untuk menampilkan semua trek yang ada di daftar.
      • Case 5: Hapus Trek Berdasarkan Indeks
      • Meminta pengguna memasukkan indeks trek yang ingin dihapus, lalu memanggil musicApp.removeTrack(index) untuk menghapusnya.
      • Case 6: Cari Trek
      • Meminta pengguna memasukkan pola string yang akan dicari dalam judul trek, lalu memanggil musicApp.trackSearch(pattern) untuk mencari trek yang sesuai.
      • Case 7: Putar Trek
      • Meminta pengguna memasukkan indeks trek yang ingin diputar, lalu memanggil musicApp.playTrack(index) untuk memutarnya.
      • Case 8: Hentikan Trek
      • Memanggil musicApp.stopTrack() untuk menghentikan trek yang sedang diputar.
      • Case 9: Keluar
      • Mengubah variabel exit menjadi true, yang menghentikan perulangan dan keluar dari program.

      Hasil

      Opsi 1

      Opsi 2

      Opsi 3

      Opsi 4

      Opsi 5

      Opsi 6

      Opsi 7

      Opsi 8

Komentar

Postingan Populer