Minggu, 19 Desember 2010

Pertemuan IX


B. Encapsulation

      Encapsulation atau pengkapsulan adalah suatu kemampuan dalam pemrograman berorientasi objek untuk menyembunyikan atribut dan method suatu objek dari objek lain. Pengkapsulan membuat orang lain tidak mengetahui bagaimana detail implementasi (listing program) dari modul tersebut. Mereka hanya perlu mengetahui variabel-variabel apa saja yang menjadi input dan output, serta bagaimana interaksi modul tersebut dengan variabel, method, kelas, interface atau package lain dengan modul tersebut. Dalam pemrograman, menyembunyikan detail ini dengan istilah information hiding.
Pengkapsulan dilakukan dengan cara memberikan modifier private pada suatu method dan pada variabel. Method utnuk memberikan nilai pada suatu atribut privat biasanya diawali dengan kata ‘set’, sedangkan method utnuk mengambil nialai dari suatu atribut privat biasanaya diawali dengan kata ‘get’.

Berikut merupakan program dari pengkapsulan ini:
a.   Simpan dengan nama kelas persegi:
public class persegi{
private double panjang;
private double lebar;
private double tinggi;
public persegi() {
panjang=0;
lebar=0;
}

private double luas (double p, double l){
return p*l;
}

public void setpanjang (double panjang){
this.panjang=panjang;
}

public void setlebar (double lebar) {
this.lebar=lebar;
}

public double getpanjang (){
return panjang;
}

public double getlebar(){
return lebar;
}

public double getluas(){
return luas (panjang,lebar);
}
}

Output:



b.   Simpan dengan nama kelas mainpersegi:
public class mainpersegi{
public static void main(String[]args){
persegi pg=new persegi();
pg.setpanjang(10);
pg.setlebar(20);

System.out.println("Panjang : "+pg.getpanjang());
System.out.println("Lebar : "+pg.getlebar());
System.out.println("Luas : "+pg.getluas());
}
}

Output:

Sabtu, 04 Desember 2010

Laporan Pertemuan VIII


OOP (OBJEK ORIENTED PROGRAMMING)
Dalam bahasa pemrograman berorientasi objek, program dibagi menjadi onjek-objek yang saling berinteraksi satu sama lain. Obyek adalah benda, baik mbenda yang berwujud nyata maupun benda yang tidak nyata (abstrak). Konsep-konsep dasar yang mendasari pemrograman berorientasi obyek adalah inheritance (pewarisan), encapsulation (pengkapsulan) dan polymorphism.

Untuk pertemuan ke delapan ini, kita akan membahas:
1.     Inheritance (Pewarisan)
Inheritance adalah penurunan atribut dan method dari suatu kelas uper/kelas induk ke sub keals/kelas anak. Pewarisan ini bersifat menyeluruh sehingga semua atribut dan method yang dimiliki kelas super dapat diturunkan ke sub kelas. Contohnya jika kelas c merupakan turunan kelas b dan b merupakan turunan kelas a, maka otomatis atribut dan method kelas a akan diwariskan pula ke kelas c. dengan demikian jika programmer ingin memodifikasi suatu atribut atau method yang digunakan sub kelas, maka hanya dilakukan modifikasi pada kelas super yang memiklikinya.

Deklarasi:
            [modifier] class namasubkelas extends namakelassuper{
            Class body
      }

Keterangan:
            Kata kunci extends digunakan untuk menyatakan pewarisan.

Contoh:
public class superclass{
public superclass(){
System.out.println("ini konstruktor milik superclass");
}

public void methodsuperclass(){
System.out.println("ini method milik superclass");
}
}

Output:



Program ini tidak memiliki output karena listing programmya tidak memiliki fungsi utama.



public class subclass extends superclass{
public subclass(){
super();
}
public void methodsubclass(){
super.methodsuperclass();
}
}

Output:



  Program ini tidak memiliki output karena listing programmya tidak memiliki fungsi utama.



