Anda di halaman 1dari 97

Kelas

LAPORAN PRAKTIKUM

SI-5 Pagi B

BAHASA PEMROGRAMAN JAVA

Nama Peraktikan

NPM Mahasiswa

Tanggal Kumpul

Tanda Tangan
Peraktikan

Ardian Wijaya

1314370089

Nama Penilai

12 Desember 2015

Tanggal Koreksi

Nilai

Tanda Tangan
Dosen

Indri Sulistianingsih,S.Kom

12 Desember 2015

Fakultas Ilmu Komputer


Universitas Pembangunan Panca Budi
Medan
2015

KATA PENGANTAR

Puji syukur saya panjatkan kehadirat Tuhan Yang Maha Esa karena dengan
rahmat, karunia, serta taufik dan hidayah-Nya saya dapat menyelesaikan Laporan
Praktikum ini dengan baik meskipun banyak kekurangan didalamnya. Dan juga saya
berterima kasih pada Ibu Indri Sulistianingsih,S.Kom selaku Dosen mata kuliah
Bahasa Pemrograman Java yang telah memberikan tugas ini kepada saya.
Semoga Laporan Praktikum ini dapat dipahami bagi siapapun yang membacanya.
Sekiranya laporan yang telah disusun ini dapat berguna bagi saya sendiri maupun
orang yang membacanya. Sebelumnya saya mohon maaf apabila terdapat kesalahan
kata-kata yang kurang berkenan dan saya memohon kritik dan saran yang
membangun demi perbaikan di masa depan.

DAFTAR ISI

KATA PENGANTAR ................................................................................................... i


DAFTAR ISI ................................................................................................................. ii
BAB I PENDAHULUAN ............................................................................................. 1
a. Latar Belakang ................................................................................................. 1
b. Tujuan Pratikum .............................................................................................. 3
c. Manfaat ............................................................................................................ 3
BAB II LANDASAN TEORI ....................................................................................... 7
a. Pernyataan dan Ekspresi .................................................................................. 7
b. Variabel, Tipe Data dan Literal ....................................................................... 8
c. Array .............................................................................................................. 17
d. Operator ......................................................................................................... 20
e. Operasi I/O Stream Sederhana ....................................................................... 24
f. Pengaturan Format Output Numerik .............................................................. 31
g. Konversi String dan Bilangan (Number) ....................................................... 34
h. Pernyataan Penentu Keputusan...................................................................... 35
i. Pernyataan Pengulangan Proses ..................................................................... 39
j. Pernyataan Pemindah Proses .......................................................................... 42
BAB III HASIL PERCOBAAN PRAKTIKUM (MODUL 2-8) ................................ 43
BAB IV ANALISA HASIL PERCOBAAN (MODUL 2-8) ...................................... 49
BAB V PENUTUP ...................................................................................................... 92
DAFTAR PUSTAKA ................................................................................................. 94
ii

BAB I
PENDAHULUAN
a. Latar Belakang
Bahasa pemrograman didalam membuat sebuah program yang dimana
akan mementingkan sebuah kualitas, daya tarik, nilai estetika, efisiensi, dan
kuantitas sangat diperlukan dan menjadi prioritas utama bagi programmer
yang akan bergelut didalam dunia pemrograman ini. Seperti yang diketahui,
dari zaman sebelum Indonesia merdeka, perkembangan dalam dunia
pemrograman memang sudah memiliki perkembangan yang cukup pesat, dari
bahasa pemrograman yang memiliki bahasa tingkat rendah (low level
language) seperti bahasa mesin, COBOL, FORTRAN, dll serta hingga
sekarang kita mengetahui dan juga dipakai yaitu bahasa tingkat tinggi (high
level language) seperti C, C++, Pascal, PHP, JAVA, dll. Apa perbedaan
antara low level language (bahasa tingkat rendah) dengan high level language
(bahasa tingkat tinggi) ? Perbedaannya ialah pada bahasa tingkat rendah
masih belum terciptanya komputer yang bebasis GUI (Graphic User Interface)
yang mana berfungsi untuk lebih menguntungkan pengguna dengan grafis
yang telah dibuat pada sistem operasi atau secara tidak langsung berinteraksi
atau bertatap muka langsung dengan jendela komputer tersebut untuk
mengetahui kekurangan dan kelebihan program yang akan dibuat serta cepat
didalam penanggapan jika terjadi kesalahan didalam pengeksekusian.
Sedangkan zaman dahulu sekitar 1900-an, fungsi komputer bukan digunakan
untuk seperti zaman sekarang, membantu segala apapun yang akan dibuat
1

manusia dengan fitur-fitur canggih yang ada didalamnya, namun komputer di


zaman dahulu hanya sebagai sebuah mesin yang dimana tugasnya hanya
melacak untuk sbeuah sinyal yang didapatkan pada area sekitarnya dan juga
digunakan sebagai penghubung komunikasi pada zaman perang dunia kedua.
Pada

bahasa

tingkat

rendah

juga

masih

menggunakan

kode-kode

(encoding/decoding) didalam pembuatan dan pengeksekusian program,


misalnya jika ingin memasukkan angka 2 maka, yang diinputkan ialah kode
berupa bilangan biner yaitu 0010.
Pada bahasa tingkat timggi (high level language) dimana bahasa ini
sudah bisa dipakai dan terealisasi pada GUI (Graphic User Interface) serta
memiliki kecepatan memori dan prosesor yang maksimal. Pada bahasa tingkat
tinggi pun programmer atau user bukan lagi memubuat sebuah komputer
sebagai pengantar sinyal atau pemberi sinyal seperti yang dilakukan pada era
sebelumnya, namun lebih mengembangkan bidang pemrograman ini sebagai
aplikasi yang mana nantinya lebih menguntungkan dan membantu manusia
(user) didalam pengerjaan apapun dan di segala bidang. Pada bahasa Java
yang dibahas pada laporan ini, dimana nantinya pemrograman ini lebih
menguntungkan manusia dalam pengerjaan di bidang komputerisasi serta
penggunaan nya bukan hanya bersifat statis atau bisa dikatakan hanya
berdiam dan dilaksanakan/digunakan pada komputer saja, namun secara
dinamis yaitu bisa diakses dimanapun dan kapanpun dengan berbasis web dan
pengaksesan bisa mellui sistem mobile yang akan berbasis aplikasi mobile
pada Java tersebut.
2

b. Tujuan Pratikum
Tujuan praktikum menggunakan bahasa pemrograman Java ialah :
1. Untuk memudahkan user didalam penggunaan aplikasi yang dibuat dengan
fitur-fitur andalanya.
2. Agar pengguna (user) dapat secara cepat didalam pengaksesan data dan
efisien.
3. Pengguna nantinya dapat mengakses program aplikasi dari bahasa Java
dalam segala platform OS (Operating System) seperti Windows, Linux, Unix,
Mac OS, dll.
4. Pengguna juga dapat menggunakan aplikasi di platform OS yang ada pada
smartphone atau mobile yaitu Android.
5. Koneksi database yang akan juga terhubung pada web juga dapat dilakukan
pada pemrograman Java. Jadi dapat digunakan ketika online.
6. Supaya pembaca ataupun user dapat memahami pemrograman Java lebih
luas dengan adanya laporan praktikum ini.

c. Manfaat
Bahasa Pemrograman JAVA digunakan untuk membuat seluruh bentuk
aplikasi, dekstop, web dan lainnya, sebagai mana dibuat dengan menggunakan
bahasa pemrograman konvensional lainnya.
Kelebihan
Multiplatform. Kelebihan utama dari Java ialah dapat dijalankan di
beberapa platform / sistem operasi komputer, sesuai dengan prinsip tulis
3

sekali, jalankan di mana saja. 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.
OPP(Object Oriented Programming Pemrogram Berorientasi Objek) yang
artinya semua aspek yang terdapat di Java adalah objek. Java merupakan salah
satu bahasa pemrograman berbasis oebjek secara murni. Semua tipe data
diturunkan dari kelas dasar yang disebut Object. Hal ini sangat memudahkan
pemrogram untuk mendesain, membuat, mengembangkan dan mengalokasi
kesalahan sebuah program dengan basis Java secara cepat, tepat, mudah dan
terorganisir. Kelebihan ini menjadikan Java sebagai salah satu bahasa
pemograman termudah, bahkan untuk fungsi fungsi yang advance seperti
komunikasi antara komputer sekalipun.
Perpustakaan Kelas Yang Lengkap, Java terkenal dengan kelengkapan
library/perpustakaan (kumpulan program program yang disertakan dalam
pemrograman java) yang sangat memudahkan dalam penggunaan oleh para
pemrogram untuk membangun aplikasinya. Kelengkapan perpustakaan ini
4

ditambah dengan keberadaan komunitas Java yang besar yang terus menerus
membuat

perpustakaan-perpustakaan

baru

untuk

melingkupi

seluruh

kebutuhan pembangunan aplikasi.


Bergaya C++, memiliki sintaks seperti bahasa pemrograman [C++]
sehingga menarik banyak pemrogram C++ untuk pindah ke Java. Saat ini
pengguna Java sangat banyak, sebagian besar adalah pemrogram C++ yang
pindah ke Java. Universitas-universitas di Amerika juga mulai berpindah
dengan mengajarkan Java kepada murid-murid yang baru karena lebih mudah
dipahami oleh murid dan dapat berguna juga bagi mereka yang bukan
mengambil jurusan komputer.
Pengumpulan sampah otomatis, memiliki fasilitas pengaturan penggunaan
memori sehingga para pemrogram tidak perlu melakukan pengaturan memori
secara langsung (seperti halnya dalam bahasa C++ yang dipakai secara luas).
Kekurangan
Tulis sekali, perbaiki di mana saja Masih ada beberapa hal yang tidak
kompatibel antara platform satu dengan platform lain. Untuk J2SE misalnya
SWT-AWT bridge yang sampai sekarang tidak berfungsi pada Mac OS X
Mudah didekompilasi. Dekompilasi adalah proses membalikkan dari kode
jadi menjadi kode sumber. Ini dimungkinkan karena koe jadi Java merupakan
bytecode yang menyimpan banyak atribut bahasa tingkat tinggi, seperti namanama kelas, metode, dan tipe data. Hal yang sama juga terjadi pada
Microsoft.NetPlatform Dengan demikian, algoritma yang digunakan program
akan lebih sulit disembunyikan dan mudah dibajak/direverse-engineer.
5

