Anda di halaman 1dari 74

Pemrograman Berorientasi Objek

Nama Kelompok :
Ni Made Putri Sasmadiyani

1208605047

Ni Made Krista Kurnia Dewi

1208605049

Ida Bagus Wahyu Ari Palguna

1208605077

PROGRAM STUDI TEKNIK INFORMATIKA


JURUSAN ILMU KOMPUTER
FAKULTAS MATEMATIKA DAN ILMU PENGETAHUAN ALAM
UNIVERSITAS UDAYANA
2014

KATA PENGANTAR

Puji Syukur kami panjatkan kehadirat Tuhan Yang Maha Esa yang telah memberikan
rahmat serta karunia-Nya kepada kelompok kami sehingga kelompok
menyelesaikan

kami berhasil

Laporan Tugas Pemrograman Berorientasi Objek ini dengan tepat pada

waktunya.
Kami menyadari bahwa Laporan ini masih jauh dari sempurna, oleh karena itu kritik dan
saran dari semua pihak yang bersifat membangun selalu kami harapkan demi kesempurnaan
Laporan ini.Akhir kata kami ucapkan terima kasih keada semua pihak yang telah berperan serta
dalam penyusunan laporan ini.

Denpasar, Desember

2014

DAFTAR ISI

KATA PENGANTAR.................................................................................................................2
DAFTAR ISI ..............................................................................................................................3
BAB I PENDAHULUAN ...........................................................................................................5
1.1

Latar Belakang ..............................................................................................................5

1.2

Rumusan Masalah .........................................................................................................6

1.3

Tujuan ..........................................................................................................................6

1.4

Manfaat.........................................................................................................................6

1.5

Batasan Masalah ...........................................................................................................6

1.6

Sistematika Penulisan....................................................................................................6

BAB II TINJAUAN PUSTAKA .................................................................................................7


2.1

Perpustakaan .................................................................................................................7

2.2

Sistem Informasi ...........................................................................................................7

2.3

Java...............................................................................................................................8

2.3.1

Pengertian Java ......................................................................................................8

2.3.2

Java API ................................................................................................................9

2.3.3

Java Machine .........................................................................................................9

2.3.4

Object Oriented Programming ........................................................................... 11

2.3.5

Identifier .............................................................................................................. 21

2.3.7

Reserved Words / Keywords ................................................................................ 22

2.3.8

Variabel ............................................................................................................... 22

2.3.9

Tipe Data ............................................................................................................. 22

2.3.10 Operator dalam Java ............................................................................................ 23


2.3.11 Statemen Kontrol ................................................................................................. 26
2.3.12 Array ................................................................................................................... 31
2.3.13 Konversi Tipe Data .............................................................................................. 33
2.3.14 Melewatkan argument pada Java .......................................................................... 34
2.3.15 Execption Handling ............................................................................................. 35
2.3.16 Database Connection............................................................................................ 36
3

2.5

SQLYog ..................................................................................................................... 37

2.6

Xamp .......................................................................................................................... 38

BAB III ..................................................................................................................................... 39


PEMBAHASAN ....................................................................................................................... 39
3.1

Deskripsi Umum Program ........................................................................................... 39

3.2

Entity Relationship Diagram ....................................................................................... 39

3.3

Penjelasan Source Code .............................................................................................. 40

3.4

Tampilan Program ...................................................................................................... 61

BAB I
PENDAHULUAN

1.1 Latar Belakang


Perpustakaan merupakan sarana penunjang pendidikan, dimana setiap orang mencari data
dan mengumpukan data di perpustakaan, untuk kemudian diolah dan disebarkan. Perpustakaan
sebagaimana yang ada dan berkembang sekarang telah dipergunakan sebagai salah satu pusat
informasi, sumber ilmu pengetahuan, penelitian, rekreasi, pelestarian khasanah budaya bangsa,
serta memberikan berbagai layanan jasa lainnya (Lasa Hs : 1998). Hingga saat ini perpustakaan
merupakan salah satu tempat yang masih digunakan utnuk mencari informasi yang dibutuhkan.
Walaupun demikian, minat baca dan jumlah kunjungan perpustakan di Indonesia masih rendah,
hal ini perlu dikaji ulang untuk meningkatkan kualitas dan kuantitas dari perpustakaan itu
sendiri, salah satunya dengan menerapkan teknologi.
Seiring dengan perkembangan zaman, teknologi mulai marak digunakan untuk membantu
kinerja dari suatu bidang, baik itu bidang pendidikan, kesehatan, ekonomi, dan sebagainya. Salah
satu penerapan teknologi informasi adalah dengan munculnya system informasi dan software
yang dapat membantu kinerja manusia untuk menyelesaikan pekerjaan,tentunya dengan hasil
yang lebih optimal baik dari segi kualitas maupun kuantitas.
Dengan adanya penerapan teknologi pelayanan dari perpustakaan diharapakan akan lebih
optimal. Selain itu perpustakaan juga akan lebih teorganisir dengan baik dan sitematis , hal ini
secara tidak langsung akan memberikan kemudahan bagi proses pelayanan. Saat ini kekurangan
sebuah perpustakaan beraneka ragam salah satunya pelayanan informasi yang kurang memadai
dan masih tersimpannya data dalam bentuk manual yang memiliki resiko mudah rusak atau
hilang, dan terlalu banyak menghabiskan waktu untuk mengorganisir suatu data.
Diaharapkan dengan adanya sistem informasi perpustakaan ini, kekurangan yang terdapat
pada pelayanan perpustakaan dapat bisa diatasi dengan adanya sebuah sistem informasi, salah
satu kemudahan bagi pengunjung yang didapatkan dari system informasi perputakaan adalah
dalam mencari buku yang tersedia akan lebih mudah.
5

1.2 Rumusan Masalah


Bagaimana cara membuat sebuah aplikasi sederhana yang dapat mengimplementasikan
administrasi dari perpustakaan ?
1.3 Tujuan
Untuk mengetahui cara membuat sebuah aplikasi
mengimplementasikan administrasi dari perpustakaan.

sederhana

yang

dapat

1.4 Manfaat
Dapat mengetahui cara membuat sebuah aplikasi
mengimplementasikan administrasi dari perpustakaan.

sederhana

yang

dapat

1.5 Batasan Masalah


Adapun dalam laporan ini akan dibahas mengenai cara membuat aplikasi sederhana yang
dapat mengimplementasikan administrasi dari perpustakaan khususnya untuk melihat
informasi buku dan proses peminjaman buku oleh pengunjung.
1.6 Sistematika Penulisan
BAB I. PENDAHULUAN
Merupakan bab pendahuluan yang meliputi : latar belakang masalah, rumusan masalah,
batasan masalah, tujuan dan manfaat, dan sistematika penulisan.
BAB II. LANDASAN TEORI
Merupakan berisi landasan teori-teori yang digunakan pada sistem yang akan dibangun yaitu
sistem informasi perpustakaan yang digunakan sebgai acuan untuk membahas sistem
informasi tersebut.
BAB III. PEMBAHASAN
Pada bab ini akan dibahas tentang pembahasan dari sistem yang penulis bangun, mulai dari
segi konsep dan cara menggunakan sistem tersebut.
BAB IV. PENUTUP
Pada bagian ini akan disimpulkan tentang seluruh pembahasan dari sistem tersebut serta
diberikan saran-saran untuk pengembangan sistem berikutnya.
6

BAB II
TINJAUAN PUSTAKA
2.1 Perpustakaan
Menurut Kamus Besar Bahasa Indonesia , Perpustakaan berarti tempat atau gedung yang
disediakan untuk pemeliharaan dan penggunaan koleksi buku. Secara umum , Perpustakaan
adalah tempat atau sarana dalam peminjaman buku. Perpustakaan dapat juga diartikan sebagai
kumpulan informasi yang bersifat ilmu pengetahuan, hiburan, rekreasi, dan ibadah yang
merupakan kebutuhan hakiki manusia bahkan sebagai tempat untuk mengakses informan.Peran
perpustakaan disini merupakan upaya untuk memelihara dan meningkattkan efisiensi dan
efektifitas proses belajar-mengajar. Perpustakaan sebagaimana yang ada dan berkembang sekarang
telah dipergunakan sebagai salah satu pusat informasi, sumber ilmu pengetahuan, penelitian, rekreasi,
pelestarian khasanah budaya bangsa, serta memberikan berbagai layanan jasa lainnya (Lasa
Hs:1998). Selain itu menurut Sulistyo-Basuki (1991: 3) perpustakaan adalah sebuah ruangan, bagian
sebuah gedung, ataupun gedung itu sendiri yang digunakan untuk menyimpan buku dan terbitan
lainnya menurut tata susunan tertentu untuk digunakan pembaca, bukan untuk dijual.