public class demoinheritance{
public static void main (String [] args){
subclass sc=new subclass ();
sc.methodsubclass();
}
}

Output:
  Program ini memiliki output karena listing programmya memiliki fungsi utama yang memanggil method dan konstruktur yang terdapat dalam sub-sub kelas-nya.


Kamis, 28 Oktober 2010

Laporan Pertemuan VI


PACKAGE AND IMPORT


A.    Package
Cara untuk mengelompokkan beberapa class dan interface yang ada ke dalam kelompoknya masing-masing sehingga memungkinkan penggunaan nama yang sama dapat dilakukan attau sarana utnuk mengelompokkan kelas-kelas dan interface yang berhubungan dalam suatu pustaka (library) menjadi satu unit disebut paket (package). Package yang secara otomatis di dalam java API (Aplication Programming Interface)  adalah package java.lang. package ini berisi kelas-kelas dan interface yang merupakan fundamental bagi semua pemrograman java, yang sering disebut “paket mlanguage”. Sebagai contoh, isi package java.lang seperti pemakaian atau penulisan dalam program.
            Import java.io.*;
Import java.awt.*;
Import javax.swing.*;
…..
…..
…..

Dengan kata lain package sama halnya dengan folder yang berguna untuk mengelompokkan file-file yang tadinya berantakan menjadi lebih rapi.

Anda dapat mendeklarasikan kelas-kelas di dalam package yang tidak dapat diakses oleh statement di luar package (paket yang lain) atau membuat package yang baru sesuai dengan keperluan program. Istilah package dapat juga dimaksudkan sebagai pembungkus kelas-kelas agar tersusun rapi.

Pernyataan package dituliskan pada awal source code file sumber. Suatu package mendefenisikan nama ruang kelas-kelas disimpan dan kelas-kelas yang dideklarasikan dalam satu paket sehingga kelas-kelas itu menjadi milik package tersebut. Deklrasi package akan memberitahu kompiler ke library  mana suatu kelas akan dikompile atau dirujuk.

Utnuk mengkompilasi atau mengeksekusi program, program Java perlu mengetahui di mana letak dari semua kelas atau interface yang akan diperlukan. Oleh karena itu, perlu adanya setting path. Nama package hendaknya dapat menggambarkan atau mempresentasikan nama kelas-kelas yang terkandung di dalam package tersebut. Penulisan “package” harus dengan huruf kecil.

Cara penulisan “package”:
package namapackage
…….
……
……

B.    Import
Package yang berisikan class dan interface dapat digunakan oleh package yang lain. Maksudnya, penggunaan package yang lain adalah jika program memerlukan class dan interface berada di dalam direktori yang nama atau package yang mana. Perintahnya menggunakan import nama package.(namaclass|nama interface|*); atau dapat menggunakan tanda * (tanda bintang). Tanda bintang * gunanya untuk menyatakan import semua class atau interface yang terdapat pada package yang bersangkutan.





Contoh package:
package cinta;
public class sayang{
public void info(){
System.out.println("Sayang artinya cinta");
}
}

Output:
package cinta;
public class suka{
public void info(){
System.out.println("Suka juga bisa berarti cinta");
}
}

Output:
package benci;
public class jutek{
public void info(){
System.out.println("Jutek membuat benci");
}
}

Output:

package benci;
public class ejek{
public void info(){
System.out.println("Ejek bisa buat benci juga?");
}
}

Output:



package benci;
public class cuekabis{
public void info(){
System.out.println("Apa cuek abis itu berarti benci?");
}
}

Output:



Kemudian class-class tadi akan kita import menjadi satu:
import cinta.*;
import benci.*;

public class perasaan{
public static void main (String[]args){

sayang sayangku=new sayang();
sayangku.info();
suka sukaku=new suka();
sukaku.info();
jutek jutekku=new jutek();
jutekku.info();
ejek ejekku=new ejek();
ejekku.info();
cuekabis cuekabisku=new cuekabis();
cuekabisku.info();
}
}