Penggunaan memori yang banyak. Penggunaan memori untuk program


berbasis Java jauh lebih besar daripada bahasa tingkat tinggi generasi
sebelumnya seperti C/C++ dan Pascal (lebih spesifik lagi, Delphi dan Object
Pascal). Biasanya ini bukan merupakan masalah bagi pihak yang
menggunakan teknologi terbaru (karena trend memori terpasang makin
murah), tetapi menjadi masalah bagi mereka yang masih harus berkutat
dengan mesin komputer berumur lebih dari 4 tahun.

BAB II
LANDASAN TEORI
a. Pernyataan dan Ekspresi
Pernyataan penyeleksian dan pernyataan perulangan, Java juga memiliki
pernyataan break dan continue sebagai kontrol tambahan yang dapat
digunakan untuk merubah arah kontrol program. Pernyataan continue dapat
digunakan untuk mengakhiri proses iterasi yang sedang berlangsung,
melewati dan tidak mengeksekusi sisa pernyataan yang masih ada di dalam
pernyataan perulangan untuk kemudian melanjutkan proses ke iterasi
berikutnya (continuing the next iteration). Di dalam perulangan while dan dowhile, program akan mengevaluasi ekspresiboolean dengan segera setelah
pernyataan continue dieksekusi, sedangkan di dalam perulangan for, aksisetelah-tiap-iterasi dari perulangan for akan dieksekusi dan kemudian kondisikelanjutan-loop dievaluasi kembali.
Ekspresi adalah suatu bentuk yang menghasilkan suatu nilai . Dalam bentuk
sederhana, ekspresi berupa sebuah literal atau variabel. dalam bentuk yang
lebih kompleks, suau ekspresi melibatkan operator dan operand, misal :
1 + 2 merupakan suatu ekpresi yang menghasilkan nilai 3. Dalam hal ini 1 dan
2 bertindak sebagai operand dan + berperan sebagai operator.

b. Variabel, Tipe Data dan Literal


1. Variabel
Variabel adalah item yg digunakan untuk menyimpam pernyataan objek.
Variabel memiliki tipe data dan nama. Tipe data men kan tipe nilai yg
dapat dibentuk oleh variabel itu sendiri. Nama variabel harus mengikuti
aturan untuk identifier.
2. Tipe Data
Ada dua tipe data yang tersedia di java :
A. tipe data primitif
B. tipe data object/reference.

A. Tipe data primitif:


Ada delapan tipe data primitif yang didukung oleh java, tipe data primitif
ditetapkan oleh bahasa dan dinamai oleh keyword(kata kunci). berikut
adalah delapan tipe data primitif.

1. byte
tipe data byte adalah 8-bit signed bilangan bulat, tipe data byte digunakan
untuk menghemat memori. Tipe data byte berukuran 4 kali lebih kecil
dibanding int.

range-nya dari -128 sampai 127.


nilai defaultnya adalah 0.
8

contohnya : byte a = 100, byte b = -50

2. short
tipe data short adalah 16 bit bilangan bulat, short juga digunakan untuk
menghemat memori seperti pada tipe data byte. Bedanya short 2 kali lebih
kecil dibanding sebuah int.

rangenya dari -32,768 sampai 32,767


nilai defaultnya adalah 0;
contohnya : short s = 10000, short r = -20000

3. int
int adalah tipe data 32 bit bilangan bulat, int digunakan sebagai tipe data
default untuk nilai integral kecuali kita mulai konsern soal memori.

rangenya -2,147,483,648 sampai 2,147,483,647


nilai defaultnya adalah 0
contohnya : int a = 100000, int b = -200000

4. long
long adalah tipe 64 bit bilangan bulat, tipe data ini digunakan untuk range
data yang lebih lebar dari int.

range-nya

dari

-9,223,372,036,854,775,808

sampai

9,223,372,036,854,775,807
nilai defaultnya adalah 0L.
contohnya : int a = 100000L, int b = -200000L

5. float
float adalah tipe data single-precision 32 bit IEEE 754 floating point,
bahasa sederhananya float digunakan untuk bilangan pecahan. tipe data
float sebaiknya tidak digunakan untuk nilai-nilai yang presisi seperti mata
uang.

nilai defaultnya adalah 0.0f


contohnya : float f1 = 234.5f

6. double
double adalah tipe data 64 bit IEEE 754 floating point. tipe data ini
umumnya digunakan untuk tipe data desimal. sebaiknya tipe data double
tidak digunakan untuk nilai presisi seperti mata uang.

nilai defaultnya adalah 0.0d.


contohnya : double d1 = 123.4

10

7. boolean
tipe data boolean mewakili informasi 1 bit, nilainya hanya tersedia dua
pilihan yaitu true dan false. tipe data ini digunakan untuk menandai
kondisi true/false.

nilai defaultnya adalah false:


contohnya : boolean one = false

8. char
tipe data char adalah sebuah karakter 16 bit Unicode. tipe data char
digunakan hanya untuk menyimpan data berupa karakter.
contohnya : char letterA = 'A'

B. Tipe data reference


tipe data reference dibuat dan didefinisikan oleh constructor dari class.
tipe data ini digunakan untuk mengakses object. variable ini
dideklarasikan menjadi bagian dari tipe data yang lebih spesifik yang tidak
bisa diubah. variabel referensi dapat digunakan untuk tipe data yang
dideklarasikan atau tipe data apapun.

nilai default adalah null;


contohnya : Animal animal = new Animal("giraffe");

11

3. Literal
Penjelasan tentang Literal, yaitu rangkaian kata atau huruf yang
menyatakan suatu nilai. Misalnya:

int angka = 10;

Pada pernyataan di atas, yang dinamakan literal adalah 10, karena 10


berarti bilangan bulat atau integer. Pada bahasa pemrograman java,
terdapat beberapa jenis literal yang melambangkan bilangan bulat, riil,
kalimat, atau boolean.

Literal Bilangan Bulat


Bilangan bulat dapat dilambangkan dalam beberapa bentuk. Bilangan
bulat biasa dilambangkan dengan deretan angka yang dimulai dengan
angka yang bukan nol.

int angka = -10;

Bilangan oktal adalah bilangan bulat berbasis 8, yang berarti hanya


dapat terdiri dari angka-angka 0 hingga 7. Bilangan oktal ditulis seperti
bilangan bulat biasa dimulai dengan 0.

12

// 22 basis delapan atau 18 dalam desimal


int angka = 022;

Bilangan heksadesimal adalah bilangan berbasis 16. Bilangan


heksadesimal dilambangkan dengan 0 hingga 9 dan a hingga f dan
dimulai dengan 0x.

// 2a heksadesimal atau 42 dalam desimal


int angka = 0x2a;

Long integer membutuhkan memori sebesar 64bit, yang artinya kita


dapat menyimpan bilangan bulat hingga 2 ^ 64. Untuk merepresentasikan
long integer, tambahkan huruf L pada akhir bilangan.

int angka = 22L;

Literal Karakter
Kita dapat melambangkan suatu karakter dengan tanda petik tunggal
misalnya a atau 3 atau =. Suatu karakter dapat juga dilambangkan
dengan kode ASCII nya. Caranya dengan memulainya dengan \u00 (garis
miring terbalik) kemudian diikuti dengan kode ASCII nya dalam bentuk
heksadesimal.

13

// huruf 'A' dalam ASCII


char huruf = '\u0041';

Literal Boolean
Nilai true dan false pada java merupakan literal boolean. Suatu variabel
bertipe boolean hanya dapat memiliki nilai true atau false.

boolean ok = true;

Ingat bahwa boolean true atau false TIDAK menggunakan tanda petik
tunggal seperti ekspresi pada karakter.

Literal Bilangan Riil


Bilangan riil, misalnya -0.00127 atau 415.842, pada java dapat
disimpan baik sebagai float atau double. Bilangan real dapat
direpresentasikan dalam bentuk desimal biasa, pecahan, atau eksponen
(dilambangkan dengan e atau E).

Imbuhan akhir d atau D dan f atau F dapat pula ditambahkan untuk


menentukan tipenya secara eksplisit. Berikut beberapa contohnya.

double d = 3.27E+32;
float f = 4f;
14

float pi = 3.14159;

Literal String
String merupakan untaian huruf dan angka yang tersusun menjadi satu
kalimat. Dalam bahasa java, string bukan merupakan tipe primitif, tetapi
merupakan kelas. String pada java tidak disimpan dalam bentuk array
seperti pada C. Java menyediakan beberapa metoda untuk melakukan
penggabungan, modifikasi, atau perbandingan. String ditulis di antara dua
tanda petik ganda seperti contoh berikut.

String salam = "Selamat Datang";

String juga dapat mengandung karakter spesial seperti dibahas pada


literal karakter. Misalnya

String hallo = "Selamat Datang \"Bapak Presiden\"";


