Dasar-Dasar OOP

Konsep Dasar OOP dan Statement Dasar Java

Untuk menulis aplikasi dalam Java, diperlukan hal-hal sbb : ü Java 2 Platform Standard Development Kit (J2SDK), ü Text editor, misalnya Pico atau VI.
Sebelum menggunakan compiler maupun interpreter Java, Linux harus sudah mengenali path tempat compiler (javac) dan interpreter (java) berada. Bila path belum ada (biasanya pada /usr/local/JDK), maka saat mengetikkan perintah javac atau java pada shell akan ditemui error message javac : command not found. Untuk melihat apakah path ini sudah dikenali dapat dilakukan dengan cara mengetikkan echo $PATH pada shell. Jika path belum dikenali, maka perintah berikut dapat digunakan pada shell untuk menambahkannya : export PATH=$PATH:/usr/local/JDK. Letak JDK tidak mutlak pada lokasi ini, tergantung pada distro 


Linux yang digunakan ataupun jika dilakukan penginstallan JDK eksternal.
Langkah-langkah pembuatan aplikasi dalam Java
  1. Membuat file source, yaitu suatu file teks yang berisi kode program dalam Java. File ini dapat dibuat menggunakan teks editor semacam pico atau Java IDE. Yang harus diperhatikan dalam pembuatan file ini adalah nama file harus sama dengan nama kelas utama pada program Java (case-sensitive) dan harus menggunakan ekstensi .java
  2. Meng-compile file source menjadi suatu file bytecode, yaitu suatu file yang dapat dimengerti oleh Java Virtual Machine (JVM). Untuk mengcompile file ini dilakukan dengan kompiler java, javac. Sintaks yang digunakan adalah javac . File bytecode yang dihasilkan memiliki ekstension .class
  3. Me-run program yang sudah ada dalam bytecode (file class) menggunakan interpreter java. Sintaks yang digunakan adalah java