Output:



Keterangan:
import cinta.*; -->  kode ini memiliki arti untuk mengimpor seluruh isi file cinta.
import benci.*; -->  kode ini memiliki arti untuk mengimpor seluru isi file benci.
public class perasaan{ -->  kelas perasaan dideklarasikan sebagai class yang memiliki modifier(sifat) umum.
public static void main (String[]args){ --> kode ini memiliki arti fungsi utama dalam class.
sayang sayangku=new sayang(); -->  kode ini berfungsi untuk membuat objek dari class sayang dengan nama sayangku.
sayangku.info(); --> menampilkan isi method info dari object sayangku.
suka sukaku=new suka(); -->  kode ini berfungsi untuk membuat objek dari class suka dengan nama sukaku.
sukaku.info(); -->  menampilkan isi method info dari object sukaku.
jutek jutekku=new jutek(); --> kode ini berfungsi untuk membuat objek dari class jutek dengan nama jutekku.
jutekku.info(); -->  menampilkan isi method info dari object jutekku.
ejek ejekku=new ejek(); -->  kode ini berfungsi untuk membuat objek dari class ejek dengan nama ejekku.
ejekku.info(); -->  menampilkan isi method info dari object ejekku.
cuekabis cuekabisku=new cuekabis(); -->  kode ini berfungsi untuk membuat objek dari class cuekabis dengan nama cuekabisku.
cuekabisku.info(); -->  menampilkan isi method info dari object cuekabisku.
} -->  menutup blok program.
} -->  menutup seluruh blok program.

Kamis, 21 Oktober 2010

Pertemuan V


KONSEP DASAR DALAM JAVA
Konsep pemrograman berorientasi objek atau Object Oriented Programming (OOP) adalah inti dari pemrograman Java. Semua program Java merupakan objek. Dasar pemrograman objek pada pemrograman Java, antara lain:
a.       Class
b.      Object
c.       Attribute
d.      Method
e.       Constructor
Desain pemrograman berorientasi objek adalah sebuah teknik yang memfokuskan desain pada objek dan class berdasarkan pada scenario dunia nyata. Hal ini menegaskan keadaan (state), behavior, dan interaksi dari objek. Selai n itu pemrograman tersebut juga mempunyai manfaat akan kebebasan pengembangan, meningkatkan kualitas, mempermudah pemeliharaan, mempertinggi kemampuan dalam modifikasi, dan meningkatkan penggunaan kembali software.

A.   Class
Class adalah wadah yang berisi abstraksi (pemodelan) dari suatu objek (benda), yang mendiskripsikan data (sifat karakteristik) dan fungsi yang dimiliki oleh objek tersebut. Karena kelas merupakan wadah yang akan digunakan utnuk menciptakan objek, maka jelaslah bahwa anda harus membuat kelas terslebih dahulu sebelum membuat objek.

B.    Object
Objek dapat dikatakan sebagai perwujudan/instans dari sebuah kelas. Proses pembentukan objek dari sebuah kelas disebut dengan instansiasi. Hubungan antara kelas dan objek dapat diilustrasikan sebagai resep kue dengan  kuenya, dimana resep kue adalah kelas dan kue adalah objeknya. Sebelum membuat kue, anda akan membaca dan mempelajari resep kue terlebih dahulu. Dalam resep disebutkan data mengenai kue, yaitu bahan-bahan yang diperlukan serta fungsi-fungsi yaitu bagaiman cara mengolah bahan tersebut sehingga menjadi kue yang siap disajikan. Pada OOP, anda tidak hanya menggunakan resep-resep yang ada, namun juga menciptakan resep-resep baru yang sesuai dengan selera anda. Oeh karena itu, yang menjadi focus dalam OOP adalah bagaimana menciptakan dan mendefinisikan kelas yang kelak menjadi wadah untuk membuat objek-objek.

