enkapsulasi merupakan suatu cara untuk menyembunyikan informasi detail dari suatu class. dua hal yang paling mendasar dalam enkapsulasi yaitu information hiding, interface to access data.
kegiatan 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...");
}
}
//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();
}
}
class
tingkatakses{
int a;
public int b;
private int c;
public void setC(int y) {
this.c=y;
}
public int getC() {
return c;
}
}
class coba {
public static void main(String[] args) {
tingkatakses obj = new tingkatakses();
obj.setC(30);
obj.a=10;
obj.b=20;
System.out.println("nilai obj.a : " + obj.a);
System.out.println("nilai obj.b : " + obj.b);
System.out.println("nilai obj.c : " + obj.getC());
}
}
ENKAPSULASI (PENGKAPSULAN)
INHERITANCE (PEWARISAN)
Inheritance merupakan pewarisan atribut dan method pada sebuah class yang diperoleh dari class yang telah terdefinisi tersebut. Setiap subclass akan mewarisi state (variabel-variabel) dan behaviour dari superclass-nya. Subclass kemudian dapat menambahkan state dan behaviour baru yang spesifik dan dapat pula memodifikasi (override) state dan behaviour yang diturunkan oleh superclass-nya.
Keuntungan dari inheritance adalah :
Subclass menyediakan state/behaviour yang spesifik yang membedakannya dengan superclass, hal ini akan memungkinkan programmer Java untuk menggunakan ulang source code dari superclass yang telah ada. Programmer Java dapat mendefinisikan superclass khusus yang bersifat generik,yang disebut abstract class, untuk mendefinisikan class dengan behaviour dan state secara umum.
Istilah dalam inheritance yang perlu diperhatikan :
Extends : Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
Superclass :Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari subclass/class anak.
Subclass : Subclass adalah class anak atau turunan secara hirarki dari superclass.
Super : Keyword ini digunakan untuk memanggil konstruktor dari superclass atau menjadi variabel yang mengacu pada superclass. Ada beberapa hal yang harus diingat ketika menggunakan pemanggil constuktor super
Kegiatan praktikum
class rumah
{
private String a = " Rumahmewah ";
public void info()
{
//System.out.println (" Dipanggil pada = "+this);
System.out.println (" ");
System.out.println (" Rumah = "+a);
}
}
class rumahindah extends rumah
{
private String b = " tombol alarm ";
public void info()
{
System.out.println (" ");
super.info();
System.out.println (" rumahindah = "+b);
}
}
public class tiperumah
{
public static void main ( String[]args )
{
rumahindah C = new rumahindah();
C.info();
}
}
hasil running
Tugas Akhir
class lingkaran1{
public Double r;
public Double phi=3.14;
public void panjangr()
{
System.out.println("Panjang jari-jari :"+r);
}
}
class keliling extends lingkaran1{
Double kel,r2,p;
public void hitungk()
{
p = super.phi;
r2=super.r;
kel = 2*r2*p;
System.out.println("Keliling Lingkaran : "+kel);
}
}
class luas extends lingkaran1{
Double Luas,r2,p;
public void hitungl()
{
p= super.phi;
r2=super.r;
Luas = 2*r2*r2*p;
System.out.println("Luas Lingkaran : "+Luas);
}
}
public class lingkaran{
public static void main(String [] a)
{
keliling l1 = new keliling();
luas l2 = new luas();
l1.r = 7.0;
l2.r = 7.0;
l1.hitungk();
l2.hitungl();
}
}
Hasil Running
Tugas tambahan
class Shape{
String name, size;
public Shape(String name){
this.name = name;
}
public void printShapeInfo(){
System.out.println("Shape name : "+name);
System.out.println("Shape Size : "+size);
}
public void printShapeName(){
System.out.println("Shape name : "+name);
}
public void printShapeSize(){
System.out.println("Shape size : "+size);
}
}
/*langkah ke-2: Membuat Class Square turunan dari Shape*/
class square extends Shape{
String name, size;
int length, width;
public square(String name){
super(name);
}
public void printShapeInfo(){
super.printShapeInfo();
}
public void printShapeName(){
super.printShapeName();
}
public void printShapeSize(){
super.size = String.valueOf(length*width);
super.printShapeSize();
}
public void printWidth(){
System.out.println("Lebar : "+width);
}
public void printLength(){
System.out.println("Panjang : "+length);
}
}
/*langkah ke-3: Membuat Main Program dengan Nama Class Main */
class main{
public static void main (String[] args){
square persegi = new square("persegi");
persegi.length = 10;
persegi.width = 8;
persegi.printShapeName();
persegi.printLength();
persegi.printWidth();
persegi.printShapeSize();
System.out.println("\n");
persegi.printShapeInfo();
}
}
Hasil running
PRAKTIKUM PBO MOD2
TUGAS PRAKTIKUM
Pada gambar 1 kita membuat tiga object class dengan nama Student, subclass StudentGrad dan class StudentInfo. Class Student mempunyai method Write yang digunakan untuk melewatkan argumen untuk kemudian ditampilkan dengan menggunakan method Display.
JAWABAN:
public void Write(int ID, int Grad, String Fname, String Lname) {
m_ID = ID;
m_Graduation = Grad;
m_First = Fname;
m_Last = Lname;
}
public void Display(){
System.out.println( "Student: " + m_ID + " " + m_First + " " + m_Last + " Graduated: " + m_Graduation);
}
private int m_ID, m_Graduation;
private String m_First;
private String m_Last;
}
studentgrad.java
class StudentGrad extends Student
{
public void Write(int ID, int Grad, String Fname, String Lname, int yrGrad, String unSch, String major)
{
super.Write(ID, Grad, Fname, Lname);
m_UndergradSchool = unSch;
m_Major = major;
m_Grad = Grad;
YearGraduated = yrGrad;
}
public void Display()
{
super.Display();
System.out.println(" Graduated: " + m_Grad + " " + m_UndergradSchool + " " + m_Major + " " +YearGraduated);
}
private Integer YearGraduated,m_Grad;
private String m_UndergradSchool;
private String m_Major;
}
studentinfo.java
class StudentInfo
{
public static void main (String args[])
{
StudentGrad myStudent = new StudentGrad();
myStudent.Write(10, 1,"Bob","Smith", 2000,"Columbia University","CS");
myStudent.Display();
}
}
hasil running
TUGAS AKHIR
Kucing, Ayam, dan Anjing merupakan makhluk hidup yang masuk kategori hewan, tiap hewan pasti mempunyai identitas baik itu berupa tipe hewan dan suaranya.
anjing.java
/*disimpan nama Anjing.java*/
class Anjing extends Hewan{
private String nama,jenis,bersuara;
Anjing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
super(nama, jenis, bersuara);
}
public void ShowAnjing(){
System.out.println("Nama Anjing : "+nama);
System.out.println("Jenis Anjing : "+jenis);
//sintaks menampilkan nama dan jenis hewan
}
public void bersuara(){
//sintaks menampilkan suara hewan
System.out.println("Hug Hug Hug...... ");
}
}
ayam.java
/*disimpan nama Ayam.java*/
class Ayam extends Hewan{
private String nama,jenis,bersuara;
Ayam(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
super(nama, jenis, bersuara);
}
public void ShowAyam(){
System.out.println("Nama Ayam : "+nama);
System.out.println("Jenis Ayam : "+jenis);
//sintaks menampilkan nama dan jenis hewan
}
public void bersuara(){
//sintaks menampilkan suara hewan
System.out.println("kuk kuruyuk petok petok... ");
}
}
kucing.java
/*disimpan nama Kucing.java*/
class Kucing extends Hewan
{
private String nama,jenis,bersuara;
Kucing(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
super(nama, jenis, bersuara);
}
public void ShowKucing(){
System.out.println("Nama Kucig : "+nama);
System.out.println("Jenis Kucing : "+jenis);
//sintaks menampilkan nama dan jenis hewan
}
public void bersuara(){
//sintaks menampilkan suara hewan
System.out.println("Meong.. Meong... meong.... ");
}
}
/*disimpan nama Hewan.java*/
class Hewan {
String nama, jenis, bersuara;
Hewan(String nama, String jenis, String bersuara){
//sintaks menampilkan nama
this.nama=nama;
this.jenis=jenis;
this.bersuara=bersuara;
}
public String toString(){
return "Ini adalah "+jenis+"\nNamanya "+nama+"\n"+bersuara;
}
public void bersuara(){
}
}
polimorfisme.java
/*disimpan nama Polimorfisme.java*/
import java.util.*;
class Polimorfisme{
public static void main(String args[]){
Hewan[] hewannya = {
new Anjing("Broni", "Herder", "Hug Hug Hug......"),
new Kucing("Kiti", "Persia", "Meong.. Meong... meong...."),
new Ayam("Toki", "Buras", "kuk kuruyuk petok petok... ")
};
Hewan pilihHewan;
Random pilih = new Random();
for (int i = 0; i<5 ; i++){
pilihHewan = hewannya[pilih.nextInt(hewannya.length)];
System.out.println("\nPilihan Anda:\n" + pilihHewan);
}
}
}
hasil running
tugas pendahuluan modul 2
pengertian polymorphism
Polymorphism itu sendiri terbagi menjadi 2 bagian yaitu :
Public void cetak(){ }
Public void cetak(String str){ }
Public void cetak(String str,int line){ }
* function overriding yaitu kemampuan suatu objek untuk menjalankan/memanggil method dengan cara yang berbeda.
Contoh:
cetak();
cetak(“kalimat”);
cetak(“kalimat”,5);
PRAKTIKUM PBO MODUL 1
TUGAS PENDAHULUAN
SOAL
Buatlah program menggunakan class dan objek dengan nama motor.java, jika program di jalankan hasilnya seperti di bawah ini :
Object “motor-1” :
Merk : Yamaha
Pemilik : Pak Darmawan
Object “motor-2” :
Merk : Honda
Pemilik : Pak Nasiruddin
JAWABAN
IMPLEMENTASI SOAL Buatlah kelas mahasiswa dengan atribut/variablel = nama dan npm dan mempunyai metodh: tampilkanNama, tampilkanNpm, belajar, olahRaga, makan, minum. Buatlah 3 objek untuk menginstantiasi kelas mahasiswa dengan atribut nama dan npm Anda sendiri dan 2 teman Anda dan mengimplementasikan beberapa metodh yang telah Anda definisikan dalam kelas mahasiswa
JAWABAN
File data.java
File mahasiswa.java
Tugas Akhir
Buat program dengan nama televOOP.java dengan spesifikasi sebagai berikut :
Class : Televisi
Object : Televisiku
Attribute
- Merek
- Tipe
- Ukuran
- Tombol volume
- Tombol Channel
Method
- Menyala
- Memindahkan Channel
- Membesarkan volume
- Mematikan Televisi
File Televisi.java
file televisiku.java