Langkah kerja
1. Masuk ke console Linux
2. Buat direktori baru di … dengan cara $ mkdir <>
3. Masuk ke direktori baru tersebut
4. Buat file source menggunakan teks editor (pico) dengan ketentuan $ pico
5. Buat program Java, dimana nama class utama harus sama dengan nama file (misal nama file helloJava.java, nama class utama harus helloJava). Java bersifat case-sensitive
6. Jika sudah selesai, save dan keluar dari teks editor
7. Compile program dengan : $ javac
8. Jika sudah tidak ada error pada kompilasi, eksekusi bytecode yang dihasilkan dengan : $ java
Java adalah bahasa pemrograman berorientasi objek, maka ada beberapa konsep dasar yang perlu diperhatikan.
ü Object (Objek) dan Class (Kelas).
Class berbeda dari object. Class merupakan suatu prototipe yang mendefinisikan variabel-variabel dan method-method secara umum. Sebagai contoh perbandingan, sebuah mobil, siapapun pemiliknya pasti memiliki roda, gas, dan rem. Akan tetapi pemilik itu sendiri dapat berbeda antar mobil. Dalam hal ini, dapat dibuat sebuah class Mobil, dan dapat dibuat objek-objek yang merupakan instan dari class Mobil ini yang berbeda dalam kepemilikan, misalnya MobilA (milik A) dan MobilB (milik B). Objek dapat dikatakan sebagai suatu instan dari class. Semua objek dapat dikatakan memiliki dua hal utama, yaitu atribut (state) dan tingkah laku (behaviour). Dalam pemrograman, state ini disimpan dalam variabel, dan behaviour disimpan dalam method.
ü Encapsulation (Enkapsulasi)
Enkapsulasi adalah suatu pembungkusan berbagai variabel dan method dalam suatu objek (class) tertentu. Namun demikian, tidak semua variabel atau method dapat dimanfaatkan langsung, hanya variabel atau method yang bersifat public yang dapat diakses langsung oleh objek lain, sedangkan variabel atau method yang bersifat private atau protected tidak dapat diakses secara langsung oleh objek lain, sehingga dapat dikatakan bahwa pengguna objek memandang objek sebagai suatu black box yang menyediakan layanan-layanan tertentu, namun tidak mengetahui secara pasti bagaimana objek tersebut bekerja secara internal. Sebagai contoh, seorang pengendara mobil menginjak rem untuk menghentikan mobil, tapi dia tidak perlu tahu bagaimana sistem rem bekerja untuk menghentikan mobil. Si pengendara hanya perlu melakukan suatu method public injakRem() untuk mendapatkan hasilnya.
ü Message
Message adalah suatu mekanisme yang digunakan dalam Java untuk melakukan komunikasi antar object. Dalam suatu program, sebuah object saja tidak akan banyak berguna. Sebagai contoh, Mobil (objek) akan lebih berguna jika pengendara (objek lain) menghidupkan mesin dan mengendarainya. Pengendara melakukan komunikasi terhadap mekanisme mesin untuk menghidupkan Mobil. Objek-objek saling berkomunikasi menggunakan message. Saat objek A ingin agar objek B melakukan method milik B, maka A mengirimkan message kepada B.
ü Inheritance (Pewarisan)
Suatu class baru dapat didefinisikan berdasar dari suatu class yang sudah ada sebelumnya. Inheritance merupakan pemberian state (variabel) dan behaviour (method) dari suatu class ke class baru yang merupakan turunannya. Sebagai contoh, baik class Truk maupun Sedan merupakan turunan dari class Mobil. Baik Truk maupun Sedan disebut subclass dari Mobil, dan Mobil merupakan superclass dari Truk dan Sedan. Dalam hal-hal tertentu, baik Truk maupun Sedan memiliki state yang sama, misalnya roda, gas, dan rem. Demikian juga keduanya memiliki behaviour yang sama, misalnya “tambah kecepatan” atau “kurangi kecepatan”. State dan behaviour yang sama ini didapat karena keduanya merupakan turunan dari class Mobil, dimana class Mobil memiliki berbagai state dan behaviour tersebut. Akan tetapi, suatu subclass dapat memiliki state dan behaviour tambahan di samping state dan behaviour yang sudah diperoleh dari superclassnya. Sedan dapat memiliki state tambahan berupa bagasi, dan memiliki behaviour tambahan berupa “buka bagasi”. Subkelas juga dapat memodifikasi (override) behaviour yang diperoleh dari superclassnya. Misalnya sebuah superclass Mobil memiliki transmisi manual, sedangkan subclass Sedan memiliki transmisi otomatis. Dalam hal ini, agar implementasi Sedan dapat berjalan benar, class Sedan dapat meng-override behaviour “ganti gigi” yang diperolehnya dari superclass agar sesuai dengan yang diperlukannya. Inheritance ini dapat dilakukan sebanyak yang diperlukan, sebagai contoh, subclass Sedan dapat menjadi sebuah superclass dari class BMW dan Mercy. Dengan adanya inheritance ini programmer dapat menggunakan ulang source code dari superclass yang sudah ada untuk suatu class baru tanpa perlu menulis banyak kode lagi. Java hanya mendukung pewarisan tunggal (single inheritance).
ü Interface
Java tidak mendukung mekanisme multiple inheritance seperti pada C++, oleh karena itu Java menggunakan konsep interface untuk mendekati multiple inheritance. Interface pada Java digunakan untuk menyediakan keuntungan dari multiple inheritance dengan cara pengimplementasian yang lebih mudah. Interface memungkinkan beberapa class berbagi method dan variabel standard tanpa perlunya sebuah class baru untuk digunakan sebagai superclass. Lebih lanjut mengenai interface ini akan dibahas kemudian.
Dalam Java, bentuk paling sederhana dari pendefinisian sebuah class adalah :

class NamaKelas
{
variabel …
method…
}

Semua variabel dan method yang berhubungan dengan kelas dituliskan di antara tanda “{“ dan “}”.
Program 1 – helloJava.java

/* Program Hello World dalam bahasa Java*/
import java.lang.*;
class HelloJava //definisi kelas
{
public static void main (String[] args) //main method
{
System.out.println(“Hello Java”); //output ke standard output
}
}

