Anda di halaman 1dari 9

Pr.

Algoritma dan Pemrograman

LAPORAN 2MINGGU

JOBSHEET 11
PEMROGRAMAN BERORIENTASI OBYEK
11.1 Tujuan Instruksional Khusus
Pada akhir kegiatan belajar, mahasiswa dapat :
1. menjelaskan OOP dan beberapa konsepnya
2. perbedaan antara class dan object
3. pebedaan antara instance variables/method dan class (static) variable/method
4. menjelaskan method apa dan bagaimana memanggil method parameter
5. mengidentifikasi beberapa jangkauan dari sebuah variable
6. memilih tipe data primitive dan object
7. membandingkan objects dan menjabarkan class dari objects.

11.2 Teori Pendahuluan


OOP berputar pada konsep dari object sebagai dasar element dari program anda. Ketika
kita membandingkan dengan dunia nyata, kita dapat menemukan beberapa objek
disekitar kita, seperti mobil, singa, manusia dan seterusnya. Object ini dikarakterisasi
oleh sifat / attributnya dan tingkah lakunya. Contohnya, objek sebuah mobil
mempunyai sifat tipe transmisi, warna dan manufaktur. Mempunyai kelakuan berbelok,
mengerem dan berakselerasi. Dengan cara yang sama pula kita dapat mendefinisikan
perbedaan sifat dan tingkah laku dari singa seperti pada tabel 4.1 berikut ini :
Tabel 11.1 Obyek, properties dan behavior
Object Properties Behavior
Car Tipe transmisi Membelok
Pabrikan Mengerem
Warna Menambah kecepatan
Lion Berat Mengaum
Warna Tidur
Lapar Berburu
Buas

Dengan deskripsi ini, objek pada dunia nyata dapat secara mudah dimodelisasi
sebagai objek software menggunakan sifat sebagai data dan tingkah laku sebagai
method.

Jobsheet 11 Halaman 30
Pr. Algoritma dan Pemrograman

Pada dunia software, sebuah objek adalah sebuah komponen software yang stukturnya
mirip dengan objek pada dunia nyata. Setiap objek dibuat dari satu set data (sifat)
dimana variable menjabarkan esensial karakter dari objek, dan juga terdiri dari satu set
dari methode (tingkah laku) yang menjabarkan bagaimana tingkah laku dari objek. Jadi
objek adalah sebuah berkas software dari variable dan method yg berhubungan.
Variable dan methods dalam objek Java scara formal diketahui sebagai instance variable
dan instance methods untuk membedakannya dari variable klas dan method klas,
dimana akan dibahas kemudian.
Class adalah sturktur dasa dari OOP. Dia terdiri dari dua tipe dari anggota dimana
disebut dengan field (attribut/properti) dan method. Field mespesifikasi tipe data yang
didefinisikan oleh class, sementara methode spesifikasi dari operasi. Sebuah objek
adalah sebuah instance pada class. Untuk dapat membedakan antara class dan object,
dapat dilihat dari sebuah class mobil dimana dapat digunakan untuk medefinisikan
beberapa object mobil. Pada tabel dibawah, mobil A dan mobil B adalah objek dari
kelas mobil. Kelas memiliki field plat nomer, warna, manufaktur, dan kecepatan yang
diisi dengan nilai korespondendi pada objek mobil A dan mobil B. mobil juga dapat
berakselerasi, berbelok dan mengerem.
Tabel 11.2 Sebuah Class dengan 2 buah Obyek
Class Mobil Obyek Mobil A Obyek Mobil B
Nomor Mobil H 1234 BC H 5678 AG
Warna Biru Hijau
Pabrikan Honda Toyota
Kecepatan 90 Km/jam 100 Km/jam
Method : Method : Method :
- Menambah Kecepatan - Menambah Kecepatan - Menambah Kecepatan
- Berbelok - Berbelok - Berbelok
- Mengerem - Mengerem - Mengerem

Ketika diinisialisi, tiap objek mendapat satu set baru dari state variable. Bagaimanapun,
implementasi dari method dibagi diantara objek pada kelas yang sama. Kelas
menyediakan keuntungan dari reusability. Software programmers dapat digunakan dari
sebuah kelas lagi dan lagi untuk membuat beberapa objek.

11.2.1 Instansiasi class

Jobsheet 11 Halaman 31
Pr. Algoritma dan Pemrograman

Untuk membuat sebuah objek atau sebuah instance pada sebuah kelas dapat
menggunakan operator baru. Sebagai contoh, jika anda ingin membuat instance dari
kelas string :
String str2 = new String(“Hello world!”);