Perpustakaan yang terorganisir secara baik dan sisitematis, secara langsung atau pun
tidak langsung dapat memberikan kemudahan bagi proses belajar mengajar. Hal ini, terkait
dengan kemajuan bidang pendidikan dan dengan adanya perbaikan metode belajar-mengajar
yang dirasakan tidak bisa dipisahkan dari masalah penyediaan fasilitas dan sarana pendidikan.
2.2 Sistem Informasi
Secara umum system informasi dapat didefinisikan sebagai suatu system di dalam suatu
organisasi yang merupakan kombinasi dari orang orang, fasilitas, teknologi, media, prosedur
prosedur dan pengendalian yang ditujukan untuk mendapatkan jalur komunikasi penting,
memproses tipe transaksi rutin tertentu, member sinyal kepada manajemen dan yang lainnya
terhadap kejadian kejadian internal dan eksternal yang penting dan menyediakan suatu dasar
informasi untuk pengambilan keputusan.
Menurut Mc Leod, Sistem Informasi merupakan system yang mempunyai kemampuan
untuk mengumpulkan informasi dari semua sumber dan menggunakan berbagai media untuk
7

menampilkan informasi. Sedangkan menurut Tata Sutabri, S.Kom, MM, Sistem Informasi adalah
suatu system di dalam suatu organisasi yang mempertemukan kebutuhan pengolahan transaksi
harian yang mendukung fungsi organisasi yang bersifat manajerial dalam kegiatan strategi dari
suatu organisasi untuk dapat menyediakan kepada pihak luar tertentu dengan laporan laporan
yang diperlukan.
2.3 Java
2.3.1 Pengertian Java
Java adalah salah satu bahasa pemrograman berorientasi objek (OOP - Objek Oriented
Programming) dan dapat dijalankan pada berbagai platform system operasi. Perkembangan
Java tidak hanya terfokus pada satu system operasi, tetapi juga dikembangkan untuk
berbagai system operasi dan bersifat open source. Java diperkenalkan oleh Sun
Microsystems pada pertengahan tahun 1990. Menurut definisi dari Sun, Java adalah nama
untuk sekumpulan teknologi untuk
membuat dan menjalankan perangkat luinak pada komputer standalone ataupun pada
lingkungan jaringan. Kita lebih menyukai menyebut Java sebagai sebuah teknologi
dibanding hanya sebuah bahasa pemrograman, karena Java lebih lengkap dibanding sebuah
bahasa pemrograman konvensional. Teknologi Java memiliki tiga komponen penting, yaitu:

Programming-language specification

Application-programming interface

Virtual-machine specification

Objek Java dispesifikasi dengan membentuk kelas. Untuk masing-masing kelas Java,
kompiler Java memproduksi sebuah file keluaran arsitektur netral yang akan jalan pada
berbagai implementasi dari Java Virtual Machine (JVM). Awalnya Java sangat digemari
oleh komunitas pemrograman internet, karena Java mendukung untuk applets , dimana
program dengan akses sumber daya terbatas yang jalan dalam sebuah web browser. Java
juga menyediakan dukungan level tinggi untuk networking dan objek terdistribusi. Java jug
dianggap sebagai sebuah bahasa yang aman. Tampilan ini pada khususnya penting
menganggap bahwa sebuah program Java boleh mengeksekusi silang sebuah jaringan
terdistribusi.

Sehingga bahasa Java saat ini termasuk bahasa pemrograman yang relatif mudah untuk
dipelajari karena banyaknya contoh dan konsep yang beredar luas, baik berupa buku
maupun di internet. Tetapi program yang dibuat dalam bahasa Java juga relatif lebih banyak
membutuhkan waktu saat di eksekusi (lebih lama) dikarenakan untuk menjalankan
programnya dibutuhkan JVM (perantara antar program dan sistem operasi).
2.3.2 Java API
Java API terdiri dari tiga bagian utama:

Java Standard Edition (SE)


Sebuah standar API untuk merancang aplikasi desktop dan applets dengan bahasa
dasar yang mendukung grafis, M/K, keamanan, konektivitas basis data dan
jaringan.
Java Enterprose Edition (EE)
Sebuah inisiatif API untuk merancang aplikasi server dengan mendukung untuk
basis data.
Java Macro Edition (ME)
Sebuah API untuk merancang aplikasi yang jalan pada alat kecil seperti telepon
genggam.

2.3.3 Java Machine


Java Virtual Machine (JVM) adalah sebuah spesifikasi untuk sebuah komputer abstrak.
JVM terdiri dari sebuah kelas pemanggil dan sebuah interpreter Java yang mengeksekusi
kode arsitektur netral. Kelas pemanggil memanggil file .class dari kedua program Java dan
Java API untuk dieksekusi oleh interpreter Java. Interpreter Java mungkin sebuah perangkat
lunak interpreter yang menterjemahkan satu kode byte pada satu waktu, atau mungkin
sebuah just-intime (JIT) kompiler yang menurunkan bytecode arsitektur netral kedalam
bahasa mesin untuk host computer . Berikut adalah bagan tahap proses eksekusi Java:

10

2.3.4 Object Oriented Programming


Pemrograman Java berotientasi pada objek (object oriented). Tujuan utama dari metode ini
adalah meningkatkan produktivitas pemrogram dengan meningkatkan ekstensibilitas dan
kemampuan penggunaan kembali perangkat lunak, serta untuk mengontrol biaya dan
kompleksitas perawatan perangkat lunak, dalam hal ini adalah maintenance kode-kode
dalam program. Pendekatan object-oriented melihat suatu system sebagai suatu kumpulan
dari objek-objek.
a. Objek
Menurut Grady Booch, obyek memiliki karakteristik sebagai berikut:

State, state dari suatu obyek diindikasikan dengan suatu kumpulan atribut dan nilai
dari suatu atribut

Behavior, mengacu pada perubahan pada atribut setelah jangka waktu tertentu.
Graady Booch mendefinisikan behavior sebagai how an object acts and reacts, in
term of it state changes and message passing. Contoh sederhana adalah objek
manusia. Manusia mempunyai atribut: tangan, kaki, mata, hidung. Behaviour
manusia adalah berlari, berjalan, makan, minum, dsb. Pada perangkat lunak, objek
menyimpan atribut-atributnya dalam variabel, dan menyimpan informasi behaviour
dalam method atau fungsi/prosedur.

Uniqe indentitiy
Identitas yang dapat membedakan suatu obyek dengan yang lainnya, dan tidak
pernah berubah.

b. Class
Kelas adalah kumpulan obyek yang memiliki atribut dan behavior yang sama.
Kelas dipakai untuk mendefinisikan atribut-atribut dan behaviour sesuatu secara umum,
dan objek adalah instant (perwujudan) dari class.Contohnya, elang, merpati dan gagak,
semuanya memiliki sifat yang hampir sama, memiliki tulang berongga, dapat terbang,
berparuh dan bertelur, sehingga mereka dapat dikelompokkan dalam kelas yang sama
yaitu

kelas

burung.

Obyek

dapat

saling

berkomunikasi

dengan

saling

mengirimkan/menerima pesan. Kode yang digunakan untuk mendeklarasikan suatu kelas


dalam Java :

11

Perhatikan pada kode Java di atas, informasi atribut yang berupa variabel (nama, nim,
umur, jur) dibungkus dalam satu kemasan class, berikut method-method (fungsifungsi/prosedur) untuk mengakses data-data tersebut atau untuk menampilkannya
(getName(), getNim()). Inilah perbedaan mendasar dengan struct yang dipakai pada
bahasa C. Pada bahasa C, pembungkusan hanya pada variabel-variabel, tidak termasuk
fungsi-fungsi untuk mengaksesnya. Ilustrasi di bawah ini akan memberikan pemahaman
yang lebih baik mengenai pemodelan objek.

12

c. Atribut
Atribut dari sebuah kelas adalah variabel global yang dimiliki sebuah kelas, Atribut dapat
memiliki hak akses private, public maupun protected. Sebuah atribut yang dinyatakan
sebagai private hanya dapat diakses secara langsung oleh kelas yang membungkusnya,
sedangkan kelas lainnya tidak dapat mengakses atribut ini secara langsung. Sebuah atribut
yang dinyatakan sebagai public dapat diakses secara langsung oleh kelas lain di luar kelas
yang membungkusnya. Sebuah atribut yang dinyatakan sebagai protected tidak dapat
diakses
secara langsung oleh kelas lain di luar kelas yang membungkusnya, kecuali kelas yang
mengaksesnya adalah kelas turunan dari kelas yang membungkusnya. Contoh penggunaan
atribut-atribut tersebut ada pada kelas di bawah ini:
class Elemen
{
private Elemen next1;
public Elemen next2;
protected Elemen next3;
Elemen()
{}
}
Jika kelas lain mempunyai objek dari kelas Elemen, dengan dilakukan pembuatan objek
sbb:
Elemen e = new Elemen()
Maka:

13

Atribut next1, tidak dapat diakses melalui e.next1 karena atribut yang hak aksesnya
private hanya dapat diakses oleh kelas yang membungkusnya, jadi pengaksesannya
dapat dilakukan dengan membuat method pada keals Elemen yang akan
menegmbalikan nilai atribut next1 tersebut. Contoh:
{
return next1;
}
Kelas lain yang akan mengakses atribut next1 pada kelas Elemen harus memanggil
method getNext1().Izin akses private ini ditujukan untuk melindungi atribut atributnya agar tidak dapat diakses oleh kelas lain