ü Komentar dalam Java dapat dituliskan dengan cara seperti dalam C++ :
o Di antara tanda /*…*/; compiler mengabaikan semua teks yang ada di antara tanda ini
o Diawali tanda //; compiler mengabaikan semua teks dalam baris ini
ü Dalam Java, semua method dan variabel dimasukkan dalam class pemiliknya. Java tidak mendukung variabel atau fungsi global.
ü Method main pada Java merupakan method utama pusat jalannya program, yang berarti saat interpreter Java dijalankan, method main inilah yang pertama kali dipanggil. Dalam method main Java, harus selalu dituliskan sebagai public static void main. Keyword public berarti semua objek dapat mengakses method ini.; static berarti method ini adalah class method; void berarti method ini tidak mengembalikan nilai apa pun. Argumen parameter Java pada contoh ini diletakkan pada suatu array args. Dari contoh ini dapat dilihat bahwa Java juga mendukung sebuah kelas objek String yang berupa kumpulan karakter.
ü Library dalam Java disebut package dan dimasukkan dalam program Java melalui keyword import.
ü Pernyataan System.out.println(“Hello Java”); digunakan untuk menampilkan teks ke layar. Pada Java, setiap selesai mengetikkan sebuah statemen, selalu diakhiri tanda semicolon (;) sebelum menulis statemen berikutnya.
Program 2 – myVariabel.java

class MyVariables
{
public static void main (String args[])
{
System.out.println(“Variabel-variabel dalam Java”);
//variabel boolean
boolean myBool1 = false;
Boolean myBool2 = new Boolean(true);
Boolean myBool3 = new Boolean(false);
System.out.println(“Nilai boolean pertama : ” + myBool1);
System.out.println(“Nilai boolean kedua : ” + myBool2.toString());
System.out.println(“Nilai boolean ketiga : ” + myBool3.booleanValue());
//variabel byte
byte myByte1 = 5;
Byte myByte2 = new Byte(“34″);
System.out.println(“\nNilai byte pertama : ” + myByte1);
System.out.println(“Nilai byte kedua : ” + myByte2.toString());
System.out.println(“Nilai jangkauan variabel byte : ” + myByte2.MIN_VALUE +
” sampai ” + myByte2.MAX_VALUE);
//variabel short integer
short myShort1 = 32004;
Short myShort2 = new Short(“14223″);
System.out.println(“\nNilai short pertama : ” + myShort1);
System.out.println(“Nilai short kedua : ” + myShort2.toString());
System.out.println(“Nilai jangkauan variabel short : ” + myShort2.MIN_VALUE +
” sampai ” + myShort2.MAX_VALUE);
//variabel integer
int myInt1 = 4266345;
Integer myInt2 = new Integer(“5351232″);
System.out.println(“\nNilai integer pertama : ” + myInt1);
System.out.println(“Nilai integer kedua : ” + myInt2.toString());
System.out.println(“Nilai jangkauan variabel integer : ” + myInt2.MIN_VALUE +
” sampai ” + myInt2.MAX_VALUE);
//variabel long
long myLong1 = 710649673;
Long myLong2 = new Long(999175835);
System.out.println(“\nNilai long pertama : ” + myLong1);
System.out.println(“Nilai long kedua : ” + myLong2.toString());
System.out.println(“Jangkauan long : ” + myLong2.MIN_VALUE + ” s/d ” +
myLong2.MAX_VALUE);
//variabel char
char myChar1 = ‘d’;
Character myChar2 = new Character(‘\u0042′);
//Jadinya unicode yang dipake unicode 4 digit hexa
System.out.println(“\nNilai char pertama : ” + myChar1);
System.out.println(“Nilai char kedua : ” + myChar2.charValue());
}
}

