0% menganggap dokumen ini bermanfaat (0 suara)
50 tayangan

Modul PBO

Diunggah oleh

aderiwudjami
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
0% menganggap dokumen ini bermanfaat (0 suara)
50 tayangan

Modul PBO

Diunggah oleh

aderiwudjami
Hak Cipta
© © All Rights Reserved
Kami menangani hak cipta konten dengan serius. Jika Anda merasa konten ini milik Anda, ajukan klaim di sini.
Format Tersedia
Unduh sebagai PDF, TXT atau baca online di Scribd
Anda di halaman 1/ 72

BAB

I
BERKENALAN DENGAN JAVA
Text Editor NetBeans IDE 8.1
A. Apa Itu Java…?

J ava merupakan bahasa pemrograman tingkat tinggi yang


dipelopori oleh James Gosling yang merupakan engineer di
Sun Microssystem. Java mulai dibangun pada tahun 1991.
Versi alpha dan beta. Java dirilis pada tahun 1995, empat tahun
setelah projct Java diinisiasi. Pada tahun 2010, Sun Microsystem
diakuisisi oleh Oracle dan menjadikan Java dikembangkan di
bawah kuasa Oracle.

Versi- versi Java yang pernah dirlis yaitu:


1. JDK Alpha and Beta (1959)
2. JDK 1.0 (23 Januari 1996)
3. JDK 1.1 (19 Februari 1997)
4. J2SE 1.2 (8 Desember 1998)
5. J2SE 1.3 (8 Mei 2000)
6. J2SE 1.4 (6 Februari 2002)
7. J2SE 5.0 (30 September 2004)
8. Java SE 6 (11 Desember 2006)
9. Java SE 7 (18 Juli 2011)
10. Java SE 8 (18 Maret 2014)
11. Java SE 9 (21 September 2017)

Java merupakan salah satu bahasa yang sangat popular saat ini .
beberapa edisipun diciptakan seperti J2EE untuk Aplikasi
Enterprise dan J2ME untuk Aplikasi Mobile. Alasan lain kenapa

1
bahasa Java sangat digemari dan sangat popular saat ini adalah
karena JAVA dapat berjalan di berbagai platform sitem operasi.
Sehingga JAVA pun dikenal dengan istilah Write Once, Run
Anywhere.

Menurut Sun JAVA memiliki 9 keunggulan yakni:


1. Simpel
Java merupakan bahasa yang simple sehingga muda
dipahami.bermodalkan pengetahuan pengetahuan
programming dasar secara otomatis pemrograman Java
akancepat dipahami.
2. Berorientasi Objek
Java menggunakan Konsep Pemrograman berorientasi
Objek sehingga pembuatan aplikasi bisa dilakukan lebih
modular.
3. Kuat
Java didesain untuk membuat aplikasi yang memiliki
reliabilitas timggi. Salah satu cara dari Java untuk membuat
Program yang memiliki reliabilitas tinggi yaitu dengan
mengeliminasi situasi error dengan meme
riksanya pada compile dan runtime.
4. Aman
Java didesain untuk digunakan pada lingkungan yang
terdistribusi. Keamanan merupakan hal yang penting dalam
lingkungan yang terdistribusi. Fitur-fitur keamanan yang
dimiliki Java mambuat perangkat lunak yang dibuat tidak
bisa diserang dari luar atau disisipi virus.
5. Arsitektur Netral
Aplikasi yang dibuat menggunakan Java merupakan
Aplikasi yang Platform Independent. Aplikasi hanya perlu
satu buah versi yang bisa dijalankan pada platform sistem
operasi yang berbeda.

2
6. Portable
Java dengan karakteristik arsitektur netralnya membaut Java
tidak bergantung pada mesin tertentu atau dengan kata lain
Java sangatlah portable.
7. Performa Tinggi
Java Sangat memperhatikan performa. Dengan pengenalan
Just In Time Compilation, Proses kompilasi Java menjadi
lebih cepat.
8. Multithreaded
Java memungkinkan pembuatan aplikasi yang bisa
melakukan beberapa pekerjaan secara bersamaan.
9. Dinamis
Java lebih dinamis dibandingkan C atau C++ karena
didesain untuk dijalankan pada lingkungan yang dinamis.

B. Sekilas Tentang Sejarah Java

Sejarah Java dimulai tahun 1991. Yang dipeloporori oleh


sebuah tim yang menamai dirinya Engineer dari Sun Microsystem.
Tim ini juga di sebut sebagai Green Team dan dipimpin oleh James
Gosling. Pada awal mulanya bahasa yang dikembangkan oleh
Green Team disebut dengan nama Greentalk. Kemudian berubah
menjadi nama “Oak”. Lalu pada tahun 1995, Green Team menganti
nama bahasa tersebut menjadi “ Java” Karena Oak sudah menjadi
trademark dari Oak Technologies. Pada tahun yang sama Sun
Microsystem lalu merilis Java untuk yang pertama kalinya.
Kemudian pada 13 Desember 2006, Sun Microsystem merilis Java
dengan gratis dan Open Source dengan lisensi GNU General Publik
License (GPL). Tetapi pada tahun 2010, Sun Microsystem dibeli
oleh Oracle dan menjadikan Java dikembangkan dan dipelihara
dibawah kendali Oracle.

3
C. Apa yang perlu dipersiapkan agar bisa memulai
pemrograman JAVA..?

- Perangkat Keras (Hardware)


Minimum Komputer Pentium 2 266Mhz, RAM 128 MB.
- Perangkat Lunak (Software)
Sistem Operasi Windows XP/7/8/10 atau Ubuntu Linux
minimal Versi 12.04 atau Mac OS X minimal versi 10.8.3,
Java SE 8, IDE atau Text editor seperti Intellij IDEA,
Netbeans, Eclipse, Visual Studio Code, Sublime, Atom dan
sebagainya.

D. Mengenal Netbeans
NetBeans adalah suatu text editor pengembangan perangkat
lunak yang ditulis dalam bahasa pemrograman Java. Aplikasi
NetBeans IDE ini diperuntukkan bagi pengembangan dalam Java.
Namun, aplikasi ini juga mendukung program-program pembuatan
bahasa lain secara khusus seperti PHP, C/C++ dan HTML5.
Bagaimana memulai NetBeans IDE 8.1
Langkah-Langkah dalam mengoperasikan perangkat lunak
NetBeans IDE 8.1 untuk menjalankan Java
1. Patikan Dulu anda telah menginstal JDK dan NetBeans IDE
8.1 pada Labtop atau Komputer anda
2. Klik icon logo Windows (khusus Windowa 8) dan Klik
menu Start (untuk Windows 7 dan Windows 10)
3. Lalu Klik NetBeans IDE 8.1
4. Akan Tampil Interface sebagai berikut:

4
5. Kemudian Pilih File
6. Klik New Project lalu akan tampil interface berikut:

7. Klik Java Application ada di panel Project


8. Kemudian Next >
9. Akan muncul interface seperti berikut:

5
10. Berinama Project di Project Name
11. Tulis Lokasi penyimpanan di Project Location. Tekan
tombol Browse
12. Klik Set As Main Project, Sebagai Proyek Utama Anda.
13. Klik Create Main Class untuk class main baru.
14. Terakhir Finish. Interface yang tampil untuk kita memulai
membuat program dengan Java adalah sebagai berikut:

6
E. Dasar Pemrograman Berorientasi Objek di Java

Ada beberapa hal yang menjadi landasan dasar Java,


diantaranya adalah:
1. Kelas (Class)
Kelas (Class) adalah Rancangan atau sketsa/blueprint dari
sbuah objek. Class juga bisa dikatakan sebagai template
atau cetak biru yang mengambarkan “Tindakan” dan
“Sifat” suatu Objek. Sebelum kita dapat membuat sebuah
objek kita harus membuat rancangan dari objek tersebut
(class) terlebih dahulu. Secara umum class memiliki 2
macam anggota yaitu Field dan Method. Field dapat
diartikan sebagai atribut/hal-hal yang akan dimiliki oleh
objek dari class tersebut, sedangkan Method adalah aksi
atau tindakan yang dapat dilakukan oleh objek dari class
tersebut.
Contoh : Misalnya kita memiliki class bernama sapi. Field
dari class sapi dapat kita katakan apa saja yang dimiliki
oleh sapi (contoh: Jumlah kaki, nama sapi, umur sapi)
sedangkan method dari class sapi dapat kita katakana