11.2.2 Attribut
Dalam pendeklarasian atribut mempunyai format sbb :
<modifier> <type> <name> [= <default_value>];
Contohnya,

public class StudentRecord


{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
}

11.2.3 Method
Pada contoh yang telah kita diskusikan sebelumnya, kita hanya memiliki satu method,
dan itu adalah main() method. Didalam Java, kita dapat mendefinisikan beberapa
method yang akan kita panggil dari method yang berbeda.
Sebuah method adalah bagian terpisah dari kode yang akan dipanggil oleh program
utama dan beberapa method lainnya untuk menunjukkan beberapa fungsi spesifik.
Berikut adalah karakteristik dari method :
1. dapat mengembalikan satu atau tidak ada nilai
2. dia mungkin dapat diterima sebagai beberapa parameter yang dibutuhkan atau
tidak ada arameter sama sekali. Parameter juga disebut sebagai fungsi argument
3. setelah method telah selesai dieksekusi, dia akan kembali pada method yang
memanggilnya.

11.2.4 Constructor
Constructor adalah method dimana seluruh inisialisasi object ditempatkan. Berikut ini
adalah property dari Constructor :

Jobsheet 11 Halaman 32
Pr. Algoritma dan Pemrograman

1. Constructor memiliki nama yang sama dengan class


2. Sebuah Constructor mirip dengan method pada umumnya, namun hanya
informasi – informasi berikut yang dapat ditempatkan pada header sebuah
constructor, scope atau identifikasi pengaksesan (misal: public), nama dari
konstuktor dan parameter.
3. Constructor tidak memiliki return value
4. Constructor tidak dapat dipanggil secara langsung, namun harus dipanggil
dengan menggunakan operator new pada pembentukan sebuah class.

11.3 Peralatan dan Bahan


1. Komputer dengan konfigurasi minimal
a. Prosesor P-II atau yang lebih tinggi
b. RAM minimal 32 MB
c. Free space hardisk minimal 200 MB
d. Windows 98)
2. Software J2SE dan JCreator

11.4 Langkah Kerja


1. Buat program dibawah ini dengan nama Lingkaran.,java

public class Lingkaran


{
private double radius;

//Konstruktor1
public Lingkaran()
{
radius = 1.0;
}

//Konstruktor2
public Lingkaran(double d)
{
this();
setRadius(d);
}

public void setRadius(double r)


{
if (r>0)
radius = r;
}

Jobsheet 11 Halaman 33
Pr. Algoritma dan Pemrograman

public double getRadius()


{
return radius;
}

public double luas()


{
return 3.14*radius*radius;
}

public double keliling()


{
return 2*3.14*radius ;
}
}

2. Buatlah program untuk membuat obyek TestLingkaran1 dalam foleder yang sama
dengan class Lingkaran berikut ini :
public class TestLingkaran1
{
public static void main(String[] args)
{
Lingkaran abc = new Lingkaran();
System.out.println("Hasil dari object Lingkaran ABC");
System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+abc.getRadius());
System.out.println("Luas Lingkaran : "+abc.luas());
System.out.println("Keliling Lingkaran : "+abc.keliling());
}
}

3. Buatlah program untuk membuat obyek TestLingkaran2 yang dapat


memanggil class Lingkaran berikut ini :
public class TestLingkaran2
{
public static void main(String[] args)
{
Lingkaran xyz = new Lingkaran();
xyz.setRadius((int)(1+Math.random()*100));
System.out.println("Hasil dari object Lingkaran XYZ");
System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+xyz.getRadius());
System.out.println("Luas Lingkaran : "+xyz.luas());
System.out.println("Keliling Lingkaran : "+xyz.keliling());
System.out.println();
}
}

4. Buatlah program untuk membuat obyek TestLingkaran3 yang dapat


memanggil class Lingkaran berikut ini :

Jobsheet 11 Halaman 34
Pr. Algoritma dan Pemrograman

public class TestLingkaran3


{
public static void main(String[] args)
{
Lingkaran abc = new Lingkaran();
Lingkaran xyz = new Lingkaran(3);
Lingkaran jkl = new Lingkaran(5);
System.out.println("Hasil dari object Lingkaran ABC");
System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+abc.getRadius());
System.out.println("Luas Lingkaran : "+abc.luas());
System.out.println("Keliling Lingkaran : "+abc.keliling());
System.out.println();
System.out.println("Hasil dari object Lingkaran XYZ");
System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+xyz.getRadius());
System.out.println("Luas Lingkaran : "+xyz.luas());
System.out.println("Keliling Lingkaran : "+xyz.keliling());
System.out.println();
System.out.println("Hasil dari object Lingkaran JKL");
System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+jkl.getRadius());
System.out.println("Luas Lingkaran : "+jkl.luas());
System.out.println("Keliling Lingkaran : "+jkl.keliling());
System.out.println();
}
}

