Kamis, 16 Juni 2011

MODUL 6
BAB III
TUGAS PENDAHULUAN

Pertanyaan :
1.      Bagaimana agar class dalam suatu package dapat digunakan?
2.      Mana yang lebih dahulu ditulis, kata kunci package atau import?
3.      Tanda separator apa yang digunakan untuk memisahkan antara nama package dengan nama class?
Jawaban :
1.      Package adalah cara mengelola class-class yang kita buat. Package mengelompokkan class-class sesuai dengan kategori tertentu. Class-class dalam suatu package harus disimpan pada directory yang sama dengan nama packagenya. Suatu class dapat mengimport class yang lain. Pada saat mengimport class dalam suatu package, pastikan letak package tersebut satu directory dengan class yang mengimportnya.
2.      Deklarasi package harus diletakkan pada bagian paling awal (sebelum deklarasi import) dari source code setiap kelas yang dibungkus package tersebut.
3.      Bentuk umum deklarasi package :
package namaPackage;
Deklarasi tersebut akan memberitahukan kompilator, ke library manakah suatu kelas dikompilasi dan dirujuk.
Syarat nama package :
·         Diawali huruf kecil
·         Menggambarkan kelas-kelas yang dibungkusnya
·         Harus unik (berbeda dengan nama package standard)
·         Merepresentasikan path dari package tersebut.
·         Harus sama dengan nama direktorinya.
MODUL 5
BAB III
TUGAS PENDAHULUAN

1.      Apa yang dimaksud dengan abstract method?
Jawab:
Merupakan suatu method yang dideklarasikan dengan keyword abstract serta tanpa implementasi. Suatu abstract method didefinisikan dengan cukup mendeklarasikan namanya pada class abstract dan meng-override pada masing-masing kelas turunannya dengan menyesuaikan dengan kebutuhan kelas turunannya tersebut.

2.      Apa yang dimaksud dengan overriding method?
Jawab:
Overriding adalah pendefinisian ulang method yang sama pada subclass (atau jika ada method di class parent yang sudah didefinisikan dan didefinisikan ulang, maka method pada class anak akan menutup method parent).
Overriding mempunyai cirri-ciri sebagai berikut:
a.    Nama method harus sama
b.   Daftar parameter harus sama
c.    Return type harus sama

3.      Apa yang dimaksud dengan instansiasi?
Jawab:
Instance atau objek dapat dibentuk dengan memasangkan variabel bertipe class atau interface dengan referensi berupa pemanggilan constructor class. Casting dapat dilakukan untuk mengubah objek dari tipe superclass menjadi tipe subclass.




MODUL 4
TUGAS PENDAHULUAN
1. Apa yang anda ketahui tentang Information hiding ?
            Information Hiding adalah menyembunyikan attribute suatu objek dari objek lain.
2.Jelaskan tentang Interface to access data dalam konsep Pengkapsulan?
membuat suatu interface berupa method untuk merubah nilai atribut yang sebelumnya sudah dilakukan proses information hiding
3.Jelaskan mengenai keyword public, protected dan private ?
  • Atribut Public : Izin akses public sebuah kelas, jika sebuah atribut diperbolehkan diakses secara langsung oleh kelas lain. Sebuah atribut yang dinyatakan sebagai public dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya
  • Atribut Protected :Izin aksespro tec ted sebuah atribut biasanya digunakan oleh sebuah kelas, jika sebuah atribut diperbolehkan diakses secara langsung oleh kelas lain yang merupakan kelas turunannya (inheri tance). Sebuah atribut yang dinyatakan sebagaipro tec ted tidak dapat diakses secara langsung oleh kelas lain di luar kelas yang membungkusnya, kecuali kelas yang mengaksesnya adalah kelas turunan dari kelas yang membungkusnya
  • Atribut Private :Izin akses private pada sebuah atribut biasanya digunakan oleh sebuah kelas untuk melindungi atribut-atributnya agar tidak dapat diakses oleh kelas lain. Sebuah atribut yang dinyatakan sebagai private hanya dapat diakses secara langsung oleh kelas yang membungkusnya, sedangakan kelas lainnya tidak dapat mengakses atribut ini secara langsung
2.Ubah hak akses makan dari public menjadi protected dan ulangi praktikum nomor 1! Apayang terjadi? Jelaskan!

Jawab
Program tetap jalan dan hak akses protected bisa di akses oleh class andi. Karena Anggota dapat diakses dari anggota class yang sama atau class friend , dan juga dari anggota class turunannya(derived). 