7
sebagai apa saja yang dapat dilakukan oleh seekor sapi
(contoh: Makan, Minum, Tidur, berjalan)

Ketika kita merancang sebuah aplikasi, biasanya class


digambarkan dalam bentuk class diagram. Berikut adalah
Class Diagram dari class Sapi :

Sapi Nama Class


+JumlahKaki: int
+umur: int Filed atau atribut dari class sapi
+nama: string

+Makan(): void
+Minum(): void Method dari class Sapi
+Bobo(): void
+Berjalan(): void

2. Objek
Objek adalah Realisasi dari sebuah class. Objek memiliki
“tindakan” dan “sifat” atau dengan kata lain objek adalah
hasil instansiasi dari sebuah class.
Contoh : Sapi punya “sifat” seperti warna, Nama/sebuatan
dan juga memiliki “tindakan” seperti bersuara, makan ,
berjalan dan sebagainya.
3. Method
Method pada dasarnya adalah “tindakan”. Class bisa
mempunyai banyak method. Didalam method biasanya
berisi logika-logika, manipulasi data atau aksi-aksi tertentu
seperti simpan, edit, hapus dan cari.
4. Variabel Instance
Objek memiliki Variabel instance. “sifat” dari objek akan
tercipta setelah variable instance diberi nilai.

8
Catatan singkat : Pemahaman Tentang Class dan Objek

Kalas itu : seperti Cetakan Kue


Kelas adalah : cetakan Untuk Objek (instan kelas)
Sejumlah kue (objek) dapat diciptakan menggunakan sebuah
cetakan (kelas)

F. Tipe Data Dasar Pada Java


Variabel yang kita buat pasti memiliki tipe data. Ada 2 jenis
tipe data dalam java yakni:

1. Tipe Data Primitif


Tipe Data Primitif adalah tipe data bawahan yang
disediakan oleh Java. Java Memiliki 8 tipe data primitive
yaitu:
Tipe Ukuran
Rentang Nilai
Data (bit)
Byte 8 -128 s.d 127
Short 16 -32768 s.d 32767
Int 32 -2147483648 s.d 2147483647
-9223372036854775808 s.d
Long 64
9223372036854775807
Float 32 +/- 3.4 x 1038
Double 64 +/- 1.8 x 10308
Char Hanya Menampung 1 Karakter
Boolean Hanya bernilai true dan false

2. Tipe Data Reference/Objek


a. Tipe data ini didefinisikan ketika akan
menginstansiasikan sebuah kelas menjadi objek
b. Nilai Awalnya adalah Null
c. Contoh instansiasi objek adalah:
Manusia Adam = New Manusia(“Adam”);

9
G. Deklarasi dan Pengaksesan Variabel
Bentuk umum dari pendeklarasian variable di Java adalah
sebagai berikut:
Rumus: <tipe_data <nama_variabel>;
Contoh:
Int a, b, c; //mendeklarasikan 3 int dalam 3 variabel : a, b, c
Int d = 10, e = 20; //contoh deklarasi sekaligus inisialisasi 2
variabel
a = 22; //menginisialisasi variable a yang ada dibaris pertama

Setelah dideklarasikan, variable bisa diakses menggunakan


nama variabelnya. Ada 3 jenis pengaksesan variable yaitu:
1. Variable Lokal
Variabel local tercipta ketika dideklarasikan didalam
method atau blok.
2. Variabel Instance
Variabel instance merupakan variable yang dideklarasikan
dalam kelas atau secara global namun diluar method atau
blok.
3. Variabel Kelas/Static
Variabel Static dideklarasikan dengan kata kunci “static”
H. Pengenalan Konstanta di Java
Berebeda dengan variabel yang memang digunakan untuk
menampung nilai yang dapat diubah-ubah. Sedangkan
Konstanta dideklarasi untuk menampung nilai yang tetap atau
tidak berubah.

Contoh: penggunaan Variabel dan Konstanta


// Nama file : LuasLingkaran.java
// Menampilkan nilai jari-jari dan luas lingkaran
di kotak dialog

// Mengimpor kelas JOptionPane


import javax.swing.JOptionPane;

10
public class LuasLingkaran {
public static void main(String[] args) {

// Deklarasi konstanta
final double PI = 3.14159;

// Deklarasi variabel jari2 dan luas


int jari2;
double luas;

// Memberi nilai awal ke variabel jari2


jari2 = 7;

// Menghitung luas lingkaran


luas = PI * jari2 * jari2;

// Menampilkan hasil di kotak dialog


JOptionPane.showMessageDialog(null, "Jari-
jari lingkaran = " +
jari2 + "\nLuas lingkaran = " + luas,
"Menghitung Luas",
JOptionPane.INFORMATION_MESSAGE);

// Mengakhiri program yang menampilkan GUI


System.exit(0);
}
}

Outputnya :
Menghitung Luas
Jari-Jari Lingkaran = 7
Luas Lingkaran = 153.93791

I. Memasukkan Nilai dari Keyboard


Di Java, terdapat beberapa cara untuk mendapatkan masukan
dari keyboard yaitu:
1. Kelas Scanner
2. Kelas BufferedReader

11
3. Atau menggunakan GUI

Menggunakan Scanner
Pada kesempatan ini kita hanya membahas bagaimana
penggunaan “scanner” pada Java. Untuk menggunkan scanner
sangat mudah kita cukup membuat objek dari kelas “scanner” lalu
menampung nilai yang dibaca oleh kelas tersebut kedalam sebuah
variabel dengan tipe yang sama dengan yang dibaca oleh objek
tersebut.

inputNama.Java
import java.util.scanner;

public class InputNama {


public static void main (string args[]){
System.out.print (“Masukan Nama
anda: “);

//instansiasi objek scanner


Scanner scanner = new
Scanner(System.in);

//Menyimpan hasil masukan


String nama = scanner.next();

System.out.println(“Nama Anda adalah: “+


nama);

}
}
Outputnya :
Masukan Nama Anda : Rian
Nama anda adalah : Rian

12
Contoh Studi Kasus : Penggunaan Variabel dan Konstanta.
Misalnya : kita akan membuat satu kelas bernama “Permen”.

Permen.java
Public class Permen {
Public void tambahPermen(){
//Deklarasi variabel local
Int jumlahPermen = 0;

jumlahPermen = jumlahPermen + 1;
System.out.println(“jumlah permen setelah
ditambah: “+ jumlahPermen);
}
Public static void main(String[] args){
Permen permenSusu = new Permen();
permenSusu.tambahPermen();
}
}

Outputnya:
Jumlah permen setelah ditambah: 1

Coba kita bandingkan dengan variabel local dengan variabel


instance yang bersifat global.

PermenGlobal.java

Public class PermenGlobal {


//variabel jumlahPermen menjadi variabel
instance
//Inisialisasi variabel jumlahPermen = 10
Int jumlahPermen = 10;

//method untuk menmpilkan jumlah permen


Public void getJumlahPermen() {
System.out.println(“Jumlah permen: “ +
jumlahPermen);
}
Public void tambahPermen() {

13
jumlahPermen = jumlahPermen + 1;
System.out.println(“Jumlah permen setelah
ditambah: “ + jumlahPermen);
}
Public static void main (String[] args){
PermenGlobal permenSusu = new
PermenGlobal();

//menampilkan jumlah permen yang ada saat


program pertama kali berjalan
permenSusu.getJumlahPermen();

//menambah satu permen


permenSusu.tambahPermen();

//menampilkan jumlah permen yang ada


permenSusu.getJumlahPermen();
}
}

Outputnya:
Jumlah permen : 10
Jumlah permen setelah ditambah : 11
Jumlah permen : 11

Setelah kita mengenal variabel local dan variabel instance, berikut


kita mengenal variabel static dan konstanta.

Contoh Kasus: Kita akan membuat 2 Kelas yang akan saling


bergantungan. Kelas yang pertama adalah kelas “SekolahTinggi”
yang didalamnya terdapat variabel static bernama
“jumlahMahasiswa”

SekolahTinggi.java
public class SekolahTinggi {
//Varabel jumlahMahasiswa dideklarasikan sebagai
static
Public static int jumlahMahasiswa;
}