System.out.println("Hallo Bambang\nSelamat pagi,\nSemoga hari anda
cerah\n";

Berikut ini adalah beberapa contoh lainnya.

// Contoh string kosong


String teks = "";
15

// Contoh string berisi "


teks = "\"";

// String dapat juga dipisah menjadi beberapa baris


teks = "ini baris pertama " +
"dan ini lanjutannya."

Literal Null
Literal terakhir pada bahasa java adalah literal null. Null merupakan
kondisi di mana suatu objek tidak diberi alokasi memori. Pada saat suatu
objek dideklarasikan, komputer akan mengalokasikan memori untuk
objek tersebut. Apabila objek tersebut telah selesai dipergunakan, kita
dapat melepas lokasi memori yang digunakan oleh objek tersebut
sehingga memori itu dapat digunakan oleh objek lain. Berikut ini adalah
contohnya

obj = null;

Literal null berfungsi memberi tahu garbage collector (pemulung


memori) bahwa objek tersebut tidak lagi terpakai. Kemudian memori
akan dilepaskan agar dapat digunakan oleh objek lain.

16

c. Array
Array adalah sekumpulan data yang mempunyai nama variabel dan tipe data
yang sama. karena mempunyai nama variabel yang sama, maka untuk
membedakan data yang satu dengan yang lainnya maka digunkanlah nomor
index. Bayangkan jika dalam program kita membutuhkan variabel yang
banyak, misalnya 100 variabel. Maka, kalau kita harus mendeklarasikan satupersatu hal ini akan kurang effisien. Maka di Java ada konsep yang dinamakan
dengan array. Untuk memberikan keterangan yang jelas mengenai array maka
dapat digambarkan sebagai berikut:

Deklarasi Array
Untuk mendeklarasikan array bisa digunakan beberapa cara sebagai berikut:
Tidak menyebutkan berapa jumlah elemen array. Untuk menyatakan berapa
elemen dalam array, bisa diberikan setelah pendeklarasian. Format umumnya
sebagai berikut:
typeData[] namaArray;
atau bisa juga
typeData namaArray[];
Kurung siku bisa ditulis setelah tipeData atau namaArray-nya.

Contoh:
int[] bilangan;
atau
17

int bilangan[];

Untuk menyatakan berapa elemen dalam array gunakan format umum


sebagai berikut:
namaArray = new tipeData[jumlahElemen];
contoh:
bilangan = new int[10];

Dengan menyebutkan berapa jumlah elemen array yang dibuat. Untuk


mendeklarasikan array dengan menyebutkan jumlah elemen yang bisa dimuat
dalam array, menggunakan format umum sebagai berikut:
tipeData[] namaVariabel = new tipeData[jumlahElemen];
contoh:
int[] bilangan = new int[10];

Tidak menyebutkan berapa jumlah array tetapi langsung mengisinya dengan


elemen-elemen array-nya. Format umumnya adalah sebagai berikut:
tipeData[] namaVariabel = {elemenKe-1, elemenKe-2, elemenKe-3, ...,
elemenKe-n}
contoh
int[] bilangan = {9,7,6,3,5}

18

Perlu diketahui bahwa index array di Java di mulai dari 0, bukan dari 1.
Sehingga apabila suatu array mempunyai kapasitas 10 elemen, maka nomor
index-nya dimulai dari 0 sampai 9. Kalau array bisa kapasitasnya n elemen,
maka nomor index-nya dimulai dari 0 sampai n-1.
Memberikan nilai pada array
Untuk memberikan nilai pada array, dengan cara menyebutkan nomor indexnya. Ingat, bahwa array bisa menampung data lebih dari satu dan setiap
elemennya mempunyai nomor index untuk membedakan dengan elemen yang
lain. Format umum untuk memberi nilai array pada nomor index tertentu
adalah sebagai berikut:
namaArray[nomorIndex] = nilai;
contoh
bilangan[0] = 5;
Maksud dari pernyataan di atas adalah, array dengan nama bilangan pada
index ke-0 diisi dengan nilai 5.
contoh lain:
bilangan[1] = 7;
bilangan[2] = 4;
bilangan[3] = 6;
Mengetahui elemen array
Untuk mengetahui elemen array pada index tertentu, maka bisa digunakan
format umum sebagai berikut:
namaArray[noIndex];
19

contoh:
bilangan[3];
misalnya kalau digunakan dalam statement berikut:
System.out.println(bilangan[3])
maka di layar akan ditampi elemen array bilangan pada index ke-3.
Mengetahui kapasita (elemen) array
Untuk mengetahui kapasitas (jumlah) elemen yang bisa ditampung array
digunakan method length, bentuk umumnya adalah sebagai berikut:
namaArray.length;
contoh:
bilangan.length;

d. Operator
Java menyediakan lingkuangan yag kaya akan operator dimana
operator ini fungsinya untuk membantu atau sebagai perantara dari sebuah
operand

yang

digunakan

pada

bahasa

Java

dan

kemudian

akan

dieksekusi/complie. Operator-operator Java dapat dikelompokkan menjadi


beberapa kelompok; aritmatik, bitwise, relasional, dan logikal.
Operator Aritmatik
Operator-operator

aritmatik

dipakai

dalam

ekspresi-ekspresi

matematik, seperti pada aljabar. Berikut ini merupakan tabel yang merangkum
semua operator aritmatik.

20

Tiap operand dari operator-operator aritmatik harus bertipe numerik. Kita tak
dapat menerapkannya pada tipe-ripe boolean, tatapi kita dapat menerapkannya
terhadap tipe-tipe char, karena tipe char pada Java adalah subhimpunan dari
int.
Operator Bitwise
Java mendefinisikan beberapa opertaor bitwise yang dapat diterapkan
pada tipe-tipe integer seperti long, int, short, char, dan byte. Semua operator
ini berperan terhadap bit-bit individual dari operand-operandnya.
Berikut ini merupakan tabel yang merangkum semua operator bitwise.

21

Bitwise NOT
Dikenal dengan bitwise complement atau operator NOT unary. Opertaor ini
menginversi semua bit dari operandnya. Sebagai contoh, nilai 42 (desimal),
memiliki pola bit :
00101010
menjadi
11010101
setelah operator NOT diterapkan.

22

Bitwise AND
Operator AND, &, menghasilkan bit 1 jika kedua operandnyajuga bernilai 1.
Bit 0 dihasilkan untuk kasus-kasus lain. Berikut adalah contohnya.
00101010 (42)
&00001111 (15)
00001010 (10)

Bitwise OR
Operator OR, |, mengkombinasikan bit-bit sehingga jika terdapat sedikitnya
salah satu bit operand bernilai 1, maka bit yang dihasilkan adalah 1, seperti
ditunjukkan disini:
00101010 (42)
| 00001111 (15)
00101111 (47)

Bitwise XOR
Operator XOR, ^ , mengkombinasikan bit-bit sehingga jika hanya dan hanya
satu bit operand bernilai 1, maka bit hasil adalah 1. Selain itu, bit hasil adalah
0. Berikut diberikan suatu contoh penggunaan operator XOR.
00101010 (42)
^00001111 (15)
00100101 (37)

23

e. Operasi I/O Stream Sederhana


Dalam sebuah pemrograman berorientasi object seperti halnya
Program Java, kita mengenal sebuah pengontrol aliran program yang akan
dieksekusi oleh komputer (Threads). Dengan adanya threads dalam
pemrograman java kita dapat membuat program yang saling berurutan
(sekuensial).
Thread merupakan kemampuan yang disediakan oleh Java untuk membuat
aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan
tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih
efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita
dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread
umumnya digunakan untuk pemrograman multitasking, networking, yang
melibatkan pengaksesan ke sumber daya secara konkuren.
Secara konkrit, konsep threads dapat dilihat ketika kita mengetik sebuah
dokumen di komputer dengan menggunakan text editor, dalam waktu yang
bersamaan kita juga dapat mendengarkan musik, dan surfing lewat internet
pada PC. Sistem operasi yang telah terinstal dalam komputer kita
memperbolehkan untuk menjalankan multitaskting. Seperti itu juga sebuah
program, ia juga dapat mengeksekusi beberapa proses secara bersama-sama
(ibaratkan beberapa aplikasi berbeda yang bekerja pada sebuah PC). Contoh
aplikasi adalah HotJava browser yang memperbolehkan untuk browsing
terhadap suatu page, bersamaan dengan mendownload object yang lain,

24

misalnya gambar, memainkan animasi, dan juga file audio pada saat yang
bersamaan.
Sedangkan ketika kita melakukan penulisan dan pembacaan data sering kita
sebut dengan proses input dan output, dimana penulisan data berarti
mengalirkan data ke output dan menerima atau mendapatkan data dari input.
Kita mengenal, dua macam stream yaitu Stream Input dan Stream output.
Stream adalah representasi abstrak dari input dan output device, dimana aliran
bytes akan ditransfer seperti file dalam harddisk, file pada sistem remote atau
printer. Kita dapat membaca data dari input stream, yang dapat berupa file,
keyboard atau komputer remote. Sedangkan untuk operasi penulisan berarti
menulis data pada output stream. Package Java I/O mendukung dua tipe
stream, yaitu binari dan karakter stream. Binari merupakan data berupa bit
atau data binari, sedangkan karakter adalah tipe khusus untuk pembacaan dan
penulisan teks/karakter.
Thread merupakan kemampuan yang disediakan oleh Java untuk membuat
aplikasi yang tangguh, karena thread dalam program memiliki fungsi dan
tugas tersendiri. Dengan adanya thread, dapat membuat program yang lebih
efisien dalam hal kecepatan maupun penggunaan sumber daya, karena kita
dapat membagi proses dalam aplikasi kita pada waktu yang sama. Thread
umumnya digunakan untuk pemrograman multitasking, networking, yang
melibatkan pengaksesan ke sumber daya secara konkuren. Ada dua cara yang
bisa digunakan dalam membuat sebuah thread, yaitu :

25

# Membuat subclass dari thread


Untuk menjalankan thread, dapat dilakukan dengan memanggil method
start(). Saat start() dijalankan, maka sebenarnya method run() dari class akan
dijalankan. Jadi untuk membuat thread, harus mendefinisikan method run()
pada definisi class. Konstruktor dari cara ini adalah :
ClassThread namavar = new ClassThread();
Namavar.start();
Atau dapat juga langsung dengan cara:
New ClassThread().start();

#Mengimplementasikan interface Runnable


Cara ini merupakan cara yang paling sederhana dalam membuat thread.
Runnable merupakan unit abstrak, yaitu kelas yang mengimplementasikan
interface ini hanya cukup mengimplementasikan fungsi run(). Dalam
mengimplementasi fungsi run(), kita akan mendefinisikan instruksi yang
membangun sebuah thread. Konstruktor dari cara ini adalah :
ObjekRunnable objek = new ObjekRunnable();
Thread namavar = new Thread(Objek Runnable);
Atau dengan cara singkat seperti :
New Thread(new ObjekRunnable());

Dalam pemrograman java ada dua threads, yaitu daemon dan user thread.
Daemon thread merupakan thread yang siklus hidupnya tergantung pada
26

thread utama atau induk, sehingga apabila thread induk berakhir, maka
otomatis thread-thread daemon juga ikut berakhir. Sedangkan user thread
memiliki sifat berbeda, dimana apabila thread utama sudah selesai, maka user
thread akan terus dijalankan.

Macam-macam state pada streads:


1. Running
Sebuah thread yang pada saat ini sedang dieksekusi dan didalam control dari
CPU.
2. Ready to run
Thread yang sudah siap untuk dieksekusi, tetapi masih belum ada kesempatan
untuk melakukannya.
3. Resumed
Setelah sebelumnya di block atau diberhentikan sementara, state ini kemudian
siap untuk dijalankan.
4. Suspended
Sebuah thread yang berhenti sementara, dan kemudian memperbolehkan CPU
untuk menjalankan thread lain bekerja
5. Blocked
Sebuah thread yang di-block merupakan sebuah thread yang tidak mampu
berjalan, karena ia akan menunggu sebuah resource tersedia atau sebuah event
terjadi

27

Untuk menentukan thread mana yang akan menerima control dari CPU dan
akan dieksekusi pertama kali, setiap thread akan diberikan sebuah prioritas.
Sebuah prioritas adalah sebuah nilai integer dari angka 1 sampai dengan 10,
dimana semakin tinggi prioritas dari sebuah thread, berarti semakin besar
kesempatan dari thread tersebut untuk dieksekusi terlebih dahulu. Sebagai
contoh, asumsikan bahwa ada dua buah thread yang berjalan bersama-sama.
Thread pertama akan diberikan prioritas nomor 5, sedangkan thread yang
kedua memiliki prioritas 10. Anggaplah bahwa thread pertama telah berjalan
pada saat thread kedua dijalankan. Thread kedua akan menerima control dari
CPU dan akan dieksekusi pada saat thread kedua tersebut memiliki prioritas
yang lebih tinggi dibandingkan thread yang pada saat itu tengah berjalan.
Salah satu contoh dari skenario ini adalah context switch.
Sebuah context switch terjadi apabila sebagian dari thread telah dikontrol oleh
CPU dari thread yang lain. Ada beberapa skenario mengenai bagaimana cara
kerja dari context switch. Salah satu skenario adalah sebuah thread yang
sedang berjalan memberikan kesempatan kepada CPU untuk mengontrol
thread lain sehingga ia dapat berjalan.
Dalam kasus ini, prioritas tertinggi dari thread adalah thread yang siap untuk
menerima kontrol dari CPU. Cara yang lain dari context switch adalah pada
saat sebuah thread yang sedang berjalan diambil alih oleh thread yang
memiliki prioritas tertinggi seperti yang telah dicontohkan sebelumnya. Hal
ini juga mungkin dilakukan apabila lebih dari satu CPU tersedia, sehingga
lebih dari satu prioritas thread yang siap untuk dijalankan.
28

Untuk menentukan diantara dua thread yang memiliki prioritas sama untuk
menerima kontrol dari CPU, sangat bergantung kepada sistem operasi yang
digunakan. Windows 95/98/NT menggunakan time-slicing dan round-robin
untuk menangani kasus ini. Setiap thread dengan prioritas yang sama akan
diberikan sebuah jangka waktu tertentu untuk dieksekusi sebelum CPU
mengontrol thread lain yang memiliki prioritas yang sama. Sedangkan Solaris,
ia akan membiarkan sebuah thread untuk dieksekusi sampai ia menyelesaikan
tugasnya atau sampai ia secara suka rela membiarkan CPU untuk mengontrol
thread yang lain.
Stream merupakan dasar operasi input-output ( I/O ) dalam Java yang
menggunakan package java.io sebagai package utama. Stream adalah
representasi abstrak dari input dan output device, dimana aliran bytes akan
ditransfer seperti file dalam harddisk, file pada sistem remote atau printer.
Kita dapat membaca data dari input stream, yang dapat berupa file, keyboard
atau komputer remote. Sedangkan untuk operasi penulisan berarti menulis
data pada output stream. Package java.IO mendukung dua tipe stream, yaitu
binari dan karakter stream. Binari merupakan data berupa bit atau data binari,
sedangkan karakter adalah tipe khusus untuk pembacaan dan penulisan
teks/karakter.

A. Input Stream
Subclass-subclass dari input Stream adalah: Audio Input Stream, Byte Array
Input Stream, File Input Stream, Filter Input Stream, Piped Input Stream,
29

Sequence Input Stream, dan String Buffer Input Stream. Dua method utama
dari InputStream adalah :
a. Read : Method ini digunakan untuk membaca stream
b. Close : Method ini digunakan untuk menutup koneksi input stream.
B. Output Stream
Subclass-subclass dari outputStream adalah :
ByteArrayOutputStream : digunakan untuk menuliskan stream menjadi byte
array;
FileOutputStream : digunakan untuk menulis pada file;
FilterOutputStream : merupakan superclass dari subclass-subclass seperti
DataOutputStream, BufferOutputStream, PrintStream, CheckedOutputStream;

ObjectOutputStream

digunakan

untuk

menuliskan

objek

pada

menjadi

output

dari

OutputStream.

PipedOutputStream

digunakan

untuk

PipedInputStream.

Sebagian method-method OutputStream adalah :


#Voidclose()
Menutup output stream yang aktif dan melepaskan sumber daya terkait
dengan stream tersebut;
#Void flush()
Melakukan flush output stream dan memaksa semua byte buffer untuk
dituliskan keluar;
30

#Void write(byte[] b)
Menulis sebanyak b.length dari byte array ke output stream;
#Void write(byte[] b, int off, int len)
Menuliskan sebanyak len byte dari byte array b dimulai dari index off.

f. Pengaturan Format Output Numerik


Metode Pengaturan Format
Menggunakan Method System.out.format()
Menggunakan DecimalFormat Class
1. Method System.out.format()
public class TestFormat {
public static void main(String[] args) {
long n = 461012;
System.out.format(%d%n, n);
System.out.format(%08d%n, n);
System.out.format(%+8d%n, n);
System.out.format(%,8d%n, n);
System.out.format(%+,8d%n%n, n);
double pi = Math.PI;
System.out.format(%f%n, pi);
System.out.format(%.3f%n, pi);
System.out.format(%10.3f%n, pi);
System.out.format(%-10.3f%n, pi);
31

Calendar c = Calendar.getInstance();
System.out.format(%tB %te, %tY%n, c, c, c);
System.out.format(%tl:%tM %tp%n, c, c, c);
System.out.format(%tD%n, c);
}
}

Hasil Eksekusi
461012
00461012
+461012
461,012
+461,012
3.141593
3.142
3.142
3.142
May 29, 2006
2:34 am
05/29/06
2. DecimalFormat Class
public class DecimalFormatDemo {
public static void main(String[] args){
32

DecimalFormat formatku = new DecimalFormat(###.##);


//String output = formatku.format(45.8398767);

//System.out.println(output);
System.out.println(formatku.format(45.8398767));
}
}

DecimalFormatDemoLengkap
public class DecimalFormatDemoLengkap{
static public void customFormat(String pattern, double value ) {
DecimalFormat myFormatter = new DecimalFormat(pattern);
String output = myFormatter.format(value);
System.out.println(value + + pattern + + output);
}
static public void main(String[] args) {
customFormat(###,###.###, 123456.789);
customFormat(###.##, 123456.789);
customFormat(000000.000, 123.78);
customFormat($###,###.###, 12345.67);
}
}

33

Hasil Eksekusi
123456.789 ###,###.### 123,456.789 123456.789 ###.## 123456.79 123.78
000000.000 000123.780 12345.67 $###,###.### $12,345.67

g. Konversi String dan Bilangan (Number)


String myString;
Cara 1 :
double myDbl = Double.parseDouble(myString);
Integer.parseInt(myString);
Float.parseFloat(myString);
Cara 2 :
double myDbl = Double.valueOf(myString).doubleValue;
Integer.valueOf(myString).intValue;
Float.valueOf(myString).floatValue;

Pengarah Tipe (Type-Casting)


Proses untuk mengubah suatu tipe data ke tipe data lain dikenal dengan
instilah type casting. Bentuk type-casting adalah sbg :

Contoh :
int a=65;
char huruf;
34

Supaya nilai a bisa disimpan ke variable huruf, maka nilai a perlu diubah
menjadi tipe data char dengan cara berikut :
huruf = (char) a;

h. Pernyataan Penentu Keputusan


1. if, if-else, if-else if else
2. switch

if
Pernyataan kondisi yang digunakan
untuk pengambilan keputusan terhadap
dua buah kemungkinan
if bisa berdiri sendiri atau dengan
menggunakan else
Bentuk:
if(kondisi){
// blok pernyataan yang dijalankan, bila kondisi benar

PernyataanIF.java
public class PernyataanIF{
public static void main(String[] args){
35

int diskon =0, totalBelanja = 500000;


if(totalBelanja >= 100000){
diskon = totalBelanja/10;
}
System.out.println("Diskon = " + diskon);
}

if-else
if-else mengatur pernyataan yang
dijalankan sewaktu kondisi bernilai
benar atau salah
Bentuk:
if(kondisi){
// blok pernyataan yang dijalankan, bila kondisi benar
} else{
// blok pernyataan yang dijalankan, bila kondisi salah
}
}

PernyataanIFELSE.java
public class PernyataanIFELSE{
public static void main(String[] args){
System.out.println("Silahkan Masukan Jumlah Belanja Anda:);
36

int diskon =0, totalBelanja = 500000;


if(totalBelanja >= 100000){
diskon = totalBelanja/10;

} else{
diskon = 0;
}

System.out.println("Diskon = " + diskon);


}
}

if Bersarang
if bersarang mengatur pernyataan yang
dijalankan sewaktu kondisi berupa pilihan
Bentuk:
if(kondisiA){
// pernyataan yang dijalankan, bila kondisiA benar

}else if(kondisiB){
// pernyataan yang dijalankan, bila kondisiB benar

}else if(kondisiC){
37

// pernyataan yang dijalankan, bila kondisiC benar

}else{
// pernyataan yang dijalankan untuk kondisi selain itu
}

PernyataanIFBersarang.java
public class PernyataanIFBersarang {
public static void main(String[] args) {
int skorUjian= 86; char nilai;
if (skorUjian >= 90) {

nilai = 'A';
} else if (skorUjian >= 80) {

nilai = 'B';
} else if (skorUjian >= 70) {

nilai = 'C';
} else {

nilai = 'D';
}
38

System.out.println("Nilai = " + nilai);


}

i. Pernyataan Pengulangan Proses


Pernyataan Pengulangan Proses (Loop) dalam pemrograman java itu terdiri
dari for, while, do-while. Jika anda belum mengetahuinya simak penjelasan
berikut ini:

Perulangan For
for sering disebut for loop, karena digunakan untuk proses looping atau
pengulangan
Bentuk:
for (inisialisasi; kondisi; increment) {
// lakukan selama kondisi benar
}

Contoh:
PernyataanFOR.java

public class PernyataanFOR {


public static void main(String[] args){
for(int i=1; i<11; i++){
System.out.println(i);
39

}
}
}

PernyataanFOREnhanced.java
public class PernyataanFOREnhanced {
public static void main(String[] args){
int[] numbers = {1,2,3,4,5,6,7,8,9,10};

for (int i : numbers) {


System.out.println(i);
}}}
Perulangan While
while digunakan untuk melakukan proses pengulangan suatu blok pernyataan
selama kondisinya bernilai true
Bentuk:
while( kondisi ){
// lakukan selama kondisi benar
}

Contoh:
PernyataanWHILE.java

40

public class PernyataanWHILE {


public static void main(String[] args){
int i = 1;
while (i < 11) {
System.out.println(i);
i++;
}
}
}

Perulangan Do-While
do ... while digunakan untuk melakukan proses pengulangan suatu blok
pernyataan selama kondisinya bernilai true.
Pernyataan dalam blok paling tidak dieksekusi satu kali
Bentuk:
do {
// lakukan selama kondisi benar
} while ( kondisi );

Contoh:
PernyataanDOWHILE.java
public class PernyataanDOWHILE {
public static void main(String[] args){
41

int i = 1;
do {
System.out.println(i);
i++;
} while (i <= 10);
}
}

j. Pernyataan Pemindah Proses


Penggunan Break
Pada pengulangan, bisa menggunakan break untuk menghentikan
pengulangan pada suatu kondisi tertentu. Fungsi break tersebut adalah untuk
menghentikan eksekusi sebuah blok program, misalnya untuk memaksa
keluar dari sebuah looping.
Penggunaan Continue
Pada pengulangan bisa juga menggunakan continue, dimana continue
akan melanjutkan proses pengulangan berikutnya tanpa menjalankan statemen
sesudahnya.
Penggunaan Return
Return biasnya digunakan di dalam method. Dengan menggunakan
perintah return, alur eksekusi dikembalikan ke bagian dari program yang
memanggil method tersebut.

42

BAB III
HASIL PERCOBAAN PRAKTIKUM (MODUL 2 -8)
a. Modul 2

b. Modul 3

43

44

c. Modul 4

45

d. Modul 5

46

e. Modul 6

f. Modul 7

47

g. Modul 8

48

BAB IV
ANALISA HASIL PERCOBAAN (MODUL 2-8)
a. Modul 2

Pada source kode diatas, terlihat kode atau perintah yang digunakan berada
pada perintah btnprosesActionPerformed yang ada pada button Proses
(kotak biru) yang digunakan untuk mengeksekusi dari output yang telah diisi.
Sedangkan isi perintahnya utnuk membuat program tersebut berjalan dengan
semestinya dan sesuai dengan keinginan user ialah source kode yang berada
didalam btnproses tersesbut (kotak merah). Berikut merupakan keterangannya
:
lblnpm.setText(txtnpm.getText()); ialah bisa dibaca seperti ini, dimana lblnpm
ter-setText atau bisa dikatakan text nya ditetapkan oleh atau dari field txtnama
yang telah diisi oleh user, dan ketika button Proses pada output di klik,
maka fungsi getText lah yang berfungsi disini, dimana ia berfungsi sebagai
pengirim data yang telah diisi pada field txtnpm ke lblnpm pada saat eksekusi

49

terjadi.

Keterangan

fungsi

ini

sama

kaitannya

dengan

lblnama.setText(txtnma.getText()); ,
lbltgl.setText(txttgl.getText()); ,
lblalamat.setText(txtalamat.getText()); , dan
lblhobi.setText(txthobi.getText()); . Sedangkan pada
lbljk.setText(cbojk((String).getSelectedIndex()); ialah dimana kode atau
perintah ini hampir sama penjelasannya dengan yang telah dijelaskan
sebelumnya, hanya saja dikarenakan ia menggunakan combobox untuk
memilih sebuah pilihan dari jk (jenis kelamin) maka pada perintah pengiriman
data atau text yang telah dimasukkan user ialah dengan menggunakan
getSelectedIndex, lalu lbljk yang menset (menetapkan) text yang telah dipilih
dari combobox (cbojk) pada saat pengeksekusian program.

b. Modul 3

50

Pada praktikum ini, dimana akan membuat sebuah program kalkulator


sederhana yang digunakan hanya operator + (tambah), * (kali), - (kurang), dan
/ (bagi). Perintah atau source code yag diletakkan ialah akan dijelaskan
sebagai berikut :

Pada

gambar

diatas

merupakan

source

kode

(private

void

btnbagiActionPerformed(java.awt.event.ActionEvent evt) { ) yang diletakkan


pada button bagi (/) dengan peintah yang telah tertera (kotak biru). Sekarang
kita akan membahas dari perintah yang diletakkan untuk membuat dari button
/ (bagi) jika dieksekusi maka akan berjalan dengan semestinya (kotak merah).
Float nilai1=Float.valueOf(txtinput1.getText()) , dimana maksudnya ialah
fungsi dari tipe data Float ialah untuk mendeklarasikan sebuah tipe data dari

51

nilai1. Setelah itu, operator = (sama dengan) mendeklarasikan perintah yang


akan dilakukan dari nilai1 yang telah dideklarasikan tipe data sebelumnya.
Float.valueOf(txtinput1.getText()); , dimana maksudnya ialah tipe data Float
yang mewakili atau yang mendeklarasikan nilai1 memiliki nilai (valueOf) dari
pengiriman text (getText) yang telah diisi user dari field txtinput1.
Penjelasan yang telah dijelaskan sebelumnya pada Float nilai1 sama dengan
pendeklarasian dengan Float nilai2 , hanya saja nilai2 memiliki nilai (valueOf)
dari pengiriman text (getText) yang telah diisi user dari field txtinput2.
Pada baris selanjutnya yaitu Float hasil3 = nilai1 + nilai2; , dimana disini
menjelaskan hasil3 yang memiliki tipe data Float mendeklarasikan perintah
dengan operator = (sama dengan) meletakkan rumus nilai1 + nilai2 yang mana
rumus ini menyatakan bahwa nilai1 yang memiliki nilai (valueOf) dari
pengiriman text (getText) yang telah diisi user dari field txtinput1 dan nilai2
memiliki nilai (valueOf) dari pengiriman text (getText) yang telah diisi user
dari field txtinput2 dioperasikan pada operator penambahan (/) untuk
mengeksekusi program yang akan terjadi setelah menginputkan datanya di
field pada button / (bagi).
Dibaris selanjutnya yaitu String hasil = String.valueOf(hasil3); , dimana hasil
dideklarasikan oleh tipe data String (tipe data yang mendeklarasikan karakter
maupun bilangan) dan dihubungkan oleh operator sama dengan (=) yang
isinya String.valueOf(hasil3); , yang mana tipe data String mendeklarasikan
dari pada hasil yang telah ditetapkan sebelumnya, dan valueOf(hasil3); yang

52

artinya memilki nilai dari hasil3 yaitu dimana tempat peletakkan rumus yang
telah dibuat.
Baris selanjutnya ialah txthasil.setText(hasil); , yang mana maksudnya ialah
txthasil men-set text atau menetapkan text daripada hasil yang telah
dideklarasikan pada baris sebelumnya dengan menggunakan tipe data String.
Pada source code btntambah, btnkurang, dan btnkali semua sama
penjelasannya dengan btnbagi yang telah kita jelaskan sebelumnya, hanya saja
pada btntambah, btnkurang, dan btnkali pada baris Integer hasil3 = nilai1 +
nilai2; yang mendeklarasikan rumus, hanya diganti operatornya saja dimana
btntambah diganti dengan (+), btnkurang diganti dengan (-), btnkali diganti
dengan (*) .

c. Modul 4

53

Pada

perintah

yang

ada

dalam

cbojenis

private

void

cbojenisActionPerformed(java.awt.event.ActionEvent evt) { ).
Pada isi perintah dari cbojenis ini, kita menggunakan perintah percabangan ifelse-if untuk menyatakan statement yang dialam item pada combobox jenis
(cbojenis) yaitu iPad, iPhone, dan iPod.

54

if(cbojenis.getSelectedItem()=="iPad"){ //dimana dibaca, jika cbojenis yang


dipilih dari item adalah iPad.
txtharga.setText("4999000"); //maka, field yang ada pada txtharga ter-set
4999000
}else if (cbojenis.getSelectedItem()=="iPhone"){ // else if (jika tidak),
cbojenis yang dipilih dari item adalah iPhone.
txtharga.setText("7999000"); //maka, field yang ada pada txtharga ter-set
7999000
}else if (cbojenis.getSelectedItem()=="iPod"){ // else if (jika tidak), cbojenis
yang dipilih dari item adalah iPod.
txtharga.setText("2999000"); //maka, field yang ada pada txtharga ter-set
2999000
}else{ // tidak, dimana jika kesemuanya yang terpilih tidak ada daripada item,
maka...
txtharga.setText(""); //maka, field yang ada pada txtharga ter-set kosong/bersih
}
}

55

int harga=Integer.parseInt(txtharga.getText()); //dimana harga disini bertipe integer


(bilangan bulat) dan operator = (sama dengan) berfungsi sebagai pendeklarasian dari
int harga, yang mana tipe data Integer pada harga diuraikan (parse) dari Integer pada
field txtharga yang datanya akan dikirim oleh fungsi getText.
int jumlah=Integer.parseInt(txtjumlah.getText()); // dimana jumlah disini bertipe
integer (bilangan bulat) dan operator = (sama dengan) berfungsi sebagai
pendeklarasian dari int jumlah, yang mana tipe data Integer pada harga diuraikan
(parse) dari Integer pada field txtjumlah yang datanya akan dikirim oleh fungsi
getText.
long diskon,total,nilaidiskon; //pendeklarasian dari data yang akan digunakan untuk
menghitung diskon, total, dan nilai diskon, dengan menggunakan tipe integer long
(tipe integer yang hampir mirip dengan float).
if(cbostatus.getSelectedItem()=="Member"){ //dibaca sebagai, jika combobox status
yang bervariabel name cbostatus, getSelectedItem (memilih item dari) Member (
yang ada dalam item cbostatus).
diskon=((5*harga)/100); //deklarasi dari rumus perhitungan diskon yang akan berjalan
jika program tereksekusi, diskon dideklarasikan dari tipe data long yang telah dibuat
sebelumnya, dimana harga yang ada pada perumusan ialah dari pendeklarasian int
harga di awal yang sesuai dengan penetapan di field pada harga gadget yang dipilih
user.
nilaidiskon=harga-diskon; //deklarasi dari rumus perhitungan nilaidiskon yang akan
berjalan jika program tereksekusi, diskon dideklarasikan dari tipe data long yang telah

56

dibuat sebelumnya, dimana harga yang ada pada perumusan ialah dari
pendeklarasian int harga di awal dan dikurangi diskon berasal dari data yang ada
pada tipe data long dan sudah dideklarasi sebelumnya.
total=nilaidiskon*jumlah; //deklarasi dari rumus perhitungan total yang akan berjalan
jika program tereksekusi, nilaidiskon dideklarasikan dari tipe data long yang telah
dibuat sebelumnya serta dikali jumlah yang dideklarasian diawal, dimana jumlah ini
sesuai dengan pengisian berapa banyak jumlah gadget yang dibeli dari yang dipilih
user, kemudian dieksekusi pada btnbayar.
}else{ //tidak, dimana jika bukan status Member yang dipilih oleh user atau customer,
maka....
diskon=0; //tidak ada diskon
nilaidiskon=harga-diskon; //pendeklarasian rumus
total=nilaidiskon*jumlah; //pendeklarasian rumus
}
txtdiskon.setText(""+diskon); //dimana field txtdiskon ter-set oleh variable diskon
yang ada pada tipe data long, yang telah dideklarasi.
txttotal.setText(""+total); //dimana field txttotal ter-set oleh variable total yang ada
pada tipe data long, yang telah dideklarasi.
}

57

d. Modul 5

public class modul5 extends javax.swing.JFrame {//disini, variabel-variabel yang


diperlukan untuk program ini akan di konstruksikan pada class modul5, dimana nanti akan
menggunakan method sebagai kaitannya dengan class yang dibuat.
int gajipokok,gajikotor,pajak,gajibersih; //pendeklarasian variabel sebagai objek yang
akan digunakan pada method.
int tunjanganistri,tunjangananak,jumlahanak; //pendeklarasian variabel sebagai objek
yang akan digunakan pada method.
String t_istri,t_anak; //pendeklarasian variabel sebagai objek yang akan digunakan pada
method.
String gajikotor_1,pajak_1,gajibersih_1; //pendeklarasian variabel sebagai objek yang
akan digunakan pada method.

58

59

public modul5() { //menyatakan nama program


setTitle("Form Perhitungan Gaji Pegawai"); //berfungsi menyatakan nama program
ketika program dieksekusi pada layar output.
initComponents(); //menyatakan didalam keseluruhan komponen yang ada
program.
}
private void Gaji() { //deklarasi dari method Gaji.
int pilihan=cmbjabatan.getSelectedIndex(); //dimana pilihan sebagai variabel yang
bertipe integer (int) dan deklarasi dari cmbjabatan pada combobox jabatan dimana
yang perintahnya getSelectedIndex (yang memilih bukan berdasarkan item yang
dideklarasi pada percabangan if, tetapi pada deklarasi switch menggunakan Index
yang mana memilih tidak secara langsung tetapi dikelompokkan)
switch(pilihan){ //mendeklarasikan dari percabangan switch yang dimana variabel
pilihan diawal tadi digunakan untuk mendeklarasikan isi yang akan dipilih
menggunakan case.
case 0: //panggilan ke-1
txtgajipokok.setText("7500000"); //field pada gaji pokok (txtgajipokok) akan terset 7500000
break; //pernyataan tutup.
case 1: //panggilan ke-2
txtgajipokok.setText("5000000"); //field pada gaji pokok (txtgajipokok) akan terset 5000000

60

break; //tutup.
case 2: //panggilan ke-3
txtgajipokok.setText("3000000"); //field pada gaji pokok (txtgajipokok) akan terset 3000000
case 3: //panggilan ke-4
txtgajipokok.setText("2000000"); //field pada gaji pokok (txtgajipokok) akan terset 7500000
break; //tutup
case 4: //panggilan ke-5
txtgajipokok.setText("1200000"); //field pada gaji pokok (txtgajipokok) akan terset 7500000
break; //tutup
case 5: //panggilan ke-6
txtgajipokok.setText("750000"); //field pada gaji pokok (txtgajipokok) akan ter-set
750000
break; //tutup
}
}

61

private void TunjanganAnak(){ //deklarasi dari method TunjanganAnak


gajipokok=Integer.valueOf(txtgajipokok.getText()); //variabel gajipokok yang
telah dideklarasikan pada class diatas sebelumnya yang menyatakan Integer dari
variabel gajipokok yang memiliki nilai dari field txtgajipokok yang dimana
datanya yang dimasukkan pada txtgajipokok terkirim oleh fungsi getText ketika
program tereksekusi.
jumlahanak=Integer.valueOf(txtjumlahanak.getText());//variabel

jumlahanak

yang telah dideklarasikan pada class diatas sebelumnya yang menyatakan


Integer dari variabel jumlahanak yang memiliki nilai dari field txtjumlahanak
yang dimana datanya yang dimasukkan pada txtjumlahanak terkirim oleh fungsi
getText ketika program tereksekusi.
//pendeklarasian percabangan if-else-if, yang mana untuk menentukan
tunjangan yang didapatkan pegawai.
if(jumlahanak<=2){ //jika jumlahanak yang diisi pada txtjumlahanak lebih kecil
sama dengan 2.
tunjangananak=((15*gajipokok)/100)*jumlahanak; //maka, tunjangan anak 15%
dikali gajipokok dikali jumlahanak.

62

}else if(jumlahanak > 2){ //jika tidak, jika jumlah anak lebih besar dari 2.
tunjangananak=((15*gajipokok)/100) *2; //maka, tunjangananak 15% dikali
gajipokok dikali 2.
}else{ //jika tidak lagi, artinya jika pernyataan yang diinputkan (menggunakan
radiobutton (rbStatus)) selain dari pernyataan-pernyataan diatas maka,,,
tunjangananak=0; //tunjangananak tidak ada atau kosong.
}
t_anak=String.valueOf(tunjangananak); //dibaca, t_anak yang bertipe data
String memiliki nilai dari tunjangananak yang telah dideklarasi tadi.
txttunjangananak.setText(t_anak); //field pada txttunjangananak (Tunjnagan
Anak) akan ter-set oleh t_anak yang memiliki nilai dari pendeklarasian
tunjangananak sebelumnya.
}

63

private void Menikah() { //method untuk Menikah


txttunjanganistri.setEnabled(true); //pada field Tunjangan Istri ter-set true
(muncul) pernyataan dari field tersebut. setEnabled digunakan karena void
Menikah nantinya diletakkan pada option radiobutton Status.
txttunjangananak.setEnabled(true); //kurang lebih sama artinya dengan
pernyataan

txttunjanganistri,

hanya

disini

pada

txttunjangananak

(Tunjangan Anak).
txtjumlahanak.setEnabled(true);

//sama

pengetiannya

dari

yang

sebelumnya.
gajipokok=

Integer.valueOf(txtgajipokok.getText());

//

menyatakan

gajipokok bertipe Integer yang memiliki nilai dari field txtgajipokok (Gaji
Pokok) yang datanya akan dikirim setelah pengisian data semuanya selesai
dan pengeksekusian hitung dilakuakan.
tunjanganistri=(20*gajipokok)/100;

//menyatakan

tunjanganistri

(Tunjangan Istri) dimana pada tunjangan tersebut, gajipokok dikali 20%.


t_istri=String.valueOf(tunjanganistri); //t_istri yang bertipe data String di
pendeklarasian class diatas sebelumnya, memiliki nilai dari tunjanganistri
yang baru saja dideklarasikan juga sebelumnya.
txttunjanganistri.setText(t_istri); //field pada txttunjanganistri (Tunjnagan
Istri) akan ter-set oleh t_istri yang memiliki nilai dari pendeklarasian
tunjanganistri sebelumnya.
TunjanganAnak(); //dimana ini bermaksud untuk memanggil method

64

TunjanganAnak, karena jika yang dipilih user ialah option1 (Menikah)


maka TunjanaganAnak juga berfungsi didalam pemanggilan data dari
perintah method-nya.
} //tutup method.

65

private void BelumMenikah(){ //pernyataan untuk method Belum Menikah.


tunjanganistri=0; //tunjanganisri adalah kosong atau null.
tunjangananak=0; //tunjangananak adalah kosong atau null.
jumlahanak=0; //jumlahanak adalah kosong atau null.
txttunjanganistri.setText("0"); //field txttunjanganistri (Tunjangan Istri) akan ter-set
kosong atau null.
txttunjangananak.setText("0"); //field txttunjangananak (Tunjangan Anak) akan ter-set
kosong atau null.
txtjumlahanak.setText("0"); //field txtjumlahanak (Jumlah Anak) akan ter-set kosong
atau null.
txttunjanganistri.setEnabled(false); //field txttunjanganistri (Tunjangan Istri) ter-set
False (tak muncul), karena method ini nantinya akan berkaitan dengan method
Menikah yang mana di method Menikah pada field txttunjanganistri ter-set true
(muncul), maka jika belum menikah akan tak muncul (false) pernyataan tunjangan istri
tersebut pada field. setEnabled digunakan karena option1 (Menikah) dan option2
(Belum Menikah) berupa radiobutton.
txttunjangananak.setEnabled(false);

//kurang

lebih,

sama

pengertiannya

pada

penjelasan txttunjnaganistri sebelumnya, hanya saja ini berada di txttunjangananak.


txtjumlahanak.setEnabled(false); //kurang lebih, sama pengertiannya pada penjelasan
txttunjnaganistri sebelumnya, hanya saja ini berada di txtjumlahanak.
}

66

private void Total(){ //pernyataan untuk method Total.


gajipokok=Integer.valueOf(txtgajipokok.getText()); //menyatakan gajipokok bertipe
Integer yang memiliki nilai dari field txtgajipokok (Gaji Pokok) yang datanya akan
dikirim setelah pengisian data semuanya selesai dan pengeksekusian hitung
dilakuakan.
//percabangan if-else
if(opsi1.isSelected()==true){ //jika opsi1 (Menikah) ddipilih sama dengan true
(terpilih). Pernyataan if agak sedikit berbeda dari sebelumnya karena percabangan if
disini diletakkan pada radiobutton (opsi1).
gajikotor=gajipokok+tunjangananak+tunjanganistri; /statemenet yang menyatakan
rumus daripada gajikotor yang akan dihitung, gajikotor ini telah dideklarasikan tipe
datanya sebelumnya pada awal yaitu integer, begitu juga dengan gajipokok,
tunjangananak, dan tunjanganistri.
}else{ //jika tidak, maksudnya jika bukan opsi1 yang terpilih artinya jika opsi2
(Belum Menikah) yang terpilih, maka...

67

gajikotor=gajipokok; //statement yang menyatakan rumus gajikotor sama dengan


gajipokok, berarti tidak didukung oleh tunjangananak, tunjanganistri, dll karena
pegawai/user belum menikah.
} //tutup percabangan if
pajak=(gajikotor*10)/100; //pajak yang telah dideklarasikan bertipe data integer
menyatakan atau mengdeklarasikan bahwa gajikotor (integer) dikali 10%.
gajibersih=gajikotor-pajak; //pernyataan gajibersih (integer) atau gaji sebenarnya
sama dengan gajikotor (integer) yang telah ditentukan dikurangi dengan pajak yag
telak dideklarasi sebelumnya.
Gajikotor_1=String.valueOf(gajikotor); //gajikotor_1 atau menyatakan simpan
gajikotor yang bertipe String memiliki nilai dari gajikotor yang telah dideklarasi.
Pajak_1=String.valueOf(pajak); //kurang lebih sama artinya dengan gajikotor_1
sebelumnya, hanya saja ini untuk pajak_1 yang telah dideklarasi.
Gajibersih_1=String.valueOf(gajibersih); //kurang lebih sama artinya dengan
gajikotor_1 sebelumnya, hanya saja ini untuk gajibersih_1 yang telah dideklarasi.
txtgajikotor.setText(gajikotor_1); //field txtgajikotor akan ter-set dari gajikotor_1
yang dideklarasi dari gajikotor sebelumnya.
txtpajak.setText(pajak_1); //field txtpajak akan ter-set dari pajak_1 yang dideklarasi
dari pajak sebelumnya.
txtgajibersih.setText(gajibersih_1); //field txtgajibersih akan ter-set dari gajibersih_1
yang dideklarasi dari gajibersih sebelumnya.
} //tutup method.

68

private

void

BersihTeks(){

//pernyataan

method

untuk

membersihkan

atau

mengosongkan seluruh field.


gajipokok=0; //gajipokok (integer) sama dengan bersih atau null.
gajikotor=0; //gajikotor (integer) sama dengan bersih atau null.
pajak=0; //pajak (integer) sama dengan bersih atau null.
gajibersih=0; //gajibersih (integer) sama dengan bersih atau null.
tunjanganistri=0; //tunjanganistri (integer) sama dengan bersih atau null.
tunjangananak=0; //tunjangananak (integer) sama dengan bersih atau null.
jumlahanak=0; //jumlahanak (integer) sama dengan bersih atau null.
txtgajipokok.setText("0"); //field txtgajipokok ter-set kosong atau null.
txttunjanganistri.setText("0"); //field txttunjanganistri ter-set kosong atau null.
txtjumlahanak.setText("0"); //field txtjumlahanak ter-set kosong atau null.
txttunjangananak.setText("0"); //field txttunjangananak ter-set kosong atau null.
txtgajikotor.setText("0"); //field txtgajikotor ter-set kosong atau null.
txtpajak.setText("0"); //field txtpajak ter-set kosong atau null.
txtgajibersih.setText("0"); //field txtgajibersih ter-set kosong atau null.
}

69

private void formWindowOpened(java.awt.event.WindowEvent evt) { //pernyataan


untuk meletakkan perintah yang akan diisi dari form WindowOpened jendela yang
akan dibuka pada awal output keluar.
// TODO add your handling code here:
BelumMenikah(); //method dari BelumMenikah dimasukkan pada perintah ini, karena
pada saat Window ata jendela terbuka maka field-field akan kosong dan itu sesuai dengan
perintah didalam method ini.
} //tutup perintah WindowOpened.

private

void

cmbjabatanItemStateChanged(java.awt.event.ItemEvent

evt)

//pernyataan untuk meletakkan perintah pada cbojabatan yang akan dipilih, disini
menggunakan ItemStateChanged dikarenakan perintah ini berada pada combobox
yang mana item nya nanti akan berganti-ganti sesuai keinginan user.
// TODO add your handling code here:
BersihTeks(); //method yang diperlukan ialah BersihTeks yang mana teks nya akan

70

terset null atau bersih seluruhnya.


Gaji(); //method gaji diperlukan pada perintah panggilan cbojabatan karena akan
menjelaskan pernyataan dari pegawai yang memilih opsi1 atau opsi2 dari berbagai
pilihan item pada cbojabatan.
//percabangan if-else
if (opsi1.isSelected()==true) { //jika opsi1 (Menikah) ddipilih sama dengan true
(terpilih). Pernyataan if agak sedikit berbeda dari sebelumnya karena percabangan if
disini diletakkan pada radiobutton (opsi1).
Menikah(); //statement pertama yang digunakan ialah dari method Menikah.
}else{ //jika tidak, maksudnya jika bukan opsi1 yang terpilih artinya jika opsi2
(Belum Menikah) yang terpilih, maka...
BelumMenikah(); /method BelumMenikah lah yang berfungsi pada perintahnya.
}

71

private void txtjumlahanakKeyReleased(java.awt.event.KeyEvent evt) { //pemanggilan


txtjumlahanak, dengan aksi KeyReleased (artinya field akan hidup dan mengisi
jumlahanak).
// TODO add your handling code here:
TunjanganAnak(); //method TunjanganAnak mengisi untuk perintah didalam txtjumlahanak.
}

private void opsi1ActionPerformed(java.awt.event.ActionEvent evt) { //pernyataan


panggilan pada opsi1 jika terpilih.
// TODO add your handling code here:
Menikah(); //method Menikah yang berfungsi didalam pemanggilan action opsi1.
}

private void opsi2ActionPerformed(java.awt.event.ActionEvent evt) { //pernyataan


panggilan pada opsi1 jika terpilih
// TODO add your handling code here:
BelumMenikah();//method BelumMenikah yang berfungsi didalam pemanggilan action
opsi2.
}

72

private void btnbersihMouseClicked (java.awt.event.ActionEvent evt) { //pemanggilan


perintah untuk button Bersih jika melakukan aksi.
// TODO add your handling code here:
BersihTeks(); //method yang digunakan ialah BersihTeks, karena akan berfungsi untuk
membersihkan atau men-null kan semua field yang telah ditentukan pada method ini.
}

private void btnhitungMouseClicked (java.awt.event.ActionEvent evt) { //pemanggilan


perintah untuk button Hitung jika melakukan aksi.
// TODO add your handling code here:
Total(); //method Total yang digunakan pada perintah aksi ini, karena di method Total telah
berisi perhitungan yang telah dideklarasikan dan dirincikan.
}

73

e. Modul 6

Pada Modul 6, ada 2 package yang diperlukan yaitu :


MDI adalah dimana package ini meletakkan FormUtama (parentsize) yang
mana form inilah yang berfungsi untuk menggabungkan seluruh output
(childsize) modul-modul yang telah dibuat. Selain FormUtama, terdapat 4 form
lainnya dimana form ini berisi copy-an JDesktopPane daripada modul-modul
yang telah dibuat (Modul 2-5) yang dinamakan IFModul(sesuai dengan modul ke
berapa).
Form adalah package yang berisi seluruh program modul-modul yang telah
dibuat sebelumnya. Sebenarnya package ini tidak mempengaruhi apapun daripada
package utama yaitu MDI, tetapi hanya memperjelas dari modul-modul yang ada
didalamnya lah yang digunakan pada MDI.

74

75

public class FormUtama extends javax.swing.JFrame {


private int jml; //menjelaskan variabel Integer yang dideklarasikan sebagai method
yang akan digunakan.
private String judul; //menjelaskan variabel String yang dideklarasikan sebagai
method yang akan digunakan.
/**
* Creates new form FormUtama2
*/
public FormUtama() { //penerangan atau keterangan dari FormUtama yang akan
dimulai untuk membuat source code dialamnya.
setTitle("MDI Form"); //berfungsi untuk meberikan nama Program di atas
Window yang sejajar dengan Minimize, Maximize, dan Close.
setExtendedState(MAXIMIZED_BOTH); /fungsinya menset untuk memperluas
form nya denagn perintah yang didalamnya ialah MAXIMIZED BOTH.
initComponents(); //menyatakan berada didalam komponen program ini.
}
private void FormBaru(){ //method dari Form Baru
try{ //berfungsi untuk menguji code yang akan dimasukkan untuk menjalankan
program.
JInternalFrame jin = new JInternalFrame(judul,false,true,true); //menyatakan
JinternalFrame dideklarasikan menjadi variabel jin yang menyatakan jika yang
diminta New maka JinternalFrame mengeluarkan childsize dengan nama judul,

76

false(close),true (maximized), true (pilihan).


jin.setDefaultCloseOperation(DISPOSE_ON_CLOSE); variabel jin di-set kan
dalam operasi perintah tutup yang dijelaskan kembali oleh DISPOSE (yang
menentukan).
JPanel pn=new JPanel(); //pn sebagai variabel Jpanel yang menyatakan akan new
JPanel (membuat baru).
jin.setBounds(10,10,500,500); //jin mensetkan panjang dan lebar form yaitu
dengan panjang x lebar (10 x 500)
jDesktopPane1.add(jin); //menambahkan JinternalFrame pada jDesktopPane1
jin.setVisible(true); //JInternalFrame terlihat.
}catch(Exception e){ //menyatakan eksepsi (jika perintah diminta tak ada didalam
program ini, maka...
JOptionPane.showMessageDialog(null, e); //JOptionPane menunjukkan message
(pesan) / Warning.
}
}

77

private

void

mitnewActionPerformed(java.awt.event.ActionEvent

evt)

//pernyataan untuk memanggil fungsi daripada menu item New.


// TODO add your handling code here:
jml=jml+1; // jml (int) menyatakan jika New diklik maka ditambah 1, begitu
selanjutnya.
judul="FormBaru"+jml; //judul (String) menyatakan Form Baru yang telah
ditambahkan sesuai dengan jumlah.
FormBaru(); //method dari FormBaru dipanggil disini untuk menghubungkan
kepada Menu Item New.
} //tutup method

private void mitkeluarActionPerformed(java.awt.event.ActionEvent evt) {


//pernyataan untuk memanggil fungsi daripada menu item New.
// TODO add your handling code here:
System.exit(0); //berfungsi memanggil untuk keluar dari program.
}

78

private

void

mitmodul2ActionPerformed(java.awt.event.ActionEvent

evt)

//pemanggilan menu item modul 2 yang akan diisi kode.


// TODO add your handling code here:
IFModul2 form2 = new IFModul2(); //dibaca IFModul2 sebgai form2 (variabel)
dinyatakan untuk membuat form baru dari IFModul2.
jDesktopPane1.add(form2); //jDesktopPane1 melakukan penambahan dari variabel
form2.
Dimension parentSize=jDesktopPane1.getSize(); //dimensi FormUtama (parentsize)
menyatakan ukuran yang sama dengan JDesktopPane1.
Dimension childSize=form2.getSize(); //dimensi output keluaran dari IFModul2
(childsize) sama dengan variabel dari form2 ukurannya.
form2.setLocation((parentSize.width - childSize.width)/2, //pendeklarasian lokasi dari
parentsize dan childsize.
(parentSize.height - childSize.height)/2); //menyatakan tinggi parentsize (FormUtama)
dikurangi tinggi chilsize (form2) dibagi 2, karena dalam satu program terdapat 2 hasil
yang akan dieksekusi yaitu formutama dan form2.
form2.setVisible(true); //menyatakan form2 terlihat.
}

79

f. Modul 7
Berikut ini adalah cara untuk membuat program input data tcustomer
menggunakan database MySQL:
CREATE DATABASE dbjava;
USE dbjava;
CREATE TABLE tcustomer (
id VARCHAR(6) PRIMARY KEY,
nama VARCHAR(25),
nohp VARCHAR(14),
alamat VARCHAR(100));

a) Pada Source Package, package-package yang digunakan ialah package gui,


icon, dan koneksi.
b) Package gui digunakan untuk meletakkan form-form yang akan dijalankan.
c) Package icon, dimana berisi ikon-ikon untuk diletakkan pada button
sebagai simbol.
80

d) Koneksi ialah package yang dimana berisi sebuah class untuk


mengkoneksikan program-program tersebut dengan database.
f) Libraries, ialah dimana berisi MYSQL JDBC Driver sebagai konektor atau
penghubung mysql database pada Java. Libraries inilah yang akan
mengaturnya.
Berikut penjelasan dan analisa singkat mengenai source kode yang digunakan
pada ProgramPenjualan ini.

