1
BAB I KONSEP PE MROGR AMAN BERO RIENT ASI O BJEK
A. Tujuan Pembelajaran
Setelah mengikuti pembelajaran ini peserta didik diharapkan:
Memahami konsep metodologi berorientasi objek.
Menerapkan keyword pemrograman berorientasi objek.
Memahami perangkat lunak pemrograman berorientasi objek.
Melakukan praktek instalasi perangkat lunak Java sebagai pemrograman berorientasi
objek.
B. Uraian Materi
1. Metodologi Berorientasi Objek
Metodologi berorientasi objek adalah suatu strategi pembangunan perangkat lunak yang
mengorganisasikan perangkat lunak sebagai kumpulan objek yang berisi data dan operasi
yang diberlakukan terhadapnya. Metodologi berorientasi objek merupakan suatu cara
bagaimana sistem perangkat lunak dibangun melalui pendekatan objek secara sistematis.
Metode berorientasi objek didasarkan pada penerapan prinsip-prinsip pengelolaan
kompleksitas. Metode berorientasi objek meliputi rangkaian aktivitas analisis berorientasi
objek, perancangan berorientasi objek, pemrograman berorientasi objek. dan pengujian
berorientasi objek.
Pada saat ini, metode berorientasi objek banyak dipilih karena metodologi lama banyak
menimbulkan masalah seperti adanya kesulitan pada saat mentransformasi hasil dari satu
tahap pengembangan ke tahap berikutnya, misalnya pada metode pendekatan terstruktur,
jenis aplikasi yang dikembangkan saat ini berbeda dengan masa lalu. Aplikasi yang
dikembangkan pada saat ini sangat beragam (aplikasi bisnis, real-time,utility, dan
sebagainya) dengan platform yang berbeda-beda, sehingga menimbulkan tuntutan
kebutuhan metodologi pengembangan yang dapat mengakomodasi ke semua jenis aplikasi
tersebut.
2
Pendekatan berorientasi objek merupakan suatu teknik atau cara pendekatan dalam melihat
permasalahan dan sistem (sistem perangkat lunak, sistem informasi, atau sistem lainnva).
Pendekatan berorientasi objek akan memandang sistem yang akan dikembangkan sebagai
suatu kumpulan objek yang berkorespondensi dengan objek- objek dunia nyata. Ada banvak
cara untuk mengabstraksikan dan memodelkan objek tersebut, mulai dan abstraksi Objek,
class,hubungan sampai abstraksi sistern. Saat mengabstraksikan dan memodelkan objek,
data dan proses-proses Yang dipunyai oleh objek dienkapsulasi (dibungkus) menjadi satu
kesatuan.
Dalam rekayasa perangkat lunak, konsep pendekatan berorientasi objek dapat
diterapkan pada tahap analisis, perancangan, pemrograman, dan pengujian perangkat
lunak. Ada berbagai teknik yang dapat digunakan pada masing-masing tahap tersebut,
dengan aturan dan alat bantu pemodelan tertentu. Sistem berorientasi objek merupakan
sebuah sistem yang dibangun dengan berdasarkan metode berorientasi yang komponennva
dibungkus (dienkapsulasi) menjadi kelompok data dan fungsi. Setiap komponen dalam
sistem tersebut dapat mewarisi atribut dan sifat dan komponen lainnya. dan dapat
berinteraksi satu sama lain.
Keuntungan menggunakan metodologi berorientasi objek adalah:
a. Meningkatkan Produktivitas
Karena class dan objek Yang ditemukan dalam suatu masalah masih dapat dipakai ulang
untuk masalah lainnva yang mleibatkan objek tersebut (reusable).
b. Kecepatan Pengembangan
Karena sistem yang dibangun dengan baik dan benar pada saat analisis dan
perancangan akan menyebabkan berkurangnya kesalahan pada saat pengkodean.
c. Kemudahan Pemeliharaan
Karena dengan model objek, pola-pola yang cenderung tetap dan stabil dapat
dipisahkan dan pola-pola yang mungkin sering berubah-ubah.
d. Adanya Konsistensi
Karena sifat pewarisan dan penggunaan notasi yang sama pada saat analisis,
perancangan maupun pengkodean.
e. Meningkatkan Kualitas Perangkat Lunak
3
Karena pendekatan pengembangan lebih dekat dengan dunia nyata dan adanya
konsistensi pada saat pengembangannva, perangkat lunak yang dihasilkan akan mampu
memenuhi kebutuhan pemakai serta mempunyai sedikit kesalahan.
Gambar 2 ILustrasi Class dengan Class Diagram Pustaka dan File Java Pustaka.java
Class secara fisik adalah berkas atau file yang berisi kode program, di mana kode
program merupakan semua hal yang terkait dengan nama class yaitu Pustaka.java.
b. Object
Objek adalah abstraksi dan sesuatu yang mewakili dunia nyata seperti benda, manusia,
satuan organisasi, tempat, kejadian, struktur, status, atau hal-hal lain yang bersifat
abstrak. Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan
mempunvai operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada
4
status objeknya. Objek mempunyai siklus hidup yaitu diciptakan, dimanipulasi, dan
dihancurkan.
Secara teknis, sebuah class saat program dieksekusi maka akan dibuat sebuah objek.
Objek dilihat dari segi teknis adalah pada saat runtime yang akan diciptakan, elemen
dimanipulasi, dan dihancurkan saat eksekusi sehingga sebuah objek hanya ada saat
sebuah program dieksekusi, jika masih dalam bentuk kode, disebut sebagai class jadi
pada saat runtime (saat sebuah program dieksekusi), yang kita punya adalah objek, di
dalam teks program yang kita lihat hanyalah class. Ilustrasi class dan objek dapat dilihat
pada Gambar 3.
c. Method
Operasi atau metode atau method pada sebuah class hampir sama dengan fungsi atau
prosedur pada metodologi struktural. Sebuah class boleh memiliki lebih dari satu metode
atau operasi. metode atau operasi yang berfungsi untuk memanipulasi objek itu sendiri.
Operasi atau metode merupakan fungsi atau transformasi yang dapat dilakukan
terhadap objek atau dilakukan oleh objek.
Metode atau operasi dapat berasal dari event, aktivitas atau aksi keadaan, fungsi, atau
kelakuan dunia nyata. Contoh metode atau operasi misalnya Read, Write, Move, Copy,
dan sebagainya. Class sebaiknya memiliki metode get dan set untuk setiap atribut agar
konsep enkapsulasi tetap terjaga. Metode get digunakan untuk memberikan akses class
5
lain dalam mengakses atribut, dan set adalah metode yang digunakan untuk mengisi
atribut, agar class lain tidak mengakses atribut secara langsung.
d. Attribute
Atribut dari sebuah class adalah variabel global yang dimiliki sebuah class. Atribut dapat
berupa nilai atau elemen-elemen data yang dimiliki oleh Objek dalam class objek. Atribut
dipunyai secara individual Oleh sebuah objek, misalnya berat, jenis, nama, dan
sebagainya. Atribut sebaiknya bersifat privat untuk menjaga konsep enkapsulasi.
e. Abstraction
Prinsip untuk merepresentasikan dunia nyata yang kompleks menjadi satu bentuk model
yang sederhana dengan mengabaikan aspek-aspek lain yang tidak sesuai dengan
permasalahan.
f. Encapsulation
Pembungkusan atribut data dan layanan (operasi-operasi) yang dipunyai objek untuk
menyembunyikan implementasi dan objek sehingga objek lain tidak mengetahui cara
kerjanya.
g. Inheritance
Mekanisme yang memungkinkan satu objek mewarisi sebagian atau seluruh definisi dan
objek lain sebagai bagian dan dirinya.
h. Interface
Antarmuka atau interface sangat mirip dengan class, tapi tanpa atribut class dan
memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode pada sebuah interface
dapat diimplementasikan oleh class lain. Sebuah class dapat mengimplementasikan lebih
dari satu antarmuka dimana class ini akan mendeklarasikan metode pada antarmuka
yang dibutuhkan oleh class itu sekaligus mendefinisikan isinya pada kode program class
itu. Metode pada antarmuka yang diimplementasikan pada suatu class harus sama persis
dengan yang ada pada antarmuka. Antarmuka atau interface biasanya digunakan agar
class yang lain tidak mengakses langsung ke suatu class, mengakses antar mukanya.
i. Reusabilily
Pemanfaatan kembali objek yang sudah didefinisikan untuk suatu permasalahan pada
permasalahan lainnya yang melibatkan objek tersebut. Misalkan dalam sebuah aplikasi
peminjaman buku diperlukan class Anggota, maka ketika membuat aplikasi penyewaan
6
VCD, class anggota ini bisa digunakan kembali dengan sedikit perubahan untuk aplikasi
penyewaan VCD tanpa harus membuat dari awal kembali.
j. Generalisasi dan Spesialisasi
Menunjukkan hubungan antara class dan objek yang umum dengan class dan objek
yang khusus. Misalnya class yang lebih umum (generalisasi) adalah kendaraan darat dan
class khususnya (spesialisasi) adalah mobil, motor, dan kereta.
k. Komunikasi Antar Objek
Komunikasi antar-objek dilakukan lewat pesan (message)
yang dikirim dan satu objek ke Objek lainnya.
l. Polimorfisme (polymorphism)
Kemampuan suatu Objek untuk digunakan di banyak tujuan berbeda dengan nama yang
sama sehingga menghemat baris program.
m. Package
Package adalah sebuah kontainer atau kemasan yang dapat untuk mengelompokkan
class-class sehingga beberapa class yang bernama sama disimpan package yang sama.
Ilustrasi dari sebuah package dapat dilihat pada Gambar 3.
7
Gambar 5 Ilustrasi Object Oriented Design
Rosa A.S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek, Informatika Bandung, 2013
8
Java merupakan bahasa pemrograman dalam konsisten paling yang paradigma
mengimplementasikan pemrograman berorientasi objek. Berikut beberapa contoh bahasa
pemrograman yang mendukung pemrograman berorientasi objek:
a. Bahasa Pemrograman Smalltalk
Smalltalk merupakan salah satu bahasa pemrograman yang dikembangkan untuk
mendukung pemrograman berorientasi objek mulai tahun 1978. Smalltalk memiliki
berbagai versi, versi dikenal adalah Smalltalk-80 yang dibuat pada tahun 1980.
b. Bahasa Pemrograman Eiffel
Eiffel merupakan Bahasa pemrograman yang dikembangkan untuk mendukung
pemrograman berorientasi objek mulai tahun 1985 oleh Bertand Meyer dan compiler
Eiffel selesai dibuat pada tahun 1987.Eiffel memiliki sintaks mirip dengan sintak pada
pemrograman Pascal.Eiffel merupakan baha pemrograman objek murni karena semua
kode programnya dibungkus didalam class
c. Bahasa Pemrogrman C++
Bahasa pemrograman C++ merupakan pengembangan lebih lanjut dari Bahasa
pemrograman C untuk mendukung pemrograman berorientas objek.Keterkaitan antara
Bahasa C dan C++ dapat dilihat pada Gambar 5.
9
mendukung pemrograman berorientasi objek PHP merupakan bahasa pemrograman
yang digunakan untuk pemrograman web.
e. Bahasa Pemrograman Java
Java dikembangkan oleh perusahaan Sun Microsystem. Java menurut definisi dari Sun
Microsystem adalah nama untuk sekumpulan teknologi untuk membuat dan
menjalankan perangkat lunak pada komputer standalone ataupun pada lingkungan
jaringan. Java 2 adalah generasi kedua dari Java platform.
Java berdiri di atas sebuah mesin interpreter yang diberi nama Java Virtual Machine
(JVM). JVM inilah yang akan membaca bytecode dalam file .class dari suatu program
sebagai representasi langsung program yang berisi bahasa mesin. Oleh karena itu
bahasa Java disebut sebagai Bahasa pemrograman yang portable karena dapat
dijalankan pada berbagai sistem operasi, asalkan pada sistem operasi tersebut terdapat
JVM.
Java merupakan bahasa pemrograman objek murni karena semua kode programnya
dibungkus dalam class. Saat ini Sun Microsystem sudah diakuisisi Oracle Corporation
sehingga Pengembangan Java diteruskan oleh Oracle Corporation.
10
Gambar 7 Arsitektur Java Development Kit 8
https://www.oracle.com/technetwork/java/javase/tech/index.html
Gambar 6 merupakan arsitketur JDK 8 adalah superset dari JRE 8, dan berisi semua yang
ada di JRE 8, ditambah tool seperti compiler dan debugger yang diperlukan untuk
mengembangkan java applet dan java aplikasi. JRE 8 menyediakan library, Java Virtual
Machine (JVM), dan komponen lain untuk menjalankan applet dan aplikasi yang ditulis
dalam bahasa pemrograman Java.
Java bersifat neutral architecture, karena Java Compiler yang digunakan untuk
mengkompilasi kode program Java dirancang untuk menghasilkan kode yang netral
terhadap semua arsitektur perangkat keras yang disebut sebagai Java Bytecode. Proses
pengembangan perangkat lunak berbasis java disajikan dalam Gambar 6.
Bahasa pemrograman Java semua source code ditulis pertama kali dalam file teks
11
biasa yang diakhiri dengan ekstensi .java. File-file sumber tersebut kemudian
dikompilasi menjadi file .class oleh compiler javac. File .class tidak mengandung
kode yang asli kode program tetapi berisi bytecode dalam bahasa Java Virtual
Machine (Java VM). Selanjutnya java launcher tool dari Java Virtual Machine akan
menjalankan aplikasi pada komputer.
Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat
dijalankan pada berbagai platform system operasi. Perkembangan Java tidak hanya
terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai sistem
operasi dan bersifat open source. Gambar 7 menunjukkan cara kerja Java VM
tersedia pada banyak sistem operasi yang berbeda, file class yang sama dapat
berjalan pada Microsoft Windows, Sistem Operasi Solaris ™ (Solaris OS), Linux, atau
Mac OS. Beberapa mesin virtual, seperti Java SE HotSpot secara sekilas, melakukan
langkah-langkah tambahan saat runtime untuk memberi aplikasi berjalan dengan
baik.
12
C. Praktikum
1. Instalasi Java Development Kit (JDK 8) dengan Integrated Development Environtment
(IDE) NetBeans 8.2.
IDE NetBeans adalah sebuah lingkungan pengembangan - sebuah kakas untuk
pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program.
Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain.
Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah
produk bebas dengan tanpa batasan bagaimana digunakan.
a. Instalasi JDK-8
Download file jdk-8u181-windows-x64.exe pada url sebagai berikut :
https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-
2133151.html. Silahkan memilih file yang sesuai dengan jenis sistem operasi.
Proses instalasi dengan melakukan double click pada file jdk-8u181-windows-
x64. Lakukan tahapan-tahapan dengan menekan button Next sampai proses
instalasi selesai.
13
Gambar 11 JDK-8 telah Terinstal dengan Menampilkan Java Verison
14
Gambar 13 Pembuatan Nama Project Baru
Pembuatan File baru atau Class baru, Klik Kanan pada project baru pilih New
→ Java Class → Isi Nama Class : HaloSMK → Finish
15
Gambar 15 Menulis Kode Program Pada Class Baru
16
Ekstrak file 1499813117_easyuml untuk mendapatkan file yang ber-extention
.nbm (Plugin distribution files).
Buka IDE NetBeans 8.2 pilih menu Tools → Plugins → Download → Add Plugins
→ Open
Pada menu Plugins pilih semua komponen easyUML → Next
Persetujuaan IDE NetBeans Installer pilih License Agreement OK
Langkah terakhir restart IDE NetBeans.
17
b. Pembuatan Class Diagram dengan Tool easyUML
Buku IDE NetBeans , pilih File → New Project → UML → UML Diagram Project
→ Poject Name : UMLBab2
Pembuatan Class Diagram baru klik kanan pada Class Diagram → New → Class
Diagram → Name : UMLBab2 → Finish
18
Pembuatan Class Diagram melalui proses drag and draw pilih Class tambahkan
attibut ( nis, nama, class ) dan method (getNis() dan infoSiswa())dalam Class
Diagram : SiswaSMK
19
Gambar 21 Generate Code Tool easyUML
D. Rangkuman
Pengembangan berorientasi objek merupakan cara pikir baru tentang perangkat lunak
berdasarkan abstraksi yang terdapat dalam dunia nyata. Dalam konteks pengembangan
menunjuk pada bagian awal dari siklus hidup pengembangan sistem, yaitu survei, analisis,
desain, implementasi, dan pemeliharaan sistem. Object adalah gabungan antara beberapa
data dan fungsi yang masing-masing bekerja bersama-sama dan tidak dapat dipisahkan.
Gabungan dari data dan fungsi tersebut akan membentuk suatu object-object yang aktif.
Dari kumpulan beberapa object yang sama akan membentuk struktur baru yang disebut
class.
Bahasa pemrograman java berdiri di atas sebuah mesin interpreter yang diberi nama Java
Virtual Machine (JVM). JVM inilah yang akan membaca bytecode dalam file .class dari
suatu program sebagai representasi langsung program yang berisi bahasa mesin. Oleh
karena itu bahasa Java disebut sebagai Bahasa pemrograman yang portable karena dapat
dijalankan pada berbagai sistem operasi, asalkan pada sistem operasi tersebut terdapat
JVM.
20
IDE NetBeans adalah sebuah lingkungan pengembangan - sebuah kakas untuk
pemrogram menulis, mengompilasi, mencari kesalahan dan menyebarkan program.
Netbeans IDE ditulis dalam Java - namun dapat mendukung bahasa pemrograman lain.
Terdapat banyak modul untuk memperluas Netbeans IDE. Netbeans IDE adalah sebuah
produk bebas dengan tanpa batasan bagaimana digunakan. Sedangkan easyUML adalah
tool diagram UML untuk NetBeans yang menyediakan fitur untuk memudahkan dalam
membuat diagram Class Diagram UML. Fitur yang tersedia saat ini hanya mendukung
pembuatan Class Diagram dengan menyediakan editor visual drag-and-drop untuk
menggambar diagram. Selain itu bisa digunakan untuk men-generate Class Diagram
menjadi kode program java, atau sebelaliknya bisa melakukan 'reverse engineering' untuk
membuat Class Diagram dari kode program java.
21
BAB II ATURAN D AS AR PEMR OGR AM AN BERORIE NTASI OBJEK
A. Tujuan Pembelajaran
Setelah mengikuti pembelajaran ini peserta didik diharapkan:
Memahi templete program Java
Menganalisis perbedaan syntax error dan runtime error
Menerapkan Java literal, keyword, tipe data dasar, dan tipe variabel dalam kode bahasa
pemrograman Java.
Melakukan praktikum penerapan aturan dan dasar konsep pemrograman berorientasi
objek menggunakan bahasa pemrograman Java
B. Uraian Materi
1. Templete Program Java
Package
Perintah java yang digunakan untuk memberitahukan bahwa suatu class adalah anggota
dari package, sedangkan namaPackage dapat berupa susunan direktori tempat dimana
file class disimpan atau nama folde.
<nama package>.<nama class>
Import
Perintah import digunakan untuk memberitahukan kepada program untuk mengacu pada
class-class yang terdapat pada package tersebut dan bukan menjalankan class-class
tersebut. Dalam program, dapat diimport class-class tertentu saja dan dapat pula
mengimport semua class yang terdapat pada package.
import . <nama package> . *
Class
Merupakan bentuk logis yang menjadi landasan bangun seluruh bahasa pemograman
berorientasi object. Class mendefinisikan bentuk dan perilaku object. Class merupakan
contoh abstrak dari sebuah object yang telah terbentuk dari proses penyederhanaan.
22
Dengan kata lain class merupakan cikal bakal dari object. Kemudian contoh nyata atau
perwujudan dari sebuah object dinamakan instance.
class <nama class> {
<body methode>
Program utama
Salah satu metoda yang paling penting di dalam bahasa Java adalah metoda main.
Metoda main harus dideklarasikan sendiri oleh programmer di dalam sebuah class.
Class yang mempunyai metoda main disebut dengan class main (main class), akan
tetapi tidak semua class Java harus mempunyai metoda main. Interpreter Java akan
meminta metoda main saat program aplikasi dieksekusi.
23
Gambar 22 Metode Utama Dalam Bahasa Pemrgraman Java
Secara lengkap template program Java ditunjukkan pada Gambar 22, kita dapat mengikuti
template ini dalam menuliskan program Java.
Package
Digunakan untuk memberitahukan bahwa
suatu class adalah anggota dari package
Import
Pengurutan perintah-
perintah import
Class
Pendeskripsian nama class
Statemen
Urutan perintah-perintah
24
Berikut adalah contoh program Java berdasarkan template di atas, yang tersaji dalam
Gambar 23.
25
menghilangkan titik koma pada akhir pernyataan dan juga mencoba untuk mengetikkan
ejaan yang salah pada sebuah perintah.
Lihatlah pesan error yang ditampilkan setelah peng-compile-an program dilanjutkan.
Pesan error yang pertama memberitahu bahwa di program dijalankan. Pada error yang
pertama memberitahu bahwa di program terdapat error pada baris 6. Hal itu menunjuk
pada kata setelah static, dimana seharusnya dieja sebagai static. Pada error yang kedua
memberitahukan bahwa pada program tersebut kehilangan titik-koma setelah
pernyataan.
Runtime Error
Sebuah program yang berhasil dikompile belum tentu berhasil di jalankan. Inilah yang
dinamakan Run time error, kesalahan ini tidak akan ditampilkan sampai kita menjalankan
program tersebut. Hal ini bisa saja terjadi misalnya dikarenakan struktur yang di buat
programmer tidak jelas atau mungkin tidak logis.
26
Catatan
true, false, dan null bukan termasuk kata kunci akan tetapi termasuk kata-kata
khusus, jadi tidak dapat digunakan sebagai nama variabel pada kode program.
Java Literals
Literals adalah tanda bahwa tidak terjadi perubahan atau konstan. Macam-macam
literals dalam Java adalah : Integer Literals, Floating-Point Literals, Boolean
Literals, Character Literals dan String Literals.
a. Integer Literals
Integer literals dibedakan dalam beberapa format yang berbeda: desimal
(berbasis 10), heksadesimal (berbasis 16), and oktal (berbasis 8). Dalam
penggunaan tipe data integer pada program, kita harus mengikuti aturan
penggunaan beberapa notasi khusus.Untuk angka desimal, kita tidak memerlukan
notasi khusus. Kita hanya menulis angka desimal seperti apa adanya. untuk
angka heksadesimal, hal itu harus ditandai oleh “0x” atau “0X”. untuk oktal,
ditandai oleh“0”. Sebagai contoh, mewakili angka 12. Penulisan dalam bentuk
desimalnya adalah 12, Sementara dalam heksadesimal, menjadi 0xC, dan dalam
oktal, nilai tersebut sama dengan 014.
Default tipe data untuk integer literals adalah int. Int adalah signed 32-bit
value. Pada kasus-kasus tertentu Anda dapat berharap untuk memaksa integer
literal untuk menjadi tipe data long dengan menambahkan karakter “l” or “L”.
tipe data long ditandai oleh ditampilkannya data dalam 64-bit.
b. Floating-Point Literals
Floating point literals mewakili bentuk desimal dengan bagian yang terpisah.
Sebagai contoh adalah 3.1415. Floating point literals dapat dinyatakan dalam
notasi standard atau scientific. Sebagai contoh, 583.45 dinyatakan dalam notasi
standard, Sementara 5.8345e2 dinyatakan dalam notasi scientific. Default Floating
point literals mempunyai tipe data double yang dinyatakan dalam 64-bit. Untuk
menggunakan ketelitian yang lebih kecil (32-bit) float, hanya dengan menambahkan
karakter “f” atau “F”.
c. Boolean Literals
27
Boolean literals hanya memiliki dua nilai, true atau false.
d. Character Literals
Character Literals diwakili oleh karakter single Unicode. Karakter Unicode adalah
16-bit character set yang menggantikan 8-bit ASCII character set. Unicode
memungkinkan pengunaan simbol dan karakter khusus dari bahasa lain. Untuk
menggunakan character literals, karakter tersebut di dalam tanda single pute
(' ') (single quote delimiters). Sebagai contoh huruf a, diwakili sebagai ‘a’. Untuk
menggunakan karakter khusus seperti karakter baris baru, backslash digunakan
diikuti dengan karakter kode. Sebagai contoh,‘\n’ untuk karakter baris baru
atau ganti baris, ‘\r’ untuk menyatakan nilai balik (carriage return), ‘\b’ untuk
backspace.
e. String Literals
String literals mewakili beberapa karakter dan dinyatakan dalam tanda double
pute(“ ”)( double quotes). Sebagai contoh string literal adalah, “Hello World”.
Tipe Data Primitif
Bahasa pemrograman Java mendefinisikan delapan tipe data primitive yaitu
diantaranya adalah boolean (untuk bentuk logika), char (untuk bentuk tekstual),
byte, short, int, long (integral), double and float (floating point).
Tabel 2 Tipe Data Primitif
28
Variabel Reference dan Variabel Primitif
Dua tipe variabel yang dimiliki oleh program Java adalah variabel reference dan
variabel primitif .Variabel primitif adalah variabel dengan tipe data primitif.
Mereka menyimpan data dalam lokasi memori yang sebenarnya dimana variabel
tersebut berada.
Variabel Reference adalah variabel yang menyimpan alamat dalam lokasi
memori. Yang menunjuk ke lokasi memori dimana data sebenarnya berada. Ketika
Anda mendeklarasikan variabel padaclass tertentu, Anda sebenarnya
mendeklarasikan reference variable dalam bentuk objek dalam classnya tersebut.
Sebagai contoh, Apabila kita mempunyai dua variabel dengan tipe data int dan
String.
int n =10;
String nama = “SMK”
Dimisalkan ilustrasi yang ditunjukkan Gambar adalah memori yang ada pada
komputer Anda, dimana Anda memiliki alamat dari setiap sel memorinya, nama
variabel dan datanya terbentuk sebagai berikut.
29
4. Standar Output
Ketika sebuah program menghitung hasil, kita memerlukan cara untuk menampilkan hasil
ini kepada pengguna program. Salah satu cara paling umum untuk melakukan ini di Java
adalah menggunakan jendela konsol. Jendela konsol juga disebut jendela keluaran standar.
System.out.println adalah pernyataan Java yang mencetak argumen yang dilewatkan, ke
dalam System.out.
5. Standar Input
System.out digunakan untuk menampilkan data, sedangkan teknik untuk memasukkan data
menggunakan input standar yaitu System.in. Data dari keyboard diterima oleh System.in.
Penggunaan System.in untuk input sedikit lebih rumit daripada menggunakan System.out
untuk output. System.in adalah instance dari class InputStream yang hanya menyediakan
fasilitas untuk memasukkan 1 byte pada satu waktu dengan metode terbaca. Namun,
beberapa byte diperlukan untuk mewakili jenis data umum seperti string. Class Scanner
merupakan package dari java.util menyediakan fasilitas input yang diperlukan untuk
mengakomodasi berbagai data masukan.
Untuk memasukkan data dari input standar dengan menggunakan objek Scanner, pertama-
tama kita ciptakan objek dengan melewatkan parameter System.in pada constructor sebagai
berikut:
30
import java.util.*;
...
Scanner inp;
inp = new Scanner(System.in);
Setelah kita memiliki objek Scanner, maka kita dapat memasukkan satu kata dengan
menggunakan metode berikutnya. Ini kode untuk memasukkan nama pertama seseorang:
Scanner inp = new Scanner(System.in);
String nama;
System.out.print(“ Masukkan nama Anda : “);
nama = inp.nextLine();
System.out.println(“ Senang bertemu Anda “ + nama);
Interaksi pengguna dari kode contoh ini ditunjukkan pada Gambar 2.16. Dalam diagram,
karakter yang dimasukkan oleh pengguna ditampilkan di jendela konsol saat karakter
tersebut diketikkan, sehingga pengguna dapat melihat apa yang telah dimasukkan.
Mencetak nilai yang baru saja dimasukkan disebut pencetakan gema. Input string diproses
sampai tombol Enter (atau Return) ditekan, sehingga kita dapat menghapus karakter
dengan menekan tombol Backspace saat memasukkan data.
Ini dimasukkan oleh pengguna dan echo Ikon ini menunjukkan penekanan
dicetak oleh sistem. Untuk membedakan tombol Enter (Return).
input dan output dalam diagram, input
ditampilkan dalam warna yang berbeda.
Untuk nilai input numerik, menggunakan metode setara yang sesuai dengan tipe data dari
nilai yang dimasukkan. Misalnya, untuk memasukkan nilai int, menggunakan metode
nextInt. Berikut ini contoh memasukkan usia seseorang:
Scanner inp = new Scanner(System.in);
int umur;
System.out.print("Masukkan umur Anda: ");
31
umur = inp.nextInt( );
Selain tipe data int, ada lima metode input yang sesuai dengan tipe data numerik lainnya.
Keenam metode input untuk tipe data numerik primitif tercantum dalam Tabel 3.6.
Tabel 3 Metode Untuk Memasukkan Enam Tipe Data Numerik
Metode Contoh
nextByte( ) byte b = inp.nextByte( );
nextDouble( ) double d = inp.nextDouble( );
nextFloat( ) float f = inp.nextFloat( );
nextInt( ) int i = inp.nextInt( );
nextLong( ) long l = inp.nextLong( );
nextShort( ) short s = inp.nextShort( );
6. Operator
Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi, operator
logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas yang pasti
sehingga compilernya akan tahu yang mana operatoruntuk dijalankan lebih dulu dalam kasus
beberapa operator yang dipakai bersama-sama dalam satu pernyataan.
a. Operator Aritmatika
Tabel 4 berikut ini adalah dasar operator aritmatik yang dapat digunakan untuk
membuat suatu program Java,
Tabel 4 Operator Aritmatika
32
metode, atau ekspresi aritmatika lainnya, yang memungkinkan juga menggunakan tanda
kurung. Perhatikan contoh dalam ekspresi berikut,
operand operator operand
x + 7
Dalam ekspresi x + 7 memiliki satu operator tambahan dan dua operan yaitu variabel
x dan konstanta 7. Operator penjumlahan disebut operator biner karena beroperasi
pada dua operan. Semua operator aritmatika lainnya kecuali minus juga biner. Operator
minus dan plus dapat berupa biner dan unary. Operator unari beroperasi pada satu
operan seperti pada –x.
Perhatikan ekspresi berikut,
x + 3 * y
operator penjumlahan (+) bertindak pada operan x dan 3 * y. Operan kanan untuk
operator penjumlahan itu sendiri merupakan ekspresi. Seringkali ekspresi bersarang
disebut subekspresi. Subekspresi 3 * y memiliki operan 3 dan y. Diagram berikut
mengilustrasikan hubungan ini disajikan dalam Gambar
Ketika dua atau lebih operator terdapat dalam sebuah ekspresi, urutan evaluasi
ditentukan dengan mengikuti aturan yang diutamakan. Misalnya, perkalian memiliki
prioritas yang lebih tinggi dari pada penjumlahan. Oleh karena itu, dalam ekspresi x +
3 * y, operasi perkalian dievaluasi terlebih dahulu, dan operasi penjumlahan dievaluasi
berikutnya. Tabel 6 merangkum aturan prioritas untuk operator aritmatika,
Tabel 5 Aturan Prioritas Operator Aritmatika
33
disarangkan, sub-ekspresi terdalam
akan dievaluasi terlebih dahulu. Jika
dua atau lebih pasang tanda kurung
berada pada tingkat yang sama,
maka mereka dievaluasi dari kiri ke
kanan.
Unary operator -, + Unari minus dan plus dievaluasi
kedua.
Multiplikasi operator *, / , % Operator multiplikatif dievaluasi
ketiga. Jika dua atau lebih operator
perkalian dalam ekspresi, maka
mereka dievaluasi dari kiri ke kanan.
Aditip operator +, - Operator aditif dievaluasi terakhir.
Jika dua atau lebih operator aditif
berada dalam ekspresi, maka mereka
dievaluasi dari kiri ke kanan.
Low
Ketika ekspresi aritmatika terdiri dari variabel dan konstanta dari tipe data yang sama,
maka hasil dari ekspresi akan menjadi tipe data juga. Sebagai contoh, jika tipe data a
dan b adalah int, maka hasil dari ekspresi,
a * b + 2
juga merupakan int. Ketika tipe data variabel dan konstanta dalam ekspresi aritmatika
adalah tipe data yang berbeda, maka konversi casting akan berlangsung. Konversi
Acasting, atau typecasting, adalah proses yang mengubah nilai dari satu tipe data ke
34
tipe data lain. Dua jenis konversi casting di Java bersifat implisit dan eksplisit ditunjukkan
dalam Tabel 7.
Tabel 6 Aturan Tipe Operator
Operator typecast adalah operator unary dan memiliki prioritas lebih tinggi dari operator
biner manapun. Tanda kurung digunakan untuk typecast subekspresi; misalnya,
ekspresi,
a + (double)( x + y * z )
akan menghasilkan subeksprei x + y * z typecast untuk tipe data double.
Dengan asumsi variabel x adalah int, maka pernyataan penugasan
x = 2 * (14343 / 2344);
35
akan menetapkan hasil integer dari ekspresi ke variabel x. Namun, jika tipe data x selain
int, maka konversi implisit akan terjadi sehingga tipe data dari ekspresi menjadi sama
dengan tipe data dari variabel. Konversi adalah konversi implisit lain yang terjadi ketika
variabel dan nilai ekspresi dalam pernyataan penugasan bukan dari tipe data yang sama.
Konversi hanya terjadi jika jenis data dari variabel memiliki presisi yang lebih tinggi
daripada tipe data dari nilai ekspresi. Sebagai contoh,
double number;
number = 25;
adalah valid, sedangkan
int number;
number = 17.25;
adalah tidak valid.
Dalam menulis program, menaikkan atau menurunkan nilai variabel dengan jumlah
tertentu sering dilakukan. Misalnya, untuk meningkatkan nilai penjumlahan sebesar 9,
ditulis dengan,
jumlah = jumlah + 9;
Kita dapat menulis ulang pernyataan ini tanpa mengulang variabel yang sama di sisi kiri
dan kanan simbol penugasan dengan menggunakan operator penentu singkat:
jumlah += 5;
Operator shorthand assignment ini memiliki prioritas yang lebih rendah daripada
operator aritmatika lainnya misalnya,
jumlah *= a + b;
pernyataan itu setara dengan,
jumlah = jumlah * (a + b)
Tabel 8 daftar lima operator shorthand assignment yang tersedia di pemrograman Java.
Tabel 7 Operator Shorthand Assignment
36
Dari sisi operator dasar aritmatika, Java juga terdiri atas operatorunary increment (++)
dan operator unary decrement (--).Operator increment dan decrement menambah dan
mengurangi nilai yang tersimpan dalam bentuk variabel angka terhadap nilai 1.
Sebagai contoh, pernyataan,
count = count + 1;
atau
count++;
Operator increment dan decrement dapat ditempatkan sebelum atau sesudah operand.
Ketika digunakan sebelum operand, akan menyebabkan variabel di-increment atau di-
decrement dengan nilai1, dan kemudian nilai baru digunakan dalam pernyataan dimana
ditambahkan. Sebagai contoh, variabel k pada baris terakhir adalah 14.
int i =10;
int j = 3;
int k = 0;
k = ++j + i;
Ketika operator increment dan decrement ditempatkan setelah operand, nilai variabel
yang lama akan digunakan lebih dulu dioperasikan lebih dulu terhadap pernyataan
dimana dia ditambahkan. Sebagai contoh, variabel k pada baris terakhir adalah 13.
int i =10;
int j = 3;
int k = 0;
k = j++ + i;
37
7. Lingkup Variabel
Variabel harus memiliki tipe data dana nama, selain itu suatu variabel juga mempunyai
jangkauan. Jangkauan ini menentukan kemampuan program dalam mengakses variable.
Jangkauan ini juga menentukan siklus hidup dari suatu variable atau berapa lama variable
itu berada dalam memori. Jangkauan ini ditentukan oleh letak pendeklarasian variabel di
dalam program. Untuk memudahkan anda mengenai jangkauan variabel, kita bedakan
variabel yang terletak di dalam kurawal {.....}. Blok kode yang terdapat di luar kurung
kurawal bisa disebut juga dengan blok luar, dan blok kode yang terletak di dalam kurung
kurawal disebut dengan blok dalam.
Jika kamu mendeklarasikan variabel di blok luar, variabel akan dapat dipakai oleh blok
bagian dalam. Lain halnya jika kamu mendeklarasikan variabel di blok dalam, kamu tidak
bisa harapkan blok terluar untuk menggunakan variabel tersebut. Jadi dapat disimpulkan,
suatu jangkauan variable dapat terletak di dalam blok dimana variabel tersebut sudah di
deklarasikan, dimulai dari tempat dimana variable itu di dklarasikan dan di blok-blok bagian
dalam.
38
Kode yang kita miliki disini mempunyai lima jangkauan yang ditandai oleh baris dan
keterangan yang mewakili jangkauan itu, dengan variable i,j,k,m dan n, dan 5 jangkauan
A,B,C,D dan E, kita mempunyai beberapa jangkauan variable berikut:
Jangkauan variable i adalah A.
Jangkauan variable j adalah B.
Jangkauan variable k adalah C.
Jangkauan variable m adalah D.
Jangkauan variable n adalah E.
8. Konstanta
Ketika sebuah program berjalan, nilai yang berbeda dapat diberikan ke suatu variabel pada
waktu yang berbeda (dengan demikian nama variabel, karena nilai yang dikandungnya
dapat bervariasi), tetapi dalam beberapa kasus kita tidak ingin ini terjadi. Dengan kata lain,
dapat "mengunci" nilai yang ditetapkan sehingga tidak ada perubahan yang dapat terjadi.
Jika kita menginginkan suatu nilai tetap tetap, maka digunakan konstanta. Konstanta
dideklarasikan dengan cara yang mirip dengan variabel tetapi dengan tambahan akhir kata
cadangan. Konstanta harus diberi nilai pada saat deklarasinya. Berikut contoh
mendeklarasikan empat konstanta:
final double PI = 3.14159;
final short FARADAY_CONSTANT = 23060;
final double CM_PER_INCH = 2.54;
final int MONTHS_IN_YEAR = 12;
Konvensi Java standar untuk menamai konstanta, menggunakan huruf besar dan garis
bawah. Penggunaan konstanta yang sesuai dengan standar membuat program lebih mudah
dibaca.
Konstanta PI disebut konstanta konstan atau konstanta symbolic. Acuan konstanta symbolic
dengan identifier seperti PI dan FARADAY_CONSTANT. Konstanta jenis kedua disebut
konstanta literal, dengan menggunakan nilai yang sebenarnya. Misalnya, pernyataan berikut
mengandung tiga konstanta literal:
39
Gambar 31 Konstanta Literal
C. Praktikum
IDE Netbeans 8.2 digunakan untuk menulis kode program Java, langkah pertama membuat
project baru dengan cara:
File → New Project → Project Name: Bab3
Klik Kanan → Bab3 → New → Java Class
Latihan 1 UjiAritmatika.java
Analisa Program
class UjiAritmatika dimulai dari tanda kurung kurawal buka { pada baris 1 dan
diakhiri tanda kurung kurawal tutup pada baris ke-14 yang di dalamnya juga terdapat
metode utama yaitu public static void main(String[] args) yang dimulai
dengan tanda kurung kurawal { dari baris ke-2 sampai dengan kurung kurawal } pada
baris ke-13. Deklarasi variabel x, y, dan z sekaligus inisialisasi dilakukan pada baris ke-
40
3,ke-4, dan ke-5. System.out.println( ) adalah standar output untuk menampilkan
data ke monitor. Pada baris ke-6 adalah perintah untuk mencetak informasi di antara
tanda doublepute “Penjumlahan x + y = ”, sedangkan perintah (x*y) adalah operand
x dan operand y dijumlahkan melalui operator (+) sehingga menghasilkan bilangan 17.
Demikian seterusnya compiler akan menterjemahkan setiap baris sampai pada baris ke-
14, sehinggan menghasilkan tampilan output seperti berikut ini.
Keluaran Program
Penjumlahan x + y = 17
Pengurangan x - y = 3
Perkalian x * y = 70
Pembagian x / y = 1
Pembagian x / z = 2.857142857142857
Sisa bagi x /% z = 3
Latihan 2 UjiPrioritasOperator.java
Analisa Program
class UjiPrioritasOperator dimulai dari tanda kurung kurawal buka { pada baris
1 dan diakhiri tanda kurung kurawal tutup } pada baris ke-12 yang di dalamnya juga
terdapat metode utama yaitu public static void main(String[] args) yang
dimulai dengan tanda kurung kurawal { dari baris ke-2 sampai dengan kurung kurawal }
pada baris ke-11. System.out.println( ) pada baris ke-3 akan menampilkan data
di antara tanda doublepute “ Hasil ekspresi 3 + 5 /7 adalah ”, sedangkan
perintah +(3 + 5 / 7) melakukan pembagian terlebih dahulu yaitu 5/7 menghasilkan
0,714 kemudian dijumlahkan dengan 3, sehingga nilai keluaran terakhir adalah 3 karena
secara implisit semua data bertipe integer. Demikian seterusnya compiler akan
41
menterjemahkan setiap baris sampai pada baris ke-11, sehingga menghasilkan tampilan
output seperti berikut ini.
Keluaran Program
Hasil ekspresi 3 + 5 / 7 adalah 3
Hasil ekspresi 3 * 3 + 3 % 2 adalah 10
Hasil ekspresi 3+2/5 + -2 * 4 adalah -5
Hasil ekspresi 2*(1 + -(3/4)/2) * (2-6%3) adalah 4
Latihan 3 UjiIncrementDecrement.java
Analisa Program
class UjiIncrementDecrement dimulai dari tanda kurung kurawal buka { pada baris
1 dan diakhiri tanda kurung kurawal tutup } pada baris ke-17 yang di dalamnya juga
terdapat metode utama yaitu public static void main(String[] args) yang
dimulai dengan tanda kurung kurawal { dari baris ke-2 sampai dengan kurung kurawal }
pada baris ke-16. Baris ke-3 sampai ke-5 merupakan deklarasi dan inisialisasi variabel
i,a,b,c,d,k1,k2. Pada baris ke-6 proses pengerjaan ekspresi ++a + i * 2,yang
dikerjakan pertama proses operator increment ++a sehingga nilai a menjadi 4, proses
berikutnya adalah pengerjaan operator perkalian terhadap operand i dan operand 2
menghasilkan nilai 20, proses teakhir dari ekpresi ini adalah operator penjumlahan
terhadap operand 4 dan operand 20, dengan demikian hasilnya adalah 24 yang disimpan
42
pada variabel k1. Selajutnya pada baris ke-9 melalui perintah System.out.println()
akan menampilkan informasi Hasil ++a + i * 2 adalah 24.Demikian seterusnya
compiler akan menterjemahkan setiap baris sampai pada baris ke-15, sehingga
menghasilkan tampilan output seperti berikut ini.
Keluaran Program
Uji INCREMENT
Hasil ++a + i * 2 adalah 24
Hasil b++ + i * 2 adalah 23
Uji DECREMENT
Hasil --c + i * 2 adalah 22
Hasil d-- + i * 2 adalah 23
Latihan 4 UjiIncrementDecrement.java
Analisa Program
43
class UjiInput dimulai dari tanda kurung kurawal buka { pada baris 1 dan diakhiri
tanda kurung kurawal tutup } pada baris ke-30 yang di dalamnya juga terdapat metode
utama yaitu public static void main(String[] args) yang dimulai dengan
tanda kurung kurawal { dari baris ke-2 sampai dengan kurung kurawal } pada baris ke-
29.Baris ke-4 adalah sebuah perintah untuk mengunakan class Scanner dengan mebuat
sebuah objek yang bernama inp fungsinya adalah untuk membaca data dari keyboard
yang dimasukkan oleh pengguna. Baris ke-5 sampai ke-7 merupakan deklarasi variabel
b,d,f,i,l,s, dan str. Pada baris ke-8 melalui perintah System.out.println()
akan menampilkan informasi Masukkan data byte :123.Selanjutnya baris-9 adalah
proses pembacaan data dari keyboard melalui perintah inp.nextByte(), kemudian
data masukkannya disimpan dalam variabel b. Baris ke-10 sampai baris ke-21 adalah
proses pembacaan data dari keyboard dengan menggunakan metode yang disediakan
oleh class Scanner yang sesuai dengan tipe data yang digunakan. Selajutnya pada baris
ke-22 melalui perintah System.out.println() akan menampilkan informasi Yang
dimasukkan dalam d byte adalah 123. Demikian seterusnya compiler akan
menterjemahkan setiap baris sampai pada baris ke-28, sehingga menghasilkan tampilan
output seperti berikut ini.
Keluaran Program
Masukkan data byte : 123
Masukkan data double : 12345678,9
Masukkan data float : 1234567,89
Masukkan data integer : 123456789
Masukkan data long : 1234567890
Masukkan data short : 1234
Masukkan data String : Hisyam
Yang dimasukkan dalam byte adalah 123
Yang dimasukkan dalam double adalah 1.23456789E7
Yang dimasukkan dalam float adalah 1234567.9
Yang dimasukkan dalam integer adalah 123456789
Yang dimasukkan dalam long adalah 1234567890
Yang dimasukkan dalam short adalah 1234
Yang dimasukkan dalam String adalah Hisyam
44
D. Tugas
Buatlah program Java dengan menggunakan IDE NetBeans 8.2 dengan membuat
package baru pada projek Bab3, dengan cara:
Klik Kanan → Bab3 → New → Java Package → Package Name:tugas
45
Tugas 3( Program level 2 )
Ketika Anda mengatakan Anda berusia 18 tahun, Anda benar-benar mengatakan bahwa
Bumi telah mengitari Matahari 18 kali. Karena planet lain mengambil lebih sedikit atau
lebih hari dari Bumi untuk mengelilingi Matahari, usia Anda akan berbeda di planet lain.
Anda dapat menghitung berapa usia Anda di planet lain berdasarkan rumus,
di mana x adalah usia di Bumi, y adalah usia di planet Y, dan d adalah jumlah hari Bumi
yang dibutuhkan planet Y untuk mengelilingi Matahari. Buatlah program yang meminta
pengguna memasukkan usia Bumi dan cetak usianya di Merkurius, Venus, Jupiter, dan
Saturnus. Nilai untuk d tercantum dalam tabel berikut,
46
Misalnya, pesanan 52 tas akan dikirim dalam empat kotak: dua besar, satu sedang, dan
satu kecil. Aturan pengepakan adalah untuk mengisi kotak besar dan menengah
sepenuhnya; yaitu, kotak itu penuh sesak. Hanya kotak kecil yang bisa memiliki ruang
kosong. Misalnya, untuk mengirim 52 tas, Anda bisa menggunakan 3 kotak besar, tetapi
itu akan membuat kotak ketiga tidak sepenuhnya dikemas. Kembangkan program yang
menghitung total biaya pesanan.
E. Rangkuman
Variabel adalah lokasi memori untuk menyimpan nilai.Sebuah variabel memiliki nama dan
tipe data.Variabel harus dideklarasikan sebelum kami dapat menetapkan nilai untuk itu.Ada
enam tipe data numerik di Java: byte, short, int, long, float, dan double.Nama objek identik
dengan variabel yang isinya adalah alamat memori. Tipe data numerik disebut tipe data
primitif, dan objek disebut tipe data referensi.Aturan diutamakan menentukan urutan
mengevaluasi ekspresi aritemetik.Konstanta simbolik menyimpan nilai sama seperti variabel,
tetapi tidak dapat mengubah nilainya.
Operator yang digunakan dalam Java antara lain operator aritmatika, operator relasi,
operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas,
operator aritmatika umumnya digunakan untuk operasi matematika seperti pembagian,
perkalian, dan lain-lain. Operator Increment dan Decrement berfungsi untuk menambah dan
mengurangi nilai yang tersimpan, operasi relasi digunakan untuk membandingkan dua nilai
untuk menentukan keterhubungan diantara nilai-nilai tersebut. Operator logika memiliki
lebih dari satu operand boolean yang menghasilkan nilai boolean true dan false. Operator
kondisi bersifat ternary, jadi operator ini membawa tiga argumen yang membentuk suatu
ekspresi bersyarat. Operator Precedence berfungsi sebagai alat evaluasi terhadap operator
untuk mengajukan perintah dengan hasil yang tidak ambigu atau hasil yang jelas.
47
BAB III CLASS D AN O BJECT
A. Tujuan Pembelajaran
Setelah mengikuti pembelajaran ini peserta didik diharapkan:
Memahami konsep class, objek, class diagram, dan objek class diagram
Menganalisis data member atribut atau properti dan metode yang dibutuhkan sebuah
class
Menerapkan constructor dalam class
Menganalisis penggunaan tipe data reference dengan membuat objek bertipe array
Melakukan praktikum membuat class, membuat consructor, dan menciptakan objek
dengan bahasa pemrograman Java
B. Uraian Materi
1. Class dan Objek
Dua konsep yang paling penting dalam pemrograman berorientasi objek adalah class dan
objeknya. Dalam istilah terluas, objek adalah benda, baik yang nyata maupun tidak nyata,
yang dapat kita bayangkan. Perhatikan Gambar... merupakan ilustrasi class animal dengan
dua objek yaitu dog dan shape.
48
Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang
stukturnya mirip dengan obyek pada dunia nyata. Setiap obyek dibangun dari sekumpulan
data (atribut) yang disebut variabel untuk menjabarkan karakteristik khusus dari obyek, dan
juga terdiri dari sekumpulan method yang menjabarkan tingkah laku dari obyek. Bisa
dikatakan bahwa obyek adalah sebuah perangkat lunak yang berisi sekumpulan variable dan
method yg berhubungan.Variabel dan method dalam obyek Java secara formal diketahui
sebagai variabel instance dan method instance.
Class adalah sturktur dasar dari pemrograman berorientasi objek. Class terdiri dari dua tipe
dari anggota dimana disebut dengan field (attribut/properti) dan method. Field merupakan
tipe data yang didefinisikan oleh class, sementara metode merupakan operasi. Sebuah
obyek adalah sebuah instance (keturunan) dari class.
Perbedaan Class dan Object
Untuk dapat membedakan antara class dan obyek, mari kita mendiskusikan beberapa
contoh berikut ini. Kita memiliki sebuah class mobil dimana dapat digunakan untuk
medefinisikan beberapa obyek mobil. Pada tabel dibawah, mobil A dan mobil B adalah
obyek dari class mobil. Class memiliki field nomor, plat, warna, manufaktur dan
kecepatan yang diisi dengan nilai pada obyek mobil A dan mobil B. Mobil juga dapat
berakselerasi, berbelok dan melakukan rem.
Tabel 9 Class Mobil dan Objeknya
Ketika diinisialisi, setiap obyek mendapat satu set variabel yang baru. Bagaimanapun,
implementasi dari method dibagi diantara obyek pada class yang sama.Class
menyediakan keuntungan dari reusability. Programmer perangkat lunak dapat
menggunakan sebuah class beberapa kali untuk membuat banyak obyek.
49
2. Class Diagram
Class Diagram menggambarkan struktur sistem dari segi pendefinisian class-class yang akan
dibuat untuk membangun sistem. Class memiliki apa yang disebut atribut dan metode atau
operasi. Atribut merupakan variabel-variabel yang dimiliki oleh suatu class operasi atau
metode adalah fungsi-fungsi yang dimiliki oleh suatu Class.
Class Diagram class dibuat agar pembuat program atau programmer membuat class-class
sesuai rancangan di dalam diagram class agar antara dokumentasi perancangan dan
perangkat lunak sinkron.
Pembuatan class diagram melalui tool plugin easyUML yang terintegrasi denga IDE
NetBNeans 8.2, contoh class diagramnya disajikan dalam Gambar 32.
Atribut
- private
# protected
+ public
Constructor
Untuk membuat objek
Metode
void : tanpa nilai balik
int : nilai balik integer
String : nilai balik String
Simbol-simbol yang ada digunakan dalam class diagram disajikan dalam Tabel 11.
Tabel 10 Simbol-Simbol Dalam Class Diagram
Simbol Deskripsi
Antarmuka/infterface Sama dengan konsep interface dalam
pemrograman berorientasi objek
Asosiasi berarah / Directed association Relasi antar class dengan makna class yang
satu digunakan oleh class yang lain, asosiasi
biasanya juga disertai dengan multiplicity
50
Kebergantungan/dependency Relasi antar class dengan makna
kebergantungan antar class
3. Objek Diagram
Diagram objek menggambarkan struktur sistem dari segi penamaan objek dan jalannya
objek dalam sistem. Pada diagram objek harus dipastikan semua class yang sudah
didefinisikan pada diagram class harus dipakai objeknya, karena jika tidak, pendefinisian
class itu tidak dapat dipertanggungjawalbkan. Diagram objek juga berfungsi untuk
mendefinisikan contoh nilai atau isi dari atribut tiap class. Hubungan link pada diagram objek
merupakan hubungan memakai dan dipakai dimana dua buah objek akan dihubungkan oleh
link jika ada objek yang dipakai oleh objek lainnya.
<nama objek>
Simbol-simbol yang ada pada dobjek diagram disajikan dalam Tabel 12.
Tabel 11 Simbol-Simbol Objek Diagram
Simbol Deskripsi
Objek Objek dari class yang berjalan saat system
dijalankan
51
4. Pembuatan Instance Variabel Class
Sintaks untuk deklarasi atribut atau data anggota class adalah
<modifier> <tipe data> <nama>;
dimana <modifier> menunjukkan karakteristik yang berbeda dari data anggota, <tipe
data> merupakan tipe data primitif, dan <nama> data anggota. Berikut ini sintaks umum
sesuai dengan deklarasi aktual:
Dalam contoh ini, atribut memiliki satu modifier bernama private. Modifier ini disebut
modifier aksesibilitas, atau modifier visibilitas, dan membatasi siapa yang dapat memiliki
akses langsung ke anggota data ini. Jika modifikator bersifat private, maka hanya metode
yang didefinisikan di class dapat mengaksesnya secara langsung.
Modifier menentukan level pengaksesan sebuah method. Hal ini menentukan apakah sebuah
variabel anggota class biasa diakses oleh objek lain, objek anak, objek dalam satu package
atau tidak dapat diakses oleh suatu object sama sekali berikut adalah beberapa jenis level
akses dalam Tabel 13.
Tabel 12 Hak Akses Modifier Pada Variabel dan Metode
Jika kita telah menuliskan seluruh atribut yang akan diisikan pada class, selanjut nya kita
akan menuliskannya pada kode. Jika kita menginginkan bahwa atribut–atribut tersebut
52
adalah unik untuk setiap object (dalam hal ini untuk setiap siswa), maka kita harus
mendeklarasikannya sebagai instance variable.
private int noPlat;
protected String warna;
public String manufactur;
public double kecepatan;
5. Pembuatan Metode
Sebuah metode adalah bagian-bagian kode yang dapat dipanggil oleh class, badan program
atau method lainnya untuk menjalankan fungsi yang spesifik di dalam class. Secara
umum method dalam java adalah sebuah fungsi.
Berikut adalah karakteristik dari method :
Dapat mengembalikan / melaporkan nilai balikkan (return value) atau tidak (void)
Dapat diterima beberapa parameter yang dibutuhkan atau tidak ada parameter sama
sekali. Parameter bisa juga disebut sebagai argumen dari fungsi. Parameter berguna
sebagai nilai masukkan yang hendak diolah oleh fungsi.
Setelah method telah selesai dieksekusi, dia akan kembali pada method yang
memanggilnya.
Menggunakan method memiliki beberapa keuntungan, yaitu :
Method membuat program lebih mudah dibaca dan mudah untuk dipelihara / dimaintain.
Method membuat proses pengembangan dan perawatan ( maintenance ) menjadi lebih
cepat.
Method merupakan dasar untuk melakukan membuat software yang reusable. Method
memungkinkan obyek-obyek yang berbeda untuk berkomunikasi dan untuk
mendistribusikan beban kerja yang dipikul oleh program.
a. Metode Tanpa Nilai Balik ( Metode Void )
Sintaks untuk mendeklarasikan metode dalam class adalah
<modifiers> <return type> <method name> ( <parameters> )
{
<statements>
}
Diagram berikut menunjukkan sintaks umum dalam pembuatan sebuah metode
setNoPlat():
53
public void setNoPlat ( int np ) {
noPlat = np ;
}
Me-refer pada
Me-refer pada
instance variabel
parameter np
noPlat
Metode yang tidak mengembalikan nilai, seperti metode setNoPlat() ini, dinyatakan
sebagai metode void. Modifier aksesibilitas untuk metode setNoPlat() dinyatakan
sebagai publik. Ini berarti class lain dapat mengakses, atau memanggil, metode ini.
Adalah mungkin dan dapat bermanfaat untuk menyatakan suatu metode sebagai
private. Jika metode dinyatakan sebagai private, maka tidak dapat dipanggil dari dari
class yang lain. Itu hanya bisa dipanggil dari metode lain dari class yang sama.
return noPlat ;
}
Me-refer pada
instance variabel
noPlat
54
Metode getNoPlat() adalah metode dengan pengembalian nilai. Ketika metode ini
dipanggil, mengembalikan nilai ke pemanggil. Metode getNoPlat()mengembalikan
nilai int ke nilai instance variable noPlat tipe data kembalianya dinyatakan sebagai
int. Format pengembalian Metode dengan return value sebagai berikut,
return <ekspresi>;
Tipe data <ekspresi> harus kompatibel dengan tipe pengembalian yang dinyatakan
dari metode. Misalnya, jika jenis kembalinya int, maka tipe data dari nilai yang
dikembalikan harus kompatibel dengan tipe data integer (tipe data short, dan byte).
Metode yang mengembalikan informasi tentang suatu objek disebut sebagai metode
assesor. Metode getNoPlat() adalah assesor. Inversi dari metode assesor yang
mengatur properti dari suatu objek disebut sebagai mutator. Metode setNoPlat()
adalah sebuah mutator. Assesor dan mutator umumnya disebut metode “setergeter”.
c. Metode Statik
Sintaks untuk mendeklarasikan metode class adalah
<modifiers> <static> <return type> <method name> ( <parameters>
)
{
<statements>
}
Sebuah method static dapat diakses tanpa harus melakukan instantiasi terlebih dahulu.
Pemanggilan method static dilakukan dengan format :
< Nama class >.namaMetode();
6. Constructor
Constructor adalah suatu metode yang pertama kali dijalankan pada saat pembuatan suatu
objek. Constrctor mempunyai ciri-ciri sebagai berikut:
mempunyai nama yang sama dengan nama class,
tidak mempunyai return type (seperti void, int, double, dan lain-lain).
boleh mempunyai parameter biasanya digunakan untuk inisilisasi (menyiapkan) data
untuk class.
55
Bentuk secara umum sintak constructor sebagai berikut,
public <nama class > ( <parameters> ) {
<statements>;
}
<nama class> merupakan nama class dimana constructor ini berada. Diagram berikut
menunjukkan sintaks umum dalam prmbuatan constructor class Mobil:
public Mobil ( ) {
noPlat = 0 ;
Setiap class yang dibuat secara implisit, sudah disiapkan oleh Java sebuah default
constructor sebagai berikut,
public <nama class > () {
56
Gambar 37 adalah urutan diagram state-of-memory yang menggambarkan cara kerja ketika
membuat objek dengan menggunakan default constructor dan penggunaan metode
setNoPlat() dari class Mobil.
m1
Mobil m1;
Mobil m1; .
m1
m1 = new Mobil();
Mobil
noPlat=0
Mobil m1; .
m1
m1 = new Mobil();
Mobil
setNoPlat(12345);
noPlat =12345
57
<nama class>[] <nama objek> = new <constructor>[];
Contoh pembuatan objek array dengan tipe data reference dapat dilihat di bawah ini,
58
26 public static void main(String[] args) {
27 Mobil m1 = new Mobil();
28 m1.inputDataMobil();
29 m1.infoMobil();
30 }
31 }
Keluaran Program
------Data mobil ke-1------
Warna :Abu-Abu
Tahun :2014
---------------------------
------Data mobil ke-2------
Warna :Merah
Tahun :2017
---------------------------
No. WARNA
---------------------------
1 Abu-Abu
2 Merah
---------------------------
C. Praktikum
IDE Netbeans 8.2 digunakan untuk menulis kode program Java dan easyUML digunakan
untuk menggambar class diagram. Langkah pertama membuat project baru dengan cara:
File → New Project → Project Name: Bab4
Klik Kanan → Bab4 → New → Java Class
59
Nama File Lingkaran.java
1 public class Lingkaran {
2 final double PI = 3.14159;
3 double radius;
4 public void setRadius(double r) {
5 this.radius = r;
6 }
7 public double getRadius(){
8 return radius;
9 }
10 public double getLuas() {
11 double luas=0;
12 luas = 2 * PI * radius * radius;
13 return luas;
14 }
15 public double getKeliling() {
16 return 2 * PI * radius;
17 }
18 }
Nama File UjiLingkaran.java
1 public class UjiLingkaran {
2 public static void main(String[] args) {
3 double totalKeliling;
4 Lingkaran l1 = new Lingkaran();
5 Lingkaran l2 = new Lingkaran();
6 Lingkaran l3 = new Lingkaran();
7 l1.setRadius(10);
8 l2.setRadius(25);
60
9 l3.setRadius(125);
10 System.out.println("Luas lingkaran dengan Radius :”
+l1.getRadius()+ " adalah "+l1.getLuas());
11 System.out.println("Luas lingkaran dengan Radius:"
+l2.getRadius()+ " adalah "+l2.getLuas());
12 System.out.println("Luas lingkaran dengan Radius:"
+l3.getRadius()+ " adalah "+l3.getLuas());
13 totalKeliling =
(l1.getKeliling()+l2.getKeliling()+l3.getKeliling());
14 System.out.format("Total 3 keliling lingkaran :
%.3f%n",totalKeliling);
15 }
16 }
Analisa Program
Program memuat dua class.Yang pertama, classa UjiLingkaran sebagai class utama.
Satu-satunya tujuan class ini adalah untuk menguji class Lingkaran. Ketika program ini
dijalankan system runtime JAVA akan memanggil metode main() dalam class
UjiLingkaran. Class utama memuat metode main (baris 2) yang mencipatakan tiga
objek. Sama seperti menciptakan suatu array, operator new digunakan untuk
menciptakan suatu objek pada baris 4, 5 dan 6. Ketiga objek (yang direferensikan oleh
l1, l2, dan l3) memiliki data yang berbeda tetapi metode yang sama. Pemberian data
instan variabel radius melalui metode setRadius(10), setRadius(25), dan
setRadius(125) pada baris ke-7 sd 9. Luas lingkaran dhitung menggunaan metode
getLuas(). Data apat diakses melalui refrensi objek l3.getRadius(). Objek dapat
memanggil metodenya lewat refrensi objek menggunakan l1.getLuas(),l2.getLuas(),
dan l3.getLuas(). Pada baris ke-13 variabel totalKeliling melakukan penjumlahan
terhadap keliling ketiga lingkaran melalui tiga objek yaitu dengan cara l1.getKeliling() +
l2.getKeliling() + l3.getKeliling() . Pada baris ke-14 adalah salah satu cara untuk
menampilkan bilangan riil dengan tiga angka dibelakang koma sekaligus dengan
melakukan pembulatan ” Total 3 keliling lingkaran : 1005.309”
61
Latihan 2 DEFINISI CLASS DAN OBJEK
Deskripsi Pembuatan instan variabel, metode mutator,
metode asessor, constructor, dan pembuatan
objek dari class Mobil, sedangkan class
RegistrasiMobil berisi metode main() yang
digunakan membuat objek dan implemetasi alur
program.
Class Diagram
62
14 public void setWarna(String w) {
15 warna = w;
16 }
17 public String getWarna() {
18 return warna;
19 }
20 public void setManufaktur(String m) {
21 manufaktur = m;
22 }
23 public String getManufaktur() {
24 return manufaktur;
25 }
26 public void setTahun(int t) {
27 tahun = t;
28 }
29 public int getTahun() {
30 return tahun;
31 }
32 }
Nama File RegistrasiMobil.java
1 public class RegistrasiMobil {
2 public static void main(String args[]) {
3 Mobil m1 = new Mobil();
4 m1.setNoPlat(12345);
5 m1.setWarna("Abu-Abu Metalik");
6 m1.setManufaktur("SUZUKI");
7 m1.setTahun(2015);
8 System.out.println("----------DATA MOBIL----------");
9 System.out.println("No Plat :"+m1.getNoPlat());
10 System.out.println("Warna Mobil:"+m1.getWarna());
11 System.out.println("Mrk Mobil :"+m1.getManufaktur());
12 System.out.println("Tahun :"+m1.getTahun());
13 System.out.println("------------------------------");
14 }
15 }
Analisa Program
class Mobil mempunyai data atau atribut yang dideklarasikan mulai baris ke-2 sampai
dengan baris ke-5. Semua atributnya mempunyai modifier private sehingga hanya bisa
diakses oleh class Mobil saja. Default constructor dideklarasikan dari baris ke-6 sampai
baris ke-7. Metode mutator dan assesor dideklarasikan mulai dari baris ke-8 sampai baris
63
ke-31. Sebagai contoh metode mutator adalah pada baris ke-8 sd. Baris ke-10 public
void setNoPlat(int no)dan metode assesor pada baris ke-11 sd. baris ke-13 yaitu
public int getNoPlat().
class RegistrasiMobil dimulai dari baris ke-1 sampai dengan baris ke-15, yang di
dalamnya juga terdapat metode utama yaitu public static void main(String[]
args) sehingga compilier menjalankan aplikasi atau kode program dimulai dari baris ke-
3 yaitu pembuatan sebuah objek dari class Mobil yang bernama m1. Selanjutnya melalui
objek m1, metode-metode pada class Mobil dapat diakses. Misalnya, pada baris ke-4
objek m1 memanggil metode setNoPlat(12345) sehingga data 12345 akan dikirim ke
instan variabel noPlat pada class Mobil. Demikian seterusnya objek m1 bekerja dengan
cara yang sama untuk metode mutator yang tersedia. Pada baris ke-9 melalui standar
output objek m1 metode getNoPlat() dapat menampilkan informasi No Plat
:12345.Demikian seterusnya compiler akan menterjemahkan setiap baris sampai pada
baris ke-15, sehinggan menghasilkan tampilan output seperti berikut ini.
64
Nama File Mobil.java
1 import java.util.Scanner;
2 public class Mobil {
3 public int noPlat;
4 public String warna;
5 public String manufaktur;
6 public int tahun;
7 Scanner inp = new Scanner(System.in);
8 int n;
9 Mobil[] mbl;
10 Pelanggan pl = new Pelanggan("Eljava", 12345);
11 public void inputDataMobil() {
12 System.out.print("Masukan Jumlah Mobil : ");
13 n = inp.nextInt();
14 mbl = new Mobil[n];
15 for (int i = 0; i < mbl.length; i++) {
16 mbl[i] = new Mobil();
17 System.out.println("----Data mobil ke-" + (i + 1)
+ "-----");
18 System.out.print("Nomor Plat\t:");
19 mbl[i].noPlat = inp.nextInt();
20 System.out.print("Warna\t\t:");
21 mbl[i].warna = inp.next();
22 System.out.print("Manufaktur\t:");
23 mbl[i].manufaktur = inp.next();
24 System.out.print("Tahun\t\t:");
65
25 mbl[i].tahun = inp.nextInt();
26 System.out.println("--------------------------");
27 }
28 }
29 public void infoMobil() {
30 for (int i = 0; i < n; i++) {
31 System.out.printf("%s\t\t%s\t%s\t\t%s\n",
32 mbl[i].noPlat, mbl[i].warna,
33 mbl[i].manufaktur, mbl[i].tahun);
34 }
35 }
36 public void cekMobil() {
37 for (int i = 0; i < n; i++) {
38 if (mbl[i].noPlat == pl.getKode()) {
39 pl.infoPelanggan();
40 System.out.printf("adalah pemilik Mobil %s
Warna %s\n", mbl[i].manufaktur
,mbl[i].warna);
41 }
42 }
43 }
Nama File Pelanggan.java
1 public class Pelanggan {
2 public String nama;
3 public int kode;
4 public Pelanggan(String nm , int kd){
5 this.nama = nm;
6 this.kode = kd;
7 }
8 public void infoPelanggan(){
9 System.out.printf("Nama:%s dengan Kode Pelangan :
%s\n",nama,kode);
10 }
11 }
Nama File RegistrasiMobil.java
1 public class RegistrasiMobil {
2 public static void main(String args[]) {
3 Mobil m1 = new Mobil();
4 m1.inputDataMobil();
5 System.out.println("--------DATA MOBIL------------");
6 System.out.printf("%s\t\t%s\t%s\t%s\t\n", "No.PLAT",
"WARNA", "PABRIKAN", "TAHUN");
66
7 System.out.println("------------------------------");
8 m1.infoMobil();
9 System.out.println(“------------------------------");
10 System.out.println("Proses Identifikasi....");
11 m1.cekMobil();
12 System.out.println("--------Terima Kasih----------");
13 }
14 }
Analisa Program
class Pelanggan mempunyai data atau atribut yang dideklarasikan mulai baris ke-2
sampai dengan baris ke-3. Semua atributnya mempunyai modifier private sehingga hanya
bisa diakses oleh class Pelanggan saja. Constructor Pelanggan mempunyai dua parameter
nama dan kode dan sebuah metode infoPelanggan digunakan untuk menampilkan data
nama dan kode yang dikirim melalui constructor Pelanggan().
Pada class Mobil memerlukan Class Scanner yang digunakan untuk membaca
data dari keyboard sehinggan diperlukan import java.util.Scanner.Class
Mobil mempunyai data atau atribut yang dideklarasikan mulai baris ke-2 sampai dengan
baris ke-5. Semua atributnya mempunyai modifier private sehingga hanya bisa diakses
oleh class Mobil saja. Pembuatan sebuah objek pl pada baris ke-10 Pelanggan pl =
new Pelanggan("Eljava", 12345),digunakan untuk melakukan verifikasi data
pada metode cekMobil() pada baris ke-36 sampai baris 42.
class RegistrasiMobil dimulai dari baris ke-1 sampai dengan baris ke-14, yang di
dalamnya juga terdapat metode utama yaitu public static void main(String[]
args) sehingga compilier menjalankan aplikasi atau kode program dimulai dari baris ke-
3 yaitu pembuatan sebuah objek dari class Mobil yang bernama m1. Selanjutnya melalui
objek m1, metode-metode pada class Mobil dapat diakses. Misalnya, pada baris ke-4
objek m1 memanggil metode inputDataMobil() yang memerlukan interaksi dengan
pengguna melalui keyboard. Demikian seterusnya objek m1 memanggil metode
infoMobil() kemudian memanggil metode cekMobil().Demikian seterusnya compiler akan
menterjemahkan setiap baris sampai pada baris ke-14, sehinggan menghasilkan tampilan
output seperti berikut ini.
67
------Data mobil ke-1------
Nomor Plat :12345
Warna :Abu-Abu
Manufaktur :Suzuki
Tahun :2014
---------------------------
------Data mobil ke-2------
Nomor Plat :67891
Warna :Hitam
Manufaktur :Toyota
Tahun :2017
---------------------------
------------------DATA MOBIL-------------------
No.PLAT WARNA PABRIKAN TAHUN
-----------------------------------------------
12345 Abu-Abu Suzuki 2014
67891 Hitam Toyota 2017
-----------------------------------------------
Proses Identifikasi....
Nama : Eljava dengan Kode Pelangan : 12345
adalah pemilik Mobil Suzuki Warna Abu-Abu
-----------------Terima Kasih-----------------
D. Tugas
Buatlah program Java dengan menggunakan IDE NetBeans 8.2 dengan membuat
package baru pada projek Bab4, dengan cara:
Klik Kanan → Bab4 → New → Java Package → Package Name:tugas
Tugas Projek1
Desainlah suatu class bernama CPU, Monitor, dan Printer yang memuat :
Class CPU mempunyai data String merk dan int kecepatan dan gunakan
metode mutator dan asesor, selain itu juga mempunyai metode dispSpecCPU()
68
yang bertipe void untuk menampilkan data membernya. Gunakan constructor
CPU dengan dua parameter untuk membuat sebuah objek class CPU.
Class Monitor mempunyai data String merk dan int resolusi dan gunakan
metode mutator dan asesor, selain itu juga mempunyai metode
dispSpecMonitor() yang bertipe void untuk menampilkan data membernya.
Gunakan constructor Monitor dengan dua parameter untuk membuat sebuah
objek class Monitor.
Class Printer mempunyai data String merk dan String tipePrinter dan
gunakan metode mutator dan asesor, selain itu juga mempunyai metode
dispSpecPrinter() yang bertipe void untuk menampilkan data membernya.
Gunakan constructor Printer dengan dua parameter untuk membuat sebuah
objek class Printer.
Suatu bidang data privat double bernama radius yang menentukan radius kipas
(nilai default 5)
Buatlah suatu program uji yang menciptakan satu tiga objek dari masing-masing class
CPU, Monitor, dan Printer. Tampilkan ketiga objek dengan memanggil metode
dispSpecCPU(), dispSpecMonitor(), dan dispSpecPrinter().
Class Diagram
69
Nama File CPU.java
Monitor.java
Printer.java
Komputer.java
E. Rangkuman
Class adalah sturktur dasar dari pemrograman berorientasi objek. Class terdiri dari dua tipe
dari anggota dimana disebut dengan field (attribut/properti) dan method. Field merupakan
tipe data yang didefinisikan oleh class, sementara metode merupakan operasi.
Objek merupakan suatu entitas yang mampu menyimpan informasi (status) dan mempunvai
operasi (kelakuan) yang dapat diterapkan atau dapat berpengaruh pada status objeknya.
Objek mempunyai siklus hidup yaitu diciptakan, dimanipulasi, dan dihancurkan.
Class Diagram class dibuat agar pembuat program atau programmer membuat class-class
sesuai rancangan di dalam diagram class agar antara dokumentasi perancangan dan
perangkat lunak sinkron.
Sebuah metode adalah bagian-bagian kode yang dapat dipanggil oleh class, badan program
atau method lainnya untuk menjalankan fungsi yang spesifik di dalam class.
Constructor adalah suatu metode yang pertama kali dijalankan pada saat pembuatan suatu
objek. Constrctor mempunyai ciri-ciri sebagai berikut: mempunyai nama yang sama dengan
nama class,tidak mempunyai return type (seperti void, int, double, dan lain-lain).boleh
mempunyai parameter biasanya digunakan untuk inisilisasi (menyiapkan) data untuk class.
Operator new digunakan untuk melakukan instansiasi class, selain itu operator ini juga
mengalokasikan memori untuk objek yang telah dibuat dan mengembalikan alamat dari
sebuah memori. Kelebihan pemrograman berorientasi objek adalah dapat mendefinisikan
tipe data baru yang merupakan objek dari class tertentu
Variabel referensi digunakan dengan menggunakan constructor dari class, dan digunakan
untuk mengakses objek. Variabel ini dideklarasikan untuk menjadi tipe spesifik yang tidak
bisa diubah
70
PENULIS
71
DAFTAR PUSTAKA
72
73