Sabtu, 10 November 2012

Mencetak Abjad dengan Java

Kali ini saya akan membuat mencetak abjad dengan java, memang simple,
ya gpp, yang penting tugas saya sudah beres.. hehe..
ok langsung aja ke TKP...

Pertama kita membuat class dengan nama abjad.java
terus masukan script di bawah ini, kemudian di run..


public class abjad {
   public static void main(String[] args) {
      char abjad;

 for(abjad = 'A'; abjad <= 'Z'; abjad++){      
       System.out.println("Huruf"+ " " + abjad);
    }
   
   }
}

Selamat Mencoba...
Maaf masih newbie..

Polymorphism pada java


Polymorphism dapat disamakan dengan Method Overloading, dimana di dalam sebuah class terdapat beberapa method dengan nama sama. Sebuah Method bernama CetakData() yang misalnya berfungsi menampilkan data String, tentu tidak bisa menangani masukan berupa data numerik, boolean, ataupun karakter, demikian juga sebaliknya. Solusi yang bisa dilakukan adalah dengan menyediakan beberapa Method CetakData() yang akan menangani setiap tipe data, sehingga data apapun yang diberikan sebagai parameter tetap bisa diproses.
Berikut adalah contoh program Polymorphism pada Java:

1. Pakailah editor untuk menuliskan Source Code Java, seperti Notpad, JCreator, atau
Netbeans, Dan kitekkan Source Code Dibawah ini : 


class CetakDataTipe {

// membuat method dengan nama sama tapi berbeda tipe data
public void CetakData(String Cetak) {
System.out.println(Cetak);
}
public void CetakData(int Cetak) {
System.out.println(Cetak);
}
public void CetakData(double Cetak) {
System.out.println(Cetak);
}
public void CetakData(char Cetak) {
System.out.println(Cetak);
}
}
public class Polymorphism {

public static void main(String[] args) {
CetakDataTipe data = new CetakDataTipe();

System.out.print("Cetak Data Tipe String : ");
data.CetakData("Sumatra");

System.out.print("Cetak Data Tipe Integer : ");
data.CetakData(1989);

System.out.print("Cetak Data Tipe Double : ");
data.CetakData(16.5 / 2);

System.out.print("Cetak Data Tipe Char : ");
data.CetakData('N');
}
}

2. Lalu Jalankan Program dan Akan mendapatkan Output seperti dibawah ini :


Method CetakData() akan bereaksi dengan satu dari 4 macam tipe data, tergantung dari data yang Passing ke dalamnnya. Keragaman model Method ini disebut Polimorph atau Banyak Bentuk.

Inheritance pada java

Inheritance adalah pewarisan. Pewarisan dalam pemrograman berorientasi objek, Inheritance memungkinkan suatu Class bisa mewariskan atribut dan Method kepada Class yang lainnya atau subClass, sehingga membentuk Class hirarki. Inheritance sangat mirip dengan hubungan orang tua dengan anak. Manakala suatu kelas menerima warisan dari semua anggota data dan fungsi menerima warisan, walaupun tidak semua di antara mereka dapat diakses oleh anggota fungsi dari kelas.

Di dalam Java untuk mendeklarasikan suatu class sebagai subclass dilakukan dengan cara menambahkan kata kunci extends setelah deklarasi nama class, kemudian diikuti dengan nama parent class-nya. Kata kunci extends tersebut memberitahu kompiler Java bahwa kita ingin melakukan perluasan class.

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



  • Superclass adalah class induk atau class orang tua, class yang letaknya di atas class tertentu di dalam hierarki.
  • Subclass adalah class anak. Semua property, methode, ataupun konstruktor yang dimiliki oleh superclass jika diwariskan, maka subclass memiliki semua yang dimiliki oleh superclass.


Contoh Program Inheritance Dalam java

1. kelas BangunDatar.java

class BangunDatar {
    public void HitungLuas(){
        System.out.println("Belum terdefinisi/belum jelas luas apa yang dihitung");
    }
    public void HitungKeliling(){
        System.out.println("Belum terdefinisi/belum jelas keliling apa yang dihitung");
    }

}

2. Subkelas SegiTiga.java dari kelas BangunDatar.java