Syntax Object:
Dibutuhkan operator new untuk membuat obyek dari suatu kelas. Terdapat beberapa cara pendeklarasiannya, yaitu:
1.       NamaKelas variabelReferensiObyek=new Namaconstructor();
2.      Nama Kelas variabelreferensiobyek;
Variabelreferensiobjek=new namaconstructor();

C.   Method
Method adalah subprogram yang dihubungkan pada defenisi class tertentu. Setiap subprogram memiliki tugas sendiri. Sebuah method menjelaskan behavior dari sebuah objek.

Deklarasi:
[modifier] tipenilaikembalian namamethod (parameter input)
{
      Method body
}

Keterangan:
1.       Tanda [] bersifat opsional.
Modifier dapat berupa: public, private, protected, static, abstract, final, native, dan synchronized.
2.      Dilihat dari parameter input, method dibagi menjadi dua yaitu: membutuhkan input atau tidak. Bila membutuhkan input, maka tipe dari parameter input harus dituliskan. Gunakan koma untuk memisahkan setiap parameter input. Bila tidak membutuhkan input, maka bagian parameter input dikosongkan.
3.      Bila method mengembalikan nilai, maka tipe nilai keluarannya harus dituliskan sesuai dengan tipe datanya, sedangkan bila tidak mengembalikan nilai anda beri atribut void.
4.      Kata kunci return diperlukan apabila method mengembalikan nilai.


D.  Constructor
Konstruktur adalah method yang dipanggil pada saat pembentukan objek dan biasanya berfungsi untuk member nilai inisial pada variable objek. Jika kelas tidak memiliki method konstruktur, maka seluruh variable objek akan diinisialisasikan depada nilai default, sesuai dengan type datanya masing-masing.

Beberapa karakteristik yang dimiliki oleh konstruktur, antara lain:
1.       Method konstruktur harus memiliki nama yang sama dengan kelas.
2.      Method konstruktur tidak mengembalikan suatu niali.
3.      Dalam satu kelas bias memiliki lebih dari satu konstruktur.
4.      Hanya dapat dibubuhi modifier public, private dan protected.
5.      Suatu konstruktur bias dipanggil oleh konstruktur lain dalam satu kelas.


Contoh programnya adalah:
public class Disket{
int panjang=10;
final int lebar=10;
String warna="kuning";
String bentuk="segiempat";
String data=" ";

Disket() {
      panjang=100;
}
Disket (int panjang) {
      this.panjang=panjang;
      }
      void SimpanData(String data) {
      this.data += data;
      }
      void hapusData() {
      data = " ";
      }
      String bacaData() {
      return data;
      }
      }

Output:



Keterangan:
Kelas ini tidak memiliki output karena kelas ini tidak memiliki fungsi utama yaitu menggunakan kata void main. Jika kelas tidak menggunakan fungsi utama ini, maka perintah apapun yang ada dalam kelas tidak akan dijalankan.



class MainDisket{
      public static void main (String[] args) {
            Disket disk1 = new Disket();
            System.out.println("Panjang disket = "+ disk1.panjang);
            System.out.println("Lebar disket = "+ disk1.lebar);
            System.out.println("warna disket = "+ disk1.warna);
            System.out.println("Bentuk disket = "+ disk1.bentuk);

System.out.println("data mula-mula = "+disk1.bacaData());
disk1.SimpanData("Belajar java");
System.out.println("setelah simpandata = "+disk1.bacaData());
disk1.hapusData();
System.out.println("Setelah hapusdata = "+ disk1.bacaData());
}
}

Output:




Keterangan:
Program ini memiliki output karena memiliki fungsi utama yang memiliki fungsi untuk menjalankan semua perintah yang terdapat dalam kelas. Setiap atrribut yang digunakan dalam kelas ini dideklrasikan pada kelas disket.