SELAMAT DATANGDI WILAYAH TERITORIALKEKUASAAN SAYA^_^
Sabtu, 20 Oktober 2012
ABSTRACT CLASS, INTERFACE, DAN INNER CLASS
A.Abstract Class
Adalah suatu kelas yang dinyatakan abstract, umumnya memiliki satu atau lebih abstract method adalah suatu method yang belum memiliki implementasi dan menggunakan modifier abstract. Abstract class biasanya dijadikan parent/super class dari kelas-kelas yang dapat membuat objek, abstract class tidak dapat diinstansiasi.
Contoh program dari abstract class ini adalah:
a. Kelas makhlukhidup.
public abstract class makhlukhidup {
protected String nama;
protected int jumlkaki;
protected boolean bisaterbang;
public makhlukhidup (String nama, int jumlkaki,boolean bisaterbang){
this.nama=nama;
this.jumlkaki=jumlkaki;
this.bisaterbang=bisaterbang;
}
abstract void bernafas ();
public void status (){
System.out.println(“Nama : “+nama);
System.out.println(“Jumlah kaki : “+jumlkaki);
System.out.println(“bisa terbang : “+bisaterbang);
}
}
b. Kelas manusia
public class manusia extends makhlukhidup {
manusia (String nama){
super (nama, 2, false);
}
public void bernafas(){
System.out.println(nama+”bernafas dg menghirup o2″);
}
public static void main (String [] args){
manusia m=new manusia (“Sayuti”);
m.status();
m.bernafas();
}
}
outputnya :
c. Kelas tumbuhan
public class tumbuhan extends makhlukhidup{
tumbuhan (String nama){
super(nama,0,false);
}
public void bernafas(){
System.out.println(nama+”bernafas dg menghirup c02″);
}
public static void main (String [] args){
tumbuhan m=new tumbuhan (“Bayam”);
m.status();
m.bernafas();
}
}
Output:
B. Interface
Interface adalah suatu kelas yang berisi method-method tanpa implementasi, namun tanpa modifier abxtract, apabila suatu interface memiliki atribut, amka atributnya akan berlaku sebagai konstanta (static fianl).
Contoh program dari Interface class ini adalah:
a. Kelas pekerjaan
interface pekerjaan{
public void namapekerjaan();
public void gaji();
}
b. Kelas sasya
public class sasya extends manusia implements pekerjaan{
public sasya(){
super(“Sasya”);
}
//mengimplementasikan method milik interface
public void namapekerjaan(){
System.out.println(“Pekerjaan :Sekretaris”);
}
public void gaji(){
System.out.println (“Gaji : Rp. 3000000,-”);
}
public static void main (String[]args){
sasya s=new sasya();
s.status();
s.bernafas();
s.namapekerjaan();
s.gaji();
}
}
C. Inner Class
Inner class adalah kelas yang disisipkan di dalam kelas yang lain. Fungsi kelas sisipan ini adlah mendukung suatu proses yang akan dijalankan oleh kelas utamanya. Inner class bersifat tersarang terhadap kelas-kelas utamanya, seperti halnya blok penyeleksian (if, for) yang tersarang pad blok penyeleksian lainnya atau method yang tersarang pada method lainnya.
Contoh program dari Inner class ini adalah:
a. Kelas orang
class orang{
private int jumlkaki=2;
public void dengarbunyijantung(){
jantung j=new jantung();
j.bunyijantung();
}
public void tahannafas(){
System.out.println(“Jantung berhenti berdetak!”);
}
//inner class
class jantung{
public void bunyijantung(){
System.out.println(“deg..deg….deg…….”);
}
public void istirahat(){
System.out.println(“Silangkan ke ” +jumlkaki+”kaki.”);
tahannafas();
}
}
}
b. Kelas jantungmanusia
class jantungmanusia {
public static void main(String [] args){
orang o=new orang();
orang.jantung p=o.new jantung();
o.dengarbunyijantung();
p.istirahat();
}
}
Output:
Rabu, 17 Oktober 2012
CLASS, METHOD, KONSTRUKTOR DAN MODIFIER
sebelum dilanjut ,saya mau minta maap dulu ya,soalnya posting judul ini sesudah saya memposting judul information hiding beserta antek anteknya ,hehehe yang penting tetap saya posting kan kok ,oke langsung aja,,cekidot :D
CLASS, METHOD, KONSTRUKTOR DAN MODIFIER
Class adalah template atau prototipe yang mendefenisikan atribut-atribut, type atribut, method dan objek.Atau untuk membuat objek, dan berperan sebagai tipe data dari objek. Kelas merupakan sarana pengkapsulan kumpulan data dan kumpulan method yang mengoperasikan kumpulan data tersebut.
Bentuk Umum:
Class nama_class
Method digunakan untuk memodularisasi program melalui pemisahan satu tugas menjadi satu unit sendiri.
Konstruktor adalah method yang mempunyai nama yang sama dengan nama class.
Modifier adalah sifat yang dimiliki oleh atribut, method maupun class dalam java.
Contoh :
1. public
2. Abstrak, diimplementasikan secara parsial yang tujuannya untuk kenyamanan perancangan.
3. protektif (dilindungi).
4. private (lebih dilindungi).
1.2.2 Class
Class mengizinkan Anda dalam mendeklarasikan tipe data baru. Ia dijalankan sebagai blueprint,
dimana model dari object yang Anda buat berdasarkan pada tipe data baru ini.
1.2.3 Object
Sebuah object adalah sebuah entiti yang memiliki keadaan, behaviour dan identitas yang yang
tugasnya dirumuskan dalam suatu lingkup masalah dengan baik. Inilah instance sebenarnya dari
sebuah class. Ini juga dikenal sebagai instance. Instance dibuat sewaktu Anda meng-instantiate
class menggunakan kata kunci new. Dalam sistem registrasi siswa, contoh dari sebuah object
yaitu entiti Student.
1.2.4 Atribut
Atribut menunjuk pada elemen data dari sebuah object. Atribut menyimpan informasi tentang
object. Dikenal juga sebagai member data, variabel instance, properti atau sebuah field data.
Kembali lagi ke contoh sistem registrasi siswa, atribut dari sebuah siswa adalah nomor siswa.
1.2.5 Method
Sebuah method menjelaskan behaviour dari sebuah object. Method juga dikenal sebagai fungsi
atau prosedur. Sebagai contoh, method yang mungkin tersedia untuk entiti siswa adalah method
register.
1.2.6 Konstruktor
Konstruktor adalah sebuah tipe khusus dari method yang digunakan untuk membuat dan
menginisialisasi sebuah object baru. Ingat bahwa konstruktor bukan member(yaitu atribut,
method atau inner class dari sebuah object).
1.2.7 Package
Package menunjuk pada pengelompokkan class dan/atau subpackages. Strukturnya dapat
disamakan dengan direktorinya.
1.2.8 Enkapsulasi
Enkapsulasi menunjuk pada prinsip dari menyembunyikan desain atau mengimplementasikan
informasi yang tidak sesuai pada object yang ada.
1.2.9 Abstraksi
Sementara enkapsulasi menyembunyikan detail, abstraksi mengabaikan aspek dari subyek yang
tidak sesuai dengan tujuan yang ada supaya lebih banyak mengkonsentrasikan yang ada.
1.2.10 Pewarisan
Pewarisan adalah hubungan antara class dimana dalam satu class ada superclass atau class induk
dari class yang lain. Pewarisan menunjuk pada properti dan behaviour yang diterima dari nenek
Pengenalan Pemrograman 2 2J.E.N.I.
moyang dari class. Ini dikenal juga sebagai hubungan “is-a”. Perhatikan pada hirarki berikut.
Gambar 1.1: Contoh Pewarisan
SuperHero adalah superclass dari class FlyingSuperHero dan UnderwaterSuperHero. Catatan
bahwa FlyingSuperHero “is-a” SuperHero. Sebagaimana juga UnderwaterSuperHero “is-a”
SuperHero
1.2.11 Polimorfisme
Polimorfisme adalah kemampuan dari sebuah object untuk membolehkan mengambil beberapa
bentuk yang berbeda. Secara harfiah, “poli” berarti banyak sementara “morph” berarti bentuk.
Menunjuk pada contoh sebelumnya pada pewarisan, kita lihat bahwa object SuperHero dapat juga
menjadi object FlyingSuperHero atau object UnderwaterSuperHero.
1.2.12 Interface
Sebuah interface adalah sebuah contract dalam bentuk kumpulan method dan deklarasi
konstanta. Ketika sebuah class implements sebuah interface, ini mengimplementasikan semua
method yang dideklarasikan dalam interface.
1.3 Struktur Program Java
Pada bagian ini meringkaskan syntax dasar yang digunakan dalam pembuatan aplikasi Java.
1.3.1 Mendeklarasikan class Java
::=
class {
*
*
*
}
dimana adalah sebuah access modifier, yang mana boleh dikombinasikan dengan tipe
yang laen dari modifier.
Pengenalan Pemrograman 2 3
SuperHero
FlyingSuperHero UnderwaterSuperHeroJ.E.N.I.
Petunjuk Penulisan Program:
* = berarti bahwa boleh ada 0 atau lebih kejadian dari deret tersebut yang menggunakannya
juga.
= menunjukkan bahwa Anda harus mengganti nilai sebenarnya untuk bagian ini
daripada menguranginya penulisannya.
Ingat bahwa untuk class teratas, acces modifier yang valid hanyalah public dan package(yakni
jika tidak ada acces modifier mengawali kata kunci class).
Contoh berikut ini mendeklarasikan blueprint SuperHero.
Class SuperHero {
String superPowers[];
void setSuperPowers(String superPowers[]) {
this.superPowers = superPowers;
}
void printSuperPowers() {
for (int i = 0; i < superPowers.length; i++) {
System.out.println(superPowers[i]);
}
}
}
1.3.2 Mendeklarasikan Atribut
::=
[= ];
::=
byte | short | int | long | char | float | double | boolean
|
Petunjuk Penulisan Program:
[] = Menunjukkan bahwa bagian ini hanya pilihan.
Inilah contohnya.
public class AttributeDemo {
private String studNum;
public boolean graduating = false;
protected float unitsTaken = 0.0f;
String college;
}
1.3.3 Mendeklarasikan Method
::=
(*) {
*
}
::=
[,]
Pengenalan Pemrograman 2 4J.E.N.I.
Sebagai contoh:
class MethodDemo {
int data;
int getData() {
return data;
}
void setData(int data) {
this.data = data;
}
void setMaxData(int data1, int data2) {
data = (data1>data2)? data1 : data2;
}
}
1.3.4 Mendeklarasikan sebuah Konstruktor
::=
(*) {
*
}
Jika tidak ada konstruktor yang disediakan secara jelas, konstruktor default secara otomatis
membuatkannya untuk Anda. Konstruktor default tidak membawa argumen dan tidak berisi
pernyataan pada tubuh class.
Petunjuk Penulisan Program:
Nama konstruktor harus sama dengan nama class.
yang valid untuk konstruktor adalah public, protected, dan private.
Konstruktor tidak memiliki nilai return.
Perhatikan contoh berikut.
class ConstructorDemo {
private int data;
public ConstructorDemo() {
data = 100;
}
ConstructorDemo(int data) {
this.data = data;
}
}
1.3.5 Meng-instansiasi sebuah class
Untuk meng-instantiate sebuah class, dengan sederhana kita gunakan kata kunci new diikuti
dengan pemanggilan sebuah konstruktor. Mari lihat langsung ke contohnya.
class ConstructObj {
int data;
ConstructObj() {
/* menginisialisasi data */
Pengenalan Pemrograman 2 5J.E.N.I.
}
public static void main(String args[]) {
ConstructObj obj = new ConstructObj(); //di-instantiate
}
}
1.3.6 Mengakses Anggota object
Untuk mengakses anggota dari sebuah object, kita gunakan notasi “dot”. Penggunaanya seperti
berikut:
INFORMATION HIDING, ENCAPSULATION, INHERITANCE, DAN POLYMORHISM
Information Hiding dan Encapsulation
Information Hiding adalah menyembunyikan
attribute suatu objek dari objek lain.
Encapsulation adalah menyembunyikan method
suatu objek dari objek lain.
Attribute maupun method disembunyikan dengan
cara memberikan modifier private.
Method dalam kelas yang sama, yang memberikan
nilai pada attribute private disebut method setter,
sedangkan method masih dalam kelas yang sama, yang
mengambil nilai dari attribute private disebut getter.
// Contoh program Information Hiding dan Encapsulation
public class PersegiPanjang{
private double panjang; // attribute yg di hide
private double lebar; // attribute yg di hide
private double tinggi; // attribute yg di hide
public PersegiPanjang() {
panjang = 0;
lebar = 0;
}
private double luas(double p, double l) { // di encap
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);
}
}
public class MainPersegiPanjang {
public static void main(String[] srgs) {
PersegiPanjang pp = new PersegiPanjang();
pp.setPanjang(10);
pp.setLebar(20);
System.out.println(”Panjang : ”+ pp.getPanjang());
System.out.println(”Lebar : ”+ pp.getLebar());
System.out.println(”Luas : ”+ pp.getLuas());
}
}
## Pewarisan (inheritance)
Semua class dalam Java, termasuk class yang membangun Java API, merupakan subclass dari superclass Object.
Contoh dari hierarki class :
Superclass
Adalah class yang letaknya di atas class tertentu di dalam hierarki.
Subclass
Adalah class yang letaknya di bawah class tertentu di dalam hierarki.
Pengaplikasian
Untuk mengambil sebuah class, gunakan keyword extends.
Untuk lebih jelasnya, mari buat class parent sederhana, misalkan kita mempunyai class parent bernama Person.
public class Person {
protected String name;
protected String address;
/**
* Default constructor
*/
public Person(){
System.out.println(“Inside Person:Constructor”);
name = “”; address = “”;
}
. . . .
}
Sekarang, kita buat class lain bernama Student
Karena murid juga termasuk orang, kita putuskan untuk meng-extend class Person, sehingga kita dapat mewariskan semua properti dan method yang telah ada di class Person.
Untuk itu, kita bisa menulis :
public class Student extends Person {
public Student(){
System.out.println(“Inside Student:Constructor”);
}
. . . .
}
Ketika sebuah object Student diinstansiasi, default constructor dari superclass Student dipanggil secara implisit untuk melakukan inisialisasi seperlunya.
Setelah itu, pernyataan di dalam constructor subclass dijalankan.
Untuk memperjelasnya, perhatikan kode dibawah ini:
public static void main( String[] args ){
Student anna = new Student();
}
Dalam kode ini, kita membuat sebuah object dari class Student. Hasil dari program adalah:
Inside Person:Constructor
Inside Student:Constructor
Keyword “super”
Sebuah subclass dapat juga memanggil secara eksplisit sebuah constructor superclass yang ada diatasnya.
Dapat dilakukan dengan menggunakan pemanggilan constructor super.
Pemanggilan constructor super didalam constructor subclass akan mengakibatkan eksekusi dalam constructor yang relevan dari superclass, berdasarkan passing argument-nya.
Sebagai contoh, pada contoh sebelumnya yaitu class Person dan Student, kita tunjukkan sebuah contoh pemanggilan constructor super.
Tuliskan kode berikut untuk class Student
public Student(){
super( “SomeName”, “SomeAddress” );
System.out.println(“Inside Student:Constructor”);
}
Beberapa hal untuk diingat ketika menggunakan pemanggilan constructor super :
◦ Pemanggilan super() HARUS DIJALANKAN SESUAI DENGAN STATEMENT PERTAMA DALAM SEBUAH CONSTRUCTOR.
◦ Pemanggilan super() hanya dapat digunakan di dalam definisi constructor.
◦ Hal ini menjelaskan bahwa constructor this() dan pemanggilan super() TIDAK DAPAT DIJALANKAN SECARA BERSAMAAN DI DALAM CONSTRUCTOR YANG SAMA.
Penggunaan lainnya dari super mengarah pada member dari superclass.
Sebagai contoh,
public Student() {
super.name = “somename”;
super.address = “some address”;
}
Meng-override method
Jika sebuah subclass menginginkan implementasi yang berbeda terhadap method dari superclassnya, maka salah satu caranya dapat dilakukan dengan meng-override method bersangkutan.
Sebuah subclass dapat meng-override method superclassnya dengan menyediakan sebuah implementasi baru untuk method tersebut.
berikut ini merupakan implementasi dari method getName didalam superclass Person
public class Person {
:
:
public String getName(){
System.out.println(“Parent: getName”);
return name;
}
}
Untuk meng-override method getName dari superclass Person, di dalam subclass Student, kita tulis :
public class Student extends Person{
:
:
public String getName(){
System.out.println(“Student: getName”);
return name;
}
:
}
Sekarang, ketika kita memanggil method getName dari object subclass Student, method getName yang di-override akan dipanggil, dan hasilnya akan menjadi,
Student: getName
Class final
Final Class
◦ Class yang tidak bisa di-extends
◦ Untuk mendeklarasikan final class, kita tulis,
public final ClassName{
. . .
}
Contoh:
public final class Person {
. . .
}
## Polymorphism
Polymorphism
Kemampuan sebuah variabel reference untuk merubah behavior sesuai dengan apa yang dipunyai object.
polymorphism membuat objek-objek yang berasal dari subclass yang berbeda, diperlakukan sebagai objek-objek dari satu superclass. Hal ini terjadi ketika memilih method yang sesuai untuk diimplementasikan ke objek tertentu berdasarkan pada subclass yang memiliki method bersangkutan.
Untuk menjelaskan polymorphism, mari kita bahas sebuah contoh.
Pada contoh sebelumnya, kita diberikan parent class yaitu Person dan subclassnya adalah Student, sekarang kita tambahkan subclass lainnya dari Person yaitu Employee
Dalam Java, kita dapat membuat referensi dari suatu superclass ke object dari subclassnya. Sebagai contoh,
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada // sebuah object Student
}
misalnya, kita memiliki sebuah method getName dalam superclass Person. Dan kita meng-override method ini di kedua subclass yaitu Student dan Employee
public class Student {
public String getName(){
System.out.println(“Student Name:” + name);
return name;
}
}
public class Employee {
public String getName(){
System.out.println(“Employee Name:” + name);
return name;
}
}
Kembali ke method utama kita, ketika kita mencoba memanggil method getName dari referensi Person ref, method getName dari object Student akan dipanggil.
Sekarang, jika kita memberi ref kepada object Employee, maka method getName juga akan dipanggil
public static main( String[] args ) {
Person ref;
Student studentObject = new Student();
Employee employeeObject = new Employee();
ref = studentObject; //titik referensi Person kepada object Student
//getName dari class Student dipanggil
String temp=ref.getName();
System.out.println( temp );
ref = employeeObject; //titik referensi Person kepada object Employee
//getName dari class Employee dipanggil
String temp = ref.getName();
System.out.println( temp );
}
Contoh lain yang menggambarkan polymorphism adalah ketika kita mencoba untuk passing reference kepada method
jika kita memiliki sebuah method static printInformation yang menerima referensi Person sebagai parameter
public static printInformation( Person p ){
. . . .
}
Sebenarnya kita dapat passing reference dari Employee dan Student kepada method printInformation selama kedua class tersebut merupakan subclass dari Person
public static main( String[] args )
{
Student studentObject = new Student();
Employee employeeObject = new Employee();
printInformation( studentObject );
printInformation( employeeObject );
}
Untuk posting selanjutnya.. kita akan bahas tentang casting object kalau gak salah hehehe. So, sabar dolo yoo.,… kapan-kapan aku posting.
Rabu, 10 Oktober 2012
javajavajavajavajava
class TesTipeData {
public static void main (String[] args) {
byte b = 1;
short s = 100;
int i = 1000;
long l = 10000;
char c = 'a';
float f = 3.14f;
double d = 3.14;
boolean t =true;
final double PI = 3.14;
System.out.println("byte " +b);
System.out.println("short " +s);
System.out.println("int " +i);
i =010;
System.out.println("int " +i+ " octal mode");
i = 0XFF;
System.out.println("int " +i+ " hexa mode");
System.out.println("long " +1);
System.out.println("char " +c);
System.out.println("float " +f);
System.out.println("double " +d);
System.out.println("boolean " +t);
System.out.println("PI " +PI);
}
}
class TesKeputusan {
public static void main (String[] args) {
char jeniskelamin = 'W';
//nested if
if (jeniskelamin=='L')
System.out.println("Cowok");
else if (jeniskelamin=='P')
System.out.println("Cewek");
else
System.out.println("Banci");
//ternary
System.out.println(jeniskelamin=='P'? " Dia pasti cowok." :
"Dia pasti cewek");
//switch case
switch (jeniskelamin) {
case 'P' : System.out.println("Cowok");
break;
case 'L' : System.out.println("Cewek");
break;
default : System.out.println("Banci");
break;
}
}
}
public class TesPerulangan {
public static void main (String[] args) {
int i;
//for
System.out.println("perulangan for...");
for (i=0; i<10; i++)
System.out.println("perulangan ke : "+i);
//while
System.out.println("perulangan while...");
i=0;
while (i<10) {
System.out.println("perulangan ke : "+i);
i++;
}
// do while
System.out.println("perulangan do while...");
i=0;
do {
System.out.println("perulangan ke : "+i);
i++;
}
while (i<10);
}
}
Kamis, 04 Oktober 2012
Langganan:
Postingan (Atom)