Variabel-variabel dalam Java dapat dibedakan menjadi dua, yaitu variabel primitif dan variabel sebagai subkelas dari class Object. Variabel primitif merupakan tipe variabel yang benar-benar hanya digunakan untuk menampung sebuah nilai, sedangkan variabel sebagai class memiliki berbagai method yang dapat digunakan seperti dapat dilihat di atas. Untuk sementara, variabel yang akan banyak digunakan adalah variabel primitif.
Pendeklarasian suatu variabel primitif dapat dilakukan dengan sintaks :
type_var nama_var_1, nama_var_2, …, nama_var_n
Untuk pengesetan nilai awal variabel, dapat dilakukan dengan operator assignment (=) setelah pendeklarasian, sebagai contoh : int nilai1, nilai2, nilai3 = 7 akan membentuk tiga buah variabel nilai1, nilai2, dan nilai3 yang ketiganya bernilai 7.
Dalam pendeklarasian, ada beberapa hal yang perlu diperhatikan :
ü Sekelompok digit tanpa desimal secara default akan diset bertipe integer. Untuk membentuk suatu nilai long, dapat dilakukan dengan menambahkan ‘L’ atau ‘l’ di belakang angka. Untuk lebih jelasnya, nilai 1234 berbeda artinya dengan 1234L; 1234 bertipe integer, sedangkan 1234L bertipe long integer, walaupun nilai keduanya sama.
ü Sekelompok digit dengan nilai desimal secara default akan diset bertipe double. Untuk membentuk suatu nilai float, dapat dilakukan dengan menambahkan ‘F’ atau ‘f’ di belakang angka
Untuk membentuk suatu konstanta, dapat dilakukan dengan menambahkan keyword final. Sebagai contoh, lihat syntax berikut :

final int myConst;
myConst = 6;

Baris pertama akan membentuk suatu konstanta integer bernama myConst. Konstanta ini belum ada nilainya (blank final). Baris kedua akan mengeset nilai myConst sebesar 6. Sekali nilai variabel final diset, maka nilainya tidak dapat diubah lagi.
Program 3 – myOperator.java


