MODUL 1 MEMBANGUN APLIKASI JAVA 1.1 Tujuan Tujuan Pembelajaran dari materi ini adalah : a. Mendeskripsikan konsep pada paket b. Mendeskripsikan bagaimana membangun aplikasi c. Mendeskripsikan secara komplit aplikasi java yang didalamnya terdapat database 1.2 Definisi Paket Paket adalah kumpulan kelas Java. Pikirkan sebuah paket sebagai folder pada harddisk. Untuk menentukan paket, tentukan nama paket di baris pertama definisi kelas menggunakan kata kunci paket. Sebagai contoh: package graphics; // Rectangle will be part of the graphics package class Rectangle{ } Menggunakan File Java yang Disimpan dalam Paket Bila ingin program menggunakan file Java yang tersimpan dalam sebuah paket, pastikan paket itu tercantum dalam pengaturan CLASSPATH, dengan cara ini file dapat ditemukan dan digunakan, Sebuah kelas hanya bisa dalam satu paket. Menamai sebuah Paket Programmer di seluruh dunia menulis class dan interface/antarmuka dengan menggunakan bahasa pemrograman Java, kemungkinan beberapa akan menggunakan nama yang sama untuk jenis yang berbeda. Pada, contoh sebelumnya tidak seperti diatas: Ini mendefinisikan kelas Rectangle ketika sudah ada kelas Rectangle di paket java.awt. Namun, compiler memungkinkan kedua kelas memiliki nama yang sama jika berada dalam paket yang berbeda. Nama paket dan nama paket lebih berkualitas Nama yang memenuhi syarat masing-masing kelas Rectangle mencakup nama paket. Nama kelas Rectangle yang memenuhi syarat dalam paket grafis adalah graphics.Rectangle. Nama lengkap kelas Rectangle yang memenuhi syarat dalam paket java.awt adalah java.awt.Rectangle. Ini bekerja dengan baik kecuali dua pemrogram independen menggunakan nama yang sama untuk paket mereka. Namun, konvensi mencegah masalah ini. Konvensi penamaan paket Nama paket ditulis dalam huruf kecil untuk menghindari konflik dengan nama kelas atau antarmuka. Perusahaan menggunakan nama domain internet terbalik mereka untuk memulai nama paket mereka. - Sebagai contoh, com.example.mypackage untuk sebuah paket bernama mypackage yang dibuat oleh programmer di example.com. - Jika seorang programmer di code.org juga membuat sebuah paket bernama mypackage, maka nama paketnya perlu org.code.mypackage untuk mengikuti konvensi yang dibuat dan untuk menghindari tabrakan dengan com.example.mypackage. Untuk nama paket yang tabrakan yang terjadi dalam satu perusahaan perlu ditangani oleh konvensi di dalam perusahaan itu. Misalnya, sertakan wilayah atau nama proyek setelah nama perusahaan (com.example.region.mypackage). Paket dalam bahasa Java sendiri dimulai dengan java. atau javax Bila Nama Domain Internet Tidak Valid Dalam beberapa kasus, nama domain internet mungkin bukan nama paket yang valid. Hal ini dapat terjadi jika: • Nama domain berisi tanda hubung atau karakter khusus lainnya. • Nama paket dimulai dengan digit atau karakter lain yang ilegal digunakan sebagai permulaan nama Java. • Nama paket berisi kata kunci Java yang dipesan, seperti "int". Bila ini terjadi, konvensi yang disarankan adalah menambahkan garis bawah. Nama paket yang dapat digunakan Nama Domain Awalan nama domain hyphenatedname.example.org org.example.hyphenated_ name example.int int_.example 123name.example.com com.example._123name Informasi Tentang Konversi ke Nama Paket Tanda hubung di nama domain digantikan dengan garis bawah dalam nama paket Kata Int dalam nama domain adalah kata kunci sehingga diikuti oleh garis bawah dalam nama paket. Nama dengan diawali nomor itu diberikan garis bawah dalam nama paket. Cara Menggunakan Paket Untuk menggunakan anggota paket publik dari luar paketnya, Anda harus melakukan salah satu dari yang berikut: • Merujuk ke anggota dengan nama yang memenuhi syarat. • Impor anggota paket. • Impor seluruh paket anggota. Paket yang diimpor untuk mendapatkan kelas tertentu untuk digunakan dalam program Anda. • Anda dapat melewatkan mengimpor dan merujuk ke paket dengan nama yang memenuhi syarat. • Nama yang memenuhi syarat untuk kelas Rectangle yang dideklarasikan dalam paket grafis pada contoh sebelumnya adalah: graphics.Rectangle Untuk merujuknya di program Anda tanpa mengimpor kelas atau paket: graphics.Rectangle myRect = new graphics.Rectangle(); • Nama yang memenuhi syarat baik-baik saja untuk penggunaan yang tidak biasa. • Bila sebuah nama digunakan berulang-ulang, bagaimanapun, mengetik nama berulang kali menjadi membosankan dan kode menjadi sulit dibaca. • Sebagai alternatif, Anda bisa mengimpor anggota atau paketnya dan kemudian menggunakan nama sederhananya. Mengimpor Anggota Paket Untuk mengimpor anggota tertentu ke dalam file saat ini, masukkan pernyataan impor di awal file sebelum definisi jenis apa pun kecuali setelah pernyataan paket, jika ada. Sebagai contoh, berikut adalah bagaimana Anda akan mengimpor kelas Rectangle dari paket grafis yang dibuat di bagian sebelumnya. import graphics.Rectangle; Untuk merujuk ke kelas Rectangle dengan nama yang sederhana dapat seperti contoh dibawah ini : Rectangle myRectangle = new Rectangle(); Impor Seluruh Paket Jika Anda menggunakan banyak jenis dari sebuah paket, Anda harus mengimpor seluruh paket. Untuk mengimpor semua jenis yang terdapat dalam paket tertentu, gunakan pernyataan impor dengan karakter wildcard asterisk (*) Import.graphics.*; Sekarang Anda bisa merujuk ke kelas atau antarmuka dalam paket grafis dengan nama sederhananya. Tanda asterisk dalam pernyataan impor hanya dapat digunakan untuk menentukan semua kelas dalam satu paket Circle myCircle = new Circle(); Rectangle myRectangle = new Rectangle(); Hierarki Paket Pada awalnya, paket tampak hierarkis, tapi ternyata tidak. Sebagai contoh: • Java API menyertakan paket java.awt, paket java.awt.color, paket java.awt.font, dan banyak lainnya yang dimulai dengan java.awt. • Namun, paket java.awt.color, paket java.awt.font, dan paket java.awt.xxxx lainnya tidak termasuk dalam paket java.awt. • Awalan java.awt (Java Abstract Window Toolkit) digunakan untuk sejumlah paket terkait untuk membuat hubungan terbukti, namun tidak untuk menunjukkan inklusi. Mengimpor Subpackages Saat mengimpor paket, Anda hanya mendapatkan kelas pada tingkat paket itu. Sub paket tidak disertakan dan perlu diimpor secara terpisah. Importing java.awt.* Mengimpor java.awt. * Mengimpor semua jenis paket java.awt, tapi tidak mengimpor java.awt.color, java.awt.font, atau paket java.awt.xxxx lainnya. Jika Anda berencana untuk menggunakan kelas dan jenis lainnya di java.awt.color dan juga di java.awt, Anda harus mengimpor kedua paket dengan semua file mereka: import java.awt.*; import java.awt.color.*; Mengembangkan Aplikasi Akhirnya Anda siap untuk mengembangkan aplikasi Anda sehingga pengguna bisa menjalankannya dari luar development environment (IDE). Ada dua jenis teknologi mengembangkan yang tersedia di JavaTM 2 Standard Edition (J2SE) untuk menerapkan aplikasi Java clientide di desktop: • Java Plug-in • Java Web Start Plug-in Java Java Plug-in: • Adalah alat yang digunakan untuk mengembangkan applet Java yang berjalan di dalam browser web. • Browser web yang didukung meliputi: Internet Explorer, Mozilla Firefox, Google Chrome dan Apple Safari. • Menggunakan Web Start untuk menyebarkan aplikasi Java mandiri di desktop, menggunakan JNLP (Java Network Launching Protocol). Langkah-langkah untuk Menyebarkan Aplikasi 1. Kompilasi kode Java aplikasi Anda dan pastikan semua file dan sumber kelas seperti gambar ada di direktori terpisah. 2. Buat file JAR yang berisi file dan sumber kelas aplikasi Anda dengan menjalankan perintah baris perintah yang sesuai: % cd path/to/classes % jar cvf Sample.jar SampleCode 3. Membuat file JNLP yang menjelaskan bagaimana aplikasi / applet Anda harus dijalankan. 4. Buat halaman HTML dari mana aplikasi / applet Anda akan diluncurkan. Invoke Deployment Toolkit berfungsi untuk mengembangkan aplikasi Java Web Start / applet. Sekali lagi lihat situs pada Langkah 3 untuk contoh kode. 5. Letakkan file JAR aplikasi, file JNLP, dan halaman HTML di folder yang sesuai. 6. Buka halaman HTML aplikasi di browser untuk melihat aplikasi / applet. Periksa log Java Console untuk pesan error dan debugging Dua Arsitektur Tier dan Three Tier Sampai saat ini, Anda telah menulis program yang merupakan satu sistem arsitektur tier. Satu sistem arsitektur tier: • Berjalan di satu komputer sekaligus. • Lebih kompleks untuk diprogram saat Anda menambahkan lapisan dan fungsionalitas. • Jenis fungsi mungkin termasuk: - Proses server dan klien. - Penyimpanan dan pengambilan basis data. Arsitektur Tier Konsep tingkatan menyediakan cara mudah untuk mengelompokkan berbagai kelas arsitektur komputer. • Jika aplikasi Anda berjalan pada satu komputer, itu memiliki arsitektur satu tingkat. • Jika aplikasi Anda berjalan di dua komputer, seperti aplikasi server web biasa yang berjalan pada browser Web (klien) dan server Web, maka ada dua tingkatan Dua dan Tiga Sistem Tier Dalam sistem two tier, Anda memiliki program klien dan program server. • Server merespons permintaan dari berbagai klien. • Klien biasanya memulai permintaan informasi dari satu server. Aplikasi tiga tingkat menambahkan program ketiga ke dalam campuran, seperti database, di mana server menyimpan datanya. Penyusunan Arsitektur Dua Tingkat Sistem dua tingkat biasanya terdiri dari klien dan program server. • Program server berjalan pada server web. • Program klien bisa berupa applet yang berjalan melalui halaman web html. • Applet akan berkomunikasi dengan program server untuk mendapatkan instruksi Dua Contoh Penerapan Arsitektur Tier Contoh arsitektur two tier adalah permainan catur dua pemain. • Setiap pengguna akan mengakses aplikasi klien, namun aplikasi server akan dibutuhkan untuk menangani komunikasi antara klien dan menentukan permainan game. • Untuk menerapkan sistem seperti itu, seseorang perlu mengatur aplikasi server agar otomatis dijalankan di server web dan meminta applet Java berkomunikasi dengan server melalui protokol http. Contoh Penerapan Tiga Tier Architecture Untuk mengubah permainan catur menjadi sistem tiga tingkat, kita bisa menambahkan database untuk menyimpan hasil permainan catur untuk kemudian mendapatkan peringkat dan pengambilan informasi pengguna. • Java menggunakan konektivitas JDBC untuk berkomunikasi dengan berbagai database. • Untuk menerapkan implementasi ini: - Database perlu dijalankan di server. - Aplikasi server Java harus memiliki konektivitas dengan menggunakan driver JDBC dan port yang sesuai untuk mengakses database. Latihan : 1. Gunakan kode java berikut dan letakkan ke dalam sebuah paket bernama greeting : public class MyName { private String name = "Jane"; public getName() { return name; } public setName(String name) { this.name = name; } public sayHello() { System.out.println(“Hi” + this.name); } } 2. Anda memiliki program yang perlu menggunakan metode sayHello. Apa yang perlu Anda sertakan dalam program java untuk mendapatkan sesuatu agar bekerja? 3. Bagaimana Anda bisa memanggil setName dalam sebuah program tanpa menggunakan pernyataan impor untuk paket itu? 4. Ambil salah satu Program Java Anda sebelumnya dan ikuti langkah-langkahnya untuk menyiapkannya untuk penempatan. Uji coba agar pengguna bisa menjalankannya dari luar IDE MODUL 2 Bekerja dengan kode Pre-Written 2.1 Tujuan Tujuan dari pembelajaran materi ini adalah : • Membaca dan memahami program Java pre-written yang terdiri dari kelas dan objek yang berinteraksi • Menerapkan konsep pewarisan dalam pemecahan masalah • Menguji kelas dalam isolasi • Menjelaskan kapan lebih tepat menggunakan ArrayList dari pada sebuah Array 2.2. Mengubah Program yang Ada Bila Anda memprogram dalam skenario dunia nyata, seperti untuk perusahaan, Anda akan sering mempertahankan dan memodifikasi program yang ada. • Dalam banyak kasus, masalah bisnis yang Anda selesaikan akan terkait dengan program yang ada yang ditulis oleh pemrogram lain. • Mampu memodifikasi program yang ada adalah keterampilan berharga yang harus Anda terapkan dalam sebagian besar peran pemrograman Skenario Kode Pra-Tertulis Bayangkan sebuah aplikasi perbankan. • Apa yang harus dilakukan aplikasi perbankan? - Izinkan pengguna untuk: Buat akun, deposit di akun, tarik dari akun, tampilkan saldo akun, dan hitung bunga. • Apa saja komponen aplikasi perbankan? - Akun • Apa yang harus dilakukan masing-masing komponen? - Buat, deposit, dan withdraw. Langkah-langkah untuk Menginstal Studi Kasus JavaBank 1. Pindahkan file JavaBank.jar.zip ke lokasi yang nyaman di komputer Anda. Jangan unzip file. 2. Jalankan Eclipse. 3. Pilih lokasi ruang kerja dan jalankan WorkBench. Langkah-langkah untuk Impor File Kode ke Workspace 1. Klik File, lalu Import. 2. Buka folder General. 3. Pilih Proyek yang Ada ke dalam Workspace. 4. Klik Next. 5. Klik Pilih file folder dan klik Browse dan cari file JavaBank.jar.zip. Klik open. 6. Pastikan keempat proyek (JavaBank (bin), JavaBank, JavaBankList, dan JavaBankListDel) ada. 7. Klik Finish. 8. Klik Yes to All bila diminta untuk menimpa file. Menjalankan JavaBank Untuk menjalankan JavaBank, kompilasi dan jalankan aplikasi JavaBank.java. Jendela JavaBank akan muncul. Saat Anda menjalankan program yang ditulis oleh orang lain, biasanya ada panduan pengguna. Tidak ada panduan pengguna yang tersedia karena terserah pada Anda untuk bereksperimen dengan aplikasi ini Bereksperimen dengan JavaBank Jalankan programnya. • Anda harus menyimpan jurnal eksplorasi Anda dan mencatat perilaku aplikasi. • Catat fitur yang menurut Anda harus ditambahkan. • Ini akan membantu pemahaman Anda saat Anda mulai menyelidiki kode yang mendasarinya Memeriksa Kode Pre-Written Saat Anda menerima program seperti JavaBank, dan Anda tidak terbiasa dengan kode ini, penting bagi Anda untuk bereksperimen dengan aplikasi ini sebelum memeriksa kode yang mendasarinya. Anda telah mencoba menggunakan aplikasi dan mencatat perubahan dan fungsi tambahan yang ingin Anda tambahkan. Sekarang periksa kode yang mendasari untuk menjadi terbiasa dengan bagaimana aplikasi bekerja. Pertimbangan Saat Memeriksa Kode Saat memeriksa kode, perhatikan hal berikut ini: • Carilah komentar di kode // Komentar baris tunggal didahului dengan garis miring ganda /* Komentar yang mencakup lebih dari satu baris diliputi oleh garis miring terbalik dan tanda bintang */ • Identifikasi kelas. Periksa setiap kelas dan baca komentar terkait untuk mendapatkan pemahaman tentang struktur program. Kelas adalah cetak biru untuk sebuah objek. Sebuah kelas menggambarkan apa yang diketahui dan dilakukan objek. Teknik Saat Memeriksa Kode Berikut adalah beberapa teknik lain untuk mencoba saat membaca kode: • Jalankan ulang aplikasi. • Pelajari struktur kode tingkat tinggi dan kemudian temukan titik masuk dan bagaimana cabangnya dari sana. • Memahami konstruksi. • Lakukan beberapa pengujian. Jika Anda masih memiliki masalah dalam memahami kodenya, mintalah orang lain untuk memikirkannya. Jangkau programmer lain di forum pemrogram. Kelas Account Periksa kelas Account dan catatlah jumlah: • Konstruktor • Metode - Berapa banyak metode yang diakses? - Berapa banyak metode yang mutator? Accessor adalah metode yang dapat mengakses isi objek namun tidak memodifikasi objek tersebut. Sebuah mutator adalah metode yang bisa memodifikasi suatu objek. Konstruktor di Kelas Account Kelas Account memiliki dua konstruktor: • Account konstruktor default () menetapkan Nama Akun menjadi "KOSONG", Nomor Rekening ke 0 dan Saldo ke 0. • Akun konstruktor yang kelebihan muatan (nama String, int num, int amt) mengambil nilai sebagai parameter dan tetapkan nilai ini ke instance Akun yang sedang dibuat. Metode dalam Account Class simpanan void publik (int amt) Memperbarui saldo dengan jumlah deposit. public void withdraw (int amt) Memperbarui saldo dengan jumlah penarikan. public void setaccountname (nama String) Mengatur nilai nama akun. public void setaccountnum (int num) Mengatur nilai nomor akun. public void setbalance (int num) Menetapkan nilai saldo akun. public String getaccountname () Mengembalikan nilai nama akun. public int getaccountnum () Mengembalikan nilai nomor rekening. public int getbalance () Mengembalikan nilai saldo akun. cetak void publik () Mencetak nama akun, nomor rekening dan nilai saldo akun. Ini termasuk untuk mengakomodasi pengujian isolasi. Metohd public void deposit(int amt) public void withdraw(int amt) public void setaccountname(String name) public void setaccountnum(int num) public void setbalance(int num) public String getaccountname ( ) public int getaccountnum ( ) public int getbalance ( ) Deskripsi Memperbarui saldo dengan jumlah deposit. Memperbarui saldo dengan jumlah penarikan Mengatur nilai nomor akun Menetapkan nilai saldo akun Mengembalikan nilai nama akun Mengembalikan nilai nama akun Mengembalikan nilai nomor rekening Mengembalikan nilai saldo akun public void print( ) Mencetak nama akun, nomor rekening dan nilai saldo akun Pengujian Kelas dalam Isolasi Saat membuat kelas, ada baiknya berlatih kelas secara mandiri sebelum mengujinya dalam aplikasi untuk mendeteksi masalah pada kode tersebut. Ini dikenal sebagai pengujian isolasi atau pengujian unit. Tujuan utama pengujian unit adalah untuk memverifikasi bahwa unit individu (kelas, di Java) bekerja dengan benar sebelum digabungkan dengan komponen lain dalam sistem. Setelah membuat kelas, ujilah secara terpisah dengan membuat program kecil yang memanggil konstruktor, pengubah, dan pengakses. Contoh Uji Program Unit Contoh program uji unit di bawah ini memiliki instance utama dan membuat instance dari kelas Akun. Contoh Pengujian Kelas dalam isolation public class testAccount { public static void main(String[] args) { // Instantiate account using constructor with values Account A1 = new Account("Irma",123456,300); // Instantiate account using default constructor Account A2 = new Account(); Account A3 = new Account(); A2.setaccountname("Nadia"); A2.setaccountnum(22338); A2.setbalance(500); A3.setaccountname("Ilya Mustafana"); A3.setaccountnum(44559); A3.setbalance(1000); // Print accounts A1.print(); A2.print(); A3.print(); } } Metohd Deposito Berikut adalah kode untuk metode deposit. public void deposit(int amt) { balance=balance+amt; } Bila metode ini dipanggil, nilai dari kotak edit dilewatkan sebagai amt dan ditambahkan ke saldo instance akun saat ini. Tindakan serupa dilakukan dengan metode withdrawal dan setaccountname, setaccountnum dan setbalance. Method Getaccountname Dibawah ini koding untuk method getaccountname public String getaccountname ( ) { return accountname; } Bila metode ini dipanggil, nilai nama akun instance akun saat ini dikembalikan ke metode pemanggilan. Tindakan serupa dilakukan dengan metode getaccountnum dan getbalance. Method Getaccountname Dibawah ini kode untuk method getaccountname. public String getaccountname ( ) { return accountname; } Bila metode ini dipanggil, nilai accountname instance saat ini dikembalikan ke metode pemanggilan. Tindakan serupa dilakukan dengan metode getaccountnum dan getbalance Pewwarisan/Inheritance Pewarisan adalah ketika Anda memiliki satu kelas yaitu kelas induk (disebut kelas super) dan kelas lain yaitu kelas anak (disebut sub kelas). Kelas anak dikatakan berasal dari kelas induk. Alasan untuk memiliki kelas anak adalah menjaga agar informasi tetap terpisah. Anak bisa mewarisi semua metode dan bidang dari induknya, tapi kemudian bisa bertindak mandiri. Menggunakan kata kunci extend Gunakan kata kunci extend saat membuat subkelas baru untuk menghubungkan kelas yang ada. • Ini akan menghubungkan kelas Akun sebagai Rekening Kredit yang memiliki perilaku yang sama dengan akun standar namun akan menambahkan kemampuan untuk menetapkan batas kredit. • Kelas CreditAccount akan mewarisi semua metode dari kelas Account. public class CreditAccount extends Account{ } ArrayList atau Array? Aplikasi JavaBank menggunakan Array untuk menyimpan data di akun. Metode create, withdraw, deposit, dan display memanipulasi data dalam array untuk menghasilkan hasil yang diinginkan. Di Java, sebuah Array memiliki panjang tetap. • Setelah array dibuat, programmer perlu mengetahui panjang Array karena ukuran tidak dapat tumbuh atau menyusut. • Jika Anda memiliki situasi di mana Anda tidak dapat memprediksi jumlah objek yang akan Anda simpan, maka alih-alih menggunakan Array, Anda bisa menggunakan ArrayList. Operasi ArrayList Dalam Array, Anda perlu mengetahui panjang dan jumlah elemen saat ini yang tersimpan. Dalam ArrayList Anda dapat menggunakan perilaku yang telah ditetapkan untuk melakukan operasi ini. • IsEmpty: Mengembalikan nilai true jika daftar ini tidak berisi elemen. • ukuran: Mengembalikan jumlah elemen dalam daftar ini Operasi ArrayList add Deskripsi Tambahkan ke akhir daftar ini. clear Hapus semua elemen dari daftar ini. contains get remove set TrimToSize berisi Returns true jika daftar ini berisi elemen yang ditentukan. dapatkan kembali elemen pada posisi yang ditentukan dalam daftar ini. Hapus Menghapus elemen dalam daftar ini Menggantikan elemen pada posisi yang ditentukan dalam daftar ini Potong kapasitas instance ArrayList ini menjadi ukuran daftar saat ini ArrayList di JavaBank Dalam aplikasi JavaBank, Anda dapat menggunakan ArrayList menggantikan Array myAccounts ke: • Secara dinamis menyimpan akun. • Simpan rekening tabungan dan kredit. • Gunakan operasi ArrayList untuk menambahkan, menghapus, mencari, dan sebagainya. • Kurangi jumlah kode yang diperlukan Latihan Jika Anda tidak menginstal Studi Kasus JavaBank selama pelajaran, ikuti langkahlangkah ini. Untuk menginstal JavaBank: • Unzip file JavaBank.jar.zip dan pindahkan ke lokasi yang nyaman di komputer Anda. • Di Eclipse, pilih File → New → Java Project. • Pilih "Buat proyek dari sumber yang ada". • Klik Browse. • Pilih folder proyek pertama dari lokasi yang telah Anda download dan mengekstrak file JavaBank.jar.zip. • Klik OK. • Klik Finish. • Di jendela Package Explorer, pilih proyek. • Dari menu, pilih Project → Properties. • Klik Java Build Path. • Pilih tab Libraries. • Klik tombol Add External JARs .... • Arahkan ke folder yang berisi Banking.jar. Pilih file Banking.jar. • Klik tanda + di sebelah Paket Default dan jalankan aplikasi Banking.java 2. Periksa kode di JavaBankList untuk melihat bagaimana cara mendeklarasikan dan menggunakan ArrayList Accounts. // ArrayList to store Account details ArrayList<Account> Accounts = new ArrayList<Account>(); replaces // Array to store Account details static Account myAccounts[] = new Account[MaxAccounts]; 3. Uji kode di JavaBankList untuk melihat bagaimana kode dibuat pada akun menggunakan ArrayList. //add a new account to the list using the Account constuctor Accounts.add(new Account(Name,Accountnum,Balance)); //Set a temp Account for display purposes Account tempAccount = (Account)Accounts.get(noAccounts); //Display tempAccount displayJTextArea.setText(tempAccount.getaccountname() + " " + tempAccount.getaccountnum() + " " + tempAccount.getbalance()); 4. Periksa kode di JavaBankArrayList untuk melihat bagaimana kode untuk membuat deposit atau withdrawal digunakan. 5. Amandemen program JavaBankArrayList untuk menghapus akun dengan menggunakan operasi hapus. Petunjuk: Ini serupa dengan operasi yang ditetapkan untuk transaksi. 6. Unit menguji kode baru Anda. 7. Jelajahi JavaBank. Catat pengamatan Anda dan jawaban atas pertanyaan berikut di jurnal Anda. • Apa yang terjadi saat Anda: ◦ Tampilkan Akun ◦ Buat Akun ◦ Hapus Akun ◦ Buat Transaksi Penarikan ◦ Lakukan Transaksi Deposito • Dapatkah Anda menampilkan akun sebelum ada yang dibuat? • Dapatkah Anda membuat akun tanpa memasukkan apapun di kolom? • Dapatkah Anda melakukan transaksi penarikan dengan jumlah di kolom Withdrawal? • Dapatkah Anda melakukan transaksi deposit tanpa jumlah di bidang Deposito? • Pertanyaan lain apa yang Anda miliki tentang aplikasi JavaBank? • Perubahan apa yang akan Anda buat pada aplikasi saat ini agar fungsinya lebih baik? • Penambahan apa yang akan Anda lakukan pada aplikasi saat ini untuk meningkatkan fungsinya? 8. Periksa file kode dan catat jawaban atas pertanyaan berikut di Journal Anda. • Berapa banyak file kode yang ada? • Dimana kode utama? • Apa panggilan utama? • Apa yang dipanggil saat Anda mengklik tombol create? • Pertanyaan lain apa yang Anda miliki tentang aplikasi JavaBank? • Perubahan apa yang akan Anda buat pada aplikasi saat ini agar fungsinya lebih baik? • Tambahan apa yang akan Anda buat pada aplikasi untuk meningkatkan fungsinya? 9. Jalankan JavaBank dan lakukan tindakan berikut: Aksi Nama Nasabah Nomor Rekening Create Ade Irma 11556 Create Nadia 22338 Create Dhani 44559 Saldo 300 500 1000 Tampilkan akun untuk memastikannya telah dibuat. 10.Performasikan transaksi berikut dan tampilkan akun untuk memastikan semuanya telah selesai. Aksi Penarikan Simpanan Penarikan Nama Nasabah Ade Irma Nadia Andi S Nomor Rekening Saldo 11556 22338 44559 100 200 700 • Apa saja metode accessor di kelas akun? • Prosedur mana yang memanggil accessors ini? • Apa metode modifikatornya? • Prosedur manakah yang memanggil pengubah ini? MODUL 3 Perancangan Kelas Java 3.1 Tujuan Pelajaran ini mencakup topik-topik berikut: • Membuat model masalah bisnis menggunakan kelas Java • Membuat kelas tidak berubah • Bandingkan tingkat akses default dan publik • Gunakan instanceof operator untuk membandingkan tipe objek • Menggunakan metode virtual doa • Gunakan gips ke atas dan ke bawah 3.2 Kelas (class) Kelas Java adalah template yang mendefinisikan fitur satu atau lebih objek. • Sebuah kelas dapat dianggap sebagai kategori yang digunakan untuk mendefinisikan kelompok benda. • Kelas: - Menentukan dan menerapkan metode. - Melaksanakan metode dari antarmuka yang diterapkan Kelas apa yang bisa dan tidak bisa saya lakukan Kelas dapat: • Menyatakan konstanta dan variabel. • Mewarisi metode dari kelas lain. • Tentukan dan implementasikan metode. • Menggantikan metode yang diwariskan bila metode ini bersifat publik atau dilindungi Kelas dapat: • Jadilah instantiated oleh: - Konstruktor publik atau yang dilindungi. - Metode statis atau statis yang dilindungi atau dilindungi. Kelas tidak bisa: • Mengganti metode yang diwariskan bila metodenya sudah final Bila Kelas Bisa Dikelompokkan atau Dikenakan Kelas bisa dikelompokkan bila: • Kelas tidak dinyatakan final. • Metodenya bersifat publik atau dilindungi. Kelas bisa tidak berubah dengan: • Membuatnya final. • Membatasi instantiasi ke konstruktor kelas. • Menghilangkan metode yang mengubah variabel contoh super () Metode Call Panggilan metode super () memungkinkan Anda memanggil kelas induk dalam hirarki kelas. Dalam kasus ini, kelas bersarang statis memperluas perilaku kelas yang bersangkutan. Kelas bersarang statis juga menyediakan sarana untuk memberi instantiasi kelas yang terkandung saat konstruktornya dikonfigurasi sebagai akses pribadi. Ini adalah cara kedua untuk memberi instantiate kelas yang memiliki kualifikasi akses terbatas atau pribadi untuk konstruktor kelasnya. Interface Antarmuka adalah konstruk Java yang membantu menentukan peran yang dapat diasumsikan oleh suatu objek. Ini diimplementasikan oleh kelas atau diperluas oleh antarmuka lain. • Antarmuka menentukan koleksi metode terkait tanpa implementasi. • Semua metode dalam antarmuka Java bersifat abstrak Kemungkinan Antarmuka Antarmuka memberi pengembang dua kemungkinan: • Mereka dapat mengembangkan kelas konkret yang hanya mengimplementasikan antarmuka dan kemudian menggunakan kelas itu dengan menciptakan variabel tipe itu. - Ini berarti kelas yang merupakan salinan kelas dan memiliki perilaku melalui agregasi. - Agregasi hanyalah proses mendapatkan akses terhadap perilaku tipe objek saat Anda mendeklarasikan variabel tipe itu di kelas. • Mereka dapat mengembangkan kelas beton yang mengimplementasikan satu atau banyak antarmuka Apa Antarmuka yang Dapat Anda Lakukan Antarmuka: • Dapat mengumumkan konstanta publik. • Mendefinisikan metode tanpa implementasi. • Hanya bisa mengacu pada konstanta dan metode yang didefinisikan. • Dapat digunakan dengan instance dari operator Sementara kelas hanya bisa mewarisi superclass tunggal, kelas bisa mengimplementasikan lebih dari satu antarmuka public class className implements interfaceName { ...class implementation...} Menerapkan kata kunci di Jawa yang digunakan saat kelas mewarisi sebuah antarmuka Metode Antarmuka (Interface) Metode antarmuka: • Dalam sebuah antarmuka, setiap metode bersifat publik meskipun Anda lupa mendeklarasikannya sebagai publik. • Secara implisit abstrak tapi Anda juga bisa menggunakan kata kunci abstrak Latihan 1. Buat sebuah antarmuka bernama Chassis: • String konstan publik yang diberi nama chassis dengan nilai "Chassis". • Definisi metode getChassisType publik yang mengembalikan sebuah instance dari Chassis. • Definisi dari setChassisType publik yang menerima sebuah string bernama vehicleFrameType dan mengembalikan sebuah kekosongan. 1. Buat sebuah antarmuka Engine dengan daftar definisi metode umum berikut yang mengembalikan kekosongan: setEngineCylinders(int engineCylinders); setEngineManufacturedDate(Date date); setEngineManufacturer(String manufacturer); setEngineMake(String engineMake); setEngineModel(String engineModel); setDriveTrain(String driveTrain); setEngineType(String fuel); setEngineType (String fuel); 2. Buat kelas beton naned VehicleChassis yang mengimplementasikan antarmuka Chassis dengan berikut: • Buat String bernama chassisName instance variable. • Konstruktor default publik dan konstruktor kelebihan muatan dengan nilai berikut: ◦ String dengan nilai parameter chassisName ◦ Tetapkan variabel instance chassisName di keduanya, gunakan "Unibody" sebagai nilai String default. • Metode publik bernama getChassisType yang tidak memiliki parameter formal dan mengembalikan instance dari antarmuka Chassis (petunjuk yang akan menjadi salinan kelas ini). • Metode publik setChassisType yang mengambil parameter String vehicleChassis dan mengembalikan sebuah kekosongan. Ini harus mengatur variabel instance chassisName. • Metode toString publik yang mengembalikan hal berikut: Chassis Name : Chassis • Tuliskan metode utama statis yang menciptakan dua objek, satu dengan konstruktor default dan yang lainnya dengan konstruktor dengan parameter. Berikan data sampel untuk parameternya. 1. Buat kelas beton bernama VehicleFrame yang mengimplementasikan antarmuka Chassis dengan berikut: • Buat variabel instance instance vehicleFrameType bernama String. • Konstruktor default publik dan konstruktor kelebihan muatan dengan nilai berikut: String dengan nilai parameter vehicleFrameType ◦ Tetapkan instance instance vehicleFrameType di keduanya, gunakan "Unibody" sebagai nilai String default. • Metode publik bernama getChassisType yang tidak memiliki parameter formal dan mengembalikan instance dari antarmuka Chassis (petunjuk yang akan menjadi salinan kelas ini). • Metode publik setChassisType yang mengambil parameter String vehicleChassis dan mengembalikan sebuah kekosongan. Ini harus mengatur variabel instance chassisName. • Metode toString publik yang mengembalikan hal berikut: Chassis : Chassis Vehicle Frame : Unibody • Tuliskan metode utama statis yang menguji dua skenario: ◦ Salah satu yang mencetak semua nilai bahan bakar, seperti: Chassis : Chassis Vehicle Frame : Unibody ◦ Salah satu yang mencetak nilai yang ditetapkan oleh satu nilai string Vehicle Frame : Unibody MODUL 4 Generic dan Koleksi 4.1 Tujuan Pelajaran ini mencakup topik berikut: • Membuat kelas generik sesuai kebutuhan • Menggunakan tipe antarmuka diamond untuk membuat objek • Membuat koleksi tanpa menggunakan generik • Membuat koleksi dengan menggunakan generik 4.2 Kelas Generik Kelas Generik Kelas generik adalah kelas khusus yang mengasosiasikan satu atau lebih tipe Java yang tidak ditentukan berdasarkan instantiasi. Berikut adalah contoh bagaimana menginisialisasi kelas generik dengandua tipe java public class Example<Type1, Type2>{ private Type1 t1; private Type2 t2; //You may include methods that set each of the types to the types that are initiated when a new object of this class is created Jenis Antarmuka Berlian Intan antarmuka jenis memungkinkan Anda membuat metode generik seperti metode biasa, tanpa menentukan jenis di antara kurung siku sudut. • <Type1, Type2> adalah tipe antarmuka berlian untuk contoh pada slide sebelumnya. Mengapa berlian? - Kurung sudut sering disebut sebagai berlian <>. - Biasanya jika hanya ada satu jenis di dalam berlian, kita menggunakan <T> di mana T singkatan untuk Type.