• Tidak ada hasil yang ditemukan

9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi

N/A
N/A
Protected

Academic year: 2021

Membagikan "9/26/2011. Tujuan. Bekerja dengan Java Class Library. Pengenalan OOP. Pengenalan OOP. Class dan Object. Enkapsulasi"

Copied!
10
0
0

Teks penuh

(1)

JAVA Education Network Indonesia

jeni.jardiknas.org

Bekerja dengan Java Class Library

Pengenalan Pemrograman 1

Tujuan

Pada akhir pembahasan, siswa diharapkan dapat :

• Menjelaskan OOP dan beberapa konsepnya • Membedakan antara Class dan Object

• Membedakan antara instance variable/method dengan Class (static) variable / method

• Menjelaskan tentang method dan cara untuk memanggil dan memberikan parameter pada method

• Mengidentifikasi jangkauan variable • Casting tipe data primitif dan object

• Membandingkan object dan menentukan class dari sebuah object

Pengenalan OOP

• Object-Oriented programming atau OOP

– Menitikberatkan pada konsep dari object

sebagai elemen dasar dari program.

– Object tersebut dikarakterisasikan oleh

properties dan behaviors.

Pengenalan OOP

• Contoh dari Object

Object dalam kenyataan dapat diasumsikan sebagai sebuah perangkat lunak yang menggunakan properties sebagai data, dan behaviors sebagai method

Enkapsulasi

• Enkapsulasi

– Method untuk menyembunyikan beberapa

method tertentu dari implemensi Class

tertentu.

– Dengan menempatkan batasan di sekitar

properties dan method object kita, kita dapat

menghindari terjadinya efek samping dari

program dimana terjadi perubahan variable

program melalui cara yang tidak diinginkan.

Class dan Object

• Class

– Diasumsikan sebagai template, sebuah

prototype dari object

– Merupakan struktur dasar dari OOP

• Dua tipe class member

– Fields (properties atau attributes)

• Menentukan tipe data yang digunakan oleh class

– Methods.

(2)

Class dan Object

• Object

– Terdiri dari serangkaian data (properties) yang

berupa variable yang menentukan karakteristik

sebuah object, dan mengandung beberapa

method (behavior) yang menjelaskan

bagaimana bentuk object.

– Object adalah sebuah instance dari Class.

Class dan Object

• Perhatikan contoh berikut untuk memahami

antara Class dan Object :

Classes dan Objects

• Class memiliki keunggulan dalam

permasalahan penggunaan kembali.

• Programmer dapat menggunakan sebuah

class berulang kali untuk membuat banyak

object.

Class Variables

• Classes terdiri dari

– Instance variables

– Instance methods

– Class Variables (static member variables)

• variable yang dimiliki oleh keseluruhan class • Hal ini berarti bahwa mereka memiliki nilai (value)

yang sama untuk semua object dalam class yang sama.

Class Variables

• Sebagai Contoh,

Instantiate Class

• Untuk membuat sebuah object atau

instance dari class, digunakan operator

new

• Sebagai contoh :

String str2 = new String(

Hello

world!

);

atau sama dengan,

(3)

Instantiate Class

• Operator new

– Mengalokasikan memory untuk object dan membuat sebuah reference dari alokasi memory tersebut

– Pada saat anda membuat object, pada dasarnya anda meng-invokasi class constructor.

• Constructor

– Adalah sebuah method dimana anda menempatkan seluruh inisialisasi, nama constructor sama dengan nama class.

Method

• Method

– Adalah sebagian kode terpisah yang dapat

dipanggil oleh program utama atau method lain

untuk melakukan suatu fungsi tertentu.

• Beberapa ciri method:

– Dapat menghasilkan satu ataupun tidak value.

– Setelah method telah selesai tereksekusi,

proses kembali kepada method yang

memanggilnya.

Mengapa Menggunakan Methods?

• Inti dari penyelesaian masalah yang efektif adalah memilah dan membagi permasalahan.

• Proses tersebut dapat dilakukan dalam Java dengan membuat method untuk menyelesaikan bagian tertentu atas

permasalahan.

• Ambil sebuah permasalahan, kemudian dipilahkan menjadi beberapa bagian kecil, dan mengaturnya untuk dituliskan menjadi program skala besar.