hasil runing :
3.Tambahkan pada kelas andi untuk memanggil metodh bunuh diri, ulangi praktikum no 1. Apa yang terjadi? Jelaskan!

Jawab
Program eror ketika dijalankan karena pada method bunuhdiri menggunkan hak akses private sehingga tidak dapat di akses oleh class andi, private hanya bisa di akses oleh anggota yang sama dalam satu clas saja.
hasil runing :

IMPLEMENTASI PRAKTIKUM

/*
Disimpan dalam file “manusia.java”
*/
class manusia
{
public String nama;
public manusia(String n)
{
this.nama = n;
}
public String tampilkanNama()
{
return nama;
}
public void makan()
{
System.out.println("Nyam... nyam... nyam...");
}
public void kerja()
{
System.out.println("Kerja... kerjaaa...");
}
private void bunuhDiri()
{
System.out.println("Dor…bruk...");
}
}
Andi adalah objek bentukan dari kelas manusia
(9)
/*
Disimpan dalam file “andi.java”
*/
class andi
{
public static void main(String arg[])
{
manusia andi= new manusia("Andi");
System.out.println("Nama= "+ andi.tampilkanNama());
andi.makan();
}
}
1. Apa yang terjadai jika hak aksesprivate di akses oleh klas lain?
       Jawab: 
Program akan eror dan hak akses private tidak dapat di kases oleh class lain karena hak akses private hanya dpat di akses oleh dan hanya pada satu clas itu sendiri.
hasil runing :

  Kompile dan jalankan kelas manusia dan andi!



Tugas Tambahan

Dalam sebuah object yang mengandung variable-variabel dan method-metod, dapat ditentukan hak akses pada sebuah variabel atau method dari object. Pembungkusan variabel dan method dalam sebuah object dalam bagian yang terlindungi inilah yang disebut dengan enkapsulasi. Jika diperhatikan gambar dibawah ini yang merupakan model object mahasiswa, tampak bahwa bagian pada lingkaran di dalam tidak boleh diakses langsung dari luar (didefinisikan private), bagian tersebut misalnya nama, bisa diakses dengan memanfaatkan bagian-bagian pada lingkaran luar yang bersifat public (boleh diakses langsung dari luar object), yakni getNama().
Gambar : Pemodelan object mahasiswa dengan variabel dan methodnya


IV.Tugas Akhir


class tingkatakses {
int a;
public int b;
private int c;

public void setC (int obj) {
this.c = obj;
}

public int getC () {
return c;
}
}

class coba {

public static void main (String[] args) {
tingkatakses obj = new tingkatakses ();
obj.a = 10;
obj.b = 20;
obj.setC(30);

System.out.println("Tugas Akhir Modul 4 :");
System.out.println();
System.out.println("Nilai obj.a :"+obj.a);
System.out.println("Nilai obj.b :"+obj.b);
System.out.println("Nilai obj.c :"+obj.getC());
System.out.println();
}
}

hasil runing :

Jumat, 10 Juni 2011


BAB II
PEMBAHASAN

I.             Teori
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh dari hierarki class :
 

Superclass : class yang letaknya di atas class tertentu di dalam hierarki.
Subclass : class yang letaknya di bawah class tertentu di dalam hierarki.
Keuntungan penggunaan Inheritance dalam OOP : Reusability
      Ketika behavior(method) dideklarasikan dalam superclass, behavior tersebut otomatis diwariskan ke seluruh subclass
      Jadi, Anda dapat meng-enkode method hanya sekali dan method tersebut dapat digunakan oleh seluruh subclass
      Sebuah subclass hanya perlu mengimplementasikan perbedaan antara dirinya sendiri dan parent-nya
Untuk mengambil sebuah class, gunakan keyword extends.
            Pada bagian di bawah ini merupakan contoh program inherintance:
/*langkah ke-1: Membuat Class Rumah*/

class Rumah
{
      private String a = " Rumahmewah ";
      public void info()
      {
            //System.out.println (" Dipanggil pada  =  "+this);
            System.out.println (" ");
            System.out.println (" Rumah           = "+a);
      }
}



/*langkah ke-2: Membuat Class rumahindah turunan dari Rumah*/

class rumahindah extends Rumah
{
      private String b        =     " tombol alarm ";
      public void info()
      {
            System.out.println (" ");
            super.info();
            System.out.println (" rumahindah    = "+b);
      }
}


/*langkah ke-3: Membuat Main Program dengan Nama Class TipeRumah */

