SELAMAT DATANG
DI WILAYAH TERITORIAL
KEKUASAAN SAYA
^_^

Kamis, 13 Desember 2012

PACKAGE

PACKAGE Package adalah sebuah sarana untuk mengelompokkan atau mengorganisasikan kelas dan intervace yang sama atau sekelompok menjadi satu unit tunggal atau library. secara fisik, package dapat berupa folder yang berisi file file/kelas interface atau enum lain yang kegunaannya hampir sama sehingga patut untuk dikelompokkan. package mempengaruhi mekanisme hak akses ke kelas didalamnya. ada tiga hal dalam membuat package : 1. mendeklarasikan dan memberi nama package. 2. membuat struktur dan nama folder yang sesuai dengan struktur dan nama package. 3. mengkomplikasikan kelas-kelas sesuai dengan nama package masing-masing. syarat nama package : 1. diawali huruf kecil. 2. menggambarkan kelas kelas yang dibungkusnya. 3. harus unik. 4. merepresentasikan path dari package tersebut. 5. harus sama direktorinya. KELAS STRING Nilai suatu String adalah objek. Objek ini berisi rangkaian huruf yang membentuk string. Objek tersebut juga berisi subrutin. Misalnya length adalah fungsi yang menghitung panjang suatu string, atau jumlah karakter dalam suatu string. Beberapa method dalam kelas string : - Char charAt (int indeks) : menghasilkan karakter yang terletak pada posisi indeks. - Boolean equals (object anObject) : membandingkan string ini dengan objek lain Case sensitive. - Boolean equalslgnoreCase (string anString) : membandingkan string ini dengan obyek lain. Tidak case sensitive. - Int length () : mengembalikan nilai panjang/jumlah karakter dari string. - String toLowerCase () : mengkonversi semua karakter menjadi huruf kecil. - String toUpperCase () : mengkonversi semua karakter menjadi huruf besar. - String trim() : mengembalikan salinan string ini setelah menghilangkan spasi kosong di awal dan diakhir string. KELAS MATH Math adalah : kelas lyang terdapat pada paket java. Leng yang berguna untuk melakukan berbagai operasi matematika. Beberapa method dalam kelas math adalah : - Double abs(double a) : menghasilkan nilai mutlak dari atribut. - Double ceil (double a) : mengkonversi nilai atribut dengan pembulatan ke bawah. - Double floor (double a) : mengkonversi nilai atribut dengan pembulatan ke atas. - Long around (double a) : menghasilkan nilai yang merupakan bilangan bulat terdekat dengan parameter a. - Double sqrt (double a) : menghasilkan nilai yang merupakan akar kuadrat dari a. -

Jumat, 02 November 2012

Overloading,Overriding Dan Exception Pada Pemrograman Java