Atribut next2, dapat diakses kelas lain melalui e.next2 karena bersifat public yang
memungkinkan kelas lain untuk mengakses secara langsung terhadap kelas
tersebut. Jika sebuah atribut tidak ditulis izin aksesnya, maka interpreter Java akan
menganggap
atribut tersebut memiliki izin akses public.

Atribut next3, dapat diakses secara langsung oleh kelas lain yang merupakan
turunan kelas Elemen. Izin akses protected ini dimaksudkan untuk melindungi
atribut agar tidak diakses secara langsung oleh sembarang kelas lain, kecuali oleh
kelas turunannya.

d. Metode
Metode pada sebuah kelas hampir sama dengan fungsi atau prosedur pada
pemrograman prosedural. Pada sebuah metode di dalam sebuah kelas juga memiliki izin
akses seperti halnya atribut pada kelas, izin akses itu antara lain private, public dan
protected yang memiliki arti sama pada izin akses atribut yang telah dibahas sebelumnya.
Sebuah kelas boleh memiliki lebih dari satu metode dengan nama yang sama asalkan
memiliki parameter masukan yang berbeda sehingga kompiler atau interpreter dapat
mengenali metode mana yang dipanggil. Hal ini dinamakan overloading.Di dalam sebuah
kelas, terdapat juga yang disebut sebagai metode atau atribut statis yang memiliki kata
kunci static. Maksud dari statis di sini adalah metode yang dapat diakses secara berbagi
dengan semua objek lain tanpa harus membuat objek yang memiliki metode statis tadi
14

(tanpa proses new), tapi sebuah metode statis mempunyai keterbatasan yaitu hanya dapat
mengakses atribut atau metode lain di dalam kelas yang membungkusnya yang juga
bersifat statis. Metode statis biasanya diimplementasikan untuk metode main.
e. Konstruktor
Sebuah kelas harus memiliki sebuah metode yang disebut sebagai konstruktor.
nama sebuah konstruktor harus sama dengan nama dari sebuah kelas, misalkan kelas
Elemen maka konstruktornya adalah Elemen(). Sebuah konstruktor juga dapat menerima
sebuah masukan seperti halnya prosedur pada pemrograman prosedural. Fungsi dari
sebuah konstruktor adalah: mengalokasikan sebuah objek saat program dieksekusi,
memberikan nilai awal sebagai inisialisasi dari semua atribut yang perlu diinisialisasi dan
mengerjakan prosesproses yang diperlukan saat sebuah objek dibuat.
Namun pada kenyataannya sebuah konstruktor dapat tidak berisi apa-apa, hal ini jika
memang tidak diperlukan adanya inisialisasi atau proses yang dikerjakan ketika sebuah
objek dibuat. Konstruktor tersebut disebut sebagai konstruktor default. Konstruktor harus
bersifat public karena sebuah konstruktor akan diakses oleh kelas lain untuk membuat
objek suatu kelas. Sebuah kelas dapat memiliki konstruktor lebih dari satu. Pada saat
eksekusi program, kompiler atau interpreter akan mencari konstruktor mana yang sesuai
dengan konstruktor yang dipanggil, hal ini juga merupakan overloading .
f. Inheritance
Inheritance adalah pewarisan atribut-atribut dan method-method sebuah kelas (class)
kepada kelas lain yang diturunkan atasnya. inheritance memungkinkan kita untuk
menggunakan kembali suatu bagian kode ynag telah ditulis. Untuk menggambarkan
mekanisme inheritance dapat digunakan contoh sebagai berikut. Suatu kelas mahluk hidup
dapat memilki sub class seperti hewan dan tumbuhan Dari kelas Mahasiswa, dapat
didefinisikan kelas-kelas baru misalnya Mahasiswa Ekstensi, Mahasiswa Reguler,
Mahasiswa Asing. Kelas-kelas baru tersebut akan mewarisi semua atribut dan method dari
kelas Mahasiswa. Semua kelas baru tersebut mewarisi atribut Nama, NIM, Umur, dan
Jurusan, dan juga method getName(), getNIM(). Selanjutnya pada masing-masing kelas baru
dapat ditambahkan atribut dan method baru yang lebih spesifik, atau memodifikasi (override)

yang sudah ada. Dalam hal ini, kelas Mahasiswa adalah superclass dari ketiga kelas
turunannya, dan sebaliknya, ketiga kelas turunan tersebut adalah subclass dari kelas

15

Mahasiswa. Untuk mengindikasikan bahwa suatu kelas merupakan turunan/sub class dari
kelas lain digunakan syntax sebagai berikut:
public class <nama_subClass> extends <nama_baseClass>
Contohnya untuk menunjukkan bahwa kelas mhsReguler meupakan sub class dari
kelas Mahasiswa kita mendeklarasikan kelas hewan sebagai berikut:
Public class mhsReguler extends Mahasiswa
Untuk menciptakan objek dari suaru kelas/instansiasi:
<nama_kelas> <nama_objek> = new <nama_kelas>();
Contohnya untuk menciptakan objek dengan nama mhs dari kelas mahasiswa:
Mahasiswa mhs = new Mahasiswa();
Mahasiswa() merupakan constructor dari kelas mahasiswa. Constructor inilah
ynag menginisialisasi instance dari suatu kelas. Pada saat objek kelas disiptakan,
keyword new memanggil Consturctor dari kelas tersebut. Constructor harus mempunyai
nama yang sema dngan kelasnya. Constructor tidak memiliki retun value. Suatu kelas
dapat mempunyai overloaded constructors ynag memungkinkan obyek kelas tersebut
diinisialisai dengna cara yang berdeda-beda.
Keuntungan dari inheritance adalah :

Subclassmenyedaiakn state/behavior yang spesifik yang membedakannya dengan


superclass, hal ini akan memungkinkan programmer Java untuk menggunakan
ulang source code dari superclass yang telah ada.

Programmer Java dapat mendefinisikan superclass khusus yang bersifat generic ,


yang disebut abstract class, untuk mendefinisikan class dengan behavior dan state
secara umum.
Istilah dalam inheritance:
Extends
Keyword ini harus kita tambahkan pada definisi class yang menjadi subclass.
Superclass
Superclass digunakan untuk menunjukkan hirarki class yang berarti class dasar dari
subclass/class anak.
Subclass

16

Subclass adalah class anak atau turunan secara hirarki dari superclass.
Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass
atau menjadi variabel yang mengacu pada superclass.
g. Polimorfisme
Sebuah metode yang mempunyai nama yang sama pada kelas yang berbeda. Suatu
metode dengan nama yang sama tetapi jika diberikan pada obyek yang berbeda akan
mengakibatkan operasi yang berbeda.

Polimorfisme dapat berupa overloading atau overriding.

Overloading
Berupa metode dapat memiliki nama yang sama dengan isi dan parameter yang
berbeda di dalam sebuah kelas.

Overriding
Berupa metode pada kelas parent yang dapat ditulis ulang pada kode kelas anak
dalam pewarisan (inheritance) dengan memiliki nama yang sama dan memiliki isi
ataupun parameter yang sama atau berbeda.

h. Abstract
Pada bahasa pemrograman Java juga ada sebuah kata kunci abstract yang dapat
digunakan pada sebuah metode, namun jika digunakan pada sebuah metode, maka metode
tersebut harus berada di dalam sebuah kelas yang juga menggunakan kata kunci abstract .
Metode abstract tidak boleh memiliki badan program, badan program metode ini dapat
diimplementasikan pada kelas turunannya.
17

Fungsi dari kelas atau metode abstract pada bahasa pemrograman Java adalah menyediakan
sebuah abstraksi kelas atau metode sehingga dapat dilihat metode apa saja yang ada di dalam
kelas tanpa harus melihat isi badan program dari metode-metode itu. Prinsipnya sama
dengan fungsi sebuah daftar isi pada sebuah buku, dengan melihat daftar isi bisa diketahui
isi sebuah buku tanpa harus membaca semua isi buku terlebih dahulu.
i.

Package

Package adalah sebuah kontainer atau kemasan yang dapat digunakan untuk
mengelompokkan kelas- kelas sehingga memungkinkan beberapa kelas yang bernama sama
disimpan dalam package yang berbeda. Sebuah package pada Java dapat digunakan oleh
package yang lain ataupun kelas-kelas di luar Package . Jika dalam bahasa pemrograman
Java terdapat kode import example.animal.Mamalia; maka program tersebut memakai kelas
mamalia yang ada pada package example.animal. Jika terdapat kode import
example.animal.*; maka program tersebut memakai semua kelas yang ada pada package
example.animal.
Package pada bahasa pemrograman Java dinyatakan dengan kode: package nama_package;
Misalnya: package example.animal;
yang ditulis pada bagian atas kode program kelas anggota package. Misal sebuah kelas
dengan nama Mamalia ada di dalam package dengan nama example.animal maka file yang
menyimpan kode program kelas Mamalia dimasukkan dalam direktori. Contoh package yang
ada dalam library java antara lain java.util, javax.swing, dll.
j.