Memanggil Instance Variables

• Untuk menggambarkan cara pemanggilan method, digunakan class String sebagai contoh.

• Gunakan Java API documentation untuk mengetahui seluruh method yang terdapat pada class String.

• Kemudian dibuat method kita sendiri, namun sekarang mari kita gunakan apa yang telah tersedia sebelumnya.

• Untuk memanggil instance method, tuliskan :

nameOfObject.nameOfMethod( parameters );

Memanggil Instance Variables

• Perhatikan dua contoh method class String

berikut :

Memanggil Instance Variables

• Menggunakan methods,

String str1 = "Hello";

char x = str1.charAt(0); //return character H //disimpan dalam variable x String str2 = "hello";

//return boolean value true

(4)

Parameter Passing

• Pass-by-Value

– Pada saat sebuah pass-by-value muncul,

method tersebut membuat salinan value dari

variable yang dilewatkan menuju method.

Method tersebut tidak dapat secara langsung

merubah argumen awal meskipun dapat

mengubah parameter pada saat proses

perhitungan.

– Seluruh tipe data primitif pada saat ditujukan

pada method adalah pass-by-value.

Pass-by-Value

Parameter Passing

• Pass-by-Reference

– Pada saat pass-by-reference muncul, reference

untuk sebuah object kemudian dilewatkan untuk

memanggil sebuah method. Hal ini berarti method

tersebut membuat sebuah salinan reference dari

variabel yang ditujukan pada method.

– Namun, tidak seperti pass-by-value, method

tersebut dapat memodifikasi object sebenarnya

yang ditunjuk oleh reference, meskipun dua

reference yang berbeda digunakan dalam method,

lokasi data yang ditunjuk adalah sama.

Pass-by-Reference

Pass-by-Reference

Memanggil Static Methods

• Static methods

– Method yang dapat terinvokasi tanpa menginstansiasi sebuah class (dalam arti tanpa menggunakan keyword new).

– Static methods dimiliki class secara keseluruhan dan tidak berupa instance atau object tertentu dari class.

– Static methods dibedakan dengan instance methods dalam sebuah class dengan menggunakan keyword static.

(5)

Memanggil Static Methods

• Contoh dari static method :

//mencetak data pada layar System.out.println(“Hello world”); //konversi String 10, menjadi sebuah integer int i = Integer.parseInt(“10”);

//menghasilkan representasi String dari integer argument sebagai //integer basis 16

String hexEquivalent = Integer.toHexString( 10 );

Jangkauan Variable

• Jangkauan

– Menentukan di bagian mana dalam program variable tersebut dapat diakses.

– Menentukan lifetime dari variable atau berapa lama variable bertahan dalam memory

– Jangkauan ditentukan oleh penempatan deklarasi variabel dalam program.

• Secara sederhana, imajinasikan jangkauan adalah segala sesuatu dalam tanda {...}. Segala yang berada diluar tanda tersebut disebut dengan outer blocks, sebaliknya, disebut dengan inner blocks.

Jangkauan Variable

• Jangkauan variable adalah :

– Didalam blok yang mendeklarasikannya,

dimulau pada baris dimana ia dideklarasikan,

dan didalam inner blocks.

Contoh 1

Contoh 1

• Kode tersebut merepresentasikan 5 jangkauan yang

dindikasikan oleh baris dan huruf yang

merepresentasikan jangkauan tersebut.

• Diberikan variables i,j,k,m dan n, serta lima jangkauan

A,B,C,D dan E.

– Jangkauan variable i adalah A.

– Jangkauan variable j adalah B.

– Jangkauan variable k adalah C.

– Jangkauan variable m adalah D.

(6)

Contoh 2

• Pada method utama, jangkuan dari

variables adalah,

– ages[] - jangkauan A

– i in B - jangkauan B

– i in C – jangkauan C

• Pada method test, jangkauan variables

adalah,

– arr[] - jangkauan D

– i in E - jangkauan E

Jangkauan Variable

• Pada saat mendeklarasikan variable, hanya satu

variable dengan identifier atau nama yang dapat

dideklarasikan dalam sebuah jangkauan.

• Hal itu berarti jika anda menggunakan contoh

deklarasi :