Pada source ini, dideklarasikan pada package gui, mengenai apa-apa saja
yang akan diimport pada program yg user buat.
package gui; //mendeklarasikan dari isi package gui.
import java.sql.*; //mengimport java sql untuk support dari jalannya
program.
import

javax.swing.JOptionPane;

//mengimport

javax

swing

pada

JOptionPane.
import koneksi.ClassDB; //import dari package koneksi yag berisi
ClassDB

Dimana yang telah kita ketahui dari modul7 yang ada pada komponen
dalamnya ialah bacaid(); , yang mana bacaid ini merupakan method yang akan
terhubung pada database untuk membaca id.

81

Dalam gambar diatas dijelaskan pendeklarasian method dari bacaid() yang


telah dimasukkan pada class sebelumnya. Ada penambahan kode bertipe
integer yang berisi null (0). Setelah itu, melakukan percobaan (try) daripada
Class (classDB) yang mana untuk nama berasal dari database mysql (disini
kita akan menggunakan SQLyog yang sebagai penghubungannya). Dibaris
selanjutnya dimana menenrangkan untuk menghubungkan koneksi ke mysql
(("jdbc:mysql://localhost/dbjava","root","123456");), berikutnya keterangan
mengenai statement dan pendeklarasian sql untuk menyeleksi id sebagai kode
dari tcustomer (tabel yang ada pada database). Selanjutnya hasil execute query
berdasarkan kode yang telah dmasukkan secara otomatis yaitu (mis : 0002)
yang mana ini berfungsi pada txtid, setiap user menyimpan (Save) data
tersebut maka kode tersebut melangkah satu langkah berurut.