class SegiTiga extends BangunDatar {
    //variabel instan
    protected double panjang=6;
    protected double lebar=5;
    private double miring=7;
    @Override
    public void HitungLuas(){
        double luas;  //deklarasi variabel lokal
        luas=this.panjang*this.lebar/2;
        //mencetak luas segitiga
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Luas Segitiga adalah "+luas+" cm kuadrat");
    }
    @Override
    public void HitungKeliling(){
        double keliling; //deklarasi variabel lokal
        keliling=this.panjang+this.lebar+this.miring;
        //mencetak keliling segitiga
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Miring    : "+this.miring+ " cm");
        System.out.println("Keliling Segitiga adalah "+keliling+ " cm");
    }
}


3. Subkelas PersegiPanjang.java dari kelas SegiTiga.java untuk menentukan akses protected

class PersegiPanjang extends SegiTiga {
    @Override
    public void HitungLuas(){
        double luas;  //deklarasi variabel lokal
        luas=this.panjang*this.lebar;
        //mencetak luas PersegiPanang
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Luas Persegi panjang adalah "+luas+" cm kuadrat");
    }
    @Override
    public void HitungKeliling(){
        double keliling; //deklarasi variabel lokal
        //mencetak keliling PersegiPanjang
        keliling=(2*this.panjang)+(2*this.lebar);
        System.out.println("Panjang   : "+this.panjang+ " cm");
        System.out.println("Lebar     : "+this.lebar+ " cm");
        System.out.println("Keliling Persegi Panjang adalah "+keliling+" cm");

    }

}

4. Program Utama /main HasilBangunDatar.java

class HasilBangunDatar {
    public static void main(String[] args) {
        //membuat objek dari kelas BangunDatar
        BangunDatar bd=new BangunDatar();
        //membuat objek bd melakukan sesuatu
        bd.HitungLuas();
        bd.HitungKeliling();
        System.out.println("");
        //membuat objek dari kelas SegiTiga
        SegiTiga st=new SegiTiga();
        //membuat objek st melakukan sesuatu
        st.HitungLuas();
        System.out.println("");
        st.HitungKeliling();
        System.out.println("");
        //membuat objek dari kelas Persegi Panjang
        PersegiPanjang pp=new PersegiPanjang();
        //membuat objek pp melakukan sesuatu
        pp.HitungLuas();
        System.out.println("");
        pp.HitungKeliling();
    }
}

5. Hasil Akhir Program

Belum terdefinisi/belum jelas luas apa yang dihitung
Belum terdefinisi/belum jelas keliling apa yang dihitung

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Luas Segitiga adalah 15.0 cm kuadrat

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Miring    : 7.0 cm
Keliling Segitiga adalah 18.0 cm

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Luas Persegi panjang adalah 30.0 cm kuadrat

Panjang   : 6.0 cm
Lebar     : 5.0 cm
Keliling Persegi Panjang adalah 22.0 cm

Sumber :

Encapsulation pada java


Encapsulation

Encapsulation adalah pembungkusan attribut/properti (field atau variable) dan tingkah laku (method) di dalam sebuah kelas untuk menyembunyikannya dari kelas lain, sehingga kelas lain tidak dapat mengakses atribut dan method yang disembunyikan di dalam kelas yang lainnya. Di dalam sebuah class terdapat atribut dan method yang memiliki hak akses tertentu terhadap environment/lingkungan-nya, hak akses ini biasa di sebut Access Modifier.
Access Modifier terdiri dari private, protected, dan public.
  • private
    memberikan hak akses hanya kepada anggota class tersebut untuk menggunakan dan/atau mengubah nilai dari property atau method tersebut.
  • protected
    memberikan hak akses kepada anggota class nya dan anggota class hasil inheritance (penurunan sifat) dari class tersebut.
  • public
    memberikan hak akses kepada property dan method agar dapat digunakan diluar class tersebut.

Contoh program encapsulation

public class Mamalia {
private String kaki,tempat;
protected void setKaki(String kaki){
this.kaki = kaki;
}
protected String getKaki(){
return this.kaki;
}
protected void setTempatHidup(String tempat){
this.tempat = tempat;
}
protected String getTempatHidup(){
return this.tempat;
}
public String namaKelas(){
return “Kelas Mamalia”;
}
}
Dari script di atas terlihat bahwa field kaki dan tempat serta metode-metodenya terbungkus dalam sebuah kelas yaitu kelas mamalia

Karakteristik OOP


 Karakteristik OOP

• Suatu program disebut dengan pemrograman berbasis obyek (OOP) karena terdapat :
   – Encapsulation (pembungkusan)
   – Inheritance (pewarisan)
   – Polymorphism (polimorfisme – perbedaan bentuk)



Encapsulation (pembungkusan)

