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
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 ini terjadi, konvensi yang disarankan adalah menambahkan garis bawah.
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
• 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.
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 :
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
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
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).
2. Buat file JAR yang berisi file dan sumber kelas aplikasi Anda dengan menjalankan perintah
baris perintah yang sesuai:
% cd path/to/classes
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.
• Lebih kompleks untuk diprogram saat Anda menambahkan lapisan dan fungsionalitas.
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
Aplikasi tiga tingkat menambahkan program ketiga ke dalam campuran, seperti database, di
mana server menyimpan datanya.
• Program klien bisa berupa applet yang berjalan melalui halaman web html.
• 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.
- 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
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
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
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.
/* 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.
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.
Metohd Deskripsi
public void deposit(int amt) Memperbarui saldo dengan
jumlah deposit.
public void withdraw(int amt) Memperbarui saldo dengan
jumlah penarikan
public void setaccountname(String Mengatur nilai nomor akun
name)
public void setaccountnum(int num) Menetapkan nilai saldo akun
public void setbalance(int num) Mengembalikan nilai nama
akun
public String getaccountname ( ) Mengembalikan nilai nama
akun
public int getaccountnum ( ) Mengembalikan nilai nomor
rekening
public int getbalance ( ) Mengembalikan nilai saldo
akun
public void print( ) Mencetak nama akun,
nomor rekening dan nilai
saldo akun
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.
Metohd Deposito
Berikut adalah kode untuk metode deposit.
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
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
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.
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{
}
Metode create, withdraw, deposit, dan display memanipulasi data dalam array untuk
menghasilkan hasil yang diinginkan.
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
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 langkah-
langkah 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
//Display tempAccount
displayJTextArea.setText(tempAccount.getaccountname() + " " +
tempAccount.getaccountnum() + " " + tempAccount.getbalance());
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 Saldo
Create Ade Irma 11556 300
Create Nadia 22338 500
Create Dhani 44559 1000
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
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
Bila Kelas Bisa Dikelompokkan atau Dikenakan Kelas bisa dikelompokkan bila:
• Kelas tidak dinyatakan final.
• Metodenya bersifat publik atau dilindungi.
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
Menerapkan kata kunci di Jawa yang digunakan saat kelas mewarisi sebuah antarmuka
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
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