82

Penganalisaan saya disini ialah dimana method Simpan ini fungsinya ialah
untuk menyimpan data atau mentransferkan data yang telah diisi oleh user ke
database (dbjava) pada tcustomer (tcustomer) yang telah diisi semua datanya
oleh user. Jika telah terisi dan di klik tombol Save, maka JOptionPane muncul
dengan pernyataan Sukses Tambah Data kalau tidak akan muncul pesan
Lengkapi Data.

83

Method Bersih berfungsi untuk meng-clear kan atau mebersihkan data


yang telah diisi.

Seperti yang diketahui private void ActionPerformed untuk memanggil


perintah data yang ada pada method yang telah dibuat untuk dieksekusi yaitu
Simpan(); (btnsave) dan Bersih(); (btnclear). Pada txtnama yang dipanggil
ialah perintah KeyTyped yang mana perintahnya jika field txtnama diisi maka
btnsave (Simpan) dan btnclear (Bersih) akan hidup atau true.

g. Modul 8
Berikut ini adalah cara untuk membuat program input data penjualan
menggunakan database MySQL:
CREATE TABLE penjualan (
iv VARCHAR(12) PRIMARY KEY,
tgl VARCHAR(17),
84

id VARCHAR(6),
nama VARCHAR(30),
status VARCHAR(15),
barang VARCHAR(30),
harga VARCHAR(12),
jumlah VARCHAR(6),
diskon VARCHAR(12),
bayar VARCHAR(12)
)