Enkapsulasi
Enkapsulasi adalah pembungkusan variabel-variabel dan method-method dalam objek

dan terlindungi oleh hak-hak akses yang sudah ditentukan. Enkapsulasi terdiri atas tiga hak
akses yakni:
Public
Adalah keyword yang menyatakan anggota yang diakses sebagai public. Anggota public
terlihat untuk semua kelas lainnya. Jadi setiap kelas lain dapat mengakses bagian
bagian maupun metode. Selanjutnya kelas kelas lain dapat memodifikasi bagian
bagian public kecuali jika kelas ini dinyatakan sebagai final.
Private

18

Digunakan apabila project tersebut diperuntukan hanya untuk class tersebut dan tidak ada
class lain yang diizinkan untuk menggunakan objek tersebut. Artinya kita tidak dapat
mengakses property dan method dari luar class termasuk class turunan.
Protected
Hanya bias digunakan untuk class tersebut dan class turunannya yang dapat
menggunakan object dengan modifier tersebut. Protected adalah class member dapat
diakses di dalam package yang sama dan sub classnya. Subclass dapat berada di paket
yang berbeda subclassnya akan mewarisi variable.
Manfaat dari enkapsulasi ini adalah:
1) Modularitas
Maintenance source code dari sebuah objek dapat dilakukan secara independen, tidak ada
ketergantungan terhadap objek-objek lain, karena semuanya bersifat internal. Jadi sebuah
objek dapat didistribusikan dan dipakai oleh siapa saja dan tetap dapat berjalan dengan
baik.
2) Information Hiding
Dengan adanya penentuan hak akses atas variabel dan method dalam objek, maka kita
bisa menyembunyikan informasi yang tidak perlu diketahui oleh objek lain. Pengguna
sebuah objek tidak perlu mengetahui data-data internal yang dimiliki sebuah objek (yang
sifatnya private), ia hanya perlu mengetahui method untuk menampilkannya (yang
sifatnya public).
k. Interface
Interface atau antar muka pada bahasa pemrograman Java sangat mirip dengan kelas, tapi
tanpa atribut kelas dan memiliki metode yang dideklarasikan tanpa isi. Deklarasi metode
pada sebuah interface dapat diimplementasikan oleh kelas lain. Sebuah kelas dapat
mengimplementasikan lebih dari satu interface bahwa kelas ini akan mendeklarasikan
metode pada interface yang dibutuhkan kelas itu sekaligus mendefiniskan isinya pada kode
program kelas itu. Metode pada interface yang diimplementasikan pada suatu kelas harus
sama persis dengan yang ada pada interface. Misalnya pada interface terdapat deklarasi void
printAnimal(); maka pada kelas yang mengimplementasikan metode itu harus
ditulis sama yaitu:
void printAnimal(){
19

.....................
}
Sebuah interface dideklarasikan dengan kode:
interface nama_antarmuka{
metode_1
metode_2
.....................
metode_n
}
misalnya:
interface Animal{
void printAnimal();
}
Adapun deklarasi kelas yang mengimplementasikan interface sebagai berikut:
class nama_kelas implements interface_1, interface_2, ...,
interface_n{
metode_1
metode_2
......................................
metode_n
}
}
misalnya:
class Mamalia implements Animal{
Mamalia (){
}
void printAnimal(){
system.out.println("printAnimal dalam kelas Mamalia");
}
}

20

2.3.5 Identifier
Identifier merupakan nama yang digunakan untuk menamai class, interface, variable, dan
method. Anda dapat menentukan sendiri identifier yang akan digunakan. Yang perlu
diperhatikan mengenai identifier ini adalah :
Tidak ada batasan panjang, jadi kita dapat membuat identifier dengan panjang
berapap pun.
Identifier harus diawali dengan huruf, underline / garis bawah (_) atau lambing dolar
($). Untuk selebihnya dapat menggunakan karakter apapun, kecuali karakter yang
digunakan sebagai operator oleh Java (seperti +,-,*,/).
Bukan merupakan keyword yang dikenal oleh Java.
Contoh identifier yang valid :
strTemp $counter b4Th33 _aValidOne

Contoh identifier yang tidak valid:


4Ever from-to Good/Bad *by4

2.3.6

Messages
Dalam PBO, bentuk objek bervariasi tergantung persoalannya. Objek dapat berupa

angka, rangkaian karakter, antrian, kamus, word processor, atau program, dan sebagainya.
Jenis operasi terhadap objek pun bermacam-macam, tergantung jenis komponen yang
direpresentasikan. Seperti telah disebutkan sebelumnya, sifat data dalam objek adalah
private, sehingga hanya bisa diakses melalui method-method di dalamnya yang bersifat
public. Agar objek melakukan salah satu method (fungsi/prosedur) yang dimilikinya, maka
harus dilakukan pengiriman pesan (message) kepada objek tersebut. Objek akan memberikan
respon dengan memilih operasi sesuai yang dispesifikasikan dalam pesan, melakukan
eksekusi, kemudian kembali kepada pemanggil. Message hanya menspesifikasikan operasi
apa yang diinginkan, selanjutnya bagaimana operasi tersebut dijalankan ditentukan oleh
objek penerima message tersebut. Salah satu keuntungan adanya messages ini adalah
dimungkinkannya terjadi aplikasi yang terdistribusi di mana objek-objek Java dapat
berinteraksi melalui jaringan. Contoh implementasinya adalah CORBA (Common Object
Request Broker Agent) dan Java-RMI.

21

2.3.7 Reserved Words / Keywords


Merupakan kata kata yang dikenal oleh compiler Java dan memiliki arti khusus dalam
program. Berikut ini daftar kata kata tersebut.

2.3.8 Variabel
Variable merupakan lokasi penyimpanan yang ada di memori. Setiap variable memiliki
kemampuan menyimpan suatu informasi sesuai dengan tipe data yang dideklarasikan untuk
variable tersebut saja. Sintaks pendeklarasian variable secara umum adalah sebagai berikut:
tipe-data nama-variabel;
Tipe-data meliputi semua tipe data yang dikenal oleh Java, sedangkan nama-variabel adalah
identifier yang akan digunakan untuk merujuk ke variabel tersebut di dalam program.
Contoh code:
int counter;
Code di atas mendeklarasikan suatu variabel yang bernama counter dengan tipe data int.
2.3.9 Tipe Data
Tipe data diperlukan agar compiler tahu operasi apa yang valid dan seberapa banyak memori
yang diperlukan oleh sebuah nilai yang akan disimpan atau dioperasikan. Variable digunakan
untuk menampung suatu nilai, karena itu setiap variabel pasti memiliki tipe data dan harus
dideklarasikan terlebih dahulu sebelum dapat digunakan. Perbedaan tipe data juga
mengakibatkan setiap operasi penugasan, baik secara eksplisit maupun melalui passing
parameter pada waktu pemanggilan method ,selalu dicek kompatibilitas tipe datanya.
Pada Java, terdapat tipe data sederhana dan tipe data array. Tipe data sederhana terdiri dari:
a. Integer merupakan tipe data bilangan bulat yang terdiri atas byte, short, int dan long.
b. Floatting-point merupakan tipe data bilangan pecahan yang terdiri atas float dan double.
c. Karakter mewakili symbol dari sebuah karakter yang terdiri atas char.
22

d. Boolean merupakan tipe data untuk besaran logika , tipe data yang menunjukkan nilai
true atau false.
Tipe data dirangkum pada tabel berikut.

Selain adanya variabel-variabel di atas, Java API juga menyediakan kelas-kelas untuk tipetipe variabel tersebut, yaitu Byte, Short, Integer, Long, Character, Float, Double. Kelas-kelas
ini secara default di-impor saat kompilasi, namun dapat juga secara eksplisit di-impor dari
package java.lang.
2.3.10 Operator dalam Java
Java memiliki 44 opeartor yang terbagi menjadi 4 jenis dasar yaitu operator aritmetik,
bitwise, relasi dan logika.
a. Operator Aritmatik
Digunakan untuk proses matematis (aljabar) , operan harus berupa tipe numeric.
Operator ini tidak dapat digunakan untuk tipe Boolean, tetapi juga digunakan untuk tipe
char , karena char adalah anggota himpunan int.

23

b. Operator Bitwise
Tipe numeric integer, long int, short, char dan byte memiliki kumpulan operator
tambahan yang dapat memodifikasi dan memeriksa bit bit yang menyusun nilainya.

c. Operator Relasi
24

Digunakan untuk membandingkan dua buah nilai, Java memiliki kumpulan operator
relasi berikut ini untuk menyatakan kesamaan dan urutan.

d. Operator Logika
Operator logika boolean pada tabel di bawah ini bekerja hanya pada operan boolean.
Semua operator ini mengkombinasikan dua besaran boolean untuk menghasilkan besaran
boolean.

