Pemrograman Berorientasi Objek (JAVA) Oleh : Andi Farmadi
Pemrograman Berorientasi Objek(JAVA)
Oleh : Andi Farmadi
Quis (7 menit)
1. Apa perbedaan antara Prosedur dan fungsi (2 menit)
2. Tulislah program java untuk mencari jumlah bilangan bulat yang masing-masing terdiri dari 1 sampai 10, dari 20 sampai 30, dan dari 35 sampai 45 dalam sebuah program. (5 menit)
Dikumpul (0.5 menit)
Prosedur dan fungsi• FungsiFungsi, merupakan program yag ditulis untuk
menugaskan proses tertentu yang berguna untuk meyederhanakan program, fungsi memiliki nilai balik jika dipanggil.
• ProsedurProsedur, kumpulan program yang berguna untuk menugaskan proses tertentu yang berguna untuk menyederhanakan program, pada prosedur tidak ada pengembalian nilai jika dipanggil.
Program Jumlahint sum = 0;
for (int i = 1; i <= 10; i++)
sum += i;
System.out.println(“Jumlah dari 1 sampai 10 adalah" + sum);
sum = 0;
for (int i = 20; i <= 30; i++)
sum += i;
System.out.println(“Jumlah dari 20 sampai 30 adalah" + sum);
sum = 0;
for (int i = 35; i <= 45; i++)
sum += i;
System.out.println(“Jumlah dari 35 sampai 45 is " + sum);
METHOD PADA JAVA
Prosedur/ Fungsi = Method• Fungsi dalam bahasa pemrograman java disebut method yang
mengembalikan nilai (memiliki nilai balik) • Dengan ciri memiliki tipe data tipe data dan returnreturn yang diikuti nilai kembali
– Prosedur dalam bahasa pemrograman java disebut method yang tidak mengembalikan nilai (tidak memiliki nilai balik)
– Dengan ciri memiliki voidvoid dan tidak memiliki return
typeData namaMethod( ){ //Statemen return Nilaikembali}
void namaMethod( ){ // Statemen}
Permasalahan pada solusiint sum = 0;
for (int i = 1; i <= 10; i++)
sum += i;
System.out.println(“Jumlah dari 1 sampai 10 adalah" + sum);
sum = 0;
for (int i = 20; i <= 30; i++)
sum += i;
System.out.println(“Jumlah dari 20 sampai 30 adalah" + sum);
sum = 0;
for (int i = 35; i <= 45; i++)
sum += i;
System.out.println(“Jumlah dari 35 sampai 45 is " + sum);
Solusi masalah dengan Methodpublic static int sum(int i1, int i2) { int sum = 0; for (int i = i1; i <= i2; i++) sum += i; return sum;}
public static void main(String[] args) { System.out.println(“Jumlah dari 1 sampai 10 adalah " + sum(1, 10)); System.out.println(“Jumlah dari 20 sampai 30 adalah " + sum(20, 30)); System.out.println(“Jumlah dari 35 sampai 45 adalah " + sum(35, 45));}
Memanggil Method
public static int max(int num1, int num2) {int result;if (num1 > num2) result = num1;else result = num2;return result;}
public static int max(int num1, int num2) {int result;if (num1 > num2) result = num1;else result = num2;return result;}
int z = maxmax(x, y); int z = maxmax(x, y);
Meminta methodDefinisi methodDefinisi method
Nama method
parameterformal
Tipe Return
Parameter Aktual
Nilai Return
parameterformal
10
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
11
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Sekarang nilai i adalah 5
12
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Sekarang nilai j adalah 2
13
Memanggil Method, cont..
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Memanggil method max(i, j)
14
Memanggil Method, cont..
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Memanggil method max(i, j)Mengirim nilai dari i ke num1Mengirim nilai dari j ke num2
15
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Deklarasi variable result
16
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
(num1 > num2) adalah true karena num1 = 5 dan num2 = 2
17
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
result = 5
18
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
return result, adalah 5
19
Memanggil Method, cont.
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
return max(i, j) dan memasukkan nilai return pada k
20
Memanggil Method, cont..
public static void main(String[] args) {
int i = 5;
int j = 2;
int k = max(i, j);
System.out.println(“nilai maksimum antara " + i +
" dan " + j + " adalah " + k);
}
public static int max(int num1, int num2) {
int result;
if (num1 > num2)
result = num1;
else
result = num2;
return result;
}
Eksekusi statemen print
21
Stack dimemori
(a) main method dipangil.
Ruang dibutuhkan untk main method k: j: 2 i: 5
(b) method max dipanggil
Ruang dibutuhkan untk method max num2: 2 num1: 5
(d) method max selesai dan nilai return dikirim ke k.
(e) main method selesai digunakan
Stack kosong
Ruang dibutuhkan untk main method k: j: 2 i: 5
Ruang dibutuhkan untk main method k: 5 j: 2 i: 5
(c) method max dieksekusi.
Ruang dibutuhkan untk method max result: 5 num2: 2 num1: 5
Ruang dibutuhkan untk main method k: j: 2 i: 5
22
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
i adalah deklarasi dan inisialisasi
Memenggil main method
i: 5
23
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
j adalah deklarasi dan inisialisasi
Memenggil main method
j: 2 i: 5
24
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
Deklarasi k
Memenggil main method
Ruang yg dibutuhkan main method
k: j: 2 i: 5
25
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
Invoke max(i, j)
Memenggil main method
Ruang yg dibutuhkan main method
k: j: 2 i: 5
26
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
Mengirimkan nilai dari i dan j ke num1 and num2
Method max dipanggil.
num2: 2 num1: 5
Ruang dibutuhkan main method
k: j: 2 i: 5
27
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
pass the values of i and j to num1 and num2
Method max dipanggil.
result:
num2: 2 num1: 5
Ruang dibutuhkan utk main method
k: j: 2 i: 5
28
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
(num1 > num2) = true
Method max dipanggil.
result:
num2: 2 num1: 5
Ruang dibutuhkan untuk main method
k: j: 2 i: 5
29
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
Memasukkan nilai num1 ke result
Method max dipanggil
Ruang dibutuhkan untuk method max result: 5
num2: 2 num1: 5
Ruang dibutuhkan untuk main method
k: j: 2 i: 5
30
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
Return result dan memesukkanya ke k
method max dipanggil.
Ruang dibutuhkan untuk method max result: 5
num2: 2 num1: 5
Ruang dibutuhkan untuk main method k:5
j: 2 i: 5
31
Trace dengan Stack
public static void main(String[] args) { int i = 5; int j = 2; int k = max(i, j); System.out.println( "The maximum between " + i + " and " + j + " is " + k); }
public static int max(int num1, int num2) { int result; if (num1 > num2) result = num1; else result = num2; return result; }
Exekusi statement print
main method dipanggil
Ruang dibutuhkan untuk main method k:5
j: 2 i: 5
32
Kelas Math
• Kelas konstan:– PI– E
• Kelas method: – Method Trigonometric– Method Exponent– Method Rounding– Method min, max, abs, dan random
33
Method Trigonometric
• sin(double a)
• cos(double a)
• tan(double a)
• acos(double a)
• asin(double a)
• atan(double a)
Radians
toRadians(90)
Examples:
Math.sin(0) returns 0.0
Math.sin(Math.PI / 6) returns 0.5
Math.sin(Math.PI / 2) returns 1.0
Math.cos(0) returns 1.0
Math.cos(Math.PI / 6) returns 0.866
Math.cos(Math.PI / 2) returns 0
34
Method Exponent
• exp(double a)
Mengembalikan e berpangkat a.
• log(double a)
Mengembalikan logaritma dari a.
• log10(double a)
Mengembalikan logaritma basis 10 dari a.
• pow(double a, double b)
Mengembalikan a pangkat b.
• sqrt(double a)
Mengembalikan akar kuadrat dari a.
contoh:
Math.exp(1) returns 2.71
Math.log(2.71) returns 1.0
Math.pow(2, 3) returns 8.0
Math.pow(3, 2) returns 9.0
Math.pow(3.5, 2.5) returns 22.91765
Math.sqrt(4) returns 2.0
Math.sqrt(10.5) returns 3.24
35
Method Rounding
• double ceil(double x)x dibulatkan keatas pada nilai integer terdekat.
• double floor(double x)x dibulatkan kebawah pada nilai integer terdekat.
• double rint(double x)
x dibulatkan ke integer terdekatnya.
• int round(float x)Return (int)Math.floor(x+0.5).
• long round(double x)Return (long)Math.floor(x+0.5).
36
Contoh Method RoundingMath.ceil(2.1) Math.ceil(2.0) Math.ceil(-2.0) Math.ceil(-2.1) Math.floor(2.1) Math.floor(2.0) Math.floor(-2.0) Math.floor(-2.1) Math.rint(2.1) Math.rint(2.0) Math.rint(-2.0) Math.rint(-2.1) Math.rint(2.5) Math.rint(-2.5) Math.round(2.6f) Math.round(2.0) Math.round(-2.0f) Math.round(-2.6)
returns 3.0 returns 2.0 returns –2.0 returns -2.0 returns 2.0 returns 2.0 returns –2.0 returns -3.0 returns 2.0 returns 2.0 returns –2.0 returns -2.0 returns 2.0
returns -2.0 returns 3 returns 2 returns -2
returns -3
37
min, max, dan abs
• max(a, b)and min(a, b)
Mengembalikan maksimum atau minimum dari dua parameter.
• abs(a)
Mengembalikan nilai absolut dari parameter.
• random()Mengembalikan nilai random bertipe double dalam range [0.0, 1.0).
Examples:
Math.max(2, 3) returns 3
Math.max(2.5, 3) returns 3.0
Math.min(2.5, 3.6) returns 2.5
Math.abs(-2) returns 2
Math.abs(-2.1) returns 2.1
• Kelas StringMethod length()Method charAt(int x)Method concat(String str)Method replace(char lama, char baru)
•Kelas StringBuffer•Kelas Character
Kelas String
Class String
Class String dipakai untuk merepresentasikan data yang berbentuk string.
Contoh beberapa methods/metode yang terdapat pada class String adalah :length()charAt(int x)concat(String str)replace(char lama, char baru)
Contoh Penggunaan Methods Pada Class String
Length()
//nama file Length1.javapublic class Length1{
public static void main(String args[]){
String a = new String("Bahasa Java");int panjang;
panjang = a.length();System.out.println("Panjang String \""+a+"\" adalah “ +panjang);
}}
Catatan :
• Fungsi atau metode length() dipakai untuk menghitung panjang dari string.
• Return value (nilai kembalian) dari fungsi length() ini adalah integer.
//nama file : Length2.javaimport javax.swing.JOptionPane;public class Length2{
public static void main(String args[]){
String a;int panjang;
a = JOptionPane.showInputDialog("Masukkan Contoh Kalimat : ");
panjang = a.length();JOptionPane.showMessageDialog(null,"Panjang String \““ +a+"\" adalah "+panjang);System.exit(0);
}}
Contoh Penggunaan fungsi charAt(int x)
//nama file : CharAt1.javapublic class CharAt1 { public static void main(String args[])
{ String a = "Java";
//bisa diganti dengan//String a = new String(“Java”);
for (int i=0; i < a.length(); i++) System.out.println("Karakter " + i +
" adalah " + a.charAt(i)); }}
Catatan :• Fungsi atau metode charAt(int x) dipakai
untuk mendapatkan karakter pada posisi x dari suatu string.
• Posisi awal suatu string adalah 0, sama seperti index awal pada suatu array.
• Sehingga pada contoh di atas, huruf J (dari Java) berada pada posisi 0.
//Nama file Concat1.java
public class Concat1 {
public static void main(String args[]) {
String a = "Java "; String b = "Programming"; System.out.println("Penggabungan \"" + a +
"\" dan \"" + b+"\" adalah "+a.concat(b)); }}
Contoh Penggunaan Metode concat(String str)
Catatan :
• Fungsi atau metode concat(String x) dipakai untuk menggabungkan string x dengan suatu string.
• Contoh : “to”.concat(“get”).concat(“her”) akan menghasilkan “together”.
Contoh Penggunaan Metode replace(x, y)
//Nama file : Replace1.javapublic class Replace1{
public static void main(String args[]){
String a = "ada apa ya?";
System.out.println("Kalimat awal adalah : "+a);System.out.println("Setelah huruf a diganti huruf o");System.out.println("-------------------------------");System.out.println(a.replace("a","o"));
}}
Catatan :• Fungsi atau metode replace(char lama, char
baru) dipakai untuk mengubah huruf lama menjadi huruf baru.
• Contoh : replace(“a”,”i”) akan mengubah huruf a menjadi i.
• Replace(“ri”,”ya99”) akan mengubah kumpulan huruf ri menjadi ya99.
Contoh Penggunaan Metode substring(awal, akhir)
//Nama file Substring1.javapublic class Substring1{
public static void main(String args[]){
String b;String a = "Bahasa Pemrograman 2";
b = a.substring(1,5);System.out.println("String a adalah : "+a);System.out.println("Substring(1,5) dari a adalah");System.out.println("----------------------------");System.out.println(b);
}}
Catatan :• Fungsi atau metode substring(int awal, int
akhir) dipakai untuk mengambil sejumlah string dari posisi ‘awal’ sampai ‘akhir’.
• Tapi ‘akhir’ adalah akhir-1.• Contoh: “Bahasa”.substring(1,5) akan
mengambil string dari posisi 1 sebanyak 5-1. Hasilnya “ahas”
• Contoh: “Programming”.substring(3,6) akan menghasilkan “gra”.
• Posisi awal suatu string adalah 0.
Class StringBuffer
Contoh beberapa methods/metode yang terdapat pada class StringBuffer adalah :append()insert()delete()
Contoh Penggunaan Metode append()
//Nama file : append1.javapublic class append1{
public static void main(String args[]){StringBuffer c;c = new StringBuffer("Belajar Java ");
String b = "Programming";System.out.println("c : "+c);System.out.println("b : "+b);System.out.println("Setelah dikenai perintah c.append(b), c menjadi :");System.out.println(c.append(b));}
}
Contoh Penggunaan Metode insert(x,y)
//Nama file : Insert1.javapublic class Insert1{
public static void main(String args[]){StringBuffer c;c = new StringBuffer("Belajar Programming");System.out.println(c);System.out.println("Setelah dikenai insert(8,\"Java \"), menjadi :");System.out.println(c.insert(8,"Java "));}
}
Contoh Penggunaan Metode delete(awal, akhir)
//Nama file : Delete1.javapublic class Delete1{
public static void main(String args[]){
StringBuffer c;c = new StringBuffer("Belajar Programming");
System.out.println(c);System.out.println("Setelah dikenai delete(0,8), menjadi :");System.out.println(c.delete(0,8));
}}
Contoh Penggunaan Metode Capacity()
//Nama file : kapasitas.javapublic class kapasitas{
public static void main(String args[]){StringBuffer c = new StringBuffer("");
System.out.println("Isi c adalah : "+c);System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Setelah dikenai append(\"Halo\"), c menjadi :");System.out.println(c.append("Halo"));System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Panjang c adalah : "+c.length());System.out.println("c ditambah dg \", minggu depan libur\"");System.out.println("Isi c adalah : "+c.append(", minggu depan libur"));System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Panjang c adalah : "+c.length());
System.out.println("c ditambah dg \". Bener lho.\"");System.out.println("Isi c adalah : "+c.append(". Bener lho."));System.out.println("Kapasitas StringBuffer c : "+c.capacity());System.out.println("Panjang c adalah : "+c.length());
}}
Lanjutan dari program
Catatan :• Fungsi atau metode capacity() dipakai untuk
mengetahui berapa kapasitas dari suatu bufferstring.• Defaultnya adalah 16• Fungsi atau metode length() dipakai untuk
mengetahui panjang stringnya.• Jika panjang string lebih kecil dari kapasitasnya,
maka kapasitasnya akan tetap• Jika panjang string melebihi dari kapasitasnya, maka
secara otomatis kapasitas akan diperbesar dua kali lipat plus 2 dari kapasitas sebelumnya
Catatan :
• Fungsi atau metode setLength() dipakai untuk menentukan panjang dari string.
• Contoh, jika pada baris terakhir dari program di atas ditambahkan dengan perintah
c.setLength(10);
maka isi stringbuffer c adalah Halo, ming
• setLength() tidak mengubah kapasitas stringbuffer
Class Character
Contoh beberapa methods/metode yang terdapat pada class Character adalah :isLowerCase() apakah huruf kecilisUpperCase() apakah huruf besarisDigit() apakah angkaequals() apakah samatoLowerCase() ke huruf keciltoUpperCase()ke huruf besar
Contoh Programpublic class karakter1{
public static void main(String args[]){Character kar = 'a';System.out.println("Apakah "+kar+" itu Digit ? “+Character.isDigit(kar));System.out.println("Apakah "+kar+" itu Letter (Huruf) ? “+Character.isLetter(kar));System.out.println("Apakah "+kar+" itu LowerCase (Huruf Kecil) ? “+Character.isLowerCase(kar));System.out.println("Apakah "+kar+" itu UpperCase (Huruf Besar) ? “+Character.isUpperCase(kar));System.out.println("Apakah "+kar+" itu Whitespace ? “+Character.isWhitespace(kar));Character kar1=new Character('A');System.out.println("Apakah "+kar+" itu equals (sama) dg "+kar1+" ? “+kar.equals(kar1));}
}
Contoh Program Lain
public class karakter2{
public static void main(String args[]){
String str = "Bahasa";String output = "Ada di posisi ";int panjangStr = str.length();Character kar = ' ';int jumlah_a = 0;
for(int i=0; i<panjangStr; i++){ kar = Character.valueOf(str.charAt(i));
//Character.valueOfubah ke charif (kar=='a'){
jumlah_a = jumlah_a+1;output=output+i+" ";
}