Object-Oriented
Programming with Java
Ajib Susanto
ajibsusanto@[Link]
[Link]@[Link]
[Link]
@ajibsusanto / 085876247118
1 ajib fik udinus
Materi Diskusi
1. Konsep Pemrograman dan Paradigmanya
Tingkat Bahasa Pemrograman, Paradigma Pemrograman,
Tool Pemrograman
2. Konsep Dasar Pemrograman Berorientasi Obyek:
Kelas (Class), Obyek (Object), Pengkapsulan
(Encapsulation), Pewarisan (Inheritance), Polymorphisme
3. Konsep Lanjut Pemrograman Berorientasi Obyek:
Constructor, Destructor, Overloading, Overriding, Keyword
This, Multithreading, Package, Interface, Exception
2 ajib fik udinus
Konsep Pemrograman
dan Paradigmanya
3 ajib fik udinus
Bahasa Pemrograman?
Komputer bekerja seperti switching dan hanya
mengenali 0 dan 1
Manusia tidak (paham) berbicara dengan bahasa
0 dan 1
Perlu bahasa pemrograman yang dapat menjadi
perantara percakapan antara komputer dan
manusia
Bahasa pemrograman diubah ke dalam bahasa
yang dipahami oleh komputer dengan
menggunakan interpreter atau kompiler
4 ajib fik udinus
Compiler or Interpreter?
Compiler:
Mengkompilasi source code
menjadi bentuk file yang bisa
dieksekusi
Interpreter:
Mengkompilasi dan menjalankan
source code secara langsung
5 ajib fik udinus
Tingkat Bahasa Pemrograman
Bahasa Pemrograman Tingkat Rendah
(Assembler)
Bahasa Pemrograman Tingkat Sedang
(C, Pascal, Fortran)
Bahasa Pemrograman Tingkat Tinggi
(Java, C++, C#)
6 ajib fik udinus
Assembly Language
LDA #47
STA $570
DEX
JSR $817
CPX #0
Translation
BNE #14
program 00010100
Assembly language program (Assembler) 001100101
00001000
100100101
010101010
10010
Machine language program
(executable file)
7 ajib fik udinus
C Language
#include <stdio.h>
0001010000
1100101000
main() 0100010010
{ C Compiler 01010101010
printf(“Hallo”); 1010010
}
Machine language program
C Program (executable “.exe” file)
8 ajib fik udinus
Java Language
Source code
(.java)
Java compiler
memproduksi Byte code
(.class)
Java
Virtual Hasilnya adalah Program
Machine Execution
9 ajib fik udinus
Paradigma Pemrograman
Sudut pandang dan style pemrograman
berhubungan dengan bagaimana sebuah masalah
diformulasikan dalam bahasa pemrograman
Functional Programming: Urutan fungsi secara
sekuensial (Scheme, Lisp)
Procedural Programming: Pemecahan masalah
berdasarkan prosedural kerja. Fungsi adalah unit
programming (C, Pascal, Fortran)
Object-Oriented Programming: Koleksi object yang
saling berinteraksi . Class adalah unit programming
(Java, C#, C++)
10 ajib fik udinus
Tool Pemrograman Java
1. Text Editor + Compiler (Interpreter):
TextPad, Notepad++, Java Standard Edition, Vs
Code
2. Integrated Development Environment (IDE):
Eclipse, Netbeans, Jcreator
11 ajib fik udinus
Install, Compile and
Running Java
12 ajib fik udinus
Java Family Suite
Java Standard Edition
(Java SE)
For desktop, client/server
application
Java Enterprise Edition
(Java EE)
For e-bussiness, e-commerce
web based application
Java Micro Edition
(Java ME)
For small devices, like
palm,handphone, etc 13
ajib fik udinus
Instalasi Java Standard Edition
1. Download Java Standard Edition dari:
[Link]
[Link]
2. Instal Java Standard Edition dengan mengklik:
jdk-13.0.2_windows-x64_bin.exe
3. Klik Start Control Panel System
Advanced Environment Variables dan set
PATH:
;C:\Program Files\Java\ jdk-13.0.2 \bin
4. Instal text editor untuk editing code:
textpad, notepad++,Vs Code ajib fik udinus
14
Menulis Java Program
Program harus punya method di public class:
public static void main(String[] args)
Program Java mulai dari sini!
Bentuk program:
1. GUI application public class biasanya
menggunakan JFrame
2. “Text based” Console Application public class
adalah class yang sederhana
15 ajib fik udinus
Menulis Program “Hello World!”
public class Hello{
public static void main(String[] args){
[Link]("Hello World!");
}
}
16
GUI Version “Hello World!”
// [Link]
// Simple GUI Hello World Program
import [Link].*;
public class HelloGUI{
public static void main(String[] args){
[Link](null, "Hello World");
}
}
17
How Java Works? Jalankan dengan:
1. C:\>java HelloWorld (Application)
public class HelloWorld{
2. Web Browser (Applet)
public static void main(String[] args){
[Link]("Hello World!");
}
}
[Link]
javac compiler
Interpreter Interpreter Interpreter Interpreter
Kompiler memproduksi
Bytecode (Class)
Java bytecode
([Link])
Write Once Run Everywhere ! Web Server
18 ajib fik udinus
Compile and Run Java Application
public class HelloWorldApp {
public static void main(String[] args){
[Link]("Hello World!");
}
}
C:\javac [Link]
19 ajib fik udinus
Compile and Run Java Applet
import [Link].*;
import [Link].*;
/**
* The HelloWorld class implements an applet that
* simply displays "Hello World!".
*/
public class HelloWorld extends Applet {
public void paint(Graphics g) {
// Display "Hello World!"
[Link]("Hello world!", 50, 25);
}
} C:\appletviewer [Link]
<HTML>
<HEAD>
<TITLE>A Simple Program</TITLE>
C:\javac [Link] </HEAD>
<BODY>
Here is the output of my program:
<APPLET CODE="[Link]"
WIDTH=150 HEIGHT=25>
</APPLET>
</BODY>
</HTML>
20 ajib fik udinus
NetBeans IDE
21 ajib fik udinus
Tipe Data, Variabel & operator
Java memiliki tipe data yang dapat dikategorikan
menjadi dua kelompok, yaitu tipe data primitif dan
referensi.
Tipe Data Primitif :
Integral : merepresentasikan nilai-nilai bilangan bulat
(tidak memiliki elemen pecahan desimal).
Floating Point : merepresentasikan nilai-nilai bilangan
real ( memiliki elemen pecahan desimal )
Tekstual : merepresentasikan nilai-nilai berupa alphabet.
Logika : merepresentasikan nilai-nilai logika ( hanya
bernilai true dan false ).
22 ajib fik udinus
Tipe Data Primitif
Integer ( Bilangan Bulat )
23 ajib fik udinus
Tipe Data Primitif
Tipe Data Floating Point
24 ajib fik udinus
Tipe Data Primitif
Tipe Data Tekstual : char
Contoh penggunaan :
public char alphabet = ‘A’;
public char ascii = ‘\111’; // jika dicetak, akan
//menghasilkan
// huruf ‘I’;
Tipe Data Logika : boolean
Contoh penggunaan :
public boolean status = true;
public boolean check = 10 < 5 ; // nilai check menjadi
//false
public boolean hasil = (10<5) && (var==3);
25 ajib fik udinus
Type Data Primitif
Memilih Tipe Data :
Perhatikan Jenis Data ( bilangan bulat / bilangan real / logika /
karakter )
Terdapat operasi pembagian ? disarankan menggunakan
tipe floating point
Jika program memperhatikan ukuran data dalam memory,
gunakan tipe-tipe data dengan representasi bit kecil.
26 ajib fik udinus
Type Data Reference
Kelebihan pemrograman berorientasi objek
adalah dapat mendefinisikan tipe data baru
yang merupakan objek dari class tertentu.
Tipe data ini digunakan untuk mereferensikan
objek atau class tertentu, seperti String.
String namaMhs;
Segitiga s = new Segitiga();
Object o;
Cat myNewCatReferenceVariable;
String s1, s2, s3;
27 ajib fik udinus
Variabel
Mendeklarasikan Variabel
Variabel : entitas penyimpanan data yang paling elementer
Variabel lebih mengacu ke alokasi memory daripada nilai data
28 ajib fik udinus
Variabel
Penamaan Variabel :
Identifier variabel harus dimulai dengan alfabet huruf besar,
huruf kecil, tanda dollar ( $ ) atau underscore (_). Setelah
karakter pertama, dapat diikuti dengan angka.
Identifier variabel tidak boleh mengandung punctuation, spasi,
atau dashes ( - )
Diawali dengan huruf kecil pada kata pertama dan huruf besar
pada kata kedua dan selanjutnya.
Kata kunci pada teknologi Java , tidak dapat dijadikan nama
identifier variabel.
29 ajib fik udinus
Variabel
Penamaan Variabel :
Contoh nama variabel yang valid :
@2var
_status
tanggal
jumlahBarang
nama_kecil
final_test
int_float
Melewatkan Nilai ke Variabel
Contoh :
30 ajib fik udinus
Sun's Java Code Conventions
Classes and interfaces The first letter should be capitalized, and if several words are linked
together to form the name, the first letter of the inner words should be uppercase (a
format that's sometimes called "camelCase"). For classes, the names should typically be
nouns. For example:
Dog
Account
PrintWriter
For interfaces, the names should typically be adjectives like
Runnable
Serializable
Methods The first letter should be lowercase, and then normal camelCase rules should be
used. In addition, the names should typically be verb-noun pairs. For example:
getBalance
doCalculation
setCustomerName
31 ajib fik udinus
Sun's Java Code Conventions
Variables Like methods, the camelCase format
should be used, starting with a lowercase letter. Sun
recommends short, meaningful names, which
sounds good to us. Some examples:
buttonWidth
accountBalance
myString
Constants Java constants are created by marking
variables static and final. They should be named
using uppercase letters with underscore characters
as separators:
MIN_HEIGHT
32 ajib fik udinus
Access to Member Class
33 ajib fik udinus
Operator (1)
Aritmatik
34 ajib fik udinus
Operator (2)
Aritmatika Unary
35 ajib fik udinus
Operator (3)
Bitwise
36 ajib fik udinus
Operator Bitwise (1)
Shift Kanan Dengan Penambahan ‘0’ pada Bit-bit Kiri
Operator ‘&’
31 30 29 28 27 7 6 5 4 3 2 1 0
0 0 00 0 00 00 1 10 0 = 12
31 30 29 28 27 7 6 5 4 3 2 1 0
1 1 11 1 11 11 0 01 1 = - 13
&
31 30 29 28 27 7 6 5 4 3 2 1 0
0 0 00 0 00 00 0 00 0 =0
37 ajib fik udinus
Operator Bitwise (2)
Operator ‘~’
38 ajib fik udinus
Prioritas Operator (1)
Prioritas dari yang paling dahulu dikerjakan :
Operator pada tanda kurung “(…)”
Operator-operator Increment dan Decrement
Operator Perkalian dan Pembagian
Operator Penjumlahan dan Pengurangan
Operator Bitwise, dari kiri ke kanan
39 ajib fik udinus
Prioritas Operator (2)
Contoh 1:
int c = 12 * 3 +5 / (8 - 3) ;
Urutan Operasinya :
int c = 12 * 3 + 5 / 5 ;
int c = 36 + 5 / 5;
int c = 36 + 1 ;
int c = 37;
Contoh 2:
int c = 3 + 4 >> 1 + 1 << 1;
Urutan Operasinya :
int c = 7 >> 1 + 1 << 1;
int c = 7 >> 2 << 1;
int c = 1 << 1;
int c = 2;
40 ajib fik udinus
Promosi dan Type-Casting(1)
Promosi
proses pengubahan representasi bit variabel primitif dari representasi bit yang
lebih rendah ke representasi bit yang lebih tinggi
Promosi karena assigning tipe data dengan representasi bit
yang lebih tinggi ke yang lebih rendah
Contoh :
short a = 12;
int b = a ; // nilai a promosi ke integer
Promosi karena assigning tipe data integral ke tipe data
floating-point
Contoh :
int a = 30;
float b = a ;
41 ajib fik udinus
Promosi dan Type-Casting(2)
Type-Casting
proses pengubahan representasi bit variabel primitif dari
representasi bit yang lebih tinggi ke representasi bit yang lebih
rendah.
Syntax :
identifier = (target_type) value ;
Contoh :
int num1 = 34;
int num2 = 45;
short num3 = (short)(num1 + num2 );
Keterangan : (num1 + num2) menghasilkan nilai integer. Agar nilainya
dapat di-assign ke num3, dilakukan casting dengan pernyataan :
(short) (num1+num2)
42 ajib fik udinus
Promosi dan Type-Casting(3)
Type-Casting merupakan proses pemotongan bit
Misalnya : Type-casting dari float ke int
Contoh :
int num1;
long num2 = 123987654321L;
num1 = (int)(num2);
num1 akan bernilai -566397263
43 ajib fik udinus
Beberapa Catatan Promosi &
Casting (1)
Operasi Aritmatika Menghasilkan Nilai di Luar Batas Tipe
Data
Contoh :
int a = 55555;
int b = 66666;
int c = a * b
[Link](c);
Output : -591337666 ( != 55555 * 66666 )
Solusi :
int a = 55555;
long b = 66666;
long c = a * b;
[Link](c);
Output : 3703629630 ( = 55555 * 66666 )
44 ajib fik udinus
Beberapa Catatan Promosi
& Casting (2)
Asumsi dasar compiler untuk tipe data integer:
Nilai yang di-assign tanpa penambahan keterangan apapun,
diasumsikan sebagai nilai integer
Jika pada suatu operasi aritmatika, operand-operand pada ruas
kanan berbeda tipe datanya ( semuanya masih termasuk tipe
data integral ), dan semua tipe data merupakan tipe data yang
representasi bitnya di bawah integer, maka hasil operasi
aritmatika tersebut akan diasumsikan sebagai integer
Jika pada suatu operasi aritmatika, operand-operand pada ruas
kanan berbeda tipe datanya ( semuanya masih termasuk tipe
data integral ), dan salah satu tipe data merupakan tipe data
yang representasi bitnya di atas integer, yaitu long, maka
hasil operasi aritmatika tersebut akan diasumsikan sebagai
long
45 ajib fik udinus
Beberapa Catatan Promosi
& Casting (3)
Asumsi dasar compiler untuk tipe data floating-point:
Nilai yang di-assign tanpa penambahan keterangan apapun
akan diasumsikan sebagai double
Jika pada operasi aritmatika dengan semua operand pada ruas
kanan menggunakan tipe data floating-point, maka hasil
operasi aritmatika tersebut direpresentasikan dengan tipe data
yang mengikuti tipe data dengan representasi tertinggi pada
ruas kanan operasi aritmatika tersebut
Jika pada operasi aritmatika dengan sebagian operand pada
ruas kanan menggunakan tipe data floating-point dan sebagian
menggunakan tipe data integral, maka hasil operasi aritmatika
tersebut direpresentasikan dengan tipe data floating-point
yang mengikuti tipe data floating-point dengan representasi bit
tertinggi pada ruas kanan operasi aritmatika tersebut
46 ajib fik udinus
Java Doc
47 ajib fik udinus
Ada pertanyaan
48 ajib fik udinus
Kontrak Nilai
NO Nilai Prosentase
1 Tugas 30% (16), 1 UTS, 1 UAS, 14
Mingguan
2 UTS 35%, Live coding
3 UAS 35%, Presentasi face to face
49 ajib fik udinus
Latihan
1. Buatlah program untuk menghitung luas :
Segitiga
Lingkaran
Bujursangkar
Empat Persegi Panjang
50 ajib fik udinus
Hasil Akhir Kuliah OOP
Dokumentasi Program
Java Fundamental – Oracle Academy
Sertifikat Java
[Link] -> Java & Oracle
51 ajib fik udinus
Proyek Akhir
52 ajib fik udinus
Ajib Susanto
ajibsusanto@[Link]
[Link]@[Link]
[Link]
@ajibsusanto / 085876247118
53 ajib fik udinus
Rehat Sejenak
54 ajib fik udinus
Referensi
Object First With Java, Fifth edition, David J. Barnes & Michael
Kölling, Prentice Hall / Pearson Education, 2012.
The JavaTM Tutorial,
[Link]
Oracle, 1995-2014.
Java SE Tutorial,
[Link]
[Link], Oracle, 2014.
Java Platform, SE Documentation,
[Link]
SCJP Sun Certified Programmer for JavaTM 6 Study Guide Exam
(310-065), Kathy Sierra & Bert Bates, Mc Graw Hill, 2008.
Object Oriented Programming with Java, Romi Satria
Wahono, 2008.
55 ajib fik udinus