PENDAHULUAN Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis java umumnya dikompilasi ke dalam p- code (bytecode) dan dapat dijalankan pada berbagai Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai jenis perangkat lunak aplikasi ataupun aplikasi berbasis web. SEJARAH PERKEMBANGAN JAVA Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18 bulan, dari awal tahun 1991 hingga musim Rangkuman Aplikasi dan Basis DataPage 1
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
PENDAHULUAN
Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk
telepon genggam. Bahasa ini awalnya dibuat oleh James Gosling saat masih bergabung di Sun
Microsystems saat ini merupakan bagian dari Oracle dan dirilis tahun 1995. Bahasa ini banyak
mengadopsi sintaksis yang terdapat pada C dan C++ namun dengan sintaksis model objek yang
lebih sederhana serta dukungan rutin-rutin aras bawah yang minimal. Aplikasi-aplikasi berbasis
java umumnya dikompilasi ke dalam p-code (bytecode) dan dapat dijalankan pada berbagai
Mesin Virtual Java (JVM). Java merupakan bahasa pemrograman yang bersifat umum/non-
spesifik (general purpose), dan secara khusus didisain untuk memanfaatkan dependensi
implementasi seminimal mungkin. Karena fungsionalitasnya yang memungkinkan aplikasi java
mampu berjalan di beberapa platform sistem operasi yang berbeda, java dikenal pula dengan
slogannya, "Tulis sekali, jalankan di mana pun". Saat ini java merupakan bahasa pemrograman
yang paling populer digunakan, dan secara luas dimanfaatkan dalam pengembangan berbagai
jenis perangkat lunak aplikasi ataupun aplikasi berbasis web.
SEJARAH PERKEMBANGAN JAVA
Bahasa pemrograman Java terlahir dari The Green Project, yang berjalan selama 18
bulan, dari awal tahun 1991 hingga musim panas 1992. Proyek tersebut belum menggunakan
versi yang dinamakan Oak. Proyek ini dimotori oleh Patrick Naughton, Mike Sheridan, James
Gosling dan Bill Joy, beserta sembilan pemrogram lainnya dari Sun Microsystems. Salah satu
hasil proyek ini adalah maskot Duke yang dibuat oleh Joe Palrang.
Pertemuan proyek berlangsung di sebuah gedung perkantoran Sand Hill Road di Menlo
Park. Sekitar musim panas 1992 proyek ini ditutup dengan menghasilkan sebuah program Java
Oak pertama, yang ditujukan sebagai pengendali sebuah peralatan dengan teknologi layar
sentuh (touch screen), seperti pada PDA sekarang ini. Teknologi baru ini dinamai "*7" (Star
Seven).
Rangkuman Aplikasi dan Basis Data Page 1
Setelah era Star Seven selesai, sebuah anak perusahaan Tv kabel tertarik ditambah
beberapa orang dari proyek The Green Project. Mereka memusatkan kegiatannya pada sebuah
ruangan kantor di 100 Hamilton Avenue, Palo Alto.
Perusahaan baru ini bertambah maju: jumlah karyawan meningkat dalam waktu singkat
dari 13 menjadi 70 orang. Pada rentang waktu ini juga ditetapkan pemakaian Internet sebagai
medium yang menjembatani kerja dan ide di antara mereka. Pada awal tahun 1990-an, Internet
masih merupakan rintisan, yang dipakai hanya di kalangan akademisi dan militer.
Mereka menjadikan perambah (browser) Mosaic sebagai landasan awal untuk membuat
perambah Java pertama yang dinamai Web Runner, terinsipirasi dari film 1980-an, Blade
Runner. Pada perkembangan rilis pertama, Web Runner berganti nama menjadi Hot Java.Pada
sekitar bulan Maret 1995, untuk pertama kali kode sumber Java versi 1.0a2 dibuka. Kesuksesan
mereka diikuti dengan untuk pemberitaan pertama kali pada surat kabar San Jose Mercury
News pada tanggal 23 Mei 1995.
Sayangnya terjadi perpecahan di antara mereka suatu hari pada pukul 04.00 di sebuah
ruangan hotel Sheraton Palace. Tiga dari pimpinan utama proyek, Eric Schmidt dan George
Paolini dari Sun Microsystems bersama Marc Andreessen, membentuk Netscape.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "Bapak
Java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah
perangkat lunak lain sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama
penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji
(kopi tubruk) kesukaan Gosling. Konon kopi ini berasal dari Pulau Jawa. Jadi nama bahasa
pemrograman Java tidak lain berasal dari kata Jawa (bahasa Inggris untuk Jawa adalah Java).
Rangkuman Aplikasi dan Basis Data Page 2
BAB I
Latar Belakang Java
1. Platform Independent
Platform independent berarti program yang ditulis dalam bahasa Java dapat dengan
mudah dipindahkan antar berbagai jenis sistem operasi dan berbagai jenis arsitektur
komputer. Aspek ini sangat penting untuk dapat mencapai tujuan Java sebagai bahasa
pemrograman Internet di mana sebuah program akan dijalankan oleh berbagai jenis
komputer dengan berbagai jenis sistem operasi. Sifat ini berlaku untuk level source code
dan binary code dari program Java. Berbeda dengan bahasa C dan C++, semua tipe data
dalam bahasa Java mempunyai ukuran yang konsisten di semua jenis platform. Dengan
kelebihan ini pemrogram cukup menulis sebuah program Java dan dikompilasi (diubah, dari
bahasa yang dimengerti manusia menjadi bahasa mesin / bytecode) sekali lalu hasilnya
dapat dijalankan di atas beberapa platform tanpa perubahan. Kelebihan ini memungkinkan
sebuah program berbasis java dikerjakan diatas operating system Linux tetapi dijalankan
dengan baik di atas Microsoft Windows. Platform yang didukung sampai saat ini adalah
Microsoft Windows, Linux, Mac OS dan Sun Solaris. Penyebanya adalah setiap sistem
operasi menggunakan programnya sendiri-sendiri (yang dapat diunduh dari situs Java)
untuk meninterpretasikan bytecode tersebut. Source code program Java sendiri tidak perlu
dirubah sama sekali jika Anda ingin mengkompile ulang di platform lain. Hasil dari
mengkompile source code Java bukanlah kode mesin atau instruksi prosesor yang spesifik
terhadap mesin tertentu, melainkan berupa bytecode yang berupa file berekstensi .class.
Bytecode tersebut dapat langsung Anda eksekusi di tiap platform yang dengan
menggunakan Java Virtual Machine (JVM) sebagai interpreter terhadap bytecode tersebut.
JVM sendiri adalah sebuah aplikasi yang berjalan di atas sebuah sistem operasi dan
menerjemahkan bytecode program Java dan mengeksekusinya, sehingga secara konsep bisa
Rangkuman Aplikasi dan Basis Data Page 3
dianggap sebagai sebuah interpreter. Dengan cara ini, sebuah program Java yang telah
dikompilasi akan dapat berjalan di platform mana saja, asalkan ada JVM di sana.
Kompiler dan interpreter untuk program Java berbentuk Java Development Kit (JDK)
yang diproduksi oleh Sun Microsystems. JDK ini dapat didownload gratis dari situs
java.sun.com. Interpreter untuk program Java sendiri sering juga disebut Java Runtime atau
Java Virtual Machine. Interpreter Java, tanpa kompilernya, disebut Java Runtime
Environment (JRE) dapat didownload juga di situs yang sama. Untuk mengembangkan
program Java dibutuhkan JDK, sementara jika hanya ingin menjalankan bytecode Java cukup
dengan JRE saja. Namun untuk mengeksekusi applet (sebuah bytecode Java juga) Anda
biasanya tidak perlu lagi mendownload JRE karena browser yang Java-enabled telah
Seperti telah disebutkan sebelumnya bahwa String juga merupakan objek.
Sehingga membandingkan String yang satu dengan String yang lain dengan
menggunakan tanda == adalah membandingkan apakah alamat memori yang ditunjuk
oleh String yang satu sama dengan alamat memori yang ditunjuk oleh String yang lain.
Ingat == pada objek bukan membandingkan isi objek, tetapi membandingkan alamat
Rangkuman Aplikasi dan Basis Data Page 85
memori yang ditunjuk oleh variabel tersebut. Untuk membandingkan isi String, kita
dapat menggunakan String.equals() di mana parameternya adalah objek String yang
akan dibandingkan. Metode ini akan membandingkan karakter per karakter dari kedua
String.
Misalnya, variabel salam berisi String "Selamat". Untuk menguji apakah variabel
salam berisi "Selamat", bisa kita gunakan perintah
salam.equals("Selamat")
Konsekuensi lainnya adalah apabila suatu variabel merujuk pada objek yang
dideklarasikan sebagai final. Ini berarti nilai variabel itu tidak bisa berubah setelah
diinisialisasi, sedangkan isi variabel itu adalah rujukan ke alamat memori tempat objek
berada. Dengan demikian variabel tersebut akan selalu menunjuk pada alamat memori
yang sama. Akan tetapi hal ini tidak berlaku untuk objek itu sendiri. Apabila ada variabel
lain yang tidak "final" tetapi menunjuk pada alamat memori yang sama, kemudian
variabel ini mengubah isi objek tersebut, maka isi objek tersebut bisa berubah.
Kita boleh saja untuk menulis perintah sebagai berikut.
final Murid mrd = new Murid();
murid.nama = "Ahmad Basir";
Perhatikan pada kode di atas bahwa isi objek bisa diubah. Akan tetapi jika kita
mencoba menulis seperti ini
Murid mrd99 = new Murid();
mrd = mrd99; // ILEGAL, karena mrd adalah variabel final
5.2 Konstruktor dan Inisialisasi Objek
Kelas pada Java memiliki sifat yang sama sekali berbeda dengan tipe data primitif
lainnya, seperti int atauboolean. Seperti disebutkan pada bagian sebelumnya,
mendeklarasikan suatu variabel dengan tipe suatu kelas tidak berarti membuat objek
dari kelas tersebut. Objek tersebut harus dibuat (constructed). Pada saat objek dibuat,
komputer akan mencari tempat yang tidak dipakai pada memori heap untuk
Rangkuman Aplikasi dan Basis Data Page 86
menempatkan objek tersebut, kemudian mengisi objek itu dengan variabel instansi.
Sebagai programmer, kita tidak peduli dengan bagaimana suatu objek disimpan, akan
tetapi kita ingin mengatur supaya nilai yang disimpan pada saat objek tersebut dibuat
sesuai dengan keinginan kita. Dalam beberapa kasus, kita bahkan ingin suatu objek
melakukan tugas tertentu untuk pertama kali begitu ia diciptakan.
Variabel instansi dapat diisi dengan nilai awal pada saat ia dideklarasikan, seperti
variabel lainnya. Misalnya, kelas berikut yang bernama PasanganDadu, yang
melambangkan sepasang dadu. Kelas ini memiliki dua variabel instansi yang
melambangkan nilai yang ditunjukkan oleh masing-masing dadu dan metode instansi
untuk mengocok dadu, yaitu :
class PasanganDadu {
public int dadu1 = 3; // Angka pada dadu pertama
public int dadu2 = 4; // Angka pada dadu kedua
public void kocok() {
// Kocok dadu dengan menggunakan bilangan acak antara 1 dan 6
dadu1 = (int)(Math.random()*6) + 1;
dadu2 = (int)(Math.random()*6) + 1;
}
} // akhir kelas PasanganDadu
Variabel instansi dadu1 dan dadu2 diisi dengan nilai awal 3 dan 4. Inisialisasi ini
dilakukan setiap kali objek PasanganDadu dibuat. Ingat bahwa kelas PasanganDadu
hanya 1, akan tetapi kita bisa membuat banyak objek dari kelas ini. Setiap kali objek
dibuat, objek tersebut memiliki tempat di memori sendiri, yang disebut dengan instansi
objek tersebut. Perintah "dadu1 = 3" dan "dadu2 = 4" akan dieksekusi setiap kali objek
dibuat.
Kita bisa memodifikasi kelas PasanganDadu dengan nilai awal acak, bukan 3 dan 4
misalnya, dengan potongan kode berikut :
class PasanganDadu {
Rangkuman Aplikasi dan Basis Data Page 87
public int dadu1 = (int)(Math.random()*6) + 1; // Angka pada dadu pertama
public int dadu2 = (int)(Math.random()*6) + 1; // Angka pada dadu kedua
public void kocok() {
// Kocok dadu dengan menggunakan bilangan acak antara 1 dan 6
dadu1 = (int)(Math.random()*6) + 1;
dadu2 = (int)(Math.random()*6) + 1;
}
} // akhir kelas PasanganDadu
5.3 Kata Kunci This
Meskipun ide dasar dari pemrograman berorientasi objek merupakan konsep
yang cukup sederhana dan jelas, akan tetapi untuk memahaminya dengan baik kita
membuthkan lebih banyak waktu. Sayangnya, banyak sekali detail yang harus diulas di
luar konsep dasarnya. Bagian ini dan bagian berikutnya akan berbicara tentang hal-hal
detail, yang tidak perlu dikuasai dalam waktu singkat, akan tetapi pengenalan tentang
hal detail ini sangat berguna paling tidak sebagai bahan referensi.
Anggota statik suatu kelas bisa digunakan langsung di dalam kelas tersebut.
Untuk digunakan di kelas lain, maka ia harus dipanggil dengan nama lengkapnya dalam
bentuk "namaKelas.namaAnggota", misalnya "System.out" adalah variabel anggota
statik dengan nama "out" di dalam kelas "System". Kita bisa menggunakan nama
lengkap kelas tersebut di manapun, bahkan dari dalam kelas yang sama, misalnya
karena nama anggota tersebut disembunyikan oleh variabel lokal yang namanya sama.
Variabel dan metode instansi juga bisa digunakan langsung di dalam kelas
tersebut, misalnya suatu variabel instansi bisa digunakan langsung oleh metode instansi
di kelas yang sama. Anggota instansi juga memiliki nama lengkap akan tetapi ingat
bahwa anggota instansi dimiliki oleh objek, bukan kelas. Sehingga untuk memanggil
Rangkuman Aplikasi dan Basis Data Page 88
suatu anggota instansi, kita harus menggunakan nama objek yang diciptakan dari kelas
tersebut, dalam bentuk namaObjek.namaAnggota.
Akan tetapi, misalnya kita sedang menulis metode instansi di suatu kelas. Bagaimana
caranya kita memanggil anggota instansi kelas yang sama jika kita belum tahu nama
objek apa yang diciptakan dari kelas ini?
Java memiliki variabel spesial yang dinamakan "this" yang bisa digunakan untuk kasus di
atas. Variabel ini digunakan pada suatu objek untuk memanggil metode atau variabel
instansi pada objek yang sama. Maksudnya, this, merujuk pada "objek ini" yaitu objek di
mana metode sedang dijalankan. Jika x adalah variabel instansi dalam suatu objek, maka
this.x adalah nama lengkap variabel tersebut jika dipanggil dari dalam objek yang sama.
Jika metode suatuMetode() adalah metode instansi pada suatu objek, maka
this.suatuMetode() bisa digunakan untuk memanggil metode tersebut dari objek yang
sama. Ketika komputer menjalankan perintah tersebut, komputer akan mengganti
variabel this dengan objek yang berjalan pada saat itu.
Salah satu kegunaaan this adalah pada konstruktor, misalnya :
public class Murid {
private String nama; // Nama murid
public Murid(String nama) {
// Konstruktor, membuat murid dengan nama yang diberikan
this.nama = nama;
}
.
. // Variabel dan metode lain.
.
}
Dalam konstruktor di atas, variabel instansi nama disembunyikan oleh parameter
formal yang bernama sama. Akan tetapi, variabel instansi masih tetap bisa dipanggil
dengan nama lengkapnya, this.nama. Cara ini merupakan cara yang lazim, artinya kita
Rangkuman Aplikasi dan Basis Data Page 89
tidak perlu mengganti nama parameter formal dengan nama lain agar namanya tidak
bentrok dengan nama salah satu variabel instansinya. Kita bisa menggunakan nama
parameter formal yang sama persis dengan variabel instansinya.
Ada lagi kegunaan lain dari this. Ketika kita sedang menulis metode instansi, kita
ingin memberikan objek sebagai parameter aktual. Dalam hal ini, kita bisa menggunakan
this sebagai parameter aktualnya. Misalnya, kita ingin mencetak suatu objek sebagai
string, kita bisa menggunakan perintah "System.out.println(this);". Atau kita ingin
mengisi nilai this ke dalam variabel lain. Pokoknya, kita bisa melakukan segala hal seperti
layaknya variabel kecuali mengganti isinya.
5.4 Kelas Bertingkat
Suatu kelas merupakan blok bangunan suatu program, yang melambangkan
suatu ide beserta data dan perilaku yang dimilikinya. Kadang-kadang kita mungkin
berasa sedikit aneh untuk membuat kelas kecil hanya untuk menggabungkan beberapa
data. Akan tetapi kadang-kadang kelas-kelas kecil ini sering bermanfaat dan penting.
Untungnya Java membolehkan kita untuk membuat kelas di dalam kelas lain, sehingga
kelas-kelas kecil ini tidak perlu berdiri sendiri. Kelas kecil ini menjadi bagian dari suatu
kelas besar yang bisa melakukan hal-hal kompleks lainnya. Kelas kecil ini misalnya
berguna untuk mendukung operasi yang akan dikerjakan oleh kelas besarnya.
Dalam Java, kelas bertingkat atau kelas bagian dalam adalah kelas yang ditulis di
dalam definisi kelas lain. Kelas bagian dalam ini bisamemiliki nama atau anonim (tanpa
nama). Kelas bagian dalam yang memiliki nama tampak seperti kelas biasa, tetapi ia
ditulis di dalam kelas lain. (Kelas bagian dalam ini juga bisa memiliki kelas bagian dalam
yang lain, akan tetapi ingat akan konsekuensi kerumitannya apabila kita membuat
terlalu banyak tingkatan).
Seperti komponen lain dalam suatu kelas, kelas bagian dalam yang memiliki
nama bisa berupa kelas statik atau kelas non-statik. Kelas bertingkat statik merupakan
bagian dari struktur statik dari kelas yang menaunginya. Kelas tersebut bisa digunakan di
dalam kelas induknya untuk membuat objek seperti biasa. Jika tidak dideklarasikan
Rangkuman Aplikasi dan Basis Data Page 90
sebagai private, makan kelas tersebut juga bisa digunakan dari luar kelas induknya. Jika
digunakan dari luar kelas induknya, namanya harus jelas mencantumkan nama kelas
induknya. Mirip seperti komponen statik dari suatu kelas : kelas bertingkat statik adalah
bagian kelas di mana kelas tersebut mirip dengan variabel anggota statik lainnya di
dalam kelas tersebut.
Misalnya, suatu kelas bernama ModelRangkaKawat melambangkan kumpulan
garis dalam ruang 3 dimensi. Misalnya kelasModelRangkaKawat memiliki kelas
bertingkat statik yang bernama Garis yaitu sebuah garis. Maka dari luar
kelasModelRangkaKawat, kelas Garis akan dipanggil sebagai ModelRangkaKawat.Garis.
Kelas ModelRangkaKawat dan kelas bagian dalamnya dapat dituliskan seperti
berikut :
public class ModelRangkaKawat {
. . . // anggota lain kelas ModelRangkaKawat
static public class Garis {
// Melambangkan garis dari titik (x1,y1,z1)
// ke titik (x2,y2,z2) dalam ruang 3-dimensi
double x1, y1, z1;
double x2, y2, z2;
} // akhir kelas Garis
. . . // anggota lain kelas ModelRangkaKawat
} // akhir kelas ModelRangkaKawat
Di dalam kelas ModelRangkaKawat, objek Garis bisa dibuat dengan konstruktor
"new Garis()". Di luar kelas, perintah "newModelRangkaKawat.Garis()" harus digunakan.
Kelas bertingkat statik memiliki akses penuh kepada anggota dari kelas induknya,
termasuk ke anggota private. Mungkin ini juga motivasi sebagian orang untuk membuat
Rangkuman Aplikasi dan Basis Data Page 91
kelas bertingkat, karena kelas bagian dalamnya bisa mengakses anggota private kelas
lain tanpa harus membuat variabel atau metode anggotanya menjadi public.
Ketika kita mengkompilasi definisi kelas di atas, dua file kelas akan dibuat.
Meskipun definisi kelas Garis berada di dalamModelRangkaKawat, akan tetapi kelas
Garis akan disimpan dalam file terpisah. Nama file kelas Garis akan
menjadiModelRangkaKawat$Garis.class
Kelas bertingkat yang tidak statik, pada prakteknya, tidak jauh berbeda dengan
kelas bertingkat statik, akan tetapi kelas bertingkat non-statik berkaitan dengan suatu
objek, bukan kelas induknya.
Anggota non-statik dari suatu kelas sebenarnya bukan merupakan bagian dari
kelas itu. Hal ini juga berlaku untuk kelas bertingkat non-statik seperti juga bagian kelas
non-statik lainnya. Anggota non-statik suatu kelas menjelaskan apa yang akan disimpan
dalam objek yang diciptakan dari kelas tersebut. Hal ini juga berlaku (secara logis) dari
kelas bertingkat non-statik.
Dengan kata lain, setiap objek yang diciptakan dari kelas induknya memiliki kopi
kelas bertingkat masing-masing. Kopi ini memiliki akses ke semua variabel dan metode
instansi objek tersebut. Dua objek kelas bagian dalam pada dua objek induk merupakan
objek berbeda karena metode dan variabel instansi yang bisa diakses berasal dari objek
yang berbeda.
Pada dasarnya, aturan untuk menentukan kapan suatu kelas bisa dimasukkan ke
dalam kelas lain sebagai kelas statik atau non-statik adalah : Jika kelas tersebut perlu
menggunakan variabel atau metode instansi suatu objek (bukan variabel atau metode
statik kelas), maka kelas tersebut harus dibuat non-statik, jika tidak maka harus dibuat
statik.
Dari luar kelas induknya, kelas bertingkat non-statik harus dipanggil dalam
bentuk namaVariabel.NamaKelasBertingkat, misalnya namaVariabel adalah variabel
yang merujuk pada objek yang memiliki kelas bertingkat tersebut. Sebetulnya cara ini
agak langka. Kelas bertingkat non-statik biasanya digunakan hanya di dalam kelas
induknya, sehingga bisa diakses dengan nama yang sederhana.
Rangkuman Aplikasi dan Basis Data Page 92
Untuk membuat objek yang merupakan kelas bertingkat non-statik, kita harus
membuat objek yang merupakan kelas induknya. (Ketika bekerja di dalam kelas, objek
"this" akan secara otomatis digunakan). Objek dari kelas bertingkat tersebut
dihubungkan secara permanen dengan objek dari kelas induknya, dan memiliki akses
penuh atas anggota kelas induknya.
Mari lihat contoh berikut, dan mungkin bisa memberi pemahaman lebih baik
bagaimana kelas bertingkat non-statik sebetulnya merupakan hal yang sangat alami.
Misalnya suatu kelas yang melambangkan permainan kartu. Kelas ini memiliki kelas
beringkat yang melambangkan para pemainnya. Struktur MainKartu bisa berbentuk
seperti :
class MainKartu { // Melambangkan permainan kartu
class Pemain { // Melambangkan salah satu pemain game ini
.
.
.
} // akhir kelas Pemain
private Tumpukan tumpukan; // Tumpukan kartu
} // akhir kelas MainKartu
Rangkuman Aplikasi dan Basis Data Page 93
BAB VI
Konstruktor dan Overloading
JAVA merupakan program yang berorientasi Object. Dalam program yang
beroirentasi object mempunya konsep sebagai berikut :
1. Pemrograman berorientasi pada objek secara prinsip menjadikan objek sebagai
komponen utama dalam program
2. Objek menggabungkan data dan fungsi dalam satu kesatuan, sedangkan program yang
non objek menjadikan fungsi sebagai fokus utama
Rangkuman Aplikasi dan Basis Data Page 94
3. Pendekatan pemrograman berorientasi pada objek membuat pengembangan program
dapat dilakukan dengan mudah, mengurangi duplikasi kode program serta mengurangi
kesalahan
Dengan konsep seperti yang dijelaskan di atas, kita bias melihat bahwasannya
dengan mengunakan program yang berorientasi dengan lebih baik karena object
merupakan pecahan dari kelas. Agar lebih jelasnya kita menguanakan contoh seperti
ini :
1. Dalam penuliasan program, kita mendeklarasikan kelas mobil, dan didalam kelas mobil,
di dalam kelas mobil ada variable warna, merk dan tahun pembuatan.
2. Untuk membuat object kelas, dengan menulis sintax seperti ini
NamaKelas NamaObjek = new NamaKelas();
Atau
NamaKelas NamaObjek = new NamaKelas(...,...);
3. Dalam main class kita ingin mengakses variable variable tersebut, dengan mengunakan
bantuan object, kita bias mengakses variable tersebut tanpa harus mendeklarasikan
ulang variable variable tersebut, sebagai contoh :
Rangkuman Aplikasi dan Basis Data Page 95
Dalam contoh di atas, object merupakan object dari kelas mobil, yang dimana
disana terdapat object merk, thn_pembuatan, dan warnanya. Hasil dari program itu
adalah sebagai berikut :
Object dalam java juga bias untuk metoda (fungsi ) sebagai contoh :
Rangkuman Aplikasi dan Basis Data Page 96
Jadi dalam contoh program di atas, object.masukanpanjang() merupakan object
untuk metoda masukanpanjang(), karena berbeda kelas, dibutuhkan object untuk
menjebatani hal tersebut , dah hasil program di atas ialah sebagai berikut :
1. Konstruktor
Konstruktor ialah metoda yang memiliki nama yang sama dengan nama kelasnya,
konstrutor tidak memiliki nilai return, biasanya di gunakan untuk menginisialisasi
variable variable yang nantinya akan dip roses dip roses proses berikutnya. Konstruktor
dapat digunakan apabila pada suatu kelas access modifier pada variabel ingin dibuat
private, karena tanpa konstruktor maka akses terhadap variabel tersebut hanya bisa
pada kelas yang sama (tidak untuk kelas lain di luar kelas tersebut)
Contoh contoh pengunaan konstruktor ialah :
Rangkuman Aplikasi dan Basis Data Page 97
Access modifier nama_konstruktor ( Int a, int b, dst)
{
Jumlah = a;
Hasil = b;
}
Contoh Kostruktor
Nama konstruktor harus sama dengan nama kelasnya. Jadi jika ingin
mengunakan konstruktor, harus sama dengan nama kelasnya.
2. Overloading
Ialah metoda untuk membuat nama metoda ataupun kostruktor dengan nama
yang sama tetapi berbeda fungsi. Tujuannya di buat teknik overloading ini ialah agar
lebih fleksibel dan nama konstruktor ataupun metoda bisa sama namun berbeda
fungsinya, jadi lebih mudah, tidak terlalu banya membuat nama metoda.
Contoh Overloading :
Acces modifier tambah (int a, int b){
Isi metoda atau konstruktor;
}
Acces modifier tambah (int a,int b, int c){
Rangkuman Aplikasi dan Basis Data Page 98
Isi metoda / konntruktor
}
Jadi sebenarnya bisa sama nama, namun berbeda fungsinya di karenakan
parameter acuan dari metoda ataupun konstruktor berbeda, itulah yang membedakan
dari fungsinya, tapi jika nama metoda sama dan parameter acuannya sama pula, itu
tidak akan bisa overloading, overloading terjadi apabila nama metoda sama namun
parameter acuannya berbeda.
BAB VII
Inheritance, Polimorfisme, Abstract, dan Packet
Rangkuman Aplikasi dan Basis Data Page 99
1. Inheritance
Inheritance ialah pewarisan, jadi anak kelas akan mewarisi sifat sifat dari induk
kelas, seperti variable, metoda, namun, harus diingat, pewarisan ini hanya mewarisi sifat
sifat variable, dan metodanya, jikailau data ataupun isi variable itu tidak termasuk ke
dalam inheritance, dan untuk mengaksesnya juga di butuhkan object, dan harus me
input ulang untung data dari variable dan metoda.
Contoh dari Inheritance ialah :
Rangkuman Aplikasi dan Basis Data Page 100
Dalam inheritance ada sintax yang harus ada yaitu :
1.1 Extend
hal ini menandakan bahwa anak kelas menginduk ke induk kelas, contoh :
Jadi jika ada kata kunci extends ini, akan menandakan bahwa kelas polban
menginduk ke kelas dikti.
1.2 Superclass
Super class ialah kelas induk, jadi kelas yang menjadi acuan dari anak anak
kelasnya. Jika melihat contoh 1 di atas, maka kelas dikti menjadi superclassnya.
1.3 Subclass
Subclass ialah kelas anak, jadi kelas yang menginduk ke superclass, jadi kalau
melihat contoh 1 diatas, yang menjadi subclass ialah polban, yang menginduk ke
superclassnya yaitu kelas dikti.
Rangkuman Aplikasi dan Basis Data Page 101
Class polban extends dikti{Isi kelas;}
Contoh 1
1.4 Super
Keyword ini digunakan untuk memanggil konstruktor dari superclass atau
menjadi variabel yang mengacu pada superclass.
2. Polimorfisme
Polimorfisme ialah kemampuan untuk object bisa mengakses banyak bentuk.
jadi Polimorfisme berarti kemampuan dari suatu variabel referensi objek untuk memiliki
aksi berbeda bila method yang sama dipanggil, dimana aksi method tergantung dari tipe
objeknya. contoh dari polimorfisme ialah :
Rangkuman Aplikasi dan Basis Data Page 102
Jadi di contoh di atas, metoda memiliki nama yang sama, dengan fungsi yang
berbeda, nama metoda dan parameternya juga sama, yang membedakan ialah object
yang mengaksesnya, jadi tiap metoda di akses oleh object yang berbeda untuk tiap
metoda, walaupun nama metoda dan parameter sama précis, karena berbeda metoda
yang yang mengakses berbeda, ini yang di sebut polimorfisme.
Kondisi yang harus di penuhi untuk polimorfisme ialah :
Method yang dipanggil harus melalui variabel dari basis class atau
superclass.
Method yang dipanggil harus juga menjadi method dari basis class.
Signature method harus sama baik pada superclass maupun subclass.
Method access attribute pada subclass tidak boleh lebih terbatas dari
basis class (superclass).
3. Abstract
Abstarc ialah suatu kelas yang tidak memiliki fungsi, tidak memiliki isi, jadi hanya
mendefinisikan nama kelasnya aja, tidak ada isi kelasnya juga tidak jadi masalah
4. Package dan Import
Package ialah kumpulan dari banyak kelas ke dalam satu paket, jadi sebenarnya
sama saja seperti inheritance atau pewarisan, tapi kalo pewarisan hanya mewarisi 1
kelas saja, jika mengunakan package seluruh kelas yang termasuk kedalam itu bisa di
warisi semuanya, jadi superclassnya paket itu.Untuk kata kunci import, jadi kalau di
inheritance mengunakan extends, maka disini digunakan import, hanya berbeda sintax
namun sebenarnya fungsinya sama saja.
Contoh dari package dan import ialah :
Package 1 yang mempunyai nama package nana
Rangkuman Aplikasi dan Basis Data Page 103
Lalu package 2 yang mempunyai nama package nana juga
Pengabungan dengan Importnya ialah
Rangkuman Aplikasi dan Basis Data Page 104
Jadi kelas tugas_package3 terintegrasi dengan tugas_package1 dan
tugas_package2 yang mana tugas_package2 dan tugas_package1 tergabung ke dalam 1
package yaitu package nana. Dan tugas_package itu mewarsi sifat sifat kelas yang ada di
dalam package nana.
BAB VIII
Exception
Rangkuman Aplikasi dan Basis Data Page 105
1. Pengertian
Exception ialah kesalahan yang bukan kesalah sintax, tetapi merupakan
kesalahan proses, seperti pembagian bilangan dengan 0, exception ini harus ditangani,
karena jika tidak di tangani, maka akan mempengaruhi kinerja program, jika ada
excepton, misalkan ada 25 line, terjadi exception di line 5, maka dari line ke 6 sampei ke
line 25 tidak akan di eksekusi oleh program, hal ini yang tidak boleh terjadi dalam
program, kejadian kejadian exception bisa saja terjadi apabila program di hadapkan
dengan user, karena user tidak tahu apa yang harus dilakukan dan yang tidak boleh di
lakukan.
Bisa saja misalkan program ini tidak boleh membagi bilangan dengan 0, tetapi
user melakukan hal ini, jika tidak di tangani, maka program akan hang, hal ini yang tidak
boleh dilakukan, maka di gunakan exception handling.
Dalam exception handling ada beberapa kata kunci, yaitu :
1.1 Try
Blok try digunakan untuk mencheck suatu sintax, apakah menimbulkan
exception aau tidak, jika tidak menimbulkan exception tidak akan berlakuk apa apa,,
namun jika memang ada exception, maka akan ditangani dengan blok selanjutnya.
1.2 Catch
Catch berguna untuk menangkap exception yang muncul, jadi jika di blok try
terdapat exception, maka akan di tangkap oleh cach ini dengan exception yang telah di
tentukan, jika tidak sesuai exceptionnya maka exception ini belum tertangani. Maka dari
ini block catch ini sangat penting, exceptionnya pun juga harus pas dengan exception
yang muncul.
1.3 Finally
Rangkuman Aplikasi dan Basis Data Page 106
Blok finally ini berguna untuk seakan akan menghentikan pencarian exception,
langsung di abaikan, jadi mau exception tertangani atau tidak, blok finally ini akan tetap
dijalankan.
Untuk lebih jelasnya akan di jelaskan dengan contoh :
Disana di blok try ada exceptionnya, exceptionya yaitu ArithmeticException, lalu
di blok catchnya di tangkap dengan ArrayIndexOutOfBound, pasti ini tidak akan
tertangani karena blok catchnya tidak sesuai dengan exceptionnya, si program akan
menjadi eror dan blok instruksi di bawahnya tidak akan di jalankan, namun dengan
finally seakan akan di lupakan terlebih, dan blok ke bawahnya bisa djilankan termasuk
blok finally. Sebenarnya dengan adanya finally membantu programmer untuk mengatasi
exception bilamana exception yang di tentukan di blok catch tidak tepat dengan
exception yang timbul.
Ada peraturan juga untuk meng-catch exception, ada peraturan jika
mengunakan exception bertingkat cacth teratas harus merupakan anak kelas exception,
dan yang paling akhir merupakan induk kelasnya. Sebagai contoh, Exception –
RuntimeException – ArrayIndexOutOfBound. Maka jika mengunakan exception
Rangkuman Aplikasi dan Basis Data Page 107
bertingkat maka catch yang pertama harus ArrayIndexOutOfBound, lalu baru
RuntimeException dan terkahir baru Exception. Jika aturan ini di langgar maka akan
terjadi error ketika di build. Akan di jelaskan sedikit tentang pengetagun dari induk kelas
dan anak kelas dalam exception.
Ada juga yang disebut yang disebut dengan throw, throw ini berfungsi untuk
melempar ke kelas exception, jadi jika ada blok ini maka yang ada di dalam blok ini
menjadi / menimbulkan exception. Contohnya ialah :
Jadi NegativeNumberException mejadi exception dan akan di tangkap di catchnya.
BAB IX
Database
Rangkuman Aplikasi dan Basis Data Page 108
1. Pengertian
Pengertian database ialah sekumpulan data yang bisa di akses, bisa ditambah,
bisa didelete dan bisa diganti, bukan hanya bisa untuk dilihat saja tetapi bisa juga untuk
diubah-ubah, dalam perancangan database ada aturan aturan yang harus dipenuhi.
Database Management System(DBMS) merupakan paket program (software) yang dibuat
agar memudahkan dan mengefisienkan pemasukan, pengeditan, penghapusan, dan
pengambilan informasi terhadap database. Software yang tergolong ke dalam DBMS antar
lain Microsoft SQL, MySQL, Oracle, MS. Access dan lain-lain
Pokok pemikiran dalam perancangan database adalah bagaimana merancang
database sehingga dapat memenuhi kebutuhan saat ini dan kemudahannya untuk
dikembangkan dimasa yang akan datang. Perancangan model konseptual perlu dilakukan
disamping perancangan secara fisik.
Pada perancangan konseptual, digunakan beberapa konsep pendekatan
relasional namun tidak berarti konsep ini harus diimplementasikan ke model relasional saja
tetapi juga dapat dengan model Hierarchi dan model Network. Pda perancangan
konseptual tinjauan dilakukan pada struktur data dan relasi antar file menggunakan model
dan relasional.
Untuk menjalankan MySQL cukup dengan mengetikan mysql pada system
prompt. Dalam penulisan di dalam MySQL tidak membedakan huruf besar dan huruf kecil,
yang membedakan adalah sistem operasi yang digunakan:
Sistem operasi Unix/Linux akan membedakan huruf besar dan huruf kecil
Sistem operasi Windows tidak membedakan
Untuk mengakhiri setiap perintah diakhiri oleh tanda titik koma “;”. Jika tidak
diakhiri oleh tanda “;”, MySQL menunggu perintah selanjutnya. Untuk membatalkan
perintah di prompt MySQL, tambahkan perintah backslas cancel atau “\c” diakhir
perintah.Dalam hal ini kina mengunakan software MySql, dan di sambungkan dengan
Java.
Rangkuman Aplikasi dan Basis Data Page 109
Perancangan database
Dalam merancang suatu database, harus dilakukan atau harus dipenuhi 3
parameter yaitu :
1. Delete anomaly
2. Insert anomaly
3. Update anomaly
Mari lihat pengertian dari ketiga anomaly tersebut :
1. Delete Anomaly
Delete anomaly ialah aturan untuk mengatur aturan database, karena di dalam
database jika mendelete satu data, maka akan berdampak satu row dalam satu table.
Maka harus di pisahkan data data yang kemungkinan besar sering di delete, di pisahkan
agar mudah dan ketika nanti ada proses delete tidak mempengaruhi data yang tidak
seharusnya di delete.
2. Insert anomaly
Insert anomaly sebenarnya sama dengan delete anomaly, jadi dalam menginsert
kedalam table harus disi satu row, jika ada kolom yang sering dalam menginsert data,
harus dipisahkan tabelnya, agar tidak repot ketika meng-insert datanya. Jadi misalkan
kita hanya ingin meng-insert satu data, namun di dalam table data ada 7 kolom, jika kita
ingin meng-insert hanya satu data saja, sedangkan harus 7 data yang di insert, maka
akan terjadi eror, maka dari itu, kolom kolom yang data sering di insert datanya, harus
dipisahkan agar kemudian harinya ketika meng-insert data tidak harus meng-insert
seluruh data.
3. Update anomaly
Sebenarnya prinsip anomaly ini sama saja dengan delete dan insert anomaly,
prisnsipnya data yang sering di-update harus di pisahkan. Dan juga dalam mendelete
Rangkuman Aplikasi dan Basis Data Page 110
ada aturan untuk melihat kondisi, maka harus dipisahkan juga apabila ada data acuan
yang sama.
Setelah 3 parameter ini di penuhi, ada normally normally dalam merancang data
base, disini yang kami jelaskan cukup 3 normally.
1. First normally
First normally adalah keadaan yang table dimana dalam satu table tidak boleh
ada nama kolom yang sama dan tidak boleh ada kolom yang kosong, untuk memenuhi
keadaan fisrt normally, hal di atas harus di penuhi.
Dalam keadaan first anomally, keadaan table harus dipenuhi seperti ini :
NIM Nama Matkul Nilai
101331001 Abdurrachman Elkom 90
101331001 Abdurrachman SisKomDig 80
2. Second Anomally
Second anomally adalah keadaan dimana parameter parameter seperti insert
anomally, delete anomally dan update anomally, jadi keadaan table harus dipisah
pisahkan, agar memenuhi 3 parameter tersebut.
Contohnya :
NIM Nama Matkul Nilai
Rangkuman Aplikasi dan Basis Data Page 111
NIM Nama Matkul Nilai
101331001 Abdurrachman Elkom 90
SisKomDig 80
101331001 Abdurrachman Elkom 90
101331001 Abdurrachman SisKomDig 80
Yang memenuhi keadaan second anomally :
NIM Nama
101331001 Abdurrachamn
3. Third Anomally
Keadaan table ini ialah dimana keadaan second anomally sudah terpenuhi dan
mulai di berikan hubungan antar tabelnya. Apakah itu many to many, one to many, one
to one, dan many to one.
Contoh :
Ket * ialah primary key dan ** adalah forein Key dan hubungan table
data_mahasiswa dan data_matkul hubungannya one to many.
Dalam pembuatan database pada MySQL terdapat banyak sekali instruksi yang
dapat digunakan, diantaranya
Rangkuman Aplikasi dan Basis Data Page 112
PK
Many
NIM Matkul Nilai
101331001 Elkom 90
101331001 SisKomDIg 80
Data_mahasiswa
NIM *
NamaOne
Data_Matkul
NIM **
Matkul
Nilai
1. Menampilkan isi database yang terdapat pada MySQL. Untuk menampilkan isi database yang terdapat pada MySQL, digunakan instruksi show databases;.
2. Menghubungkan prompt dengan database yang sudah dibuat sebelumnyaSebelum membuat sebuah database, penting untuk mengetahui database mana yang akan digunakan sebagai media penyimpanan data. Untuk itu digunkana instruksi use <nama database>.
3. Menampilkan salah satu tabel yang terdapat pada database yang sedang digunakan. Untuk itu digunakan instruksi select * from <nama tabel>;.
4. Menampilkan data spesifik sesuai dengan kebutuhan, dapat menggunakan instruksi select * from <nama tabel> where <nama kolom1 = data> and <nama kolom2 = data>;.
5. Mensorting data secara ascending order digunakan instruksi select <nama kolom1, nama kolom2> from <nama tabel> order by <nama kolom acuan>;.
Rangkuman Aplikasi dan Basis Data Page 113
6. Mensorting data secara descending order, istruksi yang digunakan sama seperti sorting secara ascending order hanya saja ditambahkan instruksi desc; di akhir instruksi yang dibuat.
7. Membuat tabel data lahir, untuk tanggal lahir gunakan tipe data date dengan urutan tahun, bulan dan tanggal. Untuk nama dan tempat lahir, tipe data yang digunakan adalah char dilengkapi dengan jumlah karakter yang diinginkan.
8. Membandingkan data tanggal lahir dengan tanggal hari ini (current date) untuk kemudian dilakukan dilakukan perhitungan umur.
Rangkuman Aplikasi dan Basis Data Page 114
9. Meng-update data pada tabel, hal ini penting dilakukan jika ada perubahan pada data yang terdapat pada database sebelumnya.
10. Menghapus data pada tabel merupakan salah satu contoh update tapi dengan menghapus data yang sudah tidak diperlukan pada database.
Rangkuman Aplikasi dan Basis Data Page 115
Proses-proses yang akan dilakukan pada database tidak hanya dapat dilakukan
pada MySQL, tapi juga menggunakan Java dalam hal ini JCreator.
1. Menghubungkan JCreator dengan database yang terdapat pada MySQL.
Untuk menghubungkan MySQL dengan JCreator diperlukan sebuah aplikasi khusus yang dinamakan MySQL connection. Saat menghubungkan JCreator dengan database diperlukan data-data yang sesuai dengan database yang akan diakses. Model program yang digunakan adalah exception agar indikator koneksinya dapat lebih mudah terlihat, sehingga ketika koneksi dengan database berhasil dilakukan akan muncul kalimat “koneksi berhasil” pada output.
Rangkuman Aplikasi dan Basis Data Page 116
2. Menampilkan data yang terdapat pada database menggunakan JCreator.
Rangkuman Aplikasi dan Basis Data Page 117
Program ini tidak hanya menghubungkan JCreator dengan data yang terdapat pada database tapi juga menampilkan salah satu datanya. Dengan men-select elemen tabel data pada database, maka data tersebut akan ditampilkan pada JCreator.
3. Menambahkan data ke dalam database yang telah ada.
Rangkuman Aplikasi dan Basis Data Page 118
Data sebelum
Data setelah ditambahkan
Program ini bertujuan untuk menambahkan data ke dalam tabel yang telah ada pada database sebelumnya. Untuk menambahkan data hanyalah dengan menggunakan instruksi insert into nama_tabel kemudian masukkan data yang akan dimasukkan sesuai dengan kolom-kolom yang tersedia pada tabel yang akan diakses.