5. Buatlah program dengan nama Silinder.java yang satu folder dengan


Lingkaran. Class Silinder merupakan anak dari class lingkaran.
public class Silinder extends Lingkaran
{
private double tinggi;

public Silinder()
{
super();
tinggi = 1.0;
}

public Silinder(double t)
{
this();
setTinggi(t);
}

public Silinder(double r, double t)


{
super(r);
setTinggi(t);
}
public void setTinggi(double t)

Jobsheet 11 Halaman 35
Pr. Algoritma dan Pemrograman

{
if (t>0)
tinggi = t;
}
public double getTinggi()
{
return Tinggi;
}
public double luas()
{
double luas1=2*super.luas();
double luas2= tinggi*super.keliling();
return luas1 + luas2;
}
public double volume()
{
return tinggi*super.luas();
}
}

Implementasi class Silender

public class TestSilinder


{
public static void main(String[] args)
{
Silinder abc = new Silinder();
Silinder xyz = new Silinder(5);
Silinder jkl = new Silinder(3,7);

System.out.println("Hasil dari object Silinder ABC");


System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+abc.getRadius());
System.out.println("Tinggi Silinder : "+abc.getTinggi());
System.out.println("Luas Lingkaran : "+abc.luas());
System.out.println("Volume Silinder : "+abc.volume());
System.out.println();

System.out.println("Hasil dari object Silinder XYZ");


System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+xyz.getRadius());
System.out.println("Tinggi Silinder : "+xyz.getTinggi());
System.out.println("Luas Lingkaran : "+xyz.luas());
System.out.println("Volume Silinder : "+xyz.volume());
System.out.println();

System.out.println("Hasil dari object Silinder JLK");


System.out.println("-------------------------------");
System.out.println("Radius Lingkaran : "+jlk.getRadius());
System.out.println("Tinggi Silinder : "+jlk.getTinggi());
System.out.println("Luas Lingkaran : "+jlk.luas());
System.out.println("Volume Silinder : "+jlk.volume());
System.out.println();

Jobsheet 11 Halaman 36
Pr. Algoritma dan Pemrograman

}
}

11.5 Lembar Kerja

No Nama File Hasil KEluaran


1
2
3
4

11.6 Pertanyaan dan Tugas


1. Buatlah program OOP untuk mencari keliling dan luas persegi panjang.

2. Lengkapilah class StudentRecord dan StudentRecordExample berikut ini agar


dapat digunakan untuk menampilkan 5 buah obyek.
public class StudentRecord
{
private String name;
private String address;
private int age;
private double mathGrade;
private double englishGrade;
private double scienceGrade;
private double average;
private static int studentCount;
/**
* Menghasilkan nama dari Siswa
*/
public String getName(){
return name;
}
/**
* Mengubah nama siswa
*/
public void setName( String temp ){
name = temp;
}
// area penulisan kode lain
/**
* Menghitung rata – rata nilai Matematik, Bahasa Inggris, * *
Ilmu
Pasti
*/
public double getAverage(){
double result = 0;
result = ( mathGrade+englishGrade+scienceGrade )/3;
return result;
}
/**
* Menghasilkan jumlah instance StudentRecord
*/
public static int getStudentCount(){

Jobsheet 11 Halaman 37
Pr. Algoritma dan Pemrograman

return studentCount;
}
}

Class Student Record Example :


public class StudentRecordExample
{
public static void main( String[] args )
{
//membuat 3 object StudentRecord
StudentRecord annaRecord = new StudentRecord();
StudentRecord beahRecord = new StudentRecord();
StudentRecord crisRecord = new StudentRecord();
//Memberi nama siswa
annaRecord.setName("Anna");
beahRecord.setName("Beah");
crisRecord.setName("Cris");
//Menampilkan nama siswa “Anna”
System.out.println( annaRecord.getName() );
//Menampilkan jumlah siswa
System.out.println("Count="+StudentRecord.getStudentCount()
);
} }

3. Buatlah sebuah class yang memuat data-data pada buku alamat. Tabel berikut
mendefinisikan informasi yang dimiliki oleh buku alamat.

Nama : Nama Lengkap perseorangan


Alamat : Alamat Lengkap
Nomor Telepon : Nomor telepon personal
Alamat E-Mail : Alamat E-Mail personal

Buat implementasi dari method sebagai berikut :


1. Menyediakan accessor dan mutator method terhadap seluruh atribut
2. Constructor

Jobsheet 11 Halaman 38

Anda mungkin juga menyukai