Senin, 28 Desember 2020

(Tugas) Testing JavaFX

 JavaFX

JavaFX adalah salah satu teknologi dari Java yang diluncurkan untuk membangun aplikasi yang kaya dengan konten multimedia seperti grafis, sound, effect grafis dan video, yang diintegrasikan ke dalam Website dan berjalan di dalam jaringan internet.

JavaFX juga dirancang untuk mengembangkan aplikasi kaya fitur (RIA) Rich Internet Application yang dapat berjalan di berbagai platform contohnya mobile, desktop, dan televisi.

Berikut adalah salah satu contoh pengimplementasian JavaFX dengan class yang bernama Fortune Teller. Fortune Teller memiliki satu tombol dimana jika ditekan akan muncul secara acak salah satu string yang telah dimasukkan pada source code.

Class Fortune Teller



Berikut adalah hasil dari contoh Fortune Teller







Sekian yang dapat disampaikan, semoga dapat bermanfaat.

~F


(Tugas) Membuat TextVIewer dengan Java

 NotepadJV

Nama yang akan digunakan dalam pembuatan textviewer karena fungsi dan kegunaannya hampir sama dengan notepad hanya saja terbatas dalam penyimpanan file dan pembukaan file. NotepadJV dapat membaca file .txt dan menuliskan kontennya ke dalam aplikasi. TIdak hanya .txt tetapi semua dile sebenarnya dapat terbaca hanya saja jika file selain .txt ada kemungkinan konten yang terbaca tidak dalam bentuk huruf-huruf yang jelas. Terdapat dua kelas yang mengatur NotepadJV, yaitu NotePadJV yang mengatur GUI dan FileReadWrite yang mengatur untuk membaca dan menulis file.

Class NotePadJV


Class FileReadWrite



Berikut beberapa screenshot saat source code dijalankan.






Sekian yang dapat disampaikan, semoga bermanfaat

~F

Senin, 21 Desember 2020

(Tugas) Exception Handling

 Apa itu Exception Handling?

Exception adalah sebuah peristiwa yang menjalankan alur proses normal pada program. Peristiwa ini bisaanya berupa kesalahan(error) dari beberapa bentuk. Ini disebabkan program kita berakhir tidak normal.

Menangani Exception

Untuk menangani exception dalam Java, kita gunakan blok try-catch-finally. Apa yang kita lakukan dalam program kita adalah kita menempatkan pernyataan yang mungkin menghasilkan exception dalam blok ini. Exception dilemparkan selama eksekusi dari blok try dapat ditangkap dan ditangani dalam blok catch. Kode dalam blok finally selalu di-eksekusi. Berikut ini adalah aspek kunci tentang sintak dari konstruksi try-catch-finally:

Notasi blok bersifat perintah
  • Setiap blok try, terdapat satu atau lebih blok catch, tetapi hanya satu blok finally.
  • Blok catch dan blok finally harus selalu muncul dalam konjungsi dengan blok try, dan diatas urutan
  • Blok try harus diikuti oleh paling sedikit satu blok catch ATAU satu blok finally, atau keduanya.
  • Setiap blok catch mendefinisikan sebuah penanganan exception. Header dari blok catch harus membawa satu argumen, dimana exception pada blok tersebut akan ditangani.

Contoh Exception Handling

Dalam contoh ini saya menggunakan source code algoritma dari sebuah permasalahan yang ada yang saya dapat dari github.

Permasalahan: 
https://leetcode.com/problems/coin-change/

Souce algoritma: 
https://github.com/williamfiset/Algorithms/blob/master/src/main/java/com/williamfiset/algorithms/dp/CoinChange.java

Dari source code di atas saya modifikasi sedikit sehingga beberapa line akan mengandung try-catch-finally. Penempatan try-catch-finally berada di tempat yang mengecek input dari pengguna sehingga jika terjadi Exception dapat terlihat.

Source Code:


Jika input yang diberikan sesuai akan menghasilkan output sebagai berikut


Jika input yang diberikan tidak sesuai akan menghasilkan output sebagai berikut


Juga ada beberapa kasus yang akan men-trigger beberapa exception handling. Sekian dari saya, semoga apa yang saya berikan bermanfaat.

~F

Senin, 14 Desember 2020

(Tugas) Membuat Game Pong dengan Java

 Penjelasan Singkat Class

Class yang akan dipakai adalah Class utama Pong yang mengatur tampilan, setting untuk bot, serta semua input yang diberikan, Class yang mengatur paddle-nya berada di Paddle, Class Ball mengatur tampilan bola dan bagaimana karakter dari bola pada game Pong, dan yang terakhir adalah Renderer yang mengatur rendering dari setiap ada perubahan atau penginputan yang masuk ke dalam program. Detail lebih lanjut untuk source code dari class adalah sebagai berikut.