25

2.3.11 Statemen Kontrol


a. Percabangan (Branching)
1) If
Satu Kondisi
Bentuk:
If(kondisi) statemen
Atau
If (kondisi)
{
Statemen1;
Statemen2;
..
}

Mula mula program akan mengecek kondisi yang didefinisikan. Apabila kondisi
bernilai benar, maka program akan melakukan statemen statemen yang terdapat
di dalam blok pengecekan. Namun apabila ternyata kondisi bernilai salah (kondisi
tidak terpenuhi), maka program akan langsung keluar dari blok pengecekan dengan
menlanjutkan eksekusi terhadap statemen statemen berikutnya di luar blok
pengecekan jika ada.
Dua Kondisi
26

Dikenal juga dengna sebutan if-else karena terdapat penambahan kata kunci else
dalam blok pengecekan.
Bentuk:
If(kondisi)
Statemen jika kondisi benar
Else
Statemen jika kondisi salah

Apabila kondisi yang diperiksa tidak terpenuhi maka terlebih dahulu program akan
mengekseskusi sebuah (atau lebih) statemen sebelum program melanjutkan
eksekusi ke statemen statemen berikutnya di luar atau setelah blok pengecekan.
Lebih dari dua kondisi
Bentuk:
If(kondisi)
Statemen jika kondisi benar
Else if(kondisi 2)
Statemen jika kondisi salah
Else
Statemen jika kondisi 1 dan kondisi 2 salah
27

Mula mula program akan melakukan pengecekan terhadap kondisi1. Apabila


kondisi1 benar, maka program akan langsung mengeksekusi statemen yang
didefinisikan di dalamnya. Namun apabila kondisi1 bernilai salah maka program
akan melakukan pengecekan terhadap kondisi2. Apabila kondisi2 juga bernilai
salah maka program akan melanjutkan ke pengecekan kondisi3. Apabila ternyata
kondisi3 juga bernilai salah maka program akan mengeksekusi statemen alternative
yang didefinisikan yaitu statemen yang terdapat pada bagian akhir blok pengecekan
(pada bagian else).
2) Switch
Digunakan untuk melakukan pemilihan terhadap ekspresi atau kondisi yang memiliki
nilai nilai konstan. Untuk mendefinisikan nilai nilai konstan tersebut adalah
dengan menggunakan kata kunci case. Selain itu untuk setiap nilai yang didefinisikan
tambahkan statemen break.
Bentuk:
Switch (ekspresi){
Case nilai1 : statemen yg dilakukan jika ekspresi sama dg nilai1
break;

28

Case nilai2 : statemen yg dilakukan jika ekspresi sama dg nilai2


break;

Case nilain : statemen yg dilakukan jika ekspresi sama dg nilain


break;
default : statemen yg dilakukan jika semua nilai yg didefinisikan di atas tidak ada yg
sama dg ekspresi
}
Kata kunci default diatas berguna untuk menyimpan statemen alternative yang akan
dieksekusi apabila semua nilai yang didefinisikan tidak ada yang sesuai dengan
ekspresi yang ada.
b. Perulangan (Looping)
1) For
Struktur for digunakan untuk menuliskan jenis pengulangan yang banyaknya sudah
pasti atau telah diketahui sebelumnya.
Bentuk:
For(inisialisasi;kondisi;iterasi)
{
Statemen yang akan diulang
}
Keterangan:
Inisialisasi
Digunakan sebagai inisialisasi variable yang akan dijadikan sebagai pencacah
(counter) dari proses pengulangan.
Kondisi
Digunakan sebagai kondisi akhir yaitu kondisi diamna proses pengulangan harus
dihentikan.
Iterasi
Digunakan untuk menaikkan (increment) atau menurunkan (decrement) nilai
variable yang digunakan sebagai pencacah.

29

2) While
Bentuk:
while (termination)
{
body;
}
Bagian pada body akan terus menerus dieksekusi selama pernyataan termination
menghasilkan true.
3) Do While
Bentuk:
Do
{
body;
}
while (termination);

Hampir sama dengan while, hanya di sini pemeriksaan terhadap pernyataan


termination dilakukan di akhir perulangan, yang berarti perulangan pada body akan
dieksekusi sekurang-kurangnya sekali meskipun pernyataan termination bernilai
false.
c. Peloncatan (Jumping)
1) Break
Proses break memerintahkan runtime untuk menjalankan program di belakang blok
tertentu. Untuk dapat ditunjuk, sebuah blok diberi nama, dan Java memiliki bentuk label
untuk menyatakan nama suatu blok. Berikut contoh penggunaannya:
class Break {
public static void main(String args[]) {
boolean t=true; a: {
b:
{ c:
{ System.out.println(Sebelum break);
if (t) break b;
System.out.println(Pernyataan ini tidak akan pernah
dieksekusi);

30

}
System.out.println(Ini

juga

tidak

akan

pernah

dieksekusi);
} System.out.println(Ini setelah b);
}
}
}

2) Continue
Digunakan untuk melanjutkan proses pengulangan.
Contoh:
Public class DemoContinue {
Public static void main (String [] args)
{
For (int i=0;i<10;i++)
{
System.out.println ( );
}
}
}

3) Return
Return menyebabkan eksekusi menyabang kembali ke pemanggil method. Contoh
pemakaian return berikut menyebabkan eksekusi kembali ke pemanggilnya, dalam hal
ini adalah runtime Java.
class ReturnDemo
{
public static main void(String args[])
{ boolean t=true;
System.out.println(Sebelum return);
if (t) return;
System.out.println(Pernyataan ini tidak akan pernah dieksekusi); } }

2.3.12 Array
Array adalah suatu variable yang terdiri dari sekumpulan data dimana data data tersebut
mempunyai tipe data yang sama. Setiap data disimpan dalam alamat memori yang berbeda
31

beda dan disebut dengan elemen array. Setiap elemen mempunyai nilai indeks sesuai dengan
urutannya. Melalui indeks inilah kita dapat mengakses data data. Indeks dari elemen array
ini pada Java dimulai dari 0.
1) Array Dimensi 1
Pada dasarnya array satu dimensi merupakan kumpulan dari variable yang memiliki
tipe data yang sama. Pendeklarasian tipe data array memiliki dua bentuk:
tipe-data

nama-array[];

tipe-data[] nama-array;
Tipe data merupakan tipe data yang akan ditampung oleh variable array.

Semua tipe data yang dikenal dalam Java baik yang primitive maupun class bias
digunakan disini. Untuk nama-array merupakan identifier yang menunjukkan nama
dari variable array itu sendiri. Tanda [] memberitahukan Java bahwa variable ini
bertipe array.
Contoh code:
Int arr1[];
Int[] arr2;

Pendeklarasian yang ditunjukkan oleh code di atas hanya mendeklarasikan suatu


variabel array dengan tipe data int bernama arr1 dan arr2, namun tempat yang akan
digunakan untuk menampung array itu sendiri belum dibuat di memori. Berikut ini
bentuk umum pengalokasian memori untuk array:
nama-array = new tipe-data[ukuran-array];

Untuk ukuran-array harus berupa bilangan bulat, dan jumlah maksimum yang
dapat dimasukkan sebagai ukuran-array hanya terbatas pada seberapa banyak memori
yang tersedia pada komputer. Berikut ini contoh pengalokasian memori:
int[] arr = new int[10];

Code di atas mengalokasikan variabel arr dengan tipe data int (array of int)
sebanyak 10 buah. Array ini dapat diilustrasikan seperti gambar di bawah ini.

32

Perlu diperhatikan di sini bahwa kita tidak dapat/tidak boleh mengakses array di luar
indeksnya, contoh:
int[] x = new int[3];
x[10] = 100;
Jika mengetik code di atas pada program, maka pada saat Anda mengeksekusinya,
Anda akan mendapatkan eksepsi berupa:
java.lang.ArrayIndexOutOfBoundsException

2) Array Multidimensi
Array multidimensi merupakan array yang terdapat di dalam array. Cara
pendeklarasian array multidimensi ini pada dasarnya sama dengan array satu dimensi
dimana cukup menambahkan [] sesuai dengan yang kita inginkan, contoh:
int[][][] arr3; //-> Array 3 dimensi
int[][][][] arr4; //-> Array 4 dimensi

Untuk pengalokasian memori array multidimensi, memiliki sintaks yang sama


dengan array satu dimensi, contoh:
int[][] arr2 = new int[3][4];

Code di atas akan mengalokasikan memori untuk menampung nilai tipe data int
sebanyak 3*4. Untuk ilustrasi, array ini dapat digambarkan seperti gambar di bawah
ini.

2.3.13 Konversi Tipe Data


Adalah hal yang biasa dalam pemrograman untuk menampung suatu nilai dengan tipe
data tertentu ke dalam variabel yang mempunyai tipe data yang berbeda. Java akan
melakukan konversi tipe data secara otomatis jika kedua tipe data tersebut kompatibel.
Misalnya dari tipe data int ke tipe data long.
Contoh code:
33

int data1 = 10;