Seperti pada Modul7, maka di FormTransaksi package gui dideklarasikan


lagi import-import yang diperlukan untuk menjalankan program ini.

Modul8 memiliki komponen yang didalamnya terdapat method invoice,


dan penggunaan penangglan hari, bulan, dan tahun yang akan dideklarasikan
pada output di txttanggal yang telah dibuat.
85

Pada method Invoice , disini kurang lebih sama dengan penjelasan bacaid
pada modul7 hanya saja kode dimulai dari 14000 dan string sql yang
diseleksi semaksimal invoice dari tabel penjualan (penjualan).

Disini pembuatan dari method cariID, yang berfungsi untuk mencari ID


yang telah diisi pada modul7.

86

Fungsi method simpan disini ialah menyimpan data yang telah diisi akan
ditransferkan datanya tersebut ke tabel penjualan (penjualan).

87

Method untuk membersihkan semua data yang nantinya akan dipanggil


pada button Simpan yang mana fungsinya sekaligus mentransfer data ke
database.

Method bayar diletakkan pada perintah button Bayar yang berfungsi untuk
menghitung keselurhan data yang telah dimasukkan.

88

Disini

perintah

pemanggilan

yang

diletakkan

pada

cbojenisActionPerformed (combobox jenis) yang memilih dari item-item yang


