Romi Java 01 Concepts 12agustus2021
Romi Java 01 Concepts 12agustus2021
1
Java Fundamentals
2
Romi Satria Wahono
SD Sompok Semarang (1987)
SMPN 8 Semarang (1990)
SMA Taruna Nusantara, Magelang (1993)
S1, S2 dan S3 (on-leave)
Department of Computer Sciences
Saitama University, Japan (1994-2004)
Research Interests: Software Engineering,
Intelligent Systems
Founder IlmuKomputer.Com
Peneliti LIPI (2004-2007)
Founder dan CEO PT Brainmatics Cipta Informatika
3 3
Pemateri:
Nama: Dr. Indra, S.Kom, M.T.I
Biodata:
• SD: SD N Selandaka
• SMP: SMP N 1 Sumpiuh Banyumas
• SMU: SMU N 1 Sumpiuh Banyumas
• S1: Teknik Informatika FTI Universitas Budi Luhur
• S2: Magister Teknologi Informasi Universitas Indonesia
• S3: FMIPA Dept. Ilmu Komputer & Elektronika Universitas Gadj
ah Mada
• Email: [email protected]
• Phone: 08568287734
• Blog: https://staff.budiluhur.ac.id/indra
• Youtube: https://s.id/Video_Indra
4
Rule dalam belajar
Materi Pelatihan KMMI (Kredensial Mikro Mahasiswa Indonesi
a)
https://kmmi.kemdikbud.go.id/pt/
Tidak akan ada lagi batasan Mahasiswa Indonesia untuk belajar
apapun dimanapun
Pembelajaran dalam bentuk kursus singkat/short course yang m
encakup hard skills dan soft skills.
Konversi 3 SKS sesuai CPL Program Studi kedalam matakuliah M
obile Programming atau setara
Jika sudah mengambil Mobile Programming tidak dapat dikonver
si (hanya mendapatkan sertifikat dan bantuan uang saku)
Konversi di PT Lain mengikuti kebijakan Prodi Asal
5
Textbook
6
Course Outline
1. OOP Concepts:
Konsep dan Paradigma Object-Oriented
2. Java Basics:
Memahami Sintaks dan Grammar Bahasa Java
3. Java GUI:
Swing, GUI Component, Event Handling, Pengembangan Aplik
asi GUI
4. Java Algorithms:
Pengantar Algoritma, Struktur Data, Algorithm Analysis
5. Java Advanced:
Eksepsi, Thread, Java API
6. Java Database:
Koneksi ke Database, Pengembangan Aplikasi Database
7
PreTest
1. Buatlah program Java sederhana yang menampilka
n tulisan di layar: “Halo Jakarta”
2. Menurut anda, apakah keunggulan Java dibanding
kan bahasa pemrograman lain?
3. Apakah perbedaan antara bahasa pemrograman p
rocedural dan object-oriented?
4. Apakah perbedaan antara object dan class pada o
bject-oriented programming?
5. Apa yang anda pahami tentang variabel dan meth
od?
8
Software Requirements
1. Copy dan ekstrak romi-java.zip ke HDD laptop
2. Buka folder software dalam romi-java
3. Instalasi Java SE dengan mengklik:
jdk-8-windows-i586.exe (32b) or
jdk-8-windows-x64.exe (64b)
4. Instalasi Netbeans dengan mengklik: netbean
s-8.0-windows.exe
5. Ikuti seluruh proses instalasi sampai selesai
9
Download Software
JDK 8.0: https://
www.dropbox.com/s/lth5lmr16tsbypx/jdk-8u111-n
b-8_2-windows-i586.exe?dl=0
10
1. OOP Concepts
11
OOP Concepts
1. Konsep Pemrograman dan Paradigmanya:
Tingkat Bahasa Pemrograman, Paradigma Pemrograman,
2. Teknologi Java dan Perangkat Pemrograman:
Java Family, Perangkat, Instalasi, Kompilasi
3. Konsep Dasar Pemrograman Berorientasi Objek:
Class, Object, Attribute, Method, Constructor
4. Karakteristik Pemrograman Berorientasi Objek:
Abstraction, Encapsulation, Inheritance, Polymorphisme
5. Pengorganisasian Class:
Package, Interface, JAR, Java API Documentation
12
1.1 Konsep Pemrograman dan Para
digmanya
13
Bahasa Pemrograman?
Komputer bekerja seperti switching dan hanya
mengenali 0 dan 1
Manusia tidak (paham) berbicara dengan baha
sa 0 dan 1
Perlu bahasa pemrograman yang dapat menja
di perantara percakapan antara komputer dan
manusia
Bahasa pemrograman diubah ke dalam bahasa
yang dipahami oleh komputer dengan menggu
nakan interpreter atau kompiler
14
Compiler or Interpreter?
1. Compiler:
Mengkompilasi source code menja
di bentuk file yang bisa dieksekusi
2. Interpreter:
Mengkompilasi dan menjalankan s
ource code secara langsung
15
C Language (Compiler)
#include <stdio.h>
000101000011
001010000100
main() 010010010101
{ C Compiler 010101010010
printf(“Hallo”);
}
16
Java Language (Compiler + Interpreter)
javac java
(Java Compiler) (Java Interpreter)
17
Tingkat Bahasa Pemrograman
18
Paradigma Pemrograman
Sudut pandang dan style pemrograman berhubung
an dengan bagaimana sebuah masalah diformulasik
an dalam bahasa pemrograman
19
1.2 Teknologi Java dan Perangkat P
emrograman
20
Sejarah Java
James Gosling, Mike Sheridan, and Patrick Naughton initia
ted the Java language project in June 1991
The language was initially called Oak after an oak tree that
stood outside Gosling's office. It went by the name Green l
ater, and was later renamed Java, from a list of random w
ords
Gosling aimed to implement a virtual machine and a langu
age that had a familiar C/C++ style of notation
Sun Microsystems released the first public implementatio
n as Java 1.0 in 1995
On May 8, 2007, Sun finished the process, making all of Ja
va's core code available under GNU Public License
21
Java Family Suite
1. Java Standard Edition (Ja
va SE)
For desktop, client/server ap
plication
23
Why Java?
Simple and familiar object oriented program
ming
Architecture neutral (platform independent)
Open Source
First rank in TIOBE Index
De-Facto standard programming language in
education
24
25
26
27
28
29
Programming Paradigm Index
30
Perangkat Pemrograman Java
1. Compiler (Interpreter):
Java Standard Edition (JSE)
2. Code Editor:
1. Text Editor:
TextPad, Notepad++
2. Integrated Development Environment (IDE):
Netbeans, Eclipse, JCreator
31
Instalasi Java SE dan Netbeans IDE
1. Instalasi Java SE dengan mengklik:
jdk-7u21-windows-i586.exe
(download dari: http://java.sun.com/javase/downloads)
32
Instalasi Text Editor dan Set Path
Set path dan instalasi text editor diperlukan
untuk yang mengembangkan aplikasi text-base
d dengan console
33
How Java Works?
Jalankan dengan:
public class Hello 1. C:\>java Hello (Application)
public static void main(String[] args){ 2. Web Browser (Applet)
System.out.println("Hello World!");
}
}
Hello.java
javac (java compiler)
Interpreter Interpreter Interpreter Interpreter
Kompiler memproduksi
Bytecode (Class)
Hello.class
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
C:\javac HelloWorld.java </HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="HelloWorld.class" WIDTH=150
HEIGHT=25>
</APPLET>
</BODY>
</HTML>
35
Applet on a Web Page
36
Menulis Program Java
Bentuk program:
1. Text-Based Console Application menggunakan librar
y non-GUI di Java
2. GUI Application menggunakan AWT atau Swing unt
uk library GUI
37
Latihan: Tulis dan Compile Halo.java
public class Halo{
public static void main(String[] args){
System.out.println(“Halo Semarang”);
}
}
38
Latihan: Membuat Program dg Netbeans
39
40
41
42
43
44
45
46
47
48
Latihan
Buat class HaloIndonesia di dalam package hal
o
Isi HaloIndonesia.java dengan main method da
n tiga tampilan di bawah:
Halo Indonesia
Selamat Pagi Indonesia
Jaya Indonesia
49
1.3 Konsep Dasar Pemrograman
Berorientasi Objek
50
Berorientasi Objek?
Attribute:
Topi, Baju, Jaket,
Tas Punggung,
Tangan, Kaki, Mata
Behavior:
Cara Jalan ke Depan
Cara Jalan Mundur
Cara Belok ke Kiri
Cara Memanjat
51
Berorientasi Objek?
Attribute (State):
Ban, Stir, Pedal Rem, Pedal Gas,
Warna, Tahun Produksi
Behavior:
Cara Menghidupkan Mesin
Cara Manjalankan Mobil
Cara Memundurkan Mobil
Attribute Variable(Member)
52
Behavior Method(Fungsi)
Perbedaan Class dan Object
Class: konsep dan deskripsi dari sesuatu
• Class mendeklarasikan method yang dapat digunakan (dipang
gil) oleh object
Object: instance dari class, bentuk (contoh) nyat
a dari class
• Object memiliki sifat independen dan dapat digunakan untuk
memanggil method
Contoh Class dan Object:
• Class: mobil
• Object: mobilnya pak Joko, mobilku, mobil berwarna merah
53
Perbedaan Class dan Object
Class seperti cetakan kue, dimana kue yg dihas
ilkan dari cetakan kue itu adalah object
Warna kue bisa bermacam-macam meskipun
berasal dari cetakan yang sama (object memili
ki sifat independen)
54
Class = Method + Variable
Class Sepeda gir
kecepatan variable
tampilkan kecepatan
55 55
Object = Method + Variable yg Memiliki Nilai
instance va
kecepatan = 10km/jam
riable
tampilkan kecepatan ()
kecepatan = 10 km/jam
instance
method
ubah gir (2)
gir = 5
56 56
Attribute
Variable yang mengitari class, dengan nilai datanya bis
a ditentukan di object
Variable digunakan untuk menyimpan nilai yang nanti
nya akan digunakan pada program
Variable memiliki jenis (tipe), nama dan nilai
Name, age, dan weight adalah atribute (variabel) dari
class Person
57
Membuat Class, Object dan Memanggil Atribut
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
}
59
60
61
62
63
64
65
66
67
68
Method
Method adalah urutan instruksi yang mengak
ses data dari object
Method melakukan:
1. Manipulasi data
2. Perhitungan matematika
3. Memonitor kejadian dari suatu event
69
Method
70
Membuat dan Memanggil Method
public class Mobil2{
String warna; Mobil2.java
int tahunProduksi;
void printMobil(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
mobilku.warna = "Hitam";
mobilku.tahunProduksi = 2006;
mobilku.printMobil();
}
} 71
Latihan
Buat class Handphone, masukkan dalam packa
ge hp
• Class Handphone berisi empat method di bawah:
1. hidupkan()
2. lakukanPanggilan()
3. kirimSMS()
4. matikan()
• Isi masing-masing method dengan tampilan status
menggunakan System.out.println()
Buat class HandphoneBeraksi, dan panggil met
hod-method diatas dalam class tersebut
72
Latihan: Hasil Tampilan
Handphone hidup …
Kring, kring, kring … panggilan dilakukan
Dung, dung … sms berhasil terkirim
Handphone mati …
73
Latihan
Buat class Mahasiswa yang berisi tiga method:
1. membaca()
2. nyontek()
3. modifikasi()
• Isi masing-masing method dengan tampilan status
menggunakan System.out.println()
Buat class MahasiswaBeraksi, dan panggil met
hod-method diatas dalam class tersebut
74
Jenis Method: Mutator dan Accessor
75
Parameter
Sepeda akan berguna apabila ada object lain yang berinter
asi dengan sepeda tersebut
Object software berinteraksi dan berkomunikasi dengan ob
ject lain dengan cara mengirimkan message atau pesan
Pesan adalah suatu method, dan informasi dalam pesan di
kenal dengan nama parameter
76
Pengiriman Pesan dan Parameter
// method (accessor)
int getGir() {
return gir;
}
}
79
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();
80
Latihan: Class Matematika dan Parameter
Buat Class bernama Matematika, yang berisi method d
engan dua parameter:
• pertambahan(int a, int b)
• pengurangan(int a, int b)
• perkalian(int a, int b)
• pembagian(int a, int b)
Buat Class bernama MatematikaBeraksi, yang mengeks
ekusi method dan menampilkan:
• Pertambahan: 20 + 20 = 40
• Pengurangan: 10-5 = 5
• Perkalian: 10*20 = 200
• Pembagian: 21/2 = 10
81
Variasi Tampilan
void pertambahan(int a, int b){
System.out.println(a + “ + “ + b + “ = “ + (a+b))
}
void pertambahan(int a, int b){
System.out.println(“Hasil = “ + (a+b))
}
void pertambahan(int a, int b){
int hasil = a + b;
System.out.println(“Hasil = “ + hasil)
}
82
Konstruktor -1-
Method yang digunakan untuk memberi nilai aw
al pada saat object diciptakan
Dipanggil secara otomatis ketika new digunakan
untuk membuat instan class
Sifat konstruktor:
• Nama konstruktor sama dengan nama class
• Tidak memiliki nilai balik dan tidak boleh ada kata ku
nci void
83
Konstruktor -2-
public class Mobil { Mobil.java
String warna;
int tahunProduksi;
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
this.tahunProduksi = tahunProduksi;
}
public void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
85
Latihan
1. Buat class Bank
• Buat konstruktor class Bank dengan parameter: saldo
• Buat method: simpanUang, ambilUang, dan getSaldo
2. Buat class BankBeraksi, tetapkan saldo awal lewat
konstruktur Rp. 100000, jalankan 3 method di ata
s, dan tampilkan proses sebagai berikut:
Selamat Datang di Bank ABC
Saldo saat ini: Rp. 100000
Abstraction, Encapsulation,
Inheritance, Polymorphism
87
Abstraction
Cara kita melihat suatu sistem dalam bentuk yang
lebih sederhana, yaitu sebagai suatu kumpulan su
bsistem (object) yang saling berinteraksi.
• Mobil adalah kumpulan sistem pengapian, sistem kem
udi, sistem pengereman
Alat meng-abstraksikan sesuatu adalah class
Object bersifat modularity. Object dapat ditulis d
an dimaintain terpisah (independen) dari object l
ain
88
89
90
Encapsulation
Mekanisme menyembunyikan suatu proses dan data da
lam sistem untuk menghindari interferensi, dan menye
derhanakan penggunaan proses itu sendiri
• Tongkat transmisi (gigi) pada mobil
• Tombol on/off/pengaturan suhu pada AC
Class access level (public, protected, privat) adalah impl
ementasi dari konsep encapsulation
Enkapsulasi data dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk menga
kses variable tersebut
91
Class Lingkaran{ class Garis{
void buatLingkaran(){ private void buatTitik(x,
for(){ y){
Garis.buatGaris() }
} public void buatGaris(tA
tB){
}
}
}
92
Encapsulation dan Access Modifier
Dalam Class Dalam Dalam Dalam
Modifier yang Sama Package yang SubClass Package Lain
Sama
private
tanpa
tanda
protected
public
94
Encapsulation
Enkapsulasi data juga dapat dilakukan dengan cara:
1. mendeklarasikan instance variable sebagai private
2. mendeklarasikan method yang sifatnya public untuk m
engakses variable tersebut
95
Sepeda.java
public class Sepeda{
int gir;
int getGir() {
return gir;
}
}
96
SepedaBeraksi.java
public class SepedaBeraksi{
public static void main(String[] args) {
Sepeda sepedaku = new Sepeda();
sepedaku.setGir(1);
/* Variabel bisa diubah atau tidak sengaja diubah.
Hal ini berbahaya dan sering menimbulkan bug.
Berikan access modifier private pada instance variable */
sepedaku.gir = 3;
System.out.println(“Gir saat ini: “ + sepedaku.getGir());
}
}
97
Sepeda.java
public class Sepeda{
private int gir; // access modifier private pada instance variable
int getGir() {
return gir;
}
}
98
Inheritance (Pewarisan)
Suatu class dapat mewa
riskan atribut dan meth
od kepada class lain (su
bclass), serta membent
uk class hierarchy
Penting untuk Reusabilit
y
Java Keyword:
extends
99 99
Sepeda.java
public class Sepeda{
private int gir;
int getGir() {
return gir;
}
}
100
Class SepedaGunung Mewarisi Class Sepeda
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {
SepedaGunung.java 101
SepedaGunungBeraksi.java
Latihan: Inheritance Matematika
1. Buat class MatematikaCanggih yang merupakan
inherit dari class Matematika
1. Tambahkan method modulus(int a, int b) yang meng
hitung modulus dari a dan b
2. Operator modulus adalah %
102
Polymorphism
Kemampuan untuk memperlakukan object
yang memiliki perilaku (bentuk) yang berbe
da
Implementasi konsep polymorphism:
1. Overloading: Kemampuan untuk menggunakan n
ama yang sama untuk beberapa method yang ber
beda parameter (tipe dan atau jumlah)
2. Overriding: Kemampuan subclass untuk menimpa
method dari superclass, yaitu dengan cara mengg
unakan nama dan parameter yang sama pada me
thod
104
Polymorphism – Overloading
class Mobil { public class MobilKonstruktor{
String warna; public static void main(String[] args){
int tahunProduksi; Mobil mobilku = new Mobil(“Merah”, 2003);
mobilku.info();
public Mobil(String warna, int tahunProduksi){
this.warna = warna;
Mobil mobilmu = new Mobil();
this.tahunProduksi = tahunProduksi;
mobilmu.info();
}
}
}
public Mobil(){
}
void info(){
System.out.println("Warna: " + warna);
System.out.println("Tahun: " + tahunProduksi);
}
}
105
Polymorphism – Overloading
class Lingkaran{
void gambarLingkaran(){
}
void gambarLingkaran(int diameter){
...
}
void gambarLingkaran(double diameter){
...
}
void gambarLingkaran(int diameter, int x, int y){
...
}
void gambarLingkaran(int diameter, int x, int y, int warna, String na
maLingkaran){
... 106
Polymorphism - Overriding
public class Sepeda{
private int gir;
int getGir() {
return gir;
}
}
107
Polymorphism - Overriding
public class SepedaGunung extends Sepeda{ public class SepedaGunungBeraksi {
public static void main(String[] args) {
SepedaGunung.java 108
SepedaGunungBeraksi.java
Latihan: Overloading pada Matematika
1. Kembangkan class Matematika, MatematikaCanggih
dan MatematikaBeraksi
2. Lakukan overloading pada Method yang ada (perta
mbahan, pengurangan, perkalian, pembagian, modu
lus)
3. Tambahkan method baru bertipe data double (peca
han) dan memiliki 3 parameter
4. Uji di kelas MatematikaBeraksi dengan parameter p
ecahan: 12.5, 28.7, 14.2
5. Uji konsep overloading dengan:
pertambahan(12.5, 28.7, 14.2) pertambahan(12, 28, 14)
pertambahan(23, 34) pertambahan(3.4, 4.9)
109
Matematika.java
public class Matematika{
void pertambahan (int a, int b){
int hasil= a + b;
System.out.println(“hasil:” + hasil);
}
111
1.5 Pengorganisasian Class
112
Packages
Package adalah koleksi dari beberapa class dan interfac
e yang berhubungan, dan menyediakan proteksi akses
dan pengelolaan namespace
1 package adalah 1 folder di file system
Package berguna untuk mengorganisir file dalam suatu
project atau library
Nama package menggunakan lowercase
Nama package mengikuti nama domain (perusahaan) d
engan susunan terbalik
• Contoh: com.brainmatics.kendaraan
Keyword: package name;
113
Packages
114
Packages
Base directory: holds your program's Files
Path name, relative to base directory, must match p
ackage name:
com/horstmann/bigjava/Financial.java
115
116
Budi.java
package kelasku;
117
Joko.java
package kelasku;
118
PaketBeraksi.java
import kelasku.Joko;
119
PaketBeraksi.java
import kelasku.*;
121
Interface
Interface digunakan apabila kita ingin men
entukan apa yang harus dilakukan oleh sua
tu class tapi tidak menentukan bagaimana
cara untuk melakukannya
Interface sebenarnya sama dengan class, t
api hanya memiliki deklarasi method tanpa
implementasi
122
Interface dan Implementation
123
InterfaceLampu.java
interface InterfaceLampu{
public static final int KEADAAN_HIDUP=1;
public static final int KEADAAN_MATI=0;
124
Lampu.java
public class Lampu implements InterfaceLampu{
int statusLampu;
128
Kompresi dengan JAR
JAR atau Java Archive adalah metode kompresi s
tandard dari file-file yang berisi program Java
JAR menampung file .class dan file lain yang dib
utuhkan supaya program bisa berjalan dengan b
aik
Kompresi dapat dilakukan setelah semua class di
kompilasi
129
Penggunaan JAR
Perintah Membuat file JAR:
jar –cvf namafile.jar file1.class file2.class
Perintah Melihat isi dalam file JAR:
jar –tvf namafile.jar
Perintah Mengekstraksi isi file JAR:
jar –xvf namafile.jar
Keterangan Pilihan:
• c = create (membuat file JAR)
• v = verbose (menampilkan informasi pada layar)
• f = filename (daftar nama file yang akan dikompresi)
130
JAR Manifest
JAR Manifest dibuat secara otomatis dan di
letakkan di dalam folder META-INF pada fil
e kompresi yang kita buat
JAR Manifest digunakan untuk mendeskrip
sikan file-file yang terdalam dalam file JAR
131
Java API Library and Documentation
API: Application Programming Interface
API documentation: daftar class dan method di java
library
http://java.sun.com/javase/7/docs/api/index.html
132
Important Packages in the Java Library
133
API Documentation of the Java Library
134
API Documentation for the Rectangle Class
135
Method Summary
136
Tugas
Kerjakan semua latihan dan tugas yang ada di sli
de OOP Concepts
Kirimkan netbeans project yang sudah di zip ke
[email protected]
dengan subject: [OOP1-Universitas] Nama–NIM
Deadline: 2 minggu
Meng-copy file orang lain akan menyebabkan nil
ai tugas 0
137
Referensi
1. Sharon Zakhour et al, The Java Tutorial Fourth Edition, http://java.su
n.com/docs/books/tutorial
2. Cay Horstmann, Big Java: Earl Objects 5th Edition, John Wiley & Sons, 2
013
3. Deitel & Deitel, Java Howto Program 9th Edition, Prentice Hall, 2012
4. Richard M. Reese, Oracle Certified Associate Java SE 7 Programmer St
udy Guide, Packt Publishing, 2012
5. Walter Savitch, Absolute Java 5th Edition, Pearson Education, 2013
6. Mark Allen Weiss, Data Structures and Algorithm Analysis in Java 3rd E
dition, Pearson Education, 2012
7. Anany Levitin, Introduction to the Design and Analysis of Algorithms 3
rd
Edition, Pearson Education, 2012
8. Ying Bai, Practical Database Programming with Java, John Wiley & Son
s, 2011
138