long data2 = data1;

Variabel data1 yang bertipe int ditampung ke dalam variabel data2 yang bertipe long.
Dengan demikian, terjadi konversi tipe data, dan dalam hal ini konversi dilakukan secara
otomatis oleh Java tanpa membutuhkan tambahan code apa pun.
Namun, tidak semua tipe data kompatibel satu dengan yang lainnya. Misalnya tipe data
float dengan tipe data int, float merupakan tipe data pecahan (floating-point), sedangkan int
adalah tipe data bilangan bulat (integer). Hal yang sama juga terjadi jika Anda hendak
mengonversi tipe data yang lebih besar ke tipe data yang lebih kecil, seperti dari int ke short.
Konversi tipe data yang tidak kompatibel ini masih memungkinkan, namun harus
menyebutkan secara eksplisit tipe data tujuan (casting).
Sintaks code:
(target-tipe-data)nilai

target-tipe-data : tipe data yang menjadi tujuan konversi.


Nilai : dapat berupa nilai literal atau berupa variabel.
2.3.14 Melewatkan argument pada Java
Di dalam Java kiti tidak dapat secara eksplisist melewatkan parameter berdasarkan nilai
atau referensinya. Ada dua tipe data passing dalam Java, yakni yang pertama disebut passingby-values, dan yang kedua disebut passing-by-references.
1) Passing By Values
Melewatkan parameter berdasarkan nilainya. Disini nilai parameter actual akan
dilewatkan pada saat pemanggilan method, tidak akan berpengaruh terhadap argument
yang digunakan untuk memanggil method tersebut. Dengan kata lain, perubahan nilai
tersebut hanya akan dikenali pada method yang bersangkutan saja. Apabila parameter
ber tipe sederhana (seperti int, char, bolean, dll), maka java akan menggunakan metode
ini.
2) Passing By References
Melewatkan parameter berdasarkan referensinya. Pada cara ini , referensi dari
argumen (bukan nilai argumen) akan dilewatkan kedalam parameter formal, bukan
disalin. Dengan demikian, nilai yang digunakan di dalam method akan sama dengan

34

nilai yang di tunjuk referensi. Melalui cara ini setiap perubahan nilai yang terjadi pada
method juga akan berpengaruh terhadap argumen yang digunakan untuk memanggilnya.
Parameter berupa objek, maka java akan menggunakan metode ini.
2.3.15 Execption Handling
Exception adalah event yang terjadi ketika program menemui kesalahan pada saat
eksekusi yang mengakibatkan terganggunya alur program secara normal.
Jenis jenis Exception:
Exception class, merupakan kesalahan yang disebabkan oleh program dan
kesalahan external. Exception terdiri dari banyak subclass.
Error class, merupakan class yang berhubungan dengan kesalahan pada internal
system
Operasi Exception dibagi menjadi 3 buah operasi yaitu:
Claiming an exception
Throwing an exception
Catching an exception
Exception terdiri dari dua macam kelompok yaitu:
Exception yang merupakan subclass RunTimeException
Exception yang bukan merupakan subclass RunTimeException
RunTime Exception disebabkan oleh kesalahan program atau pada desain program.
Dalam bahasa Java, proses pelemparan exception tersebut sering dikenal dengan istilah
throwing exception, sedangkan proses penerimaan exception yang bersangkutan dikenal
dengan istilah catch exception.
Ada 5 keyword penting dalam java dalam hal exception handling :
1) try,
Keyword ini biasanya digunakan dalam suatu block program. keyword ini digunakan
untuk mencoba menjalankan block program kemudian mengenai dimana munculnya
kesalahan yang ingin diproses. Keyword ini juga harus dipasangkan dengan keyword
catch atau keyword finally yang akan dibahas pada point kedua dan ketiga.
2) catch,

35

Jika anda sudah melihat contoh try maka secara tidak langsung anda sudah memahami
kegunaan dari keyword ini. Dalam java, keyword catch harus dipasangkan dengan try.
Kegunaan keyword ini adalah menangkap kesalahan atau bug yang terjadi dalam block
try. Setelah menangkap kesalahan yang terjadi maka developer dapat melakukan hal
apapun pada block catch sesuai keinginan developer.
3) Finally,
Keyword ini merupakan keyword yang menunjukan bahwa block program tersebut akan
selalu dieksekusi meskipun adanya kesalahan yang muncul atau pun tidak ada.
4) throw,
Keyword ini digunakan untuk melemparkan suatu bug yang dibuat secara manual.
5) throws,
Keyword throws digunakan dalam suatu method atau kelas yang mungkin menghasilkan
suatu kesalahan sehingga perlu ditangkap errornya.

2.3.16 Database Connection


Berikut ini merupakan langkah langkah dalam membuat koneksi database:
1) Pastikan MySQL JDBC Driver sudah tersedia pada Library anda. JDBC merupakan
driver penghubung antara aplikasi (program) java dengan DBMS (Database Management
System). Untuk menginstall JDBC, ada beberapa cara :
Copy sub direktori com dan org beserta semua isinya ke computer dan
tambahkan sub direktori com dan org pada CLASSPATH computer.
Copy sub direktori com dan org beserta semua isinya ke direktori program
java.
Copy ke computer file:
Mysql-connector-java-x.x.x-stable-bin.jar
Taruh pada:
$JAVA_HOME/jre/lib/ext.
selain itu dapat ditaruh pada CLASSPATH computer.
2) Melakukan koneksi database:
Mengaktifkan driver JDBC

Atau jika sudah setting CLASSPATHnya bias langsung dengan perintah:

36

Membuat koneksi
Langkah berikutnya adalah melakukan koneksi ke database:

Dimana:
Con adalah variable bertipe Connecction.
url adalah informasi jenis database + host database + nama database.
Usr adalah user untuk koneksi ke database.
Pwd adalah password untuk masuk ke database.
Contoh:

2.4 Database
Menurut Connolly (2010, 65), database adalah suatu kumpulan data yang saling
berhubungan secara logis dan penjelasan tentang data yang terhubung tersebut dirancang
sedemikian rupa sehingga dapat memberikan informasi yang diperlukan oleh organisasi.
Menurut Whitten dan Beently (2007, 548) database adalah kumpulan file harus
memperbolehkan hubungan hubungan untuk menyimpan file lain.
2.5 SQLYog
SQLyog adalah aplikasi client MySQL yang sangat populer digunakan di Indonesia. Aplikasi
ini memiliki banyak fitur yang memudahkan pengguna melakukan administrasi maupun
melakukan pengolahan data MySQL.
SQLyog ini aplikasi yang digunakan untuk menghubungkan satu komputer dengan komputer
lain, agar satu komputer dengan komputer dapat saling mengakses dapat dikatakan aplikasi
adalah aplikasi yang bisa digunakan untuk menerapkan client server.

37

2.6 Xamp
Xampp adalah sebuah paket kumpulan software yang terdiri dari

apache, mysql,

phpmyadmin, php, Perl, Freetype2,dll. Xampp berfungsi untuk memudahkan instalasi


lingkungan php,

di

mana

biasa

nya

lingkungan pengembangan web

memerlukan

php,apache,mysql dan phpmyadmin serta software-software yang terkait dengan pengembangan


web. Dengan menggunakan xampp, kita tidak perlu menginstall aplikasi-aplikasi tsb satu
persatu. Paket aplikasi perlu di extract dan di install terlebih dahulu, dengan memilih jenis
xampp sesuai dengan jenis OS nya. Setelah sukses menginstall xampp, kita dapat langsung
mengaktifkan Mysql atau SQL Yog dengan cara mengaktifikan xampp.

38

BAB III

PEMBAHASAN
3.1 Deskripsi Umum Program
Program aplikasi perpustakaan ini merupakan program yang dibuat untuk membantu
dalam kegiatan perpustakaan khususnya mengenai informasi buku hingga proses
peminjaman dan pengembalian buku. Dimana dalam penggunaan program ini, akan
dibagi menjadi 2 fungsi yaitu sebagai admin dan pengunjung. Seorang pengunjung harus
melakukan register terlebih dahulu untuk dapat melanjutkan proses pada program.
Pada program ini kita dapat melihat data buku berdasarkan fakultas dan jurusan dari buku
tersebut. Data buku yang dimaksud adalah judul buku, penerbit, tahun, pengarang,
jurusan yang sesuai dengan buku, fakultas yang sesuai dengan buku hingga stock dari
buku tersebut. Dimana dalam program ini kami hanya menyediakan 5 fakultas saja
dengan jurusannya masing-masing. Selain itu dalam program ini akan terdapat
pengaturan untuk pengunjung yang ingin meminjam buku.
3.2 Entity Relationship Diagram

39

3.3 Penjelasan Source Code