ada didalamnya.

Disini dimasukkan perintah-perintah untuk menjalankan program tersebut


dari method yang telah dideklarasi.

89

Penjelasan tentang ClassDB.

Penjelasan disini ialah yang paling mengatur untuk database yang mana
penentuan pada url, localhost :3306, user=root, dan password=123456 ,
dan databes yang dipilih ialah dbjava seperti gambar berikut ini :

90

Berikut ini adalah data sudah di save melalui modul7 dan modul8, lalu
data tersebut berada pada database SQLyog.

91

PENUTUP

a. Kesimpulan
Kesimpulan mengenai laporan praktikum ini ialah dimana Bahasa
Pemrograman Java sebagai bahasa pemrograman yang berkembang pesat
pada saat ini memiliki peranan penting, bukan hanya untuk user yang
merasakan manfaat lebih dengan menggunakan aplikasi bahasa pemrograman
Java, tetapi programmer juga dapat berkaraya dan meningkatkan nilai estetika
yang baik dan lebih baik, yang bagus dan lebih bagus, yang efesien dan lebih
efisien dengan mengandalkan fitur-fitur yang berada didalamnya untuk
mengoperasikan pemrograman bahasa Java ini serta memiliki kualitas yang
akan meningkatkan daya saing dibidang komputer maupun marketing atau
pemasarannya yang akan mendapatkan kuantitas atau keuntungan dari apa
yang telah dibuat operator atau programmer dengan bahasa Java ini.

