Your SlideShare is downloading. ×
Pengenalan Java
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×

Introducing the official SlideShare app

Stunning, full-screen experience for iPhone and Android

Text the download link to your phone

Standard text messaging rates apply

Pengenalan Java

5,501
views

Published on

Please contact me trough lailiaidi at gmail.com for download request

Please contact me trough lailiaidi at gmail.com for download request

Published in: Technology

0 Comments
5 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
5,501
On Slideshare
0
From Embeds
0
Number of Embeds
0
Actions
Shares
0
Downloads
93
Comments
0
Likes
5
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1.   09/03/2007    LAILI AIDI  PENGENALAN JAVA    PENGENALAN JAVA | Laili Aidi  
  • 2.   LAILI AIDI Asisten Praktikum Java, Common Laboratory Teknik Informatika STTTELKOM, 2005-2006 1. Pemrograman Berorientasi Objek [MDLJV] 1.1 Object Oriented Vs Procedural Beberapa pendekatan dalam pemrograman berorientasi procedural: ·Teknik Top-Down, tugas-tugas yang kompleks dipecah menjadi bagian yang lebih kecil, sampai sub tugas tersebut mudah diimplementasikan. ·Teknik Buttom-Up, membuat procedure-procedure untuk menyelesaikan tugas yang sederhana, kemudian menggabungkannya dalam procedure yang lebih kompleks, sampai fungsionalitas yang diinginkan tercapai. Untuk menentukan procedure di dalam procedural programming sama dengan menentukan sebuah method yang ada dalam OOP. Perbedaan OOP adalah memisahkan class-class, menentukan methode-methode dalam class yang dihubungkan dengan class yang bertanggung jawab untuk menjalankan suatu fungsi. Dengan menggunakan class, fungsionalitas dari suatu class sudah di encapsulate di dalamnya sehingga sangat membantu dalam membangun project. Seorang programmer dapat menggunakan class yang sudah dibuat programmer lain, tanpa ia perlu tahu bagaiman detailnya suatu class mengerjakan suatu operasi Beberapa konsep penting OOP : · Pengkapsulan(Encapsulation) Pengkapsulan adalah proses pemaketan data object bersama method-methodnya. Manfaat utama pengkapsulan bagi pemrogram, yaitu : 1. Penyembunyian informasi (information hiding) Penyembunyian implementasi mengacu perlindungan implementasi internal objek. Objek disusun dari antarmuka public dan bagian private yang merupakan kombinasi data dan method internal. Manfaat utama adalah bagian internal dapat berubah tanpa mempengaruhi bagian-bagian program yang lain. 2. Modularitas (Modularity) Membuat objek dapat dikelola secara independent sehingga bebas melakukan modifikasi tanpa menyebabkan masalah pada bagian lain. Manfaat ini mempermudah mendistribusikan objek-objek di system. 2  PENGENALAN JAVA | LAILI AIDI   
  • 3.   · Pewarisan (Inheritance) Pewarisan adalah proses penciptaan class baru dengan mewarisi karakteristik class yang telah ada, ditambah karakteristik unik class baru itu.. Pewarisan memungkinkan class mewarisi fungsionalitas class yang telah ada dan mengorganisasi class. Subclass mewarisi semua method dan variabel dari superclassnya. Secara praktis berarti bahwa jika superclass telah mendefinisikan perilaku yang kita perlukan, maka kita tidak perlu mendefinisi ulang perilaku itu, kita cukup membuat class yang merupakan subclass dari superclass yang dimaksud Contoh: class SuperContohInheritance { int iVar1,iVar2; /** Creates a new instance of SuperContohInheritance*/ public SuperContohInheritance() { } int mSuperClass(){ iVar1 = iVar1 + iVar2; System.out.println("nilai var1 + var2 = "+iVar1+" + "+iVar2+"= " +iVar1); return iVar1; } } public class SubContohInheritance extends SuperContohInheritance{ private int iVar3; /** Creates a new instance of SubContohInheritance*/ public SubContohInheritance(int iVar1,int iVar2,int iVar3){ this.iVar1 = iVar1; this.iVar2 = iVar2; this.iVar3 = iVar3; } void mSubClass(){ System.out.println("nilai iVar3 di variabel instan adalah "+this.iVar3); } public static void main(String args[]){ SubContohInheritance objek1 = new SubContohInheritance(100,200,300); objek1.mSuperClass(); objek1.mSubClass(); } } 3  PENGENALAN JAVA | LAILI AIDI   
  • 4.   Output : D:>java SubContohInheritance nilai var1 + var2 = 300 + 200= 300 nilai iVar3 di variabel instan adalah ·Polimorfisme (Polymorphism) Polimorfisme berarti mempunyai banyak bentuk. Dua objek atau lebih dikatakan sebagai polymorphic bila objek-objek itu mempunyai antarmuka-antarmuka identik namun mempunya perilaku-perilaku yang berbeda. Pada bahasa pemrograman fungsional yang lain, untuk melengkapi dua pekerjaan yang berbeda diperlukan dua fungsi terpisah dengan nama yang berbeda. Pada Polimorfisme memperbolehkan method memiliki beberapa implementasi yang dipilih berdasarkan tipe objek yang dilewatkan pada pengerjaan method, ini dikenal dengan overloading method. · Pesan (Message) Objek-objek memerlukan suatu tipe mekanisme komunikasi untuk saling berinteraksi. Objek-objek saling berkomunikasi dan berinteraksi lewat message. Ketika berkomunikasi objek mengirim pesan (memanggil method) untuk memberitahu agar objek lain melakukan sesuatu yang diharapkan.. Seringkali pengiriman message juga disertai informasi untuk memperjelas apa yang dikehendaki. Informasi yang dilewatkan beserta message adalah parameter message. 1.2 Kelas (Class) dan Objek (Object) Kelas merupakan bentuk logik dimana seluruh bahasa berorientasi objek dibangun. Kelas mendefinisikan bentuk dan sifat/kelakuan/perilaku objek.Semua konsep/abstraksi yang kita implementasikan di Java harus dikapsulkan/dikemas dalam class. Kelas adalah template atau prototype yang mendefinisikan type objek, sarana pengkapsulan kumpulan data-data dan method-method yang mengolah data-data tersebut, adalah cetakan objek, jadi objek harus merupakan instant suatu kelas. Data dan method berguna untuk mendefinisikan isi dan kemampuan objek. 4  PENGENALAN JAVA | LAILI AIDI   
  • 5.   Deklarasi Kelas Classmodifier class namaclass [extends namasuperclass] [implements namainterface] /* Mendefinisikan atribut */ Type instance-variabel1; Type instance-variabel2; Type instance-variabelN; /* Mendefinisikan atribut */ Type instance-variabel1; Type instance-variabel2; Type instance-variabelN; /* Mendefinisikan constructor */ [modifier] namaclass(parameterlist){ constructor body; } /*Mendefinisikan method*/ Type methodname1(parameterlist){ Methodbody; } Type methodname2(parameterlist){ Methodbody; } } namaclass dan namasuperclass dapat berupa identifier apa saja yang berlaku. Kata kunci extends digunakan untuk menunjukkan bahwa namaclass adalah subclass namasuperclass. Di Java terdapat sebuah class object yang merupakan induk hirarki class Java. Jika kita ingin langsung menurunkan class namaclass dari class object maka dapat menghilangkan pertanyaan extends karena compiler secara otomatis akan memasukkanya. Contoh : class Switch { private boolean isOn = false; /** Creates new Switch */ public Switch() { } public void turnOn(){ isOn = true; } public void turnOff() { 5  PENGENALAN JAVA | LAILI AIDI   
  • 6.   isOn = false; } public boolean isItOn() { return isOn; } } public class HomeSweetHome { private Switch bedroomSwitch = new Switch(); private Switch hallWaySwitch = new Switch(); /** Creates a new instance of HomeSweetHome */ public HomeSweetHome() { } public void turnOnBedroomSw() { bedroomSwitch.turnOn(); System.out.println("bedroom switch is now on"); } public static void main(String[] arg){ HomeSweetHome obHouse = new HomeSweetHome(); System.out.println("now, I turn on the bedroom switch"); obHouse.turnOnBedroomSw(); } } Output : D:>java HomeSweetHome now, I turn on the bedroom switch bedroom switch is now on Apakah hubungan class dengan objek? Class adalah blue print dari objek, ini berarti bahwa kita dapat membuat banyak objek dari satu macam class. Kita tidak dapat melakukan sesuatu dengan/terhadap class (kecuali untuk data dan method static), kita hanya dapat melakukan sesuatu terhadap objek yang diinstan dari sebuah class. Instants atau objek adalah suatu salinan pola class, dengan kumpulan datanya sendiri yang disebut variable instans. Setiap instantsnull yang merupakan referensi untuk tipe object, sehingga tipenya cocok dengan semua class lain. dapat juga dirujuk sebagai objek. Jika kita mendeklarasikan tipe suatu variabel sebagai suatu class, maka dia memiliki nilai awal Objek null tidak memiliki nilai, seperti contoh di bawah ini : Classname p; 6  PENGENALAN JAVA | LAILI AIDI   
  • 7.   Disini variabel p memiliki nilai null, kita hanya melakukan reference variabel p dengan tipe objek Classname. untuk membuat objek sebenarnya atau mengalokasikan objek Classname terhadap variabel p maka kita akan gunakan operator new. Operator new menghasilkan instans tunggal dari suatu class dan menghasilkan referensi ke objek tersebut, seperti contoh dibawah ini : p = new Classname(); Di sini kita telah menciptakan instant/objek dengan tipe/class Classname dan diberikan ke variabel p. Variabel p mengacu atau bertindak sebagai reference ke objek tersebut. Penggunaan objek dilakukan dnegna mengirimkan pesan ke objek atau dnegna kata lain, mamanggil method yang terdapat dalam objek tersebut. Penghancuran objek dalam Java tidak perlu dilakukan karena Java menyediakan Garbage Collecotor yang mendeteksi dan memusnahkan objek yang saling tidak di acu oleh objek lain yang masih digunakan oleh program 1.3 Konstruktor (Constructor) Konstruktor digunakan untuk melakukan inisialisasi variable-variabel instan class serta melakukan persiapan-persiapan yang diperlukan oleh suatu objek untuk dapat beroperasi dengan baik. Format umum pendeklarasian dan pendefinisian constructor adalah : · Nama constructor sama dengan nama class. · Sebelum itu dapat diberi access modifier untuk mengatur visibility constructor. Dalam suatu Class dapat lebih dari satu constructor, masing-masing harus mempunyai parameter yang berbeda sebagai penandanya. Hal seperti ini disebut Overloading terhadap constructor. Deklarasi Konstruktor : [modifier] namaclass(parameter1){ Body constructor; } [modifier] namaclass(parameter1,parameter2){ Body constructor; } [modifier] namaclass(parameter1,parameter2,…,parameterN){ Body constructor; 7  PENGENALAN JAVA | LAILI AIDI   
  • 8.   } Contoh: public class ContohConstructor { int iVar; /** Creates a new instance of ContohConstructor */ public ContohConstructor(int iVar){ System.out.println("Ditampilkan ketika objek diciptakan"); this.iVar = iVar; } public ContohConstructor(int iParam,String sParam){ System.out.println(sParam); iVar = iParam; } int mTambah(){ iVar = iVar + 10; return iVar; } public static void main(String args[]){ ContohConstructor obConst1 = new ContohConstructor(100); ContohConstructor obConst2 = new ContohConstructor(200,"ditampilkan lagi ketika objek2 diciptakan"); System.out.println("nilai dari parameter inputan untuk constructor objek1 "+obConst1.mTambah()); System.out.println("nilai dari parameter inputan untuk constructor objek2 "+obConst2.mTambah()); } } Output : D:>java ContohConstructor Ditampilkan ketika objek diciptakan ditampilkan lagi ketika objek2 diciptakan nilai dari parameter inputan untuk constructor objek1 110 nilai dari parameter inputan untuk constructor objek2 210 8  PENGENALAN JAVA | LAILI AIDI   
  • 9.   1.4 Metod (Methode) dan Atribut (atribut) Method dikenal dengan fungsi dan procedure. Dalam OOP, Method digunakan untuk memodularisasi program melalui pemisahan tugas dalam suatu kelas. Pemanggilan method menspesifikasikan nama method dan menyediakan informasi (parameter) yang diperlukan untuk melaksanakan tugasnya. 2 Teknik pelewatan parameter (parameter passing) : · Pelewatan dengan nilai (Pass By Value) dimana parameter dilewatkan melalui pengkopian nilai argumen, sehingga perubahan terhadap parameter tidak berpengaruh terhadap argument · Pelewatan dengan Acuan (Pass By Reference) dimana yang dilewatkan adalah objek, sehingga perubahan terhadap parameter akan berlaku untuk variabel yang dilewatkan ke metode Deklarasi method untuk yang mengembalikan nilai (fungsi) : [modifier]Type-nilai_kiriman namamethod (parameter1, parameter2,..., parameterN){ Deklaras-deklarasi dan proses; return nilai_kembalian; } Deklarasi method untuk yang tidak mengembalikan nilai (procedure) : [modifier] void namamethod(parameter1,parameter2,…,parameterN){ Deklaras-deklarasi dan proses; } Contoh : class Test { int iVar1, iVar2, iVar3; Test(int iVar1, int iVar2, int iVar3) { this.iVar1 = iVar1; this.iVar2 = iVar2; this.iVar3 = iVar3; } /*Overidding method dengan pass by value */ void Calculate(int iCal1, int iCal2) { iCal1 = iCal1 * 10; iCal2 = iCal2 / 2; } /* Overidding method dengan pass by reference */ void Calculate(Test obTest) { obTest.iVar1 = obTest.iVar1 * 10; 9  PENGENALAN JAVA | LAILI AIDI   
  • 10.   obTest.iVar2 = obTest.iVar2 / 2; } /*Overidding method yang mengembalikan nilai*/ int OverMethod(int iAngka){ iVar3 = iVar3 + iAngka; System.out.println("Tulisan ini bukan dari parameter inputan"); System.out.print("iVar3 + iAngka = "+iVar3+" + "+iAngka+" = "); return (iVar3+iAngka); } /*Overidding method yang tidak mengembalikan nilai*/ void OverMethod(int iAngka, String sComment){ System.out.println(sComment); System.out.println("iVar3 + iAngka = "+iVar3+" + "+iAngka+" = "+(iVar3 + iAngka)); } } public class ContohMethod{ /** Creates a new instance of ContohMethod*/ public ContohMethod() { } public static void main(String[] argv) { int iParam1, iParam2; String sKalimat ="Tulisan ini dikirim dari parameter inputan "; Test obTestParam = new Test(50,100,500); iParam1 = 10; iParam2 = 20; System.out.println("Nilai sebelum pass by value"); System.out.println("iParam1 = "+iParam1); System.out.println("iParam2 = "+iParam2); /* pemanggilan method dengan pass by value*/ obTestParam.Calculate(iParam1,iParam2); System.out.println("Nilai setelah pass by value"); System.out.println("iParam1 = "+iParam1); System.out.println("iParam2 = "+iParam2); /*-------------------------------------------------*/ System.out.println("Nilai sebelum pass by reference"); System.out.println("obTestParam.iVar1 = "+obTestParam.iVar1); System.out.println("obTestParam.iVar2 = "+obTestParam.iVar2); 10  PENGENALAN JAVA | LAILI AIDI   
  • 11.   /* pemanggilan method dengan pass by reference*/ obTestParam.Calculate(obTestParam); System.out.println("Nilai setelah pass by reference"); System.out.println("obTestParam.iVar1 = "+obTestParam.iVar1); System.out.println("obTestParam.iVar2 = "+obTestParam.iVar2); /* pemanggilan method yang mengembalikan nilai */ System.out.println(obTestParam.OverMethod(500)); /* pemanggilan method yang tidak mengembalikan nilai */ obTestParam.OverMethod(500,sKalimat); } } Output: D:>java ContohMethod Nilai sebelum pass by value iParam1 = 10 iParam2 = 20 Nilai setelah pass by value iParam1 = 10 iParam2 = 20 Nilai sebelum pass by reference obTestParam.iVar1 = 50 obTestParam.iVar2 = 100 Nilai setelah pass by reference obTestParam.iVar1 = 500 obTestParam.iVar2 = 50 1.5 Modifier 1.5 Modifier Modifier memberi dampak tertentu pada class, interface, method dan variabel. Java modifier terbagi menjadi kelompok berikut: 1. Access modifier / Visibility Modifier berlaku untuk class, method, variable dan interface, meliputi modifier Public, Protected, Private, dan Default (tak ada modifier). Modifier ini berguna untuk menentukan kontrol terhadap member class tersebut. Modifier Class dan Interface Method dan Variabel Default (tak Tampak di Paketnya Diwarisi oleh subclassnya di paket yang ada sama dengan classnya. Dapat diakses oleh modifier) method-method di class-class yang sepaket. 11  PENGENALAN JAVA | LAILI AIDI   
  • 12.   Public Tampak di manapun Diwarisi oleh semua subclassnya. Dapat diakses dimanapun. Protected Tidak dapat diterapkan Diwarisi oleh semua subclassnya. Dapat diakses oleh method-method di class-class yang sepaket. Private Tidak dapat diterapkan Tidak diwarisi oleh subclassnya Tidak dapat diakses oleh class lain. 2. Final modifier berlaku untuk class,variabel dan method, meliputi modifier final. 3. Static modifier berlaku untuk variabel dan method, meliputi modifier static. 4. Abstrac modifier berlaku untuk class dan method, meliputi modifier abstract. 5. Syncronized modifier berlaku untuk method, meliputi modifier syncronized . 6. Native modifier berlaku untuk method, meliputi modifier native. 7. Storage modifier berlaku untuk variabel, meliputi transient dan volatile. Modifier Class Interface Method Variabel Abstract Class dapat Optional Tidak ada badan Tidak dapat berisi method untuk method yang diterapkan. abstract. diberikan di didefinisikan. Method Class tidak interface memerlukan class dapat karena kongkret yang diinstantiasi interface merupakan subclass Tidak secara yang akan mempunyai inheren mengimplementasikan constructor adalah method abstract abstract. Final Class Tidak dapat Method tidak dapat Berperilaku menjadi tidak diterapkan. ditimpa oleh method sebagai dapat di subclass- konstanta digunakan subclassnya untuk menurunkan class yang baru. Static Tidak dapat Tidak dapat Mendefinisikan Mendefinisikan diterapkan. diterapkan. method (milik) class. variable milik Dengan demikian class. Dengan 12  PENGENALAN JAVA | LAILI AIDI   
  • 13.   tidak memerlukan demikian, instant object untuk tidak menjalankanya. memerlukan Method ini tidak dapat instant object menjalankan method untuk yang bukan static mengacunya. serta tidak dapat Variabel ini mengacu variable dapat yang bukan static. digunakan bersama oleh semua instant objek. synchronized Tidak dapat Tidak dapat Eksekusi dari method Tidak dapat diterapkan. diterapkan. adalah secara mutual diterapkan exclusive diantara pada semua thread. Hanya deklarasi. satu thread pada satu Diterapkan saat yang dapat pada instruksi menjalankan method untuk menjaga haya satu thread yang mengacu variable pada satu saat. Native Tidak dapat Tidak dapat Tidak ada badan Tidak dapat diterapkan. diterapkan. method yang diterapkan. diperlukan karena implementasi dilakukan dengan bahas lain. transient Tidak dapat Tidak dapat Tidak dapat Variable tidak diterapkan. diterapkan. diterapkan. aka diserialisasi Volatile Tidak dapat Tidak dapat Tidak dapat Variabel diterapkan. diterapkan. diterapkan. diubah secara 13  PENGENALAN JAVA | LAILI AIDI   
  • 14.   asinkron. Kompilator tidak pernah melakukan optimasi atasnya. 1.6 This Java memasukkan suatu besaran referensi khusus yang disebut this, yang digunakan didalam method yang dirujuk untuk objek yang sedang berlaku. Nilai this merujuk pada objek dimana method yang sedang berjalan dipanggil. Terdapat 2 cara dalam penggunan this yaitu secara Eksplisit dan Implisit. Pemanggilan Eksplisit biasanya digunakan untuk mengatasi penamaan yang sama. Sedangkan pada pemanggilan Implisit, karena tidak ada pertentangan maka tidak harus menulis kata kunci this secara eksplisit. Bilapun ditulis akan mempunyai efek yang sama. Namun sebenarnya kompilator akan menambahkan kata kunci this untuk pengacuan ke lokasi yang tepat di objek itu secara otomatis. Pada program ContohConstructor terlihat parameter di constructor yaitu iVar yang memiliki kesamaan nama dengan variabel instant iVar di class ContohConstructor, untuk mengatasinya maka digunakan this yang mengacu variabel instant milik objek. Potongan program ContohConstructor : public class ContohConstructor { …… /* ini merupakan penerapan dari Pemanggilan Eksplisit */ public ContohConstructor(int iVar){ System.out.println("Ditampilkan ketika objek diciptakan"); this.iVar = iVar; } /* ini merupakan penerapan dari Pemanggilan Implisit */ public ContohConstructor(int iParam,String sParam){ System.out.println(sParam); iVar = iParam; } …… 14  PENGENALAN JAVA | LAILI AIDI   
  • 15.   DAFTAR PUSTAKA [FSW] Wiryasantika, Faisal. faisal@winwinfaisal.info [MDLJV] Modul Praktikum Java. 2005. Program Studi D3 Jurusan Teknik Informatika. STTTelkom : Bandung (Tidak Diterbitkan) *Copyright : Diperbolehkan mengutip keseluruhan atau sebahagian dari isi dokumen ini dengan atau tanpa ijin penulis dengan tetap menyajikan kredit penulis.   15  PENGENALAN JAVA | LAILI AIDI