Nama Kelompok :
Ni Made Putri Sasmadiyani
1208605047
1208605049
1208605077
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
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
1.2
1.3
Tujuan ..........................................................................................................................6
1.4
Manfaat.........................................................................................................................6
1.5
1.6
Sistematika Penulisan....................................................................................................6
Perpustakaan .................................................................................................................7
2.2
2.3
Java...............................................................................................................................8
2.3.1
2.3.2
2.3.3
2.3.4
2.3.5
Identifier .............................................................................................................. 21
2.3.7
2.3.8
Variabel ............................................................................................................... 22
2.3.9
2.5
SQLYog ..................................................................................................................... 37
2.6
Xamp .......................................................................................................................... 38
3.2
3.3
3.4
BAB I
PENDAHULUAN
sederhana
yang
dapat
1.4 Manfaat
Dapat mengetahui cara membuat sebuah aplikasi
mengimplementasikan administrasi dari perpustakaan.
sederhana
yang
dapat
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:
10
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
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 :
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.
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
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.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
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
28
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);
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;
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
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.
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
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.
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,
di
mana
biasa
nya
memerlukan
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
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
} 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
proses
inipertamakitaakanmencari
data
padatabelpengunjung
yang
memilikinamapengunjungataunama
User
sanadenganinputanpadakolomnama
User,
setelahsiperolehnama user yang samadengankolomakanmasukkedalam proses mencocokan
47
Daftar :
Dalam
proses
daftarakandilakukanpencocokan
padatampilandenganNimpada
samamakaakandimunculkanpesan
database,
data
Nimatau
apabiladiperoleh
Nim
yang
data
password
yang
andagunakantelahterdaftar,
48
49
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
Tindakan 2: (Update)
52
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,
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.
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:
58
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
61
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.
62
63
64
65
66
67
68
69
70
71
72
73
74