1. Class Pong

2. Class Paddle

3. Class Ball

4. Class Renderer








Sekian dari saya, semoga bermanfaat

~F

Selasa, 24 November 2020

(ETS) ETS-1 Pemrograman Berbasis Objek Kelas A -- Nomor 3

Nomor 4 (Finished TimeStamp: Selasa, 24 November 2020 -- Pukul 21:33 WIB)

(http://fajarbaskoro.blogspot.com/2020/11/ets-1-pemrograman-berbasis-obyek.html) 

    Berdasarkan rancangan class maka akan diimplementasikan menggunakan pemrograman bahasa Java engan menggunakan BlueJ. Hasil implementasi untuk ketiga class, LayarManager, ATMMachine, dan KartuDebit adalah sebagai berikut.

1. Class KartuDebit


2. Class ATMMachine


3. Class LayarManager


Hasil dari eksekusi pengimpelmentasian di atas akan dijelaskan dalam bentuk video, sekaligus sebagai demo, serta menjawab nomor 4 pada soal ETS-1.


UPDATE:

Video demo dapat dilihat di link berikut: Nomor 4 (Video Demo)


~F

Senin, 23 November 2020

(ETS) ETS 1 - Pemrograman Berbasis Objek Kelas A -- Nomor 1 dan 2

 ETS 1 - PBO (Finished TimeStamp: Selasa, 24 November 2020 - 11:16)

http://fajarbaskoro.blogspot.com/2020/11/ets-1-pemrograman-berbasis-obyek.html

1. Skenario singkat fungsionalitas ATM berdasrkan tayangan video:

a. Layar awal akan ditampilkan jika tidak ada kartu debit yang dimasukkan.

b. Pengguna memasukkan kartu debit ke mesin atm

c. Setelah memasukkan kartu akan ditampilkan layar untuk memasukkan PIN kartu debit pengguna

d. Jika benar, maka akan ditampilkan layar utama dimana pengguna dapat memilih untuk menarik uang sebanyak nominal yang telah disediakan di layar utama

e. Jika nominal uang yang ingin ditarik tidak ditampilkan di layar, maka pengguna dapat memilih opsi transaksi lainnya dimana pengguna dapat memasukkan nilai nominasi yang diinginkan.

f. Setelah menentukan nominal yang inign ditarik, kartu akan keluar dari mesin lalu uangnya. 

g. Jika kamu memasukkan nominal secara manual, mesin akan menawarkan apakah kamu ingin mencetak struk atau tidak.

h. Setelah pengeluaran kartu debit pengguna dan uang, akan ditampilkan layar nominal sisa kartu debit anda beserta ucapan terima kasih.

i. Setelah itu, kembali ke layar awal.

2. Modulasi (karena fungsi ATM yang akan digunakan adalah fungsi menarik uang dari mesin ATM) :

Keterangan Class:

a, Class ATMMachine: fungsinya untuk mengatur segala proses yang terjadi berdasarkan input pengguna dan berinteraksi dengan objek KartuDebit.

b. Class LayarManager: fungsinya adalah mengatur layar akan ditampilkan berdasarkan input (event) yang terjadi pada mesin ATM.

c. Class KartuDebit: fungsinya untuk mengidentifikasi karut debit pengguna yang telah dimasukkan.

Gambaran Desain Class:

Gambaran Desain Class dan hubungannya



~F

Senin, 16 November 2020

(Tugas) Game of Zuul from Object First with Java, Michael Kölling

    Pada tugas ini akan dipelajari bagaiaman membuat design class yang baik dengan memperhatikan coupling dan cohession antar class. Pada kali ini akan dibuat sebuah game boring sederhana bernama Game of Zuul dimana pemain akan 'berpetualang' mengelilingi kampus. Dalam program ini disediakan beberapa command yang terdefinisikan di class CommandWord yang pemain dapat gunakan. Akan ada juga item pada setiap ruang -- diamana ruang terdifinisikan di class Room-- yang item terdefinisikan di class Item. Class Command untuk memproses input dari class Parser, sedangkan class Game akan memproses jalannya permainan. Source code dan penjelasan tiap methode akan ada di bawah ini.

1. Class Game


2. Class Room


3. Class Item


4. Class Command


5. Calss CommandWord


6. Class Parser


Bredasarkan source code di atas dapat dilakukan sebuah tes dengan membuat objek Game baru dan menjalankan methode play lalu mencoba command-command yang tersedia. Output yang kurang lebihnya sebagai berikut.

Output

Dapat dilihat output yang dikeluarkan kurang lebih seperti gambar di atas
Sekian dari saya, semoga bermanfaat.


~F