1. Class Login
Tampilan Class secara keseluruhan
public class login extends javax.swing.JFrame {
private Connection conn;
private Statement st;
private ResultSet rs;
public login() {
initComponents();
}
private void koneksi(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/pbo",
"root", "");
st=conn.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}private void KembaliActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
new Tampilan_Awal().show();
}
rivate void LoginActionPerformed(java.awt.event.ActionEvent evt) {
koneksi();
try {
rs=st.executeQuery("SELECT * FROM admin WHERE "
+ "Id_admin='"+name.getText()+"'");

40

if (rs.next()){
if (pass.getText().equals(rs.getString("pasword"))){
JOptionPane.showMessageDialog(rootPane, "Login
Berhasil");
new Operator().show();
this.dispose();
}else{
JOptionPane.showMessageDialog(rootPane, "Passowrd
Salah");
pass.setText("");
pass.requestFocus();
}
}else{
JOptionPane.showMessageDialog(rootPane, "Username Belum
Terdaftar");
name.setText("");
pass.setText("");
name.requestFocus();
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error"+e);
}
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {

41

Class Login ini merupakan class untuk melakukan login. Mula mula akan dilakukan
pembuatan koneksi database. Pada pembuatan fungsi koneksi database yang bertujuan untuk
mengakses data yang tersimpan pada database ketika dilakukan pemanggilan.
Pada fungsi konseksi database dilakukan juga exception handle dengan menggunakan
keyword try-catch, hal ini dilakukan untuk menangkap kesalahan pada program.
private void koneksi(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/pbo",
"root", "");
st=conn.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}

Pada method login,dilakukan pemanggilan fungsi koneksi ( ) yang merupakan fungsi dari
koneksi ke database. Setelah itu dilakukan pengeksekusian query untuk mengambil data admin
dari database. Terdapat juga fungsi untuk mengeksekusi Login Berhasil, Password Salah , dan
Username Belum Terdaftar.
private void LoginActionPerformed(java.awt.event.ActionEvent evt) {
koneksi();
try {
rs=st.executeQuery("SELECT * FROM admin WHERE "
+ "Id_admin='"+name.getText()+"'");
if (rs.next()){
if (pass.getText().equals(rs.getString("pasword"))){
JOptionPane.showMessageDialog(rootPane, "Login Berhasil");
new Operator().show();
this.dispose();
}else{
JOptionPane.showMessageDialog(rootPane, "Passowrd Salah");

42

pass.setText("");
pass.requestFocus();
}
}else{
JOptionPane.showMessageDialog(rootPane, "Username Belum Terdaftar");
name.setText("");
pass.setText("");
name.requestFocus();
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error"+e);
}
}

43

2. Class Daftar
Source code class daftar secara keseluruhan
public class daftar extends javax.swing.JFrame {
private Connection conn;
private Statement st;
private ResultSet rs;
/**
* Creates new form daftar
*/
public daftar() {
initComponents();
}
private void koneksi(){
try {
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost/pbo",
"root", "");
st=conn.createStatement();
} catch (Exception e) {
JOptionPane.showMessageDialog(null, e);
}
}
private void selesaiActionPerformed(java.awt.event.ActionEvent evt) {
koneksi();
try {
rs=st.executeQuery("SELECT * FROM pengunjung WHERE "
+ "Nama_pengunjung='"+nama_peng.getText()+"'");

44

if (rs.next()){
if
(pass_peng.getText().equals(rs.getString("Nim_pengunjung"))){
JOptionPane.showMessageDialog(rootPane, "Login
Berhasil");
this.dispose();
new Pengunjung().show();
}else{
JOptionPane.showMessageDialog(rootPane, "NIM Salah");
pass_peng.setText("");
pass_peng.requestFocus();
}else{
JOptionPane.showMessageDialog(rootPane, "Username Belum
Terdaftar");
nama_peng.setText("");
pass_peng.setText("");
nama_peng.requestFocus();
}
}catch (Exception e){
JOptionPane.showMessageDialog(rootPane, "Error"+e);
}
}
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
new Tampilan_Awal().show();
}
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
koneksi();
try {

45

rs=st.executeQuery("SELECT * FROM pengunjung WHERE "


+ "Nim_pengunjung='"+pass_peng.getText()+"'");
if (rs.next()){
JOptionPane.showMessageDialog(rootPane, "Nim yang Anda
Gunakan Telah Terdaftar");
nama_peng.setText("");
pass_peng.setText("");
}else{
try {
st.executeUpdate("insert into pengunjung values ("
+ "'" + nama_peng.getText()+"',"
+ "'" + pass_peng.getText()+ "')"
);
JOptionPane.showMessageDialog(null, "Data Berhasil
Disimpan.");
this.dispose();
new Pengunjung().show();

} catch (Exception e) {
JOptionPane.showMessageDialog(null, "Keterangan Pada
Saat Proses Penyimpanan");
}
}
}catch(Exception e){

}
46

java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new daftar().setVisible(true);
}
});
}

Dalam daftar terdiri dari 3 tombol yakni Login,Register, dan Kembali


Login:

Dalam
proses
inipertamakitaakanmencari
data
padatabelpengunjung
yang
memilikinamapengunjungataunama
User
sanadenganinputanpadakolomnama
User,
setelahsiperolehnama user yang samadengankolomakanmasukkedalam proses mencocokan
47

password dengankolom password yang adapadatampilandaftarpengunjung, danapabilanama User


dan
password
pada
database
samadengan
yang
adapadakolomdalamtampilansehinggaakandimunculkanpesan
Login
Berhasil
danakandilanjutkanpadaform selanjutnya, apabila password tidaksamadengan yang adapada
database makaakanadapesan NIM Salah, danapabilanama user tidakadapada database
makaakanditampilkanpesan Username BelumTerdaftar.

Daftar :

Dalam

proses

daftarakandilakukanpencocokan

padatampilandenganNimpada
samamakaakandimunculkanpesan

database,

data

Nimatau

apabiladiperoleh

Nim

yang

data

password
yang

andagunakantelahterdaftar,

apabilatidakdiperolahNim yang samadenganNim yang dimasukanmaka Username danNimatau


password yang barudimasukanakandisimpandalam database danakandimunculkanpesan Data
berhasildisimpan danakandilanjutkandengan form selanjutnya.
Keluar:

48

Dalamfungsiiniakanmenutup form daftardankembalimembuka form Tampilan_Awal()

49

3. Class Tampilan Awal


Tampilan Source Code Class Tampilan Awal
public class Tampilan_Awal extends javax.swing.JFrame {
public Tampilan_Awal() {
initComponents();
}
private void adminActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
new login().show();
}
private
void
pengunjungActionPerformed(java.awt.event.ActionEvent
evt) {
this.dispose();
new daftar().show();
}
public static void main(String args[]) {
try {
for
(javax.swing.UIManager.LookAndFeelInfo
info
:
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {
javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {
java.util.logging.Logger.getLogger(Tampilan_Awal.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {
java.util.logging.Logger.getLogger(Tampilan_Awal.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {
java.util.logging.Logger.getLogger(Tampilan_Awal.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {
java.util.logging.Logger.getLogger(Tampilan_Awal.class.getName()).log(jav
a.util.logging.Level.SEVERE, null, ex);
}
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new Tampilan_Awal().setVisible(true);
}
});
}

50

Source code ini digunakan untuk membuat tampilan awal ketika program running. Pada program
ini ditampilkan tampilan untuk login dan juga tampilan untuk daftar. Karena adanya
pemanggilan dua fungsi tersebut.
private void adminActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
new login().show();
}
private void pengunjungActionPerformed(java.awt.event.ActionEvent evt) {
this.dispose();
new daftar().show();
}

51

4. Class Operator

Dalam form operator terdiridari 4 fungsipenting yang adapadaMenubaryakniSimpan, Edit,


Hapus, Peminjaman. DimanapadasaatmemilihSimpan, Edit, Hapus,tidakakanterjadiapa
melainkanhanyamemberikannilaitindakanuntukmemilihtindakanapa yang
akandilakukanpadasaatpenggunamemberikaninputandanmengkliktombolSelesai. Dengan kata
lain query hanyaadapadatombolSelesai.
TombolSelesai :
Tindakan 1: (Insert)

Menginputkan data padatabekdata_bukudenganketentuanseperti yang adapadatampilan.

Tindakan 2: (Update)

52

Mengubahisidari database danganketentuan yang dibarikanpada form


tampilanketikaId_bukupada database samadenganId_buku yang diinputkan.
Tindakan 3: (Delete)

Dalamfungsiiniakanmenghapus data dalam database ketikadiperolehId_bukupada database


samadenganId_bukudalam form tampilan

Dan adasatulagifungsiTampilsemua:

53

Membuatdanmenampilkantabelbeserta isinya.

5. Class Pengunjung
Pada class ini berfungsi untuk pemiilihan bidang studi oleh pengunjung yang nantinya akan
digunakan untuk pencarian buku,
koneksi();
try {
rs=st.executeQuery("SELECT data_buku.Id_buku , data_buku.Judul, data_buku.Penerbit,
data_buku.Tahun_terbit ,"
+
"data_buku.Pengarang,
data_buku.Stock "

jurusan.Nama_jurusan,

jurusan.Nama_fakultas,

+ "FROM(data_buku INNER JOIN jurusan ON data_buku.Id_jurusan =


jurusan.ID_jurusan) "
+ "WHERE "

54

+ "data_buku.Judul LIKE'%+judul.getText()+%'");
} catch (SQLException ex) {
Logger.getLogger(Pengunjung.class.getName()).log(Level.SEVERE, null, ex);
}

6. Class Pinjaman
Merupakan class dimana pengunjung melakukan peminjaman,
private void jButton2ActionPerformed(java.awt.event.ActionEvent evt) {
koneksi();
if(tindakan ==1){
try {
rs=st.executeQuery("SELECT * FROM pengunjung WHERE "
+ "Nim_pengunjung='"+NIM.getText()+"'");
if (rs.next()){
rs=st.executeQuery("SELECT * FROM data_buku WHERE "
+ "Id_buku='"+Code_buku.getText()+"'");
if (rs.next()){
st.executeUpdate("insert into pinjaman values ("
55

+ "'" + Id_kembali.getText()+"',"
+ "'" + NIM.getText()+"',"
+ "'" + Code_buku.getText()+"',"
+ "'" + tgl_pinjam.getText()+ "',"
+ "'" + "Dipinjam"+ "',"
+ "'" + null+ "')"
);
JOptionPane.showMessageDialog(null, "Data Berhasil Disimpan.");
}else{
JOptionPane.showMessageDialog(null, "Id Buku Yang Anda Masukan
Salah");
}
}else{
JOptionPane.showMessageDialog(null, "Peminjam Yang Dimasukan Tidak
Terdaftar Pada Data Pengunjung");
}
}catch (Exception e) {
JOptionPane.showMessageDialog(null, "Keterangan : Kesalahan Pada Saat Proses
Penyimpanan");
}
}else if(tindakan ==2){
try {
st.executeUpdate("update pinjaman set "
+ "Status='"+"Kembali"+"',"
+ "Tanggal_pengembaliaan='"+tgl_kembali.getText()+"'"
+ " where "
+ "Id_pinjaman='"+Id_kembali.getText()+"'"
);
JOptionPane.showMessageDialog(rootPane, "Data berhasil Diupdate");
}catch (Exception e) {
JOptionPane.showMessageDialog(null, "Keterangan : Kesalahan Pada Saat Proses
Penyimpanan"+e);
}
}
peminjaman();
mati();
bersih();

56

Dalam form operator terdiridari 4 fungsi penting yang ada pada Menu bar yakni Simpan,
Edit, Hapus, Peminjaman. Dimana pada saat memilih Simpan, Edit, Hapus,tidak akan
terjadi apa apa
yang

melainkanhanyamemberikannilaitindakanuntukmemilihtindakanapa

akandilakukanpadasaatpenggunamemberikaninputandanmengkliktombolSelesai.

Dengan kata lain query hanyaadapadatombolSelesai.


TombolSelesai :
Tindakan 1: (Insert)

Menginputkan data padatabekdata_bukudenganketentuanseperti yang adapadatampilan.


Tindakan 2: (Update)

Mengubah isi dari database dangan ketentuan yang dibarikan pada form
tampilanketikaId_bukupada database samadenganId_buku yang diinputkan.
Tindakan 3: (Delete)
57

Dalam fungsi ini akan menghapus data dalam database ketika diperoleh Id_buku pada
database sama dengan Id_buku dalam form tampilan
Dan adasatulagifungsiTampilsemua:

Membuat dan menampilkan table beserta isinya.

58

Dalam daftar terdiri dari 3 tombol yakni Login,Register, dan Kembali


Login:

Dalam proses ini pertama kita akan mencari data pada tabel pengunjung yang memiliki nama
pengunjung atau nama User sana dengan inputan pada kolom nama User, setelah siperoleh nama
user yang sama dengan kolom akan masuk ke dalam proses mencocokan password dengan
kolom password yang ada pada tampilan daftar pengunjung, dan apa bila nama User dan
password pada database sama dengan yang ada pada kolom dalam tampilan sehingga akan
dimunculkan pesan Login Berhasil dan akan dilanjutkanpada form selanjutnya, apa bila
password tidak sama dengan yang ada pada database maka akan ada pesan NIM Salah, dan apa
bila nama user tidak ada pada database maka akan ditampilkan pesan Username Belum
Terdaftar.

59

Daftar :

Dalam proses daftar akan dilakukan pencocokan data Nim atau password pada tampilan dengan
Nim pada database, apabila diperoleh data yang sama maka akan dimunculkan pesan Nim yang
anda gunakan telah terdaftar, apabila tidak diperolah Nim yang sama dengan Nim yang
dimasukan maka Username dan Nim atau password yang baru dimasukan akan disimpan dalam
database dan akan dimunculkan pesan Data berhasil disimpan dan akan dilanjutkan dengan
form selanjutnya.
Keluar:

Dalam fungsi ini akan menutup form daftar dan kembali membuka form Tampilan_Awal()

60

3.4 Tampilan Program


Tampilan awal program
Berikut ini merupakan tampilan awal program ketika pertama kali dijalankan.

Gambar 1 Tampilan awal

Tampilan awal (pemilihan pengguna)


Kemudian kita akan memilih apakah kita menggunakan program sebagai admin atau
pengunjung.

Gambar 2 Tampilan pemilihan pengguna

61

Tampilan login pengunjung


Ketika kita memilih sebagai pengunjung maka akan muncul tampilan seperti pada
gambar dibawah ini.

Gambar 3 tampilan login pengunjung

Tampilan registrasi
Jika kita sebagai pengunjung belum terdaftar maka kita harus melakukan proses registrasi
terlebih dahulu. Dimana proses registrasi ini kita memasukkan nama dan NIM. Gambar
dibawah ini menunjukkan pengunjung yang berhasil melakukan registrasi.

Gambar 4 Tampilan Registrasi

62

Tampilan jika data registrasi pengunjung telah digunakan


Jika data yang digunakan untuk registrasi telah digunakan sebelumnya maka pengunjung
tidak akan dapat melakukan registrasi. Dengan kata lain satu data registrasi hanya untuk
satu pengunjung.

Gambar 5 Tampilan Registrasi Error

Tampilan login pengunjung yang telah terdaftar


Jika kita sudah terdaftar maka kita akan dapat melanjutkan proses login sebagai
pengunjung dengan memasukkan data yang sesuai ketika kita melakukan registrasi.

Gambar 6 Tampilan login pengunjung

63

Tampilan login admin


Gambar di bawah ini merupakan tampilan login sebagai admin.

Gambar 7 Tampilan login admin

Tampilan data buku pada form admin


Berikut ini merupakan tampilan data buku pada form admin.

Gambar 8 Tampilan data buku pada form admin

64

Tampilan tindakan pada form admin


Seorang admin memiliki wewenang untuk melakukan tindakan terhadap data buku.
Tindakan dalam hal ini adalah memasukkan data buku baru. Gambar dibawah ini
menunjukkan form tidakan pada admin.

Gambar 9 Tampilan tindakan admin

65

Tampilan awal form pengunjung


Berikut ini merupakan tampilan awal ketika kita masuk sebagai pengunjung.

Gambar 10 Tampilan awal pengunjung

Tampilan proses pemilihan buku pada pengunjung


Kemudian pengunjung dapat memilih data buku yang ingin dilihat berdasarkan fakultas
ataupun jurusan yang diinginkan.

Gambar 11 Tampilan pemilihan data buku

66

Tampilan data buku untuk pengunjung


Berikut ini merupakan tampilan data buku yang dipilih oleh pengunjung. Dimana dalam
gambar dibawah ini pengunjug memilih untuk melihat data buku pada fakultas mipa
jurusan ilmu computer.

Gambar 12 Tampilan data buku

67

Tampilan input peminjaman


Berikut ini merupakan tampilan untuk memasukkan data buku yang ingin dipinjam.

Gambar 13 Tampilan input peminjaman

68

Tampilan hasil peminjaman


Berikut ini merupakan tampilan dari daftar pengunjung yang melakukan peminjaman
buku.

Gambar 14 Tampilan hasil peminjaman

Tampilan hasil pengembalian


Berikut ini merupakan tampilan dari daftar pengunjung yang meminjam buku dengan
status sudah dikembalikan ataupun belum.

69

Gambar 15 Tampilan hasil pengembalian

Tampilan data buku peminjaman (admin)


Berikut ini merupakan tampilan untuk melihat data buku yang dipinjam oleh pengunjung.
Dimana proses ini hanya bisa diakses oleh admin.

70

Gambar 16 Tampilan data buku peminjaman admin

71

Tampilan data buku peminjaman melalui fungsi peminjaman

Gambar 17 Tampilan data buku peminjaman dari fungsi peminjaman

72

Tampilan data buku peminjaman pengunjung

Gambar 18 Tampilan data buku peminjaman pengunjung

73

Tampilan proses pengembalian


Berikut ini merupakan tampilan ketika proses pengembalian buku terjadi.

Gambar 19 Tampilan proses pengembaian

74

Anda mungkin juga menyukai