{

int test = 10;

int test = 20;

}

Compiler akan menghasilkan error kecuali anda

menggunakan nama berbeda untuk variabel dalam

satu blok.

Jangkauan Variable

• Bagaimanapun, anda dapat menggunakan

2 variabel dengan nama sama, jika tidak

dideklarasikan dalam satu blok

int test = 0; System.out.print( test ); //..kode selanjutnya { int test = 20; System.out.print( test ); }

Panduan Penulisan Program

• Hindari variable dengan nama sama

dideklarasikan dalam satu method..

Casting

• Casting

– Mengkonversi tipe data dari satu tipe ke tipe

yang lain

• Pokok pembahasan :

– Casting data dengan tipe primitif

– Casting objects

Casting Tipe Primitif

• Casting antara tipe primitif mengijinkan anda untuk

mengkonversi nilai dari satu tipe ke tipe yang lain.

• Umumnya digunakan antar tipe data numerik.

• Terdapat satu tipe data yang tidak dapat dikonversi,

yaitu boolean.

• Tipe Casting:

(7)

Casting Implisit

• Untuk menggambarkan casting implisit, perhatikan contoh berikut :

• Misalkan kita ingin menyimpan sebuah data integer dalam sebuah variable dengan tipe data double.

int numInt = 10;

double numDouble = numInt; //casting implisit

Pada contoh tersebut, karena variabel tujuan memiliki jangkauan lebih besar dibandingkan dengan data yang akan ditempatkan, data tersebut secara implisit tercasting menjadi tipe data double.

Casting Implisit

• Contoh lain :

int

numInt1 = 1;

int

numInt2 = 2;

//hasilnya secara implisit

tercasting menjadi double

double

numDouble =

numInt1/numInt2;

Casting Explisit

• Pada saat kita mengkoncersi sebuah data dengan tipe yang lebih besar menuju tipe lebih kecil, digunakan casting explisit.

• Bentuk casting explisit :

(dataType)value

dimana,

dataType - bentuk tipe data konversi

value - ekspresi yang menghasilkan value dari tipe sumber

Contoh Casting Explisit

• Kita ingin mengcasting dari int menjadi

char, atau sebaliknya. Sebuah character

dapat digunakan sebagai int karena tiap

character memiliki kode numerik sesuai

posisinya dalam character set.

– Character 'A' == 65

char valChar = 'A';

int valInt = valChar;

System.out.print(valInt);//cast

explisit:output 65

Contoh Casting Explisit

double valDouble = 10.12; int valInt = (int)valDouble; //konversi valDouble menjadi tipe int double x = 10.2;

int y = 2;

int result = (int)(x/y); //menghasilkan result sebagai int

Casting Objects

• Instance dari class juga dapat tercasting menjadi instance dari class lain, dengan satu batasan :: Class asal dan tujuan harus terelasi sebagai sebuah inheritance, salah satu class harus berupa subclass dari class lain.

– Inheritance akan dibahas pada sesi selanjutnya

• Casting objects dapat dianalogikan untuk mengkonversi nilai primitif menuju tipe yang lebih besar, beberapa object tidak perlu mengalami casting secara explisit.

(8)

Casting Objects

• Gunakan,

(classname)object

dimana,

classname, adalah nama class tujuan

object, adalah reference untuk object asal

Contoh Casting Objects

• Contoh berikut mengcasting sebuah instance dari class VicePresident menuju instance dari class Employee. VicePresident adalah subclass dari Employee dengan beberapa informasi tambahan.

Employee emp = new Employee();

VicePresident veep = new VicePresident(); emp = veep;

// casting explisit veep = (VicePresident)emp;

Konversi Tipe Primitif menjadi Object dan

sebaliknya

• Satu hal yang yang tidak dapat dilakukan dalam proses casting adalah mengcasting sebuah object menjadi tipe data primitif atau sebaliknya.

• Sebagai alternatif, package java.lang memiliki class yang mendukung setiap tipe data primitif : Float, Boolean, Byte dan lainnya. Disebut dengan class Wrapper

• Class Wrapper

– Hampir seluruh class ini memiliki nama yang sama dengan tipe data, kecuali nama class yang dimulai dengan huruf kapital (Short dengan short, Double dengan double, dan sebagainya)