• Variabel dan method dalam suatu obyek dibungkus agar terlindungi
• Untuk mengakses, variabel dan method yang sudah dibungkus tadi perlu interface
• Setelah variabel dan method dibungkus, hak akses terhadapnya bisa ditentukan.
• Konsep pembungkusan ini pada dasarnya merupakan perluasan dari tipe data struktur


Mengapa variabel dan method perlu dibungkus ?

• Supaya terlindungi, artinya hak akses terhadapnya bisa ditentukan.
• Bersifat pribadi, artinya kita tidak perlu tahu semua method yang ada dalam obyek
• Contoh : obyek Roti, obyek ini mempunyai method Pembuatan Roti
• Jika kita ingin memakan roti, tentu kita tidak perlu tahu bagaimana caramembuatnya
• Demikian juga jika kita ingin mengakses obyek Roti, tentu kita tidak perlu tahu isi dari method Pembuatan
   Roti.


Inheritance (pewarisan)

• Sebuah class bisa mewariskan atribut dan method-nya ke class yang lain
• Class yang mewarisi disebut superclass
• Class yang diberi warisan disebut subclass
• Sebuah subclass bisa mewariskan atau berlaku sebagai superclass bagi class yang lain => disebut multilevel
   inheritance


Contoh Pewarisan

• Class Nenek adalah superclass dari class Ibu
• Class Ibu adalah superclass dari class Anak
• Sebuah subclass memiliki beberapa kesamaan dengan superclass-nya, dalam hal atribut/variabel dan
   method yang dimilikinya
• Contoh pewarisan yang lain : class kendaraan merupakan superclass bagi class mobil, truk dan bis


Keuntungan Penggunaan Pewarisan

• Subclass memiliki atribut dan method yang spesifik yang membedakannya dengan superclass, meskipun
   keduanya mirip (dalam hal kesamaan atribut dan method)
• Dengan demikian pada pembuatan subclass, programmer bisa menggunakan ulang source code dari
   superclass yang ada => ini yang disebut dengan istilah reuse
• Class-class yang didefinisikan dengan atribut dan method yang bersifat umum yang berlaku baik pada
   superclass maupun subclass disebut dengan abstract class


Konsep Multiple Inheritance dan Single Inheritance

• Suatu subclass bisa menjadi superclass bagi class yang lain => berlaku untuk C dan Java
• Suatu class diperbolehkan memiliki lebih dari satu superclass => berlaku hanya di C
• Suatu class hanya boleh memiliki satu superclass => hanya berlaku pada Java


Polimorphism (polimorfisme)

• Polimorfisme artinya penyamaran dimana suatu bentuk dapat memiliki lebih dari satu bentuk

Sumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf







Tentang Behaviour atau Method


Behaviour atau Method

• Dalam Class, behavior disimpan dalam bentuk method.
• Method merupakan hal-hal yang bisa dilakukan oleh obyek dari suatu class
• Yang bisa dilakukan oleh method :
   – Merubah nilai atribut suatu obyek
   – Menerima informasi dari obyek lain
   – Mengirim informasi ke obyek lain untuk melakukan sesuatu


Method dalam Class

• Method merupakan bagian dari class yang menangani suatu tujuan tertentu dan berisi serangkaian perintah
  (perintah=baris program)
• Obyek yang sama dengan obyek yang lain dapat berkomunikasi dengan menggunakan method.


Contoh pembuatan class

class Mobil {
String aktifitas, warna;
int kecepatan;
void cekKecepatan() {
if (kecepatan==0)
aktifitas=“parkir”;
}
void cetakAtribut() {
System.out.println(“Aktifitas = “+aktifitas);
System.out.println(“Warna = “+warna);
System.out.println(“Kecepatan=“+kecepatan);
}
}


Penciptaan obyek dari sebuah class

• Obyek diciptakan dengan perintah new
• Misal akan diciptakan obyek baru dari class mobil dengan nama mobilku
• Maka perintah penciptaan obyek mobilku dari class Mobil : Mobil mobilku = new Mobil();

Sumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf


Tentang Objek, Class, Atribut


Apa itu Obyek ?

• Semua hal yang ada dalam dunia nyata, baik konkrit maupun abstrak
• Contoh obyek konkrit : rumah, sekolah, dosen, mahasiswa, dll.
• Contoh obyek abstrak : mata kuliah, penjadwalan, dll.


Ciri-ciri atau karakteristik Obyek