Membuat Program Overriding.java class OverRiding { public void MethodAsli () { System.out.println("Method Milik class OverRiding dijalankan"); } public static void main (String [] arqs) { OverRiding O = new OverRiding(); O.MethodAsli(); } } output : Membuat Program SubOverriding.java class SubOverRiding extends OverRiding { public void MethodAsli () { System.out.println("Method yang sudah OverRiding dijalankan"); } public void MethodAsliSuper() { System.out.println("Method pemanggil MethodAsli dijalankan"); super.MethodAsli (); } public static void main (String [] arqs) { SubOverRiding SO= new SubOverRiding (); SO.MethodAsli(); SO.MethodAsliSuper(); } } output : Overloading dan Overriding, keduanya merupakan class yang memiliki nama method yang sama. Namun pada overloading dan overriding memiliki kesamaan dan perbedaan yang dapat dilihat dari parameternya. A. OVERLOADING Overloading adalah suatu kemampuan dalam bahasa berorientasi objek untuk menggunakan suatu nama method untuk beberapa method yang memiliki parameter masukan yang berbeda (tipe maupun jumlah parameter). Overloading memodifikasi secara horizontal method maupun konstruktor milik kelas super, maupun kelas yang sama. B. OVERRIDING Overriding adalah suatu kemampuan dalam bahasa berorientasi objek untuk mengubah implementasi (menimpa) suatu method yang dimiliki oleh kelas super ketika kelas super tersebut diturunkan. Overriding memodifikasi secara vertikal method milik kelas super. Ada dua alasan mengapa melakukan overriding : 1. Mendefenisikan kembali method kelas induk secara total. 2. Menambahkan behaviour tertentu pada method kelas induk. C. EXCEPTION Exception merupakan suatu objek error khusus yang dibuat ketika terjadi kesalahan pada suatu program. Setelah suatu objek exception dibuat oleh java, objek tersebut dikirimkan ke program, proses ini disebut throwing an exception. Kategori error dalam program : 1. Syntax error 2. Runtime error 3. Logic error Bahan Pratikum A. Membuat Program SegiTiga.java class SegiTiga { public SegiTiga (double panjang) { System.out.println ("\nVariabel = segitiganya sama sisi"); System.out.println ("Panjang = " +panjang); keliling(panjang); } public SegiTiga (double panjang, double sisiMiring) { System.out.println ("\n2Variabel = segitiganya sama kaki"); System.out.println ("Panjang = " +panjang+ " sisi miring =" +sisiMiring); keliling(panjang,sisiMiring); } public void keliling(double panjang) { tampilkanHasil (panjang*3); } public void keliling(double p, double sM) { tampilkanHasil (2*sM+p); } protected void tampilkanHasil (double h) { System.out.println ("Hasil = " +h); } } output: B. Membuat Program MainSegiTiga.java Class MainSegitiga { Public static void main(string [] arqs) { new Segitiga(7); new Segitiga(4, 7); } } output : Keterangan : Baris 2, 3 dan 4 di dapat dari perintah new Segitiga(7); yang artinya memanggil konstruktor Segitiga yang memiliki 1 parameter pada class Segitiga yang mana perintah pertama dari konstruktor Segitiga adalah System.out.println("\nVariabel = segitiganya sama sisi"); yakni menampilkan kalimat Variabel = segitiganya sama sisi. Kemudian perintah keduanya adalah System.out.println("panjang = " +panjang); yakni menampilkan kata panjang = 7, yang sebelumnya adalah kembali pada perintah new Segitiga(7); yaitu memasukkan nilai 7 pada parameter panjang, sehingga didapat hasil : panjang = 7 dari perintah kedua. Pada perintah ketiga adalah keliling(panjang); yakni memanggil method keliling yang memilki 1 parameter, untuk mengirimkan nilai 7 pada parameter panjang, sedangkan perintah dari method keliling itu sendiri adalah tampilkanHasil (panjang*3); yakni memanggil method tampilkanHasil dengan mengirim panjang*3 pada paremeter h, yang mana perintah dari method tampilkanHasil adalah System.out.println("Hasil = " +h); yakni menampilkan kalimat Hasil = 7*3, sehingga didapat hasil = 21. Baris 5, 7 dan 8 di dapat dari perintah new Segitiga(4,7); yang artinya memanggil konstruktor Segitiga yang memiliki 2 parameter pada class Segitiga yang mana perintah pertama dari konstruktor Segitiga adalah System.out.println("\n2Variabel = segitiganya sama kaki"); yakni menampilkan kalimat 2Variabel = segitiganya sama kaki. Kemudian perintah keduanya adalah System.out.println("panjang = " +panjang+ " sisi miring = " +sisiMiring); yakni menampilkan kata panjang = 4 sisi miring = 7, yang sebelumnya adalah kembali pada perintah new Segitiga(4,7); yaitu memasukkan nilai 4 pada parameter panjang dan nilai 7 pada parameter sisiMiring, sehingga didapat hasil : panjang = 4 sisi miring = 7 dari perintah kedua. Pada perintah ketiga adalah keliling(panjang, sisiMiring); yakni memanggil method keliling yang memilki 2 parameter, untuk mengirimkan nilai 4 pada parameter panjang dan nilai 7 pada parameter sisiMiring, sedangkan perintah dari method keliling itu sendiri adalah tampilkanHasil (2*sM+p); yakni memanggil method tampilkanHasil dengan mengirim perintah 2*sM+p pada parameter h, yang mana perintah dari method tampilkanHasil adalah System.out.println("Hasil = " +h); yakni menampilkan kalimat Hasil = 2*7+4, sehingga didapat hasil = 18 Membuat Program CobaException.java class CobaException { public static void main (String [] arqs) { int nilai=0; try { int Nilai = Integer.parseInt (arqs[0]) ; System.out.println ("Nilai yang dimasukkan : "+Nilai); } catch(Exception e) { System.out.println("Pasti yang diinput bukan Integer"); } finally { System.out.println("Blok finally tetap dilakukan"); } } } output : Membuat Program PembagianNol.java class PembagianNol { public static void main(String[]args) { System.out.println("Sebelum pembagian"); try { System.out.println(5/0); } catch(Throwable T) { System.out.println("Terjadi pembagian nol"); } System.out.println("Sesudah pembagian"); } } output : Membuat Program TesInputData.java import java.io.*; class TextInputData { public static void main (String [] arqs) { BufferedReader BR = new BufferedReader (new InputStreamReader (System.in)); String Input =""; try { System.out.println ("Masukan data : "); Input = "Salah"; } finally { System.out.println ("Data yang anda masukan adalah " +Input); } } } output : catatan : Perbedaan antar override dengan overload Override Mendefinisikan method dengan nama sama pada class yang berbeda. Konsep dapat di manfaatkan dalam beberapa kasus inheritance, di mana menginginkan penamaan method dengan nama sama namunberbeda dalam impelementasinya. Overload mendefinisikan method dengan nama sama dalam satu class. Konsep sering di gunakan dalam penggunaan constructor.

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: . Contoh selanjutnya berdasar pada sebelumnya dengan pernyataan tambahan untuk mengakses anggota dan method tambahan. class ConstructObj { int data; ConstructObj() { /* inisialisasi data */ } void setData(int data) { this.data = data; } public static void main(String args[]) { ConstructObj obj = new ConstructObj(); //instantiation obj.setData = 10; //access setData() System.out.println(obj.data); //access data } } 1.3.7 Package Untuk menunjukkan bahwa file asal termasuk package khusus, kita gunakan syntax berikut: ::= package ; Untuk mengimpor package lain, kita gunakan syntax berikut: ::= import ; Dengan ini, source code Anda harus memiliki format berikut: [] * + Pengenalan Pemrograman 2 6J.E.N.I. Petunjuk Penulisan Program: + menunjukkan bahwa boleh ada 1 atau lebih kejadian pada baris ini dalam pengaplikasiannya. Sebagai contoh. package registration.reports; import registration.processing.*; import java.util.List; import java.lang.*; //imported by default class MyClass { /* rincian dari MyClass */ 1.3.8 Acces Modifier Table berikut meringkas acces modifier dalam Java. private default/package protected public class yang sama Yes Yes Yes Yes package yang sama Yes Yes Yes package yang berbeda (subclass) Yes Yes package yang berbeda (nonsubclass) Yes Tabel 1.2: Acces Modifier 1.3.9 Enkapsulasi Menyembunyikan elemen dari penggunaan sebuah class dapat dilakukan dengan pembuatan anggota yang ingin Anda sembunyikan secara private. Contoh berikut menyembunyikan field secret. Catatan bahwa field ini tidak langsung diakses oleh program lain menggunakan method getter dan setter. class Encapsulation { private int secret; //field tersembunyi public boolean setSecret(int secret) { if (secret < 1 || secret > 100) { return false; } this.secret = secret; return true; } public getSecret() { return secret; } } Pengenalan Pemrograman 2 7J.E.N.I. 1.3.10 Pewarisan Untuk membuat class anak atau subclass berdasarkan class yang telah ada, kita gunakan kata kunci extend dalam mendeklarasikan class. Sebuah class hanya dapat meng-extend satu class induk. Sebagai contoh, class Point di bawah ini adalah superclass dari class ColoredPoint. import java.awt.*; class Point { int x; int y; } class ColoredPoint extends Point { Color color; } 1.3.11 Method Overriding Method subclass override terhadap method superclass ketika subclass mendeklarasikan method yang signaturenya serupa ke method dalam superclass. Signature dari method hanyalah informasi yang ditemukan dalam definisi method bagian atas. Signature mengikutkan tipe return, nama dan daftar parameter method tetapi itu tidak termasuk acces modifier dan tipe yang lain dari kata kunci seperti final dan static. Inilah perbedaan dari method overloading. Method overloading secara singkat didiskusikan dalam sub bagian pada kata kunci this. class Superclass { void display(int n) { System.out.println("super: " + n); } } class Subclass extends Superclass { void display(int k) { //method overriding System.out.println("sub: " + k); } } class OverrideDemo { public static void main(String args[]) { Subclass SubObj = new Subclass(); Superclass SuperObj = SubObj; SubObj.display(3); ((Superclass)SubObj).display(4); } } Ini akan menghasilkan keluaran sebagai berikut. sub: 3 sub: 4 Pemanggilan method ditentukan oleh tipe data sebenarnya dari object yang diminta method. Pengenalan Pemrograman 2 8J.E.N.I. Acces modifier untuk method yang dibutuhkan tidak harus sama. Bagaimanapun, acces modifier dari method overridding mengharuskan salah satunya punya acces modifier yang sama seperti itu dari method overridden atau acces modifier yang kurang dibatasi. Perhatikan contoh selanjutnya. Periksa yang mana dari method overridding berikut akan menyebabkan waktu meng-compile akan menyebabkan error. class Superclass { void overriddenMethod() { } } class Subclass1 extends Superclass { public void overriddenMethod() { } } class Subclass2 extends Superclass { void overriddenMethod() { } } class Subclass3 extends Superclass { protected void overriddenMethod() { } } class Subclass4 extends Superclass { private void overriddenMethod() { } } 1.3.12 Class Abstract dan Method Bentuk umum dari sebuah method abstract adalah sebagai berikut: abstract (*); Sebuah class yang berisi method abstract harus dideklarasikan sebagai sebuah class abstract. abstract (*);abstract class { /* constructors, fields and methods */ } Kata kunci tidak dapat digunakan pada konstruktor atau method static. Ini juga penting untuk diingat bahwa class abstract tidak dapat di-instantiate. Class yang meng-extends sebuah class abstract harus mengimplementasikan semua method abstract. Jika tidak subclass sendiri dapat dideklarasikan sebagai abstract. Petunjuk Penulisan Program: catatan bahwa mendeklarasikan sebuah method abstract hampir mirip dalam mendeklarasikan class normal kecuali itu suatu method abstract yang tidak memiliki tubuh dan kepala sehingga dengan segera diakhiri dengan semicolon(;). Pengenalan Pemrograman 2 9J.E.N.I. Sebagai contoh: abstract 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]); } } abstract void displayPower(); } class UnderwaterSuperHero extends SuperHero { void displayPower() { System.out.println("Communicate with sea creatures..."); System.out.println("Fast swimming ability..."); } } class FlyingSuperHero extends SuperHero { void displayPower() { System.out.println("Fly..."); } } 1.3.13 Interface Mendeklarasikan sebuah interface pada dasarnya mendeklarasikan sebuah class tetapi sebagai penggantinya menggunakan kata kunci class, kata kunci interface digunakan. Berikut syntaxnya. ::= interface { * [ (*);]* } Anggotanya adalah public ketika interface dideklarasikan public. Petunjuk Penulisan Program: Secara mutlak atribut adalah static dan final dan harus diinisialisasi dengan nilai konstanta. Seperti mendeklarasikan class teratas, acces modifier yang valid hanyalah public dan package(yakni jika tidak ada acces modifier mengawali kata kunci class). Class mengimplementasikan sebuah interface yang telah ada dengan menggunakan kata kunci implements. Class ini dibuat untuk mengimplementasikan semua method interface. Sebuah class boleh mengimplementasikan lebih dari satu interface. Pengenalan Pemrograman 2 10J.E.N.I. Contoh berikut menunjukkan bagaimana mendeklarasikan dan menggunakan sebuah interface. interface MyInterface { void iMethod(); } class MyClass1 implements MyInterface { public void iMethod() { System.out.println("Interface method."); } void myMethod() { System.out.println("Another method."); } } class MyClass2 implements MyInterface { public void iMethod() { System.out.println("Another implementation."); } } class InterfaceDemo { public static void main(String args[]) { MyClass1 mc1 = new MyClass1(); MyClass2 mc2 = new MyClass2(); mc1.iMethod(); mc1.myMethod(); mc2.iMethod(); } } 1.3.14 Kata kunci this Kata kunci this dapat digunakan untuk beberapa alasan berikut: 1. Adanya ambigu pada atribut lokal dari variabel lokal 2. Menunjuk pada object yang meminta method non-static 3. Menunjuk pada konstruktor lain. Sebagai contoh pada maksud pertama, perhatikan kode berikut dimana variabel data disediakan sebagai sebuah atribut dan parameter lokal pada saat yang sama. class ThisDemo1 { int data; void method(int data) { this.data = data; /* this.data menunjuk ke atribut sementara data menunjuk ke variabel lokal */ } } Pengenalan Pemrograman 2 11J.E.N.I. Contoh berikut menunjukkan bagaimana object this secara mutlak menunjuk ketika anggota nonstatic dipanggil. class ThisDemo2 { int data; void method() { System.out.println(data); //this.data } void method2() { method(); //this.method(); } Sebelum melihat ke contoh yang lain, mari pertama meninjau pengertian method overloading. Konstruktor seperti juga method dapat juga menjadi overload. Method yang berbeda dalam class dapat memberi nama yang sama asalkan list parameter juga berbeda. Method overloaded harus berbeda dalam nomor dan/atau tipe dari parameternya. Contoh selanjutnya memiliki konstruktor overloaded dan referensi this yang dapat digunakan untuk menunjuk versi lain dari konstruktor. class ThisDemo3 { int data; ThisDemo3() { this(100); } ThisDemo3(int data) { this.data = data; } } Petunjuk Penulisan Program: Memanggil this() harus ada pernyataan pertama dalam konstruktor. 1.3.15 Kata kunci super Penggunaan kata kunci super berhubungan dengan pewarisan. Super digunakan untuk meminta konstruktor superclass. Super juga dapat digunakan seperti kata kunci this untuk menunjuk pada anggota dari superclass. Program berikut mendemonstrasikan bagaimana referensi super digunakan untuk memanggil konstruktor superclass. class Person { String firstName; String lastName; Person(String fname, String lname) { firstName = fname; lastName = lname; } } class Student extends Person { String studNum; Student(String fname, String lname, String sNum) { Pengenalan Pemrograman 2 12J.E.N.I. super(fname, lname); studNum = sNum; } } Petunjuk Penulisan Program: super() menunjuk pada superclass dengan segera. Ini harus berada pada pernyataan pertama dalam konstruktor superclass. Kata kunci dapat juga digunakan untuk menunjuk anggota superclass seperti yang ditunjukkan pada contoh berikut. class Superclass{ int a; void display_a(){ System.out.println("a = " + a); } } class Subclass extends Superclass { int a; void display_a(){ System.out.println("a = " + a); } void set_super_a(int n){ super.a = n; } void display_super_a(){ super.display_a(); } } class SuperDemo { public static void main(String args[]){ Superclass SuperObj = new Superclass(); Subclass SubObj = new Subclass(); SuperObj.a = 1; SubObj.a = 2; SubObj.set_super_a(3); SuperObj.display_a(); SubObj.display_a(); SubObj.display_super_a(); System.out.println(SubObj.a); } } Program tersebut akan menampilkan hasil berikut. a = 1 a = 2 a = 3 2 Pengenalan Pemrograman 2 13J.E.N.I. 1.3.16 Kata Kunci static Kata kunci static dapat digunakan untuk anggota dari sebuah class. Kata kunci ini menyediakan static atau anggota class untuk diakses sama sebelum beberapa instance dari class dibuat. Variabel class bersifat seperti variabel umum. Ini artinya bahwa variabel dapat diakses oleh semua instance dari class. Method class mungkin dapat diambil tanpa membuat sebuah object dari class tersebut. Bagaimanapun, mereka hanya dapat mengakses anggota static dari class. Ditambahkan juga, mereka tidak dapat menunjuk this dan super. Kata kunci static dapat juga diaplikasikan pada blok. Ini dinamakan dengan blok static. Blok ini dieksekusi hanya sekali, ketika class diisi. Hal ini biasanya digunakan untuk menginisialisasi variabel class. class Demo { static int a = 0; static void staticMethod(int i) { System.out.println(i); } static { //blok static System.out.println("This is a static block."); a += 1; } } class StaticDemo { public static void main(String args[]) { System.out.println(Demo.a); Demo.staticMethod(5); Demo d = new Demo(); System.out.println(d.a); d.staticMethod(0); Demo e = new Demo(); System.out.println(e.a); d.a += 3; System.out.println(Demo.a+", " +d.a +", " +e.a); } } Keluaran dari source kode ditunjukkan di bawah ini. This is a static block. 1 5 1 0 1 4, 4, 4 1.3.17 Kata Kunci final Kata kunci final dapat diaplikasikan pada variabel, method dan class. Untuk mengingat fungsi dari kata kunci, ingat bahwa itu secara mudah dibatasi apa yang kita dapat lakukan dengan variabel, method dan class. Nilai dari variabel final dapat tidak lama diubah sesudah nilainya telah diatur. Sebagai contoh, Pengenalan Pemrograman 2 14J.E.N.I. final int data = 10; Pernyataan berikut akan menyebabkan terjadi compilation error: data++; Method final tidak dapat di-override dalam class anak. final void myMethod() { //in a parent class } myMethod tidak dapat lama di-override dalam class anak. class final tidak dapat diwariskan tidak seperti class yang biasanya. final public class MyClass { } Petunjuk Penulisan Program: Perintah penulisan kata kunci final dan public memungkinkan bertukar tempat. Pernyataan ini akan menyebabkan kesalahan compilation terjadi karena MyClass dapat tidak lama di-extended. public WrongClass extends MyClass { } 1.3.18 Inner Classes Sebuah inner class secara mudah dideklarasikan dalam class lain. class OuterClass { int data = 5; class InnerClass { int data2 = 10; void method() { System.out.println(data); System.out.println(data2); } } public static void main(String args[]) { OuterClass oc = new OuterClass(); InnerClass ic = oc.new InnerClass(); System.out.println(oc.data); System.out.println(ic.data2); ic.method(); } } Untuk mampu mengakses anggota dari inner class, kita butuh sebuah instance dari inner class. Method-method dari inner class dapat secara langsung mengakses anggota dari outer class.

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); } }