public class TipeRumah
{
      public static void main ( String[]args )
      {
            rumahindah C = new rumahindah();
            C.info();
      }
}

BAB III
TUGAS PENDAHULUAN

1.      Apa yang perbedaan antara Induk Kelas dengan Kelas Turunan?
2.      Jelaskan keyword super dan extends dalam Pewarisan?

Pembahasan:

  • Induk kelas (super class )  : kelas yang letaknya diatas kelas tertentu dalam hierarki. Kelas Turunan (subclass ) : kelas yang letaknya dibawah kelas tertentu dalam hierarki.
Contoh penggambaran superclass dan subclass
 Dapat dikatakan bahwa Buku merupakan subclass dari Bahan Bacaan, dan Bahan Bacaan adalah superclass dari Buku. Proses superclass dan subclass ini adalah aspek organisasional penting dari rancangan pemrograman berorientasi obyek. Teknik ini memberikan significant reuse code dan membuat sistem lebih mudah dikembangkan.Keuntungan ini bertambah karena fakta bahwa perilaku obyek
dapat menurun (inherit) dari induknya dalam hirarki Suatu class hanya dapat diturunkan dari satu class induk. Java hanya mengijinkan single inheritance, tidak multiple.

  • Keyword Super digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. Pemanggilan super ( ) hanya dapat digunakan di dalam constructor, hanya constructor yang dapat menjalankan constructor. Jika digunakan, super( ) harus menjadi pernyataan pertama di dalam body constructor subclass. Jika pemanggilan super( ) diabaikan di dalam class turunan, Java memanggilnya secara implisit agar ruang memory untuk atribut-atribut turunan segera dialokasikan.
Keyword extend merupakan keyword  yang  harus kita tambahkan pada definisi class yang menjadi subclass. Salah satu kelebihan dari keyword extend  adalah relatif mudah dalam pengembangan system yang telah dibuat.

BAB IV
KEGIATAN PRAKTIKUM

Membuat kelas Rumah
/*Disimpan dalam file Rumah.java*/
/*Kode Program untuk kelas rumah*/
class Rumah
{
     private String a = " Rumahmewah ";
     public void info()
     {
           System.out.println (" ");
           System.out.println (" Rumah           = "+a);
     }
}
Membuat kelas rumahindah turunan dari kelas Rumah
/*Disimpan dalam file Rumah.java*/
/*Kode Program untuk kelas rumahindah*/
class rumahindah extends Rumah
{
     private String b           =    " tombol alarm ";
     public void info()
     {
           System.out.println (" ");
           super.info();
           System.out.println (" rumahindah     = "+b);
     }
}
Membuat kelas TipeRumah sebagai program utama
/*Disimpan dalam file TipeRumah.java*/
/*Kode Program untuk kelas RumahIndah*/
public class TipeRumah
{
     public static void main ( String[]args )
     {
           rumahindah C = new rumahindah();
           C.info();
     }
}

Hasil Running

BAB V
TUGAS AKHIR


Membuat kelas Lingkaran
/*Disimpan dalam file Lingkaran.java*/
/*Kode Program untuk kelas Lingkaran*/
class Lingkaran
{
     protected int r= 100;
     void info(){
                System.out.println("Jari- jari :" + r);
     }
}

Membuat kelas Luas yang merupakan kelas turunan dari kelas Lingkaran
/*Disimpan dalam file Lingkaran.java*/
/*Kode Program untuk kelas Luas*/
class Luas extends Lingkaran
{
     private int r;
     public double hasil()
     {              
           r=super.r;
           return 3.14*r*r;
     }
}

Membuat kelas Keliling yang merupakan kelas turunan dari kelas Lingkaran
/*Disimpan dalam file Lingkaran.java*/
/*Kode Program untuk kelas Keliling*/
class Keliling extends Lingkaran
{
     private int r;
     public double hasil()
     {              
           r=super.r;
           return 3.14*2*r;
     }
}

Membuat kelas hasilLingkaran yang merupakan program utama
/*Disimpan dalam file hasilLingkaran.java*/
/*Kode Program untuk kelas hasilLingkaran*/
public class hasilLingkaran{
     public static void main ( String[]args )
     {
           Lingkaran lingkaran= new Lingkaran();
           Luas luas = new Luas();
           Keliling kll=new Keliling();
           lingkaran.info();
           System.out.println("Luas Lingkaran :"+ luas.hasil());
           System.out.println("Keliling Lingkaran :"+ kll.hasil());
     }
}

Hasil Running