• Obyek memiliki status (state) dan tingkah laku (behavior)
• Status (state) disebut juga dengan atribut
• Contoh obyek : obyek mobil
    –   Atribut : merek, warna, bahan bakar
    –   Method : pindah persnelling, kecepatan bertambah, dll
• Pada OOP : status disimpan dalam variabel, dan tingkah laku disimpan dalam method


Apa itu Class ?

• Class merupakan tempat untuk membuat obyek
• Di dalam class dideklarasikan variabel dan method yang dimiliki oleh obyek
• Proses pembuatan obyek dari sebuah class disebut dengan instantiation
• Jadi obyek merupakan hasil instansiasi dari class
• Obyek disebut juga dengan instance


Anggota Class (class member)

• Anggota Class terdiri dari atribut dan method.
• Tiap anggota class memiliki kontrol pengaksesan tersendiri, artinya apakah anggota tersebut dapat diakses        
   dengan  bebas (tipe public) atau hanya dapat diakses melalui sebuah interface.


Apa itu atribut ?

• Atribut adalah data yang dapat membedakan antara satu obyek dengan obyek yang lain
• Contoh untuk class mahasiswa terdapat obyek mahasiswa si A, dan obyek mahasiswa si B. Yang
   membedakan antara obyek si A dan obyek si B adalah NRP-nya yang merupakan atribut dari obyek
   tersebut.


Instance variable vs. class variable

• Instance variable
   – Atribut yang dimiliki oleh obyek dari class yang sama
   – Tiap obyek memiliki instance variable dan menyimpan nilainya tersendiri
   – Jadi beberapa obyek yang berasal dari class yang sama, nilai instance variablenya boleh sama boleh
      tidak.
• Class variable
   – Atribut yang dimiliki oleh semua obyek yang berasal dari class yang sama
   – Semua obyek memiliki nilai class variable yang sama
   – Jadi semua obyek yang berasal dari class yang sama, nilai class variable-nya harus sama


Ilustrasi perbedaan class variable dan instance variable

• Ada seekor kucing bernama pusi dan seorang anjing bernama heli.
• Keduanya merupakan dua obyek yang berbeda dan berasal dari class yang sama yaitu binatang.
• Obyek pusi dan obyek heli memiliki class variable :
   – Jenis : binatang
   – Ekor : ada
• Obyek pusi memiliki instance variable :
   – Suara : meong
• Obyek heli memiliki instance variable :
   – Suara : guggug

Sumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf




Perbandingan OOP dengan Prosedural


Pemrograman Prosedural

• Diselesaikan dalam bentuk prosedur atau fungsi
• Program merupakan urut-urutaninstruksi
• Program dipecah-pecah ke dalam sub program yang lebih sederhana
• Fokus utama pada prosedur dan fungsi
• Fungsi dan prosedur digunakan untuk memanipulasi data
• Sedangkan data sendiri bersifat pasif


Pemrograman Berbasis Obyek

• Fungsi dan data menjadi satu kesatuan yang disebut obyek
• Obyek-obyek dalam OOP bersifataktif
• Cara pandang : program bukan urut-urutan instruksi tapi diselesaikan oleh obyek-obyek yang
  bekerjasama untuk menyelesaikan masalah


Beda nyata antara prosedural dan OOP

• Prosedural

Fokus pada bagaimana cara komputer menangani masalah

• OOP

Fokus pada masalah yang ditangani dengan menggunakan komputer

Sumber : http://lecturer.eepis-its.edu/~tessy/tutorial/java/Konsep%20Pemrograman%20Berbasis%20Obyek.pdf

Pemrograman berorientasi objek


Pemrograman berorientasi objek (Inggrisobject-oriented programming disingkat OOP) merupakan paradigma pemrograman yang berorientasikan kepada objek. Semua data dan fungsi di dalam paradigma ini dibungkus dalam kelas-kelas atau objek-objek. Bandingkan dengan logika pemrograman terstruktur. Setiap objek dapat menerima pesan, memproses data, dan mengirim pesan ke objek lainnya,
Model data berorientasi objek dikatakan dapat memberi fleksibilitas yang lebih, kemudahan mengubah program, dan digunakan luas dalam teknik piranti lunak skala besar. Lebih jauh lagi, pendukung OOP mengklaim bahwa OOP lebih mudah dipelajari bagi pemula dibanding dengan pendekatan sebelumnya, dan pendekatan OOP lebih mudah dikembangkan dan dirawat.
== Konsep dasar dari Pemrograman Berorientasi Objek Pemrograman orientasi-objek menekankan konsep berikut:
  • Kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
  • Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi izin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.