– Dua class memiliki nama yang membedakannya dengan tipe data: Character digunakan untuk variabel char, dan Integer untuk variabel int

– Penggunaan class yang mendukung tiap tipe primitif dilakukan dengan membuat object yang memiliki value yang sama

Konversi Tipe Primitiv menjadi Object dan

sebaliknya

• Contoh :

– Statement berikut membuat sebuah instance dari class Integer dengan value 7801(primitive -> Object)

Integer dataCount = new Integer(7801);

– Contoh berikut mengkonversi sebuah object Integer menjadi data primitif bertipe int. Hasilnya adalah int dengan value 7801

int newCount = dataCount.intValue();

– Bentuk umum yang diperlukan dalam program adalah mengkonversi sebuah String menjadi tipe numerik,

Konversi Tipe Primitiv menjadi Object dan

sebaliknya

Membandingkan Objects

• Pada pembahasan sebelumnya, kita telah mempelajari tentang operator pembanding nilai. Hampir seluruh operator bekerja hanya untuk tipe primitiv, bukan object.

• Pengecualian peraturan tersebut terletak pada operator equal (==) dan not equal (!=). Jika diaplikasikan sebagai object, operator tersebut tidak akan bekerja sesuai harapan. Disamping memeriksa apakah object memiliki value yang sama dengan object lain, operator tersebut menentukan apakah kedua operator menunjuk object yang sama.

(9)

Membandingkan Objects

• Contoh :

1 class EqualsTest

2 {

3 public static void main(String[] arguments) { 4 String str1, str2;

5 str1 = "Free the bound periodicals."; 6 str2 = str1; 7 System.out.println("String1: " + str1); 8 System.out.println("String2: " + str2); 9 System.out.println("Same object? " + (str1 == str2)); 10 str2 = new String(str1); 11 System.out.println("String1: " + str1); 12 System.out.println("String2: " + str2); 13 System.out.println("Same object? " + (str1 == str2)); 14 System.out.println("Same value? " + str1.equals(str2));

15 }

16 }

Membandingkan Objects

• Hasil eksekusi program :

String1: Free the bound periodicals. String2: Free the bound periodicals. Same object? true

String1: Free the bound periodicals. String2: Free the bound periodicals. Same object? false

Same value? True

Membandingkan Objects

• Catatan pada Strings: – Terdapat kode:

String str1 = “Hello”; String str2 = “Hello”;

– Dua referensi str1 dan str2 akan menunjuk object yang sama – String literals teroptimasi di Java; jika Anda akan membuat

sebuah String menggunakan literal dan kemudian mengunakan literal lain namun dengan character yang sama, Java mengetahui cara untuk mengembalikan object string pertama.

– Kedua string adalah object yang sama, anda harus melakukan cara yang lain untuk membuat object yang berbeda.

Menentukan class dari sebuah object

• Ingin menentukan class dari objet? Berikut ini

caranya :

• Asumsikan kita memiliki object berikut :

SomeClassName key = new

SomeClassName();

Akan dibahas mengenai dua cara dalam

mengetahui tipe tujuan object dengan

menggunakan reference

key

.

Method getClass()

• Method getClass() menentukan Class object (dimana

Class adalah class) yang memiliki sebuah method

getName().

• Dalam hal ini, getName() menghasilkan sebuah string

yang merepresentasikan nama dari class

• Sebagai contoh,

String name = key.getClass().getName();

Operator instanceOf

• instanceOf memiliki dua operands: sebuah reference

pada object pada sisi kiri, dan nama class pada sisi

kanan.

• Expression tersebut menghasilkan nilai true atau false

berdasar pada apakah object merupakan instance

class yang dimaksud atau subclass lain.

• Sebagai contoh,

boolean ex1 = "Texas" instanceof String;

// true

(10)

Kesimpulan

• Classes dan Objects – Instance variables – Class Variables • Instansiasi Class • Methods

– Instance methods

– Pemberian Variable pada Method(Pass-by-value,Pass-by-reference)

– Static methods • Jangkauan variable • Casting (object, tipe primitif)

• Konversi tipe primitif ke Objects dan sebaliknya • Membandingkan object

Referensi

Dokumen terkait