class MyOperator
{
public static void main(String args[])
{
if (args.length != 2)
{
System.out.print(“Cara pemakaian : “);
System.out.println(“$ java myOperator “);
System.exit(0);
}
Integer myInt1 = new Integer(args[0]);
Integer myInt2 = new Integer(args[1]);
//Operator aritmetika
System.out.println(“myInt1 + myInt2 = ” + (myInt1.intValue() + myInt2.intValue()));
System.out.println(“myInt1 – myInt2 = ” + (myInt1.intValue() – myInt2.intValue()));
System.out.println(“myInt1 * myInt2 = ” + (myInt1.intValue() * myInt2.intValue()));
System.out.println(“myInt1 / myInt2 = ” + (myInt1.intValue() / myInt2.intValue()));
System.out.println(“myInt1 mod myInt2 = ” + (myInt1.intValue() % myInt2.intValue()));
int nilai1 = (new Integer(myInt1.toString())).intValue();
int nilai2 = (new Integer(myInt2.toString())).intValue();
System.out.println(“nilai1 + (nilai2++) = ” + (nilai1 + (nilai2++)));
System.out.println(“nilai1 sekarang = ” + nilai1);
System.out.println(“nilai2 sekarang = ” + nilai2);
System.out.println(“(–nilai1) + nilai2 = ” + ((–nilai1) + nilai2));
System.out.println(“nilai1 sekarang = ” + nilai1);
System.out.println(“nilai2 sekarang = ” + nilai2);
//Operator bitwise
System.out.println(“nilai1 AND nilai2 = ” + (nilai1 & nilai2));
System.out.println(“nilai1 OR nilai2 = ” + (nilai1 | nilai2));
System.out.println(“nilai1 XOR nilai2 = ” + (nilai1 ^ nilai2));
System.out.println(“nilai1 shift right 2bit = ” + (nilai1 >> 2));
System.out.println(“nilai2 shift left 1bit = ” + (nilai2 <<>
}
}
Operator aritmetika
Operator Fungsi Contoh
Oprator Aritmetika (binary / 2 operand) 
+ Penjumlahan 9 + 5 = 14
- Pengurangan 10 – 6 = 4
* Perkalian 4 * 5 = 20
/ Pembagian 10/5 = 2
% Modulus 19 % 5 = 4
Operator Aritmetika (unary / 1 operand)
+ Konversi ke integer jika operand merupakan byte, short, atau char char variabel = ‘A’; System.out.println (“Nilai variabel : “ + (+variabel));
Akan menghasilkan keluaran :
Nilai variabel : 65 (ASCII huruf A);
- Negasi aritmetika dari operand int variabel = -42 System.out.println (“Nilai variabel : “ + (-variabel));
Akan menghasilkan keluaran :
Nilai variabel : 42 (-1 * 42);
++ Post-increment (nilai variabel digunakan dulu baru dinaikkan 1) Pre-increment (nilai variabel dinaikkan 1 dulu baru digunakan) Untuk a = 5 dan b = 10 : Post-increment : a + (b++) akan menghasilkan 15
Pre increment : a + (++b) akan menghasilkan 16
Nilai akhir keduanya adalah sama, yaitu a bernilai 5 dan b bernilai 11
Post-decrement (nilai variabel digunakan dulu baru diturunkan 1) Pre-decrement (nilai variabel diturunkan 1 dulu baru digunakan) Untuk x = 20 dan y = 10 : Post-decrement: x + (y–) akan menghasilkan 30
Pre increment : x + (–y) akan menghasilkan 29
Nilai akhir keduanya adalah sama, yaitu x bernilai 20 dan y bernilai 9
Operator relasional
Operator Penggunaan Mengembalikan true jika
> op1 > op2 op1 lebih besar dari op2
< op1 < op2 op1 kurang dari op2
>= op1 >= op2 op1 lebih besar atau sama dengan op2
<= op1 <= op2 op1 kurang dari atau sama dengan op2
== op1 == op2 op1 sama nilainya dengan op2
!= op1 != op2 op1 tidak sama dengan op2
Operator kondisional
Operator Penggunaan Mengembalikan true jika
&& (logical AND) op1 && op2 Op1 dan op2 keduanya bernilai true
|| (logical OR) op1 || op2 Op1 atau op2 salah satunya bernilai true
! (logical NOT) !op1 Op1 bernilai false
Operator bitwise dan shift
Operator Penggunaan Deskripsi
& op1 & op2 Bit-bit op1 di-AND-kan dengan bit-bit op2
| op1 | op2 Bit-bit op1 di-OR-kan dengan bit-bit op2
^ op1 ^ op2 Bit-bit op1 di-XOR-kan dengan bit-bit op2
~ ~op1 Negasi logika dari bit-bit op1
>> op1 >> op2 Bit-bit op1 digeser ke kanan sejauh op2
<< op1 << op2 Bit-bit op1 digeser ke kiri sejauh op2
Operand-operand yang digunakan hanya operand bertipe non-floating-point (char/byte/short/int/long), kecuali untuk operator ‘&’ dan ‘|’ dapat diterapkan sebagai operator logika pada tipe data boolean.
Operator assignment
Operator Penggunaan Deskripsi Operator Penggunaan Deskripsi
+= op1 += op2 op1 = op1 + op2 &= op1 &= op2 op1 = op1 & op2
-= op1 -= op2 op1 = op1 – op2 |= op1 |= op2 op1 = op1 | op2
*= op1 *= op2 op1 = op1 * op2 ^= op1 ^= op2 op1 = op1 ^ op2
/= op1 /= op2 op1 = op1 / op2 >>= op1 >>= op2 op1 = op1 >> op2
%= op1 %= op2 op1 = op1 % op2 <<= op1 <<= op2 op1 = op1 << op2
Java menyediakan statement-statement control flow sebagai berikut :
Jenis statement Keyword
Looping while, do-while, for
Decision making if…else if… else…, switch-case
Exception handling try-catch-finally, throw, throws
Branching break, continue, return, label:
Syntax-syntax dasar untuk statement-statement control flow pada Java adalah sbb :
while (kondisi) {
}
do {
} while (kondisi)
for ([inisialisasi]; [terminator]; [pertambahan]) {
}
dengan inisialisasi adalah kondisi awal loop, terminator adalah kondisi berhenti loop (diuji di awal loop), dan pertambahan adalah nilai increment/decrement counter tiap loop. Ketiga komponen ini bersifat optional.
if (kondisi1) {
}
//else if bersifat optional
[else if (kondisi2) {
}]
else {
}
switch (variabel) {
case nilai1 : {
….
[break];
}
case nilai2 : {
….
[break];
}
… //case nilai-nilai lain
default : {
….
[break];
}
}
Statement switch-case melakukan percabangan berdasarkan suatu variabel integer atau character, bukan berdasarkan ekspresi kondisi. Keyword break sebenarnya bersifat optional, karena hanya merupakan pembatas antar case. Tanpa break, statemen yang sama untuk nilai case yang berbeda tidak perlu ditulis ulang.
try {
} catch (exception_type exception_name) {
….
}
[catch (exception_type exception_name) {
….
}]
finally {
….
}
Java menyediakan suatu mekanisme yang dikenal sebagai exception untuk menangani error. Jika saat runtime ditemui error, maka program “melemparkan” exception, sehingga program diinterupsi dan mencari exception handler (mekanisme penangan error). Statemen control flow try-catch-finally digunakan untuk menangani exception ini. Fungsi masing-masing komponen control flow ini adalah :
ü try : mengidentifikasi blok pernyataan dimana exception mungkin diperoleh
ü catch : mengidentifikasi exception tertentu dan apa yang harus dilakukan untuk menanganinya.
ü finally : mengidentifikasi blok pernyataan yang dieksekusi, baik ada exception atau tidak.
Statemen break dan continue dapat dibagi menjadi dua macam, yaitu tanpa label dan dengan label (label pada java ditandai dengan syntax Nama_label : ….). Fungsi break adalah untuk menghentikan eksekusi sebuah blok program, misalnya untuk memaksa keluar dari sebuah loop. Keyword continue digunakan untuk melewatkan sisa statemen pada iterasi loop yang sedang dijalankan, dan melanjutkan sisa loop. Statemen return digunakan untuk mengakhiri method yang sedang berlangsung. Statemen return dapat dibagi dua, yaitu return yang mengembalikan nilai ke method dan return yang tidak mengembalikan nilai.
Program 4 – myControlFlow.java
import java.io.*;
class MyControlFlow
{
public static void main (String[] args)
{
try
{
BufferedReader variables = new BufferedReader(new InputStreamReader(System.in));
int op1, op2;
System.out.print(“Masukkan nilai operand 1 : “);
op1 = (new Integer(variables.readLine())).intValue();
System.out.print(“Masukkan nilai operand 2 : “);
op2 = (new Integer(variables.readLine())).intValue();
//Cek apakah op1 > / < / == op2
if (op1 > op2)
{
System.out.print(“Operand 1 (” + op1 + “) “);
System.out.println(“lebih besar dari operand 2 (” + op2 + “)”);
}
else if (op1 <>
{
System.out.print(“Operand 1 (” + op1 + “) “);
System.out.println(“lebih kecil dari operand 2 (” + op2 + “)”);
}
else
{
System.out.print(“Operand 1 (” + op1 + “) “);
System.out.println(“sama dengan dari operand 2 (” + op2 + “)”);
}
} catch(IOException IOE)
{
System.err.println(“Kesalahan IO”);
}
catch(NumberFormatException NFE)
{
System.err.println(“Angka, bukan huruf!”);
}
}
}
Program 5 – myControlFlow2.java
import java.io.*;
class MyControlFlow2
{
public static void main(String args[])
{
if (args.length != 1)
{
System.err.print(“Cara pemakaian : “);
System.err.println(“$ java myControlFlow2 “);
System.exit(1);
}
String str1 = args[0];
int idx = 0;
for (int i = 0; i <>
{
System.out.println(i + ” ” + str1);
}
System.out.println(“\n”);
do
{
System.out.println(“Karakter ke-” + idx + ” : ” + str1.charAt(idx));
idx++;
} while (idx <>
}
}

comment 0 komentar:

Posting Komentar

Jangan Lupa Di Comment ya Gan...!!

 
© MEDIA BELAJAR IT | Design by Blog template in collaboration with Concert Tickets, and Menopause symptoms
Powered by Blogger