14
Kelas kedua adalah kelas tester yang berisi sebuah konstanta
“Nama_SekolahTinggi” dan memiliki method main
Tester.java
public class Tester {
//Nama_SekolahTinggi sebagai konstanta
Public static final String Nama_SekolahTinggi =
“STIKOM”;

Public static void main(String[] args){


SekolahTinggi.jumlahMahasiswa = 2000;
System.out.println(Nama_SekolahTinggi +
“memiliki mahasiswa “ +
SekolahTinggi.jumlahMahasiswa);
}
}

Outputnya:
STIKOM memiliki mahasiswa sebanyak 2000

Pada baris perintah diatas, variabel static “jumlahMahasiswa” yang


terdapat pada kelas SekolahTinggi” dapat lansung di akses di kelas
“Tester” dengan cara “NamaKelas.namaVariabelStatic”

15
BAB
2
STRUKTUR KONTROL, METHOD, DAN
STRUKTUR DATA SEDERHANA

Struktur control yang akan dibahas antara lain:


1. Runtunan
2. Percabagan
3. perulangan
A. Struktur Runtunan
Struktur runtuhan adalah proses algoritma yang dilakukan
secara beruntun dari langkah ke 1 sampai langkah ke-N. tiap
barisnya dikerjakan satu-per satu tanpa ada percabangan atau
perulangan dan hanya dilakukan sekali tiap instruksinya.
M ulai

Langkah K e -1

Langkah K e -1

Langkah K e -1

Langkah K e -1

A khir

16
Contoh Struktur Runtuhan.
Kuadrat.java
Public class Kuadrat{
Public static void main(String[]args){
Int bilangan = 12;
Int hasilKuadrat = bilangan * bilangan;

System.out.println(bilangan + “pangkat 2
sama dengan “ + hasilKuadrat);
}
}

Outputnya:
12 pangkat 2 sama dengan 144

B. Struktur Percabangan
Struktur percabangan merupakan struktur yang bergantung pada
kondisi tertentu untuk melakukan proses-proses atau langkah-
langkah tertentu.
Mulai

Langkah X

Ya Tidak

Kondisi ?

Langkah Y Langkah Z

Mulai

17
Ada 2 bentuk struktur percabangan yaitu IF-ELSE dan SWITCH-
CASE. Berikut penjelasan masing-masing struktur.
1. IF-ELSE
Terdapat beberapa struktur untuk menuliskan if-else, berikut
adalah bentuk-bentuk dari if-else:
a. Satu Kondisi
Bentuk umum if-else dengan satu kondisi:

If (<kondisi>){
<pernyataan>
}

Contoh Kasus : Kita membuat program penentuan seseorang


untuk diperbolehkan mempunyai Kartu Penduduk (KTP)
atau tidak. Mari kita lihat baris perintah berikut:

PercabaganSatu.java
Public class PercabanaganSatu {
Public static void
main(String[]args) {
Int umur = 16;
If (umur < 17) {
System.out.println(“Anda tidak
diperbolehkan untuk memiliki KTP”);
}
}
}

Outputnya:
Anda tidak diperbolehkan untuk memiliki KTP

18
b. Dua Kondisi
Berikut bentuk umum dari if-else dengan dua kondisi:

If (<kondisi>){
<pernyataan_jika_kondisi_terpenuhi>
}else{
<pernyataan_jika_kondisi_tidak_terp
enuhi>
}

Contoh Kasus: Penerapan if dengan dua kondisi pada kasus


penentuan bilangan positif atau negatif.

PercabanganDua.java
Public class PercabanganDua {
Public static void main(String[]
args) {
int bilangan = -10;

if(bilangan >= 0) {
Syatem.out.println(bilangan + “ adalah
bilangan positif”);
}else {
Syatem.out.println(bilangan + “ adalah
bilangan negative”);
}
}
}

Outputnya:
-10 adalah bilangan negative

19
c. N kondisi (N = lebih dari 2 atau terbilang banyak)
Berikut bentuk umum dari if-else dengan N kondisi:

If (<kondisi>){
<pernyataan_jika_kondisi1_terpenuhi>
}else if (<kondisi2>) {
<pernyataan_jika_kondisi2_terpenuhi>
}else if (<kondisi3>) {
<pernyataan_jika_kondisi3_terpenuhi>
}
….
Else {
<peryataan_jika_semua_kondisi_tidak_terp
enuhi>
}

Contoh Kasus : penerapan if dengan N kondisi pada kasus


penentuan bilangan indeks dari nilai akhir sebuah Mata
Kuliah.

PercabanganTiga.java
Public class PercabanganTiga {
Public static void main(String[]
args) {
Int nilai = 87;

If (nilai >=80) {
System.out.println(“Nilai “ + nilai + “
mendapat index A”);
}else if (nilai >= 70){
System.out.println(“Nilai “ + nilai + “
mendapat index B”);
}else if (nilai >= 60){

20
System.out.println(“Nilai “ + nilai + “
mendapat index C”);
}else if (nilai >= 50){
System.out.println(“Nilai “ + nilai + “
mendapat index D”);
}else {
System.out.println(“Nilai “ + nilai + “
mendapat index E”);
}
}
}
Outputnya:
Nilai 87 mendapat index A

2. SWITCH-CASE
Konsep dari switch-case sama saja seperti if-else, namun
switch-case hanya bisa membandingkan kondisi dengan tipe
data integer, byte, short, char, tipe enum, String, dan beberapa
kelas special turunan tipe primitive.

Bentuk umum dari switch-case:

Switch (<ekspresi>) {
Case <kondisi1> : <perintah1>; break;
Case <kondisi2> : <perintah2>; break;

Case <kondisi3> : <perintah3>; break;



Case <kondisiN> : <perintahN>; break;
Default:
<perintah_jika_tidak_ada_kondisi_yang_terp
enuhi>;
}

21
Contoh Kasus : kita akan membuat program
untuk penentuan nama bulan.

PercabanganEmpat.java
Public class PercabanganEmpat {
Public static void main(String[] args){
Int bulan = 3;

Switch (bulan) {
Case 1:
System.out.println(“Bulan ke-“ + bulan +
“ adalah bulan “ + “Januari”);
Break;
Case 2:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Februari”);
Break;
Case 3:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Maret”);
Break;
Case 4:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “April”);
Break;
Case 5:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Mei”);
Break;
Case 6:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Juni”);
Break;
Case 7:

22
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Juli”);
Break;
Case 8:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Agustus”);
Break;
Case 9:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “September”);
Break;
Case 10:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Oktober”);
Break;
Case 11:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “November”);
Break;
Case 12:
System.out.println(“Bulan ke-“bulan + “
adalah bulan “ + “Desember”);
Break;
Default:
System.out.println(“Bulan tidak
diketahui”);

23
Outputnya:
Bulan ke-3 adalah bulan maret

C. Struktur Perulangan (Looping)


Struktur Perulangan digunakan untuk menjalankan sejumlah
statement berulang kali atau untuk melakukan seuatu proses
yang berulang. Struktur ini biasa digunakan untuk mengulang
kode yang sama berkali-kali.
Contoh kasus : misalnya kita akan menampilkan angka 1
sampai dengan 100, apakah kita akan memanggil perintah
“System.out.println()” sebanyak 100 kali?, hal ini tentu sangat
tidak efektif. Dengan menggunakan Perulangan kasus seperti
ini dapat diatasi dengan baik dan cepat.

Mulai

Langkah X

Tidak
Kondisi ?

Ya

Langkah Y

Mulai

24
Pada pemrograman Java ada 3 macam struktur perulangan yaitu
1. FOR
Perulangan FOR digunakan jika jumlah perulangannya sudah
diketahui dari awal. “FOR” memiliki 3 bagian pada bagan
kepalanya, yaitu inisialisasi variabel counter, ekspresi (berupa
ekspresi Boolean), inkremen atau dekremen.
Berikut bentuk umum untuk perulangan FOR:
For
(<inisialisasi_counter>;<ekspresi>;<ink
remen/dekremen>)
<pernyataan>
}

Ada duajenis perulangan for, yaitu for ascending(menaik)


dan for descending(menurun). Untuk lebih jelasnya mari kita
perhatikan perbedan keduanya lewat baris perintah berikut ini:

PerulanganFor.java
Public class PerulanganFor {
Public static void main(String args[]{
// for ascending
System.out.println(“For Ascending”);
For (int i = 1; i <= 5; i++) {
System.out.println(i);
}
//For descending
System.out.println(“For Descending”);
For (int i = 5; i >= 1; i--){
System.out.printl(i);
}
}
}
Outputnya:
For Ascending

25
1
2
3
4
5
For Descending
5
4
3
2
1

2. While
Struktur perulangan while akan memeriksa sebuah kondisi
diawal blok struktur. Jika kondisi tertentu bernilai true (benar)
maka badan perulangan akan dieksekusi.
Berikut bentuk umum untuk perulangan while:
While (<kondisi>) {
<pernyataan>
}

Contoh Sintaks while:


While(A) {
//body while
}

Penjelasan sintaks:
A merupakan kondisi yang menentukan kapan looping while
berhenti. Looping akan terus dilakukan sampai kondisi A
bernilai salah.
Body while kita isi dengan statemen-statemen yang ingin di
looping.

26
Contoh kasus: kita akan membuat program yang akan mencekak
kalimat “selamat pagi rian” sebanyak 5 kali

PerulanganWhile.java
Public class PerulanganWhile {
Public static void main(String args[])
{
int i;
i = 1;
System.out.println(“looping dengan
while”);
While (i <=5) {
System.out.println(“Selamat Pagi Rian” –
“+i);
i++;
}
}

Outputnya:
Looping dengan while
Selamat Pagi Rian ke-1
Selamat Pagi Rian ke-2
Selamat Pagi Rian ke-3
Selamat Pagi Rian ke-4
Selamat Pagi Rian ke-5

3. Do-While
Do-While hampir sama seperti perulangan while, namun
perbedaannya adalah badan perulangan di do-while dijalankan
terlebih dahulu, setelah itu baru kondisinya diperiksa.
Berikut bentuk umum perulangan do-while:
do {
<pernyataan>
}while (<kondisi>)

27
Contoh Sintaksnya :
do {
//body while
}
while (A);

Penjelasan sintaksnya:
A merupakan kondisi (ekspresi logika) yang menentukan kapan
looping while berhenti. Selama A bernilai benar, looping akan
terus dilakukan.
Body while kita isi dengan statement-statement yang ingin di
looping.

Contoh Kasus: Contoh kasus: kita akan membuat program yang


akan mencekak kalimat “selamat pagi rian” sebanyak 5 kali.

PerulanganDoWhile.java
Public class PerulanganDoWhile {
Public static void main(String args[])
{
int i;
i = 1;
System.out.println(“looping dengan do-
while”);
do {
System.out.println(“Selamat Pagi Rian” –
“+i);
i++;
}
While (i <= 5);
}
}

28
Outputnya:
Looping dengan do-while
Selamat Pagi Rian ke-1
Selamat Pagi Rian ke-2
Selamat Pagi Rian ke-3
Selamat Pagi Rian ke-4
Selamat Pagi Rian ke-5

Pada bab ini juga kita akan membahas tentang method. Mengetahui
apa itu method dan tipe-tipenya pada pemrograman java.

Ada dua tipe method pada java yakni:


1. Method tanpa nilai balik
2. Method dengan nilai balik

Apa itu Method..?


Method merupakan blok dari kode program untuk melakukan suatu
aksi tertentu. Method berisi baris-baris perintah yang diberi sebuah
nama, yang nantinya nama ini bisa dipanggil berulang kali. Method
juga mempermudah untuk pemanggilan suatu aksi yang sering
dilakukan.

Tujuan dari method adalah:


1. Membuat kode program menjadi lebih maintainable
2. Mengurangi redudansi kode
3. Program menjadi lebih terstruktur dan rapih

Method tanpa nilai balik


Method nilai balik atau biasa juga disebut dengan istilah prosedur
adalah sebuah method yang bertipe void. Method ini berisi baris
perintah dengan tujuan tertentu tanpa mengembalikan sebuah nilai.

29
Bentuk umum pendeklarasi sebuah method tanpa nilai balik adalah
sbagai berikut:

<akses_modifiers> <void>
<nama_method>([tipe_data><nama_parameter>,…]){
<pernyataan>
}

Contoh Kasus : Misalkan kita akan membuat program untuk


menamilkan dua buah nama dan alamat yang berbeda.

MethodTanpaNilaiBalik.java
public class MethodTanpaNilaiBalik {
public static void main (String[] args) {
//menampilkan data orang pertama
String nama1 = “Rian”;
Strng alamat1 = “KayuPutih”;
System.out.println(“Nama : “ + nama1);
System.out.println(“Alamat : “ + alamat1);

System.out.println();

//menampilkan data orang kedua


String nama1 = “Bella”;
Strng alamat1 = “Oepura”;
System.out.println(“Nama : “ + nama2);
System.out.println(“Alamat : “ + alamat2);

Outputnya :
Nama : Rian
Alamat : KayuPutih

Nama: Bella
Alamat : Oepura

30
Method dengan Nilai Balik
Method dengan nilai balik atau biasa disebut dengan fungsi adalah
method yang akan mengembalikan sebuah nilai yang sesuai dengan
tipe data dari method itu sendiri. Misalnya sebuah method bertipe
data integer, maka merhod tersebut akan mengembalikan sebuah
nilai bertipe integer.
Bentuk umum pendeklarasian sbuah method dengan nilai balik
adalah sebagai berikut:

<akses_modifiers><tipe_data><nama_method>
([<tipe_data><nama_parameter>,…]){
<pernyataan>

return <nilai return>;


}

Contoh Kasus : misalnya kita akan membuat program untuk


menghitung luas persegi.

MethodDenganNilaiBalik.java
public class MethodDenganNilaiBalik {
public static void main (String[] args){
int sisi = 4;
System.out.println(“Luas Persegi dengan
panjang sisi “ + sisi + “ adalah +
hitungLuasPersegi(sisi));
}

//Method dengan nilai balik untuk menghitung


luas persegi

public static int hitungLuasPersegi(int sisi)


{
int luas = sisi * sisi;

31
return luas;
}
}

Outputnya:
Luas Persegi dengan panjang sisi 4 adalah 16

32
BAB
3
Pemrograman Berorientasi Objek

A. Konsep Objek dan Kelas


Ada dua istilah yang akan sering dipakai, yaitu Objek dan
Kelas. Kelas merupakan kumpulan objek-objek yang memiliki
atribut dan method yang sama. Dari sebuah kelas bisa dibentuk
banyak objek dengan nama yang berbeda. Kita dapat menyebut
segalah sesuatu disekitar kita sebagai objek, dari yang
riil/nyata seperti pohon, hewan, bangun-bangun geometri
hingga yang abstrak seperti penjualan barang, pinjaman/utang,
dll.

Anda dapat melihat bawah setiap objek itu pasti memiliki jenis
/tipe dari mana ia berasal. Misalnya saya memiliki sekuntum
bunga mawar, maka bunga saya ini adalah objek dari tipe
bunga mawar, tipe inilah yang kita sebuat sebagi kelas.

Seperti pada penjelaan saya sebelumnya pada Bab 1, Bawah


objek bisa diibaratkan seperti Kue dan Kelas bisa diibaratkan
seperti cetakan kuenya. Jadi sebuah objek bisa terbentuk dari
berbagai kelas ibarat sebuah kue bisa terbentuk dari berbagai
cetakan kuenya.

Hubungan antara kelas an objek dapat dilihat pada gambar


berikut:

33
Gambar 3.1 Hubungan kelas dan objek

Perbedaan pemrograman berorientasi objek dibandingkan dengan


pemrograman procedural juga terletak pada sifat yang dimiliki oleh
pemrograman berorientasi objek yaitu:

1. Enkapsulasi
2. Pewarisan
3. Polimorphisme

1. Apa itu Enkapsulasi..?


Enkapsulasi adalah sebuah proses penggabungan atribut dan
method ke dalam sebuah kelas.biasanya atribut dan method
dideskripsikan secara terpisah pada pemrograman procedural.
Ekapsulasi juga dihubungkan dengan pemberian hak akses
pada kelas ataupun anggota dari sebuah kelas (atribut dan
method) Lihat gambar 3.2

34
Kucing

+BeratBadan: double
+Ras: String

+Bersuara(): void
+JenisKelamin(): void
+Makan(): void

Gambar 3.2 ilustrasi enkapsulasi


Pada Gambar tersebut, atribut dan method dibungkus dalam
satu kelas yaitu kelas yang bernama kelas kucing. Enkapsulasi
membuat atribut dan method menjadi lebih terorganisir dan jelas
kepemilikannay. Atribut “BeratBadan” dan “Ras” serta Method
“Bersuara()”, “JenisKelamin()” dan “makan()” adalah milik kelas
kucing

Dalam kelas juga dikenal denga Hak Akses, Hak akses


diberikan pada tiga hal yaitu pada kelas, atribut dan method. Ada 3
jenis hak akses yang biasa digunakan di Java yaitu:
1. Public
Hak akses ini digunakan apabila atribut atau method igin
bisa diakses di kelas yang lain (bukan kelas pemilik atribut
dan method tersebut). Dikelas diagram, hak akses ini
diwakili oloeh symbol plus (+).
2. Private
Hak akses ini digunakan apabila atribut atau method hanya
ingin diakses pada kelas pemilik. Dikelas diagram, hak
akses ini, diwakili oleh simpol minus (-).
3. Protected
Hak akses ini digunakan pada konsep pewarisan. Apabila
variabel dan method dari kelas pemilik ingin diwariskan

35
untuk kelas turunan/sub class dari kelas pemilik (anak dari
kelas pemilik) maka bisa menggunakan hak akses ini.
Pewarisan variabel maupun method hanya berlaku untuk
kelas turunannya dan tidak dapat digunakan pada kelas lain.
Di kelas diagram hak akses ini diwakili oleh symbol
hashtag(#)

Apa Itu Pewarisan?


Sifat pemrograman berorientasi objek ini memungkinkan sebuah
kelas menurunkan variabel ataupun method kepada kelas
turunannya. Konsep ini memungkinkan penggunaan kembali (code
reuse) Perintah-perintah yang ada di dalam sebuah kelas. Pada
konsep ini, Dikenal dua istilah yaitu kelas orang tua/parent class
yang bisa disebut super class maupun kelas anak/child class yang
biasa disebut sub class.Ilustrasi dari pewarisan dapat dilihat pada
gambar 3-4.

Manusia

#nama: String Super Class


#TanggalLahir: Date
#JenisKelamin: String

Mahasiswa Dosen

+NIM: String +NIDN: String

Sup Class

Gambar 3.3 Ilustrasi Pemarisan

36
Pada gambar 3-3, atribut “nama”, “TanggalLahir”, dan
“JenisKlamin” akan diwariskan dari kelas manusia ke kelas
“Mahasiswa” dan kelas “Dosen”. Dalam mengimplementasikan di
java , Kelas “Mahasiswa” dan “Dosen” tidak perlu
mendeklarasikan ulang atribut yang diwariskan oleh kelas
“Manusia”. Kedua kelas tersebut bisa langsung mengunakan ketiga
atribut tersebut di dalam kelas masing-masing.

Apa Itu Polimorphisme?


Sifat pemrograman berorientasi objek yang ketiga ini
memungkinkan method yang diwariskan dari super class memiliki
isi perintah yang berbeda ketika diimplementasikan pada sub
class.sebagai contoh, kelas “Binatang” memiliki method
“Bersuara()” maka ketika method “Bersuara()” ini diwariskan ke
kelas “Bebek” akan berisi kwek-kwek dan ketika diwariskan ke
kelas “Anjing” akan berisi guk-guk.

Implementasi Kelas di Java

Sebelum masuk ke dalam bab yang lebih banyak membahas tentang


komplementasi kode pada java, Kemampuan mmbaca diagram
kelas dan mengubahnya menjadi kode program menjadi hal yang
perlu dipertimbangkan. Seperti yang kita tahu dalam ilmu Rekayasa
Perangkat Lunak, terdapat Langkah-langkah penting yang perlu
dilakukan sebelum memulai menulis kode program. Salah satu
langkah tersebut adalah permodelan.

Di dalam pemrogram,an berorientasi objek, Salah satu model yang


dibentuk adalah diagram kelas. Diagram kelas dapat mempermudah
kita dalam melakukan implementasi kelas pada Java. Bentuk umum
kelas pada kelas diagram dapat dilihat pada gambar berikut:

37
Gambar 3.4 Simbol Claas pada Class Diagram

Apabila esain kelas sudah disediakan maka kita tinggal


mengubahnya menjadi perintah di Java dengan struktur sebagai
berikut:

NamaClass.java
Public class NamaClass {
//Bagian atribut

//Bagian method
}

Catatan : Nama file .java harus sama dengan nama kelas yang ada
di dalamnya. Kesalahan pemberian nama akan mengakibatkan
error pada program yang kalian buatkan.

Untuk pemahaman lebih lanjut dan contoh yang lebih nyata akan
dijelaskan pada studi kasus. Bentuk pendeklarasian atribut dan
method mengikuti standar kode Java pada umumnya.

Studi Kasus Implementasi Kelas di Java


Diberikan sebuah dsain kelas yang dapat dilihat pada gambar 3.5.

38
PengarangBuku

+Nama: String
+TempatLahir: String
+Umur: int

+menulisBuku(): void
+mengirimkanNaskah(): void
+beberapaBuku(): int

Gambar 3.5 class pengarang buku

Untuk kelas “PengarangBuku” pada desain tersebut maka struktur


kode program Javanya adalah sebagai berikut:

PengarangBuku.java
Public class PengarangBuku{
//atribut
public String nama;
public Sting tempatLahir;
public int umur;

//method
public void menulisbuku() {
//di sini isi perintah untuk menulis buku
}

public void mengirimkanNaskah() {


//disini isi perintah untuk mengirimkan naskah
}

public int beberapaBuku() {


//disini isi perintah untk jumlah buku yang telah
dibuat miaslnya 2
return 2;

39
Tanda plus (+) sebelum nama atribut dan method diartikan sebagai
hak akses public.

40
BAB
4
IMPLEMENTASI
PBO

Apa Yang dibahas di Bab Ini?


Setelah membahas konsep pemrograman berorientasi objek pada
sebelumnya, sekarang kita akan belajar bagaimana hal-hal tersebut
diimplementasikan. Ada beberapa hal tambahan di dalam bab ini
diakibatkan kebutuhan penerapan konsep pemrograman berorientasi
objek di Java.

Berikut adalah daftar konsep implementasi pemrograman


berorientasi objek yang akan dibahas:
1. Pengenalan Package
2. Penerapan Enkapsulas,Pewarisan dan Polimorphisme
objek
3. Penerapan konsep abstrak
4. Penerapan kelas abstrak

Pengenalan Packpage
Packpage merupakan sekumpulan class dan interfaces yang aling
berrelasi. Simpelnya, kita bisa membayangkan packpage sperti
sebuah folder di computer kita. Kita bisa menyimpan music dalam
satu folder, Video dalam satu folder, atau dokumen-dokumen kita
dalam satu folder.begitupun saat kita membuat program
menggunakan Java, kita bisa menyimpan class atau interface yang
kita buat di dalam atu packpage. Kita bisa saja membuat puluhan
atau bahkan ratusan clas, itu membuat penggunaan packpage bisa

41
menjadi pembantu untuk membuat class-class yang dibuat menjadi
lebih terorganisasi dan rapih.

Cara membuat packpage sangat mudah. Adapun langkahnya adalah


sebagai berikut:
1. Klik menu file
2. Klik new project lalu pada new project pada categoris pilih
java dan pada project pilih java application
3. Lalu klik next
4. Lalu beri nama packpage pada project name
5. Lalu klik finish

Penerapan Enkapsulas,Pewarisan dan Polimorphisme Objeck

Catatan Penting :

Sekali lagi, enkapsulasi memastikan atribut dan method dibungkus


pada sebuah kelas dan pemberian hak akses kepada atribut dan
method merupakan hal yang penting dilakukan.

Sedangkan pewarisan adalah Sifat pemrograman berorientasi objek


yang memungkinkan sebuah kelas menurunkan variabel ataupun
method kepada kelas turunannya.

Dan pada Polimorphisme Sifat pemrograman berorientasi objek


yang memungkinkan method yang diwariskan dari super class
memiliki isi perintah yang berbeda ketika diimplementasikan pada
sub classnya.

Untuk bisa memahami lebih lanjut, kita buat project di aplikasih


Java Netbeans dengan cara:
1. Enkapsulasi
2. Pewarisan
3. Polimorphisme

42
Latihan-Latihan :
1. Enkapsulasi

Persegi.java
package enkapsulasi;

/**
*
* @author kutuonline
*/
public class Persegi {

/*-- information hiding --*/


private int panjang;
private int lebar;

public int getLebar() {


return lebar;
}

public void setLebar(int lebar) {


this.lebar = lebar;
}

public int getPanjang() {


return panjang;
}

public void setPanjang(int panjang) {


this.panjang = panjang;
}

/*-- constructor --*/


public Persegi(){
int p = 0;
int l = 0;
}

43
public int luas(int p, int l){
return p * l;
}

public int getLuas(){


return luas(panjang, lebar);
}

Enkapsulasi.java
package enkapsulasi;

/**
*
* @author kutuonline
*/
public class Enkapsulasi {

/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Persegi p = new Persegi();
p.setPanjang(12);
p.setLebar(6);

System.out.println("Panjang: " +
p.getPanjang());
System.out.println("Lebar: " + p.getLebar());
System.out.println("Luas persegi: " +
p.getLuas());
}

}
Hasil Run :
Panjang: 12
Lebar: 6
Luas persegi: 72

44
BUILD SUCCESSFUL (total time: 0 seconds)

2. Pewarisan
mobil.java
public class mobil {
private String merek;
private String warna;
private int jumlahpintu;
private String jenis;

public String getJenis() {


return jenis;
}

public void setJenis(String jenis) {


this.jenis = jenis;
}

public int getJumlahpintu() {


return jumlahpintu;
}

public void setJumlahpintu(int jumlahpintu) {


this.jumlahpintu = jumlahpintu;
}

public String getMerek() {


return merek;
}

public void setMerek(String merek) {


this.merek = merek;
}

public String getWarna() {


return warna;
}

public void setWarna(String warna) {


this.warna = warna;

45
}

public void tampilkandata(){


System.out.println("merek mobil
:"+getMerek());
System.out.println("warna mobil
:"+getWarna());
System.out.println("total pintu
:"+getJumlahpintu());
System.out.println("jenis mobil
:"+getJenis());

}
public void inputData(String m,String w,String
j,int jp){
setMerek(m);
setWarna(w);
setJenis(j);
setJumlahpintu(jp);

}
}

honda.java
public class honda extends mobil {
public void tampilkan(){
double besarsilinder=5.5;
String bahanbakar="Pertamax";
String kategori="Sport";

mobil m = new mobil();

m.inputData("CRV", "Hitam", "Mewah", 4);


m.tampilkandata();

System.out.println("silinder :"+besarsilinder);
System.out.println("jenis bahan bakar
:"+bahanbakar);
System.out.println("jenis kategori :"+kategori);

46
}

toyota.java
public class toyota extends mobil {
public void tampilkan(){
double besarsilinder;
String bahanbakar;
String kategori;

besarsilinder=32.5;
bahanbakar="solar";
kategori="off-road";

mobil m = new mobil();

m.inputData("AVANZA", "Merah", "Ekonomis", 5);


m.tampilkandata();

System.out.println("silinder :"+besarsilinder);
System.out.println("jenis bahan bakar
:"+bahanbakar);
System.out.println("jenis kategori :"+kategori);
}
}

pewarisan.java
public class Pewarisan {

public static void main(String[] args) {

System.out.println("HONDA");

honda h = new honda();


h.tampilkan();

System.out.println("\nTOYOTA");

toyota t = new toyota();


t.tampilkan();

47
}

Hasil RUN :
HONDA
merek mobil :CRV
warna mobil :Hitam
total pintu :4
jenis mobil :Mewah
silinder :5.5
jenis bahan bakar :Pertamax
jenis kategori :Sport

TOYOTA
merek mobil :AVANZA
warna mobil :Merah
total pintu :5
jenis mobil :Ekonomis
silinder :32.5
jenis bahan bakar :solar
jenis kategori :off-road
BUILD SUCCESSFUL (total time: 4 seconds)

3. Polimorphisme

hewan.java
public class hewan {
public void suara(){
System.out.println("hewan bersuara");
}
}

ayam.java
public class ayam extends hewan{
public void suara(){
System.out.println("Ayam berkokok");
}
}

kucing.java
public class kucing extends hewan{

48
public void suara(){
System.out.println("Kucing Mengeong");
}
}

kuda.java
public class kuda extends hewan{
public void suara(){
System.out.println("Kuda Meringkik");
}
}

Polimorfisme.java
public static void main(String[] args) {
// TODO code application logic here
hewan HEWAN = new hewan();
kuda KUDA = new kuda();
kucing KUCING = new kucing();
ayam AYAM = new ayam();

HEWAN.suara();

HEWAN = KUDA;
HEWAN.suara();

HEWAN = KUCING;
HEWAN.suara();

HEWAN = AYAM;
HEWAN.suara();

}
}

Hasil RUN:
hewan bersuara
Kuda Meringkik
Kucing Mengeong
Ayam berkokok
BUILD SUCCESSFUL (total time: 0 seconds)

49
Penerapan Konsep Abstrak
Ketika kita telah memahami tiga konsep ditas ada satu konsep lagi
yang menjadi tolak ukur apakan kosep pemrograman berorientasi
objek yang digunakan lebih baik atau tidak. Sebuah program
dikatakan baik didalam konsep pemrograman berorientasi objek apa
bila pembuat program memungkinkan kosep “ reusable code” bisa
dilakukan. Untuk dapat melkukan hal ini program yang dibuat harus
memiliki tingkat abstrak yang cukup agar pengguna yang mau
menggunakan kembali kode perintah dalam program tersebut bisa
dengan mudah digunakannya.

Kelas Abstrak biasanya terdiri dari method abstrak dan beberapa


method yang non-abstrak. Sub class dari kelas abstrak
diperbolehkan hanya mengimplementasikan method-method yang
abstrak saja. Kelas abstrak diimplementasikan oleh sub class
dengan menggunakan konsep pewarisan.

Contoh Kasus :
Untuk kelas “ persegi” dan “ lingkaran” maka desain kelas setelah
menerapkan konsep kelas abstrak dapat dilihat pada gambar 4.1
berikut:

BangunDatar

#hitungKeliling(): double
#hitungLuas(): double

Persegi Lingkaran
+sisi: double +JariJari: double
+hitungKeliling(): double +hitungKeliling(): double
+hitungLuas(): double +hitungLuas(): double

50
Implemntasi coding:
Langkah pembuatan kelas abstrak sama dengan langkah pembuatan
kelas pada umumnya, bedanya hanya tambahkan kata kunci
abstract sebelum kata kunci class.

bangunDatar.java
public abstract class bangunData {
public abstract double hitungKeliling();
public abstract double hitungLuas();

}
//perintah diatas karena bagunDatar adalah sebuah konsep abstrak
maka keliling dan luasnya pun tidak dapat dihitung. Karena method
“hitungKeliling()” dan “hitungLuas()” dikelas absrak ini juga
bersifat abstrak.

persegi.java
public class persegi extends bagunDatar {

private double sisi;

public double getSisi(){


return sisi;
}

public void setSisi(double sisi) {


this.sisi = sisi;
}

public double hitungKeliling(){


return 4 * sisi;
}

public double hitungLuas(){


return sisi * sisi;

51
}
}

lingkaran.java
public class persegi extends bagunDatar {

private double r;

public double getR(){


return r;
}

public void setR(double r) {


this.r = r;
}

public double hitungKeliling(){


return 2 * 3.14 * r;

public double hitungLuas(){


return 3.14 * r * r;

}
}

abstrak.java
public class abstak {
public static void main (String[] args){
Persegi persegi = new Persegi();
persegi.setSisi(6);
System.out.println(“Keliling persegi=” +
persegi.hitungKeliling());

System.out.println(“Luas persegi=” +
persegi.hitungLuas());

Lingkaran lingkaran = nw Lingkaran();


Lingkaran.setR(100);

52
System.out.println(“Keliling Lingkaran=” +
lingkaran.hitungKeliling());
System.out.println(“Luas Lingkaran=” +
lingkaran.hitungLuas());
}
}

Hasil RUN:
Keliling persegi = 24.0
Luas Persegi = 35.0
Keliling Lingkaran = 628.0
Luas Lingkaran = 31400.0

Penerapan ArrayList

ArrayList merupakan struktur data array yang bersifat dinamis.


Maksud dari dinamis ini adalah kita tak perlu menginisialisasi
ukuran array diawal.

Format dasar penggunaan arrayList adalah:


ArrayList<E> <nama_arraylist> = new ArrayList<>();

Contoh :
Kali ini, saya akan membahas tentang bagaimana menyimpan
object ke dalam sebuah array dan bagaimana implementasi untuk
menampilkannya.
Pertama kita buat class barang,java
class Barang{
int id;
String kd,nm;

public Barang(int id, String kd, String nm)


{
this.id = id;
this.kd = kd;
this.nm = nm;
}

53
public int getId()
{
return id;
}

public String getKd()


{
return kd;
}

public String getNm()


{
return nm;
}
}

Langkah berikutnya kita buat kelas untuk menampilkannya :

import java.util.ArrayList;

public class TampilData{

ArrayList<Barang> tampung;

public TampilData()
{
//instansiasi
tampung = new ArrayList<Barang>();
}

public void isiData(int id,String kd,String nm)


{
tampung.add(new Barang(id,kd,nm));
}

public void showData()


{
for(Barang barang:tampung)
{

54
System.out.println("id brg :
"+barang.getId()+""+", kd brg : "+barang.getKd()+""+",
nm brg : "+barang.getNm());
}
}

public static void main(String args[])


{
TampilData td = new TampilData();

td.isiData(1,"01","topi");
td.isiData(2,"02","kemeja");
td.isiData(3,"03","sepatu");
td.isiData(4,"04","sandal");

td.showData();
}
}

Catatan :

**kelas Barang Kita mempunyai kelas Barang yang terdiri dari 3


member variable yg diisi pada waktu object nantinya
diinstansiasi(diisi pada konstruktor).

**kelas TampilData –> Dengan memanggil paket class ArrayList,


kita bisa menggunakan method2 seperti get(), add(), size() , dan lain
sebagainya.
–> Di dalam kelas TampilData, kita buat sebuah member variable
bernama tampung yg digunakan untuk menampung object yg
dibentuk dari kelas Barang, dengan format
ArrayList<Barang> tampung; –> method add digunakan untuk
mengisi data ke dalam object ArrayList, sedangkan get digunakan
untuk menampilkan data.

55
Penerapan LinkedList
Linked List merupakan salah satu bentuk collection yang
menggunakan pointer untuk mengakses data yang ada didalamnya.
Berbeda dengan ArrayList yang menekankan penggunaan indeks
untuk mengakses datanya. LinkedList sendiri menggunakan dua
penunjuk yang wajib ada yaitu pointer First yang selalu menunjuk
data yang ada diposisi paling awal dan pointer Last yang selalu
menunjuk data yang berada pada posisi terakhir pada LinkedList.

Format dasar penggunaan LinkedList adalah:


LinkedList<E> <nama_linkedlist> = new LinkedList<>();

Contoh :
OperasiLinkedList.java
import java.util.LinkedList;

public class OperasiLinkedList {


public static void main (String[] args {
LinkedList<String> nama = new LinkedList<>();

//operasi addfirst dan addlast


nama.addFirst(“Rey”);
nama.addFirst(“Rian”);
nama.addFirst(“Sumarlin”);
nama.addFirst(“Petrus”);

System.out.println(“List nama setelah addFirst dan


addLast”);
System.out.println(“============================”);
For (String name : nama){
System.out.println(name);
}
//coba getFirst dan getLast
System.out.println(“\nNama Pertama: “ +
nama.getFirst());
System.out.println(“Nama Terakhir: “ +
nama.getLast());

56
//removeFirst dan RemoveLast
nama.removeFirst(); //menhapus Rey
nama.removeLast(); //menghapus Petrus

System.out.println(“\nList nama setelah addFirst dan


addLast”);
System.out.println(“=============================”);
For (String name : nama){
System.out.println(name);
}
}
}

Hasil RUN:
List nama setelah addFirst dan addLast
============================
Rey
Rian
Sumarlin
Petrus

Nama Pertama : Rey


Nama Terakhir : Petrus

List nama setelah addFirst dan addLast


============================
Rian
Sumarlin

57
Penerapan Stack
Cara kerja Stack menyerupai konsep tumpukan barang didunia
nyata. Konsep penyimpanan dan pengaksesan datanya
menggunakan konsep LIFO (Last In First Out) dimana data yang
dimasukan terakhir kedalam stack akan diakses pertama kali jika
ada proses permintaan data.

Format Dasar penggunaan Stack adalah:


Stack<E> nama_stack = new Stack<>();

Contoh:
OperasiStack.java
import java.util.Stack;

public class OperasiStack{


public static void main (String[] args){
Stack<String> nama = new Stack<>();

//coba operasi push


nama.push(“Rian”);
nama.push(“Petrus”);
nama.push(“Edwin”);
nama.push(“Payong”);

//coba operasi pop


System.out.println(nama.pop()); //mengambil
Payong
System.out.println(nama.pop()); //mengambil
Edwin
}
}

Hasil RUN:
Payong
Edwin

58
Penerapan Relasi pada Diagram Kelas
ada 4 konsep relasi kelas yang bisa digunakan antara lain:
1. Association
2. Composition
3. Aggregation
4. Dependency

Relasi Association menyatakan relasi antar dua kelas terpisah


yang relasinya melalui pertemuan objek dari masing-masing
kelas di bagian atributnya.
Jenis Association ada dua yaitu: bidirectional dan
unidirectional. Lebih jelas dapat dilihat pada gambar 4.2 dan
4.3 berikut:

Class A Class B

gambar 4.2. Bidirectional (dua arah)

Class A Class B

Gambar 4.3. Uni-directional (satu arah)

Catatan : pada relasi Association tidak dikenal kepemilikan atas


objek yang saling berelasi. Kedua jenis objek hanya akan
berelasi ketika method yang memasangnya dipanggil.

59
Contoh kasus relasi Association bidirectional satu ke satu

Misalnya: Sekolah dan Kepala Sekolah


Perhatikan gambar 4.4 berikut:

Sekolah 1 1 KepalaSekolah
+namaSekolah: String +namaKepalaSekolah: String
+Sekolah(namaSekolah: String) +KepalaSekolah(namaKepalaSekolah: String)

Gambar 4.4 relasi satu ke satu


Implementasinya:
Sekolah.java
public class Sekolah {
private String namaSekolah;
private KepalaSekolah kepalaSekolah;
public Sekolah(String namaSekolah){
this.namaSekolah = namaSekolah;
}

public String getNamaSekolah() {


return namaSekolah;
}

public void setNamaSekolah(String namaSekolah){


this.namaSekolah = namaSekolah;
}

public KepalaSekolah getKepalaSekolah() {


return kepalaSekolah;
}

public void setKepalaSekolah(KepalaSekolah


kepalaSekolah) {
this.kepalaSekolah = kepalaSekolah;
}
}

60
KepalaSekolah.java
public class KepalaSekolah {
private String namaKepalaSekolah;
private Sekolah;

public KepalaSekolah(String namaKepalaSekolah){


this.namaKepalaSekolah = namaKepalaSekolah;
}

public String getNamaKepalaSekolah() {


return namaKepalaSekolah;
}

public void setNamaKepalaSekolah(String


namaKepalaSekolah){
this.namakepalaSekolah = namakepalaSekolah;
}

public Sekolah getSekolah() {


return sekolah;
}

public void setSekolah(Sekolah sekolah) {


this.sekolah = sekolah;
}
}

BidirectionalOneOne.java
public class BidirectionalOneOne {
public static void main (String[] args) {
Sekolah sekolah = new Sekolah (“SMUK F. Ndao
Ende”);
KepalaSekolah kepalaSekolah = new KepalaSekolah
(Pak Rian”);

//association bidirectional terjadi di sini


Sekolah.setKepalaSekolah(kepalaSekolah);
kepalaSekolah.setSekolah(sekolah);

// memunculkan nilai dari objek sekolah


System.out.println(sekolah.getNamaSekolah());

61
System.out.println(sekolah.getKepalaSekolah()
.getNamaKepalaSekolah());

//memunculkan nilai dari objek kepala sekolah


System.out.println(kepalaSekolah.getNamaKepalaSekol
ah());
System.out.println(kepalaSekolah.getSekolah().getNa
maSekolah());
}
}

Hasil RUN:
SMUK F.Ndao Ende
Pak Rian

Contoh Kasus : Association Bidirectional Satu ke Banyak

Misalnya: Kelas dengan Mahasiswa

Kelas 1 * Mahasiswa
+namaKelas: String +nim: String
+Kelas(namaKelas: String) +Mahasiswa(nim: String)

Gambar 4.5 relasi satu ke banyak

Contoh Kasus: Association Rule Banyak ke Banyak

Misalnya : Anggota Keluarga dengan Pekerjaan

62
AnggotaKeluarga Pekerjaan
+namaAnggota: String +jenisPekerjaan: String
+AnggotaKeluarga(namaAnggota: String) * * +Pekerjaan(jenisPekerjaan: String)

PkerjaanRumah

+mappingKerja(): void

Gambar 4.6 relasi banyak ke banyak

Penerapan Relasi Aggregation


Untuk memahami relasi Aggregation perhatikan contoh kasus
berikut:

Misalnya : Program Studi dengan Dosen

Program studi akan memiliki beberapa orang Dosen tapi


kepemilikan disini sifatnya tidak mutlak yang artinya ketika objek
dari program studi dihancurkan maka objek dari dosen akan tetap
ada.

ProgramStudi 1 Dosen
*
+namaProgramStudi: String +namaDosen: String
+ProgramStudi(namaProgramStudi: String) +Dosen(namaDosen: String)

Gambar 4.7 Contoh Relasi Kasus Aggregation

63
Penerapan Relasi Composition
Relasi Composition menggambarkan hubungan “Part-of” contoh
kasus Motherboard dengan PC, dimana motherboatd akan
menjadi bagian dari PC.

PC Motherboard
+merekPC: String +tipeMotherboard: String
+PC(merekPC: String) +Motherboard(tipeMotherBoard: String)

Gambar 4.8 contoh kasus Relasi Composition

Penerapan AWT dan SWING


Dalam Java, terdapat dua paket yang dapat digunakan untuk
mengembangkan program-program GUI, yaitu AWT dan Swing.
AWT (Abstract Windows Toolkit) adalah sekumpulan library yang
tidak tergantung pada platform dan digunakan untuk
menyederhanakan implementasi user-interface. Swing adalah
bentuk implementasi selanjutnya yang menambahkan komponen-
komponen dalam system GUI, tapi masih didasarkan pada arsitektur
AWT. Apabila dibandingkan dengan AWT, penggunaan
komponen-komponen Swing lebih memakan resource yang lebih
sedikit.

Contoh Kasus :
Kita akan membuat Aplikasi atau Program sederhana tentang
Pengimputan Biodata Mahasiswa

Pada kesempatan ini saya akan membahas bagaimana cara membuat


CRUD (Create, Read, Update, dan Delete) pada pengimputan data
mahasiswa dengan Java dan MySQL. dalam membuat aplikasi
CRUD ini akan mengkoneksikan database dengan bantuan JDBC
Driver.

64
Langkah-langkahnya :
1. Kita terlebih dahulu membuat database dan tabel
Caranya :
- Buka Browser internet anda seperti Mozila atau Intrnet
Explorer dan lain-lain lalu ketikkan perintah berikut :
 localhost/phpmyadmin lalu tekan enter

Gambar 4.9. Browser localhost

 akan tampil phpmyadmin seperti tampak pada


gambar berikut:

Gambar 4.10 phpMyAdmin

 Buatkan database baru dengan cara : klik new lalu


ketik namadatabase yang mau dibuat misalnya:
db_mahasiswa lalu klik buat/create

65
 Langkah selanjutnya buat table dengan memberi
nama tebel misalnya tb_mhs dan masukan berapa
jumlah kolom yang ingin dibuat sesuai dengan
berapa banyak field yang kita masukan. Misalnya
kita akan membuat kolom untuk 5 field yakni:
nama,nim,jurusan,alamat,telpn. Maka kita masukan
angka 5 pada jumlah kolom yang tersedia lalu klik
kirim. Seperti tampak pada gambar berikut:

Gambar 4.11 membuat tabel

 Langkah selanjutnya masukan semua field mulai dari


nama, nim,jurusan,alamat dan telpn pada kolom
yang tersedia. dan jangan lupa sesuaikan tipe data
dan lebar fieldnya lalu klik simpan. Sehingga tampak
hasil seperti pada gambar berikut

66
Gambar 4.12 tabel mhs
 Sampai disini pembuatan database dan table selesai

2. Langkah selanjutnya adalah kita mulai mendesain form


sesuai dengan kebutuhan.
Langkah-langkahnya :
- Buka aplikasi Neatbeans
- Lalu buat project baru dengan nama terserah anda, disini
saya member nama project dengan nama swim. Dengan cara
klik file lalu klik new project, lalu pada kotak box yang
tampil atau kotak box new project. Pada bagian categoris
pilih java dan pada project pilih java application, lalu klik
next kemudian berinama project lalu klik finish seperti
tampak pada gambar berikut:

67
Gambar 4.13 membuat project

- Langkah selanjutnya kita akan Membuat Koneksi Database


MySQl (Config.java) sebelum membuat class Config.java,
pastikan terlebih dahulu kita sudah menambahkan Library
MySQL JDBC Driver kedalam project kita. untuk
menambahkan library caranya : klik kanan pada library
yang ada dalam project – pilih add library – pilih MySQL
JDBC Driver – klik add library. Perhatikan gambar berikut:

68
Gambar 4.15 add library
- Langkah selanjutnya kita akan membuat scrip untuk kelas
config.java
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class config {


private static Connection mysqlconfig;
public static Connection configDB()throws
SQLException{
try {
String
url="jdbc:mysql://localhost:3306/mahasiswa";
//url database
String user="root"; //user database
String pass=""; //password database
DriverManager.registerDriver(new
com.mysql.jdbc.Driver());
mysqlconfig=DriverManager.getConnect
ion(url, user, pass);
} catch (Exception e) {
System.err.println("koneksi gagal
"+e.getMessage()); //perintah menampilkan error
pada koneksi
}
return mysqlconfig;
}
}

69
- Langkah selanjutnya kita akan membuat code untuk fungsi
create (tambah) data dalam database. klik kana pada tombol
tambah – pilih event – Action – ActionPerformed. lalu isikan
syntax berikut :

private void
btn_tambahActionPerformed(java.awt.event.ActionE
vent evt)
{
// TODO add your handling code here:
try {
String sql = "INSERT INTO mhs VALUES
('"+txt_nama.getText()+"','"+txt_nim.getText()+"
','"+jComboBox1.getSelectedItem()+"','"+txt_alam
at.getText()+"','"+txt_pnone.getText()+"')";
java.sql.Connection
conn=(Connection)config.configDB();
java.sql.PreparedStatement
pst=conn.prepareStatement(sql);
pst.execute();
JOptionPane.showMessageDialog(null,
"Penyimpanan Data Berhasil");
} catch (Exception e) {
JOptionPane.showMessageDialog(this,
e.getMessage());
}
load_table();
kosong();
}
- Langkah selanjutnya kita akan membuat script menampilkan
data de dalam tabel
private void load_table(){
// membuat tampilan model tabel
DefaultTableModel model = new
DefaultTableModel();
model.addColumn("No");
model.addColumn("Nama");
model.addColumn("NIM");
model.addColumn("Jurusan");

70
model.addColumn("Alamat");
model.addColumn("Phone");

//menampilkan data database kedalam


tabel
try {
int no=1;
String sql = "select * from mhs";
java.sql.Connection
conn=(Connection)config.configDB();
java.sql.Statement
stm=conn.createStatement();
java.sql.ResultSet
res=stm.executeQuery(sql);
while(res.next()){
model.addRow(new
Object[]{no++,res.getString(1),res.getString(2),
res.getString(3),res.getString(4),res.getString(
5)});
}
jTable1.setModel(model);
} catch (Exception e) {
}
- Langkah selanjutnya kita akan membuat script untuk
mendeklarasikan class load_tabel ke dalam class mahasiswa.

public Mahasiswa() {
initComponents();
load_table();
}

- Langkah selanjutnya kita akan membuat script untuk


menghapus data otomatis stelah selasai dinputkan pada form

private void kosong(){


txt_alamat.setText(null);
txt_nama.setText(null);
txt_nim.setText(null);
txt_pnone.setText(null);
jComboBox1.setSelectedItem(this);

71
}

- Langkah selanjutnya deklarasikan class kosong ke class


mahasiwa

public Mahasiswa() {
initComponents();
load_table();
kosong();
}

- Langkah selanjutnya adalah kita anak mencoba


mengeksekusi program dengan cara menjalankannya atau
klik icon RUN, sehingga hasil yang akan ditampilkan
sebagai berikut :

Gambar 4.16 Hasil RUN Program

72

Anda mungkin juga menyukai