Anda di halaman 1dari 29

Methods and Classes

Kelompok 2 Mata Kuliah Pemrograman Berorientasi Objek


A. Khalil Gibran Basir | Nurul Hidayah Rahim | Yayu Aprilika Yunus |
Nurul Hardiyanti | A. Hajar Aswad | Andi Afif Rofii

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Sub Materi
Access Modifier
Membuat dan Menggunakan Object
Overload Methods
Overload Constructor
Penggunaan Rekursi
Menggunakan Static

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Access Modifier
Pada umumnya, terdapat tiga jenis Access Modifier untuk sebuah
Class :
1. Public
2. Private
3. Protected
Jika Access Modifier tidak dideklarasikan akan dinyatakan sebagai
default.

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Ruang Lingkup Access Modifier


Ruang Lingkup

public

protected

default

private

Kelas sama

Beda Kelas, Package


sama

Beda Kelas, Beda


Package, di Kelas
Turunan

Beda Kelas, Beda


Package, tidak di Kelas
Turunan

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Public vs Private on Java


class Kelasnya {
private int alpha; //private access
public int beta; //public access
int gamma; //default access (secara esensial adalah public)
/* Methods untuk mengakses alpha. Adalah hal yang wajar
* untuk anggota dari sebuah kelas mengakses anggota kelas yang bersifat private
* pada kelas yang sama
*/
void setAlpha(int a){
alpha = a;
}
int getAlpha(){
return alpha;
}
KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Public vs Private on Java


class MyClass{
public static void main (String [] args){
Kelasnya ob = new Kelasnya();
/* Access to Alpha is allowed only through its Accessor method
*/
ob.setAlpha(-99);
System.out.println("ob.alpha is "+ob.getAlpha());
//You cannot access alpha like this:
//ob.alpha = 10; //Wrong! alpha is private
//these are OK because beta and gamma are public
ob.beta = 88;
ob.gamma = 99;
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Membuat dan Menggunakan Object


Objek merupakan hasil instansi dari kelas. Untuk membuat objek di Java kita

dapat menggunakan perintah new. Atribut, metode, dan fungsi yang dimiliki
oleh objek hanya dapat dideklarasikan dalam kelas.
NamaKelas NamaObjek = new NamaKelas();
NamaObjek.NamaMethod();
KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Membuat dan Menggunakan Object


// Objects can be passed to methods
class Block{
int a, b, c;

int volume;

Block (int i, int j, int k){


a= i;

b= j;
c=k;
volume = a*b*c;
}
// Return true if ob defines same block.
boolean sameBlock (Block ob){ //Use object type for parameter
if ((ob.a == a) & (ob.b==b) & (ob.c==c)) return true;
else return false;
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Membuat dan Menggunakan Object


//Return true if ob has same volume.
boolean sameVolume (Block ob){ //Use object type for parameter
if (ob.volume == volume) return true;
else return false;
}
}
class PassOb {
public static void main (String [] args){
Block ob1 = new Block (10,2,5);
Block ob2 = new Block (10,2,5);
Block ob3 = new Block (4,5,5);
System.out.println("ob.1 same dimensions as ob 2 : "+ob1.sameBlock (ob2)); //Pass an object
System.out.println("ob1 same dimensions as ob3 : "+ob1.sameBlock(ob3)); //Pass an object
System.out.println("ob1 same volume as ob3 : "+ob1.sameVolume(ob3)); //Pass an object
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Methods
Dalam java, dua atau lebih method dalam kelas yang sama dapat menggunakan

nama yang sama, sepanjang deklarasi parameternya berbeda. Method seperti


ini disebut dengan disebut overloaded, dan prosesnya merujuk pada method
overloading.

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Methods
class Overload {
void ovlDemo (){
System.out.println("No Parameters");
}
//Overload ovlDemo for one integer parameter.
void ovlDemo (int a){

System.out.println("One Parameter : "+a);


}
//Overload ovlDemo for two integer Parameters.
int ovlDemo (int a, int b){
System.out.println("Two parameters : "+a+" "+b);
return a+b;
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Methods
//Overload ovlDemo for two double parameters.
double ovlDemo (double a, double b){
System.out.println("Two double Parameters : " +a+" "+b);
return a+b;
}
}

public class OverloadDemo {


public static void main (String [] args){
Overload ob = new Overload();
int resI;
double resD;

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Methods
//call all versions of ovlDemo()
ob.ovlDemo();
System.out.println();
ob.ovlDemo(2);
System.out.println();
resI = ob.ovlDemo(4, 6);

System.out.println("Result of ob.ovlDemo (4,6) : "+resI);


System.out.println();
resD = ob.ovlDemo(1.1, 2.32);
System.out.println("Result of ovlDemo (1.1, 2.32) : " + resD);
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Constructor
Konstruktor adalah metode yang dapat digunakan untuk memberikan nilai

awal saat objek diciptakan. Metode ini akan dipanggil secara otomatis oleh java

ketika new dipakai untuk menciptakan objek dari suatu kelas

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Constructor
Sifat-sifat konstruktor:
Namanya sama dengan nama kelas

Tidak memiliki nilai balik dan tidak menggunakan kata kunci void

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Overload Constructor
Overloading terhadap konstruktor merupakan suatu mekanisme

pembuatan konstruktor yang memiliki bentuk lebih dari satu. Dalam


hal ini pembeda antara satu konstruktor dengan konstruktor yang lain
berupa jumlah parameter atau tipe parameter

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Rekursi
Method yang memanggil dirinya sendiri baik secara langsung
maupun secara tidak langsung.
f(0) = 0; f(x) = 2 f(x-1) + x2
f(1) = 1; f(2) = 6; f(3) = 21; f(4) = 58

Fib(0)=0; fib(1)=1; untuk n>1 : fib(n) = fib(n -1) + fib(n -2)


public static int f (int x)
{
if (x == 0) return 0;
return 2 * f (x -1) + x * x;
}
KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Method Recursion
Fungsi yang memanggil dirinya, secara langsung atau lewat fungsi lain, disebut
fungsi rekursif
Proses pemanggilan diri itu disebut rekursi (recursion).
Contoh:
Memangkatkan bilangan real tak nol dengan suatu pangkat bilangan bulat

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Method Recursion
/**
Menghitung pangkat sebuah bilangan real
(versi rekursif).
@param x bilangan yang dipangkatkan (x != 0)

@param n pangkatnya
*/
public static double pangkatRekursif (double x, int n)
{
if (n == 0) {

return 1.0;
KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Method Recursion
} else if (n > 0) {
return (x * pangkatRekursif (x, n -1));
} else {
return (1 / pangkatRekursif (x, -n));

}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Berapa nilai 4-2?

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Contoh Program Rekursi (Factorial)


class Factorial {

result=1;

//This is a recursive function.

for (t=1;t<=n; t++) result *=t;


return result;

int factR (int n){


}

if (n==1) return 1; //Apabila

class Recursion {

result = factR(n-1)*n;
return result;
}

//This is an iterative equivalent

System.out.println("Factorial of 3 is
"+f.factI(3));

int result;

System.out.println("Factorial of 4 is
"+f.factI(4));

public static void main (String [] args){


Factorial f = new Factorial();
System.out.println("Factorial using recursive
method.");
System.out.println("Factorial of 3 is " +f.factR(3));

System.out.println("Factorial of 5 is
"+f.factI(5));
}

System.out.println("Factorial of 4 is " +f.factR(4));

int factI(int n){

System.out.println("Factorial of 5 is " +f.factR(5));

int t, result;

System.out.println();

KELOMPOK 2 | OOP 2015

System.out.println("Factorial using
iterative method ");

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Static on Java
Keyword static pada java digunakan untuk mengakses member baik variable
ataupun method (prosedur atau fungsi) pada class tertentu tanpa harus
membuat suatu objek dari class itu. Umumnya untuk mengakses member dari
kelas lain kita harus membuat objek kelas itu tapi dengan menggunakan
keyword static kita dapat langsung menggunakan member kelas lain. Keyword
static dapat digunakan untuk variabel ataupun method

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Static on Java
Method yang dideklarasi static memiliki beberapa aturan, yaitu:

Hanya dapat dipanggil oleh method static lainnya.


Hanya dapat diakses oleh data static.

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Static on Java
contoh yang bukan static method
class matakuliah{
String nama;
int sks;
void tampil(){
System.out.println(nama matkul +nama);
System.out.println(sks +sks);
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Static on Java
public class tampilkan{
public static void main(string[]args){
//harus dibuat instan class
matakuliah matkul=new matakuliah();
matkul.nama = matematika diskrit;
matkul.sks=2;
matkul tampil();
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Static on Java
contoh menggunakan static method
class matakuliah{
static void tampil(String nama,int sks){
System.out.println(nama matkul : +nama);
System.out.println(sks : +sks);
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Static on Java
public class tampilkan{
public static void main(string[]args){
// tanpa membuat instan class langsung memanggil method nya
matakuliah.tampil(Matematika Diskrit,2);
}
}

KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

TERIMA KASIH
KELOMPOK 2 | OOP 2015

ILMU KOMPUTER UNIVERSITAS HASANUDDIN MAKASSAR

Anda mungkin juga menyukai