b. Saran
Saran saya menegenai Bahasa Pemrograman Java ialah supaya bahasa
Java ini dapat dikembangkan lagi dalam penerapan akses dan penambahan
fitur-fitur nya agar dapat memudahkan programmer dalam membuat aplikasi
serta penggunaan bahasa yang memungkinkan untuk dapat dimudahkan atau
dibuat sesederhana mungkin agar programmer dapat mudah dan mengerti
serta tanggap fungsi, maksud dan syntaks yang berada didalamnya. Mengapa
saya berpendapat sepert itu? Karena saya rasa masih sedikit orang yang mau

92

belajar dan mendalami bahasa Java ini baik mahasiswa, programmer amatir,
sampai programmer yang expert, alasannya berbagai macam seperti karena
penggunaan bahasa yang begitu rumit serta bertele-tele yang tak mudah.
diserap maksudnya. Penulis berharap ada yang akan

menuntaskan

permasalahan ini, apalagi bahasa pemrograman Java ini berbahasa inggris,


dimana jika pada negara yang bahasa ibu (mother language) nya tidak
menggunakan bahasa inggris tentu akan sangat sulit didalam menghafal dan
menelaahnya.

93

DAFTAR PUSTAKA
http://herimediaonline.blogspot.co.id/2011/07/definisi-literal-pemrogramanjava.html
Deitel . 2006. Java; How To Program . Diete & Associates : New Jersey.
http://kuliahrika.blogspot.co.id/2009/11/operasi-io-stream-sederhana.html
http://belajarjavabareng.blogspot.co.id/2009/10/pernyataan-penentukeputusan.html

94

Anda mungkin juga menyukai