Laporan praktikum ini membahas pemrograman berorientasi objek dengan membuat class Lingkaran dan Silinder. Class Lingkaran digunakan untuk mendefinisikan lingkaran dengan atribut radius dan method untuk menghitung luas dan keliling. Class Silinder mewarisi dari Lingkaran dengan menambahkan atribut tinggi dan method untuk menghitung luas dan volume silinder. Program diujicobakan dengan membuat beberapa objek dan menampilkan hasilnya.
1. LAPORAN PRAKTIKUM
ALGORITMA DAN PEMROGRAMAN
JOBSHEET 11
PEMOGRAMAN BERORIENTASI OBYEK
Disusun Oleh :
MUHAMMAD ARIS HILMI
3.33.16.0.17/ TK-1A
PROGRAM STUDI TEKNIK TELEKOMUNIKASI
POLITEKNIK NEGERI SEMARANG
TAHUN 2016/2017
2. JOBSHEET 11
PEMOGRAMAN 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
Pabrikan
Warna
Membelok
Mengerem
Menambah kecepatan
Lion Berat
Warna
Lapar
Buas
Mengaum
Tidur
Berburu
Dengan deskripsi ini, objek pada dunia nyata dapat secara mudah dimodelisasi sebagai objek
software menggunakan sifat sebagai data dan tingkah laku sebagai method.
3. 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 :
- Menambah Kecepatan
- Berbelok
- Mengerem
Method :
- Menambah Kecepatan
- Berbelok
- Mengerem
Method :
- Menambah Kecepatan
- Berbelok
- 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.
4. 11.2.1 Instansiasi class
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
5. Constructor adalah method dimana seluruh inisialisasi object ditempatkan. Berikut ini adalah
property dari Constructor :
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)
6. {
if (r>0)
radius = r;
}
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();
7. }
}
4. Buatlah program untuk membuat obyek TestLingkaran3 yang dapat memanggil class
Lingkaran berikut ini :
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();
8. setTinggi(t);
}
public Silinder(double r, double t)
{
super(r);
setTinggi(t);
}
public void setTinggi(double t)
{
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());
9. 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();
}
}
11.5 Lembar Kerja
No Nama File Hasil Keluaran
1 Prog Lingkaran
2 TestLingkaran1
3 TestLingkaran2
10. 4 TestLingkaran3
5 Silinder.java
11.6 Pertanyaan dan Tugas
1. Dengan kata-kata Anda sendiri, definisikan istilah-istilah berikut ini :
a. Class
b. Object
c. Instantiate
d. Instance Variable
e. Instance Method
f. Class Variables atau static member variables
g. Constructor
2. Lengkapilah class StudentRecord dan StudentRecordExample berikut ini agar dapat
digunakan untuk menampilkan 5 buah obyek.
public class StudentRecord
11. {
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(){
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()
);
12. } }
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
JAWAB
1. Dengan kata-kata Anda sendiri, definisikan istilah-istilah berikut ini :
h. Class = pemodelan dari objek yang menejelaskan data (sifat karakteristik data) dan
fungsi yang dimiliki suatu objek.
i. Object = sebuah eniti yang memiliki keadaan,behavior,dan indentitas yang tugasnya
dirumuskan dalam satu lingkup masalah dengan baik.
j. Instantiate =Proses pembuatan obyek spesifik yang merupakan anggota atau instan
dari kelas.
k. Instance Variable /(tidak statis) = Variable yang memiliki nilai yang berbeda di
setiap instance variable., dan atribut untuk setiap objek dari class yang sama
13. l. Instance Method= methode hanya bisa dibaca setelah class tersebut diturunkan ke
object,. Dan juga berfungsi sebagai memanipulasi state objek lewat pesan yang
diterima oleh objek lain.
m. Class Variables atau static member variables Constructor = sifatnya variable ini
bersifat keseluruhan/global dan variable ini bagian dari integral dari suatu kelas,dan
tidak ada satu objek pun yang menyatakan kepemilikan atas variable ini.
2. Lengkapilah class StudentRecord dan StudentRecordExample berikut ini agar dapat
digunakan untuk menampilkan 5 buah obyek
Melngkapi dan hasilnya (StudentRecordExample) :
Flow chart lengkapnya :
17. 4. 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
Memuat data-data pada buku alamat berikut :
Bagian Recorder data
public class bukualamat
{
// inisialisasi atribut
private String Nama;
private int Umur;
private double Gaji;
private double Nilai;
private String Alamat;
private String Email;
private static int pegawaiCount;
//Konstruktor Record
public bukualamat( String n, int a, double h, double p, String k , String v)
{
18. setNama(n);
setUmur(a);
setGaji(h);
setNilai(p);
setAlamat(k);
setEmail(v);
pegawaiCount++;
}
// set get Name
public void setNama( String n)
{ Nama = n;}
public String getNama()
{ return Nama;}
// set get Umur
public void setUmur( int a)
{ Umur = a;}
public int getUmur()
{ return Umur;}
// set get Nilai
public void setGaji( double h)
{ Gaji = h;}
public double getGaji()
{ return Gaji;}
// set get Nilai
public void setNilai( double p)
{ Nilai = p;}
public double getNilai()
{ return Nilai;}
public void setAlamat( String k)
{ Alamat = k;}
19. public String getAlamat()
{ return Alamat;}
// set get Nilai
public void setEmail( String v)
{ Email = v;}
public String getEmail()
{ return Email;}
//konstruktor Count
public static int pegawaiCount()
{ return pegawaiCount;}
}
Bagian keluaran ytampilan recorder
public class bukualamat1
{
public static void main(String[] args)
{
bukualamat tukiyem = new bukualamat("TUKIYEM",12,123123,23, "jalan negara 1",
"tukiyem@gmail.com");
bukualamat pardi = new bukualamat("PARDI",23,12312,32, "jalan qwerty 12 ","
pardiko@gmail.com");
bukualamat tukinah = new bukualamat("TUKINAH",32,13232,43,"jalan wkwkland
13","tukinah@gmail.com");
System.out.println();
System.out.println(" == Data Pegawai ==");
System.out.println("n");
System.out.println(" Update 03/04/17");
System.out.println(" ========================================");
System.out.println(" | Nama Pegawai | Umur | Gaji | Nilai | Alamat | Email |");