Anda di halaman 1dari 93

Kelas

LAPORAN PRAKTIKUM

TI 5 Pagi E

BAHASA PEMROGRAMAN JAVA

Nama Praktikan

Abdu Rahman Irwanmay

Tanda tangan

Nomor
Mahasiswa

Tanggal Kumpul

1314370277

1 Januari 2015

Praktikan

Tanda tangan
Nama Penilai

Tanggal Koreksi

Nilai
Dosen

Indri Sulistianingsih,S.Kom

1 Januari 2015

Universitas Pembangunan Panca Budi


Fakultas Teknik
Jurusan Sistem Komputer
Medan
2015

KATA PENGANTAR
Segala puji bagi Allah SWT yang telah memberikan kesehatan, kekuatan, kesempatan
serta limpahan rahmat dan karunianya sehingga penulis dapat menyelesaikan laporan
praktikum pada mata kuliah Bahasa Pemrograman Java ini dengan baik.
Penulisan laporan ini dibuat agar dapat memenuhi sebagi salah satu syarat untuk
mendapatkan nilai tambahan serta dalam mengikuti ujian semester.
Dengan sepenuh hati penulis menyadari bahwa tersusunnya tugas ini berkat bantuan
dan bimbingan dari semua pihak baik berupa material, spiritual, maupun informasi. Oleh
karena itu dalam kesempatan ini penulis tidak lupa mengucapkan terima kasih sebanyakbanyaknya kepada :
1. Kepada Tuhan Yang Maha Esa yaitu Allah Swt, karena dengan anugerahnya penulis
dapat menyelesaikan laporan praktikum ini dengan baik.
2. Orangtua saya yang telah memberikan semangat dan dukungan sehingga laporan
praktikum ini dapat terselesaikan dengan baik serta mendapatkan nilai yang diinginkan.
3. Ibu Indri Sulistianingsih, S.Kom , selaku dosen Bahasa Pemrograman Java.
4. Semua pihak yang telah membantu dalam penyusunan laporan ini.
Akhirnya penulis mohon maaf apabila ada kekurangan atau kesalahan dalam penyusunan
laporan praktikum ini. Semoga laporan praktikum ini dapat bermanfaat bagi penulis, maupun
pembacanya.
Medan,

2015

Penulis

ii

DAFTAR ISI

COVER ................................................................................................................................. i
KATA PENGANTAR........................................................................................................... ii
DAFTAR ISI ....................................................................................................................... iii
BAB I PENDAHULUAN ..................................................................................................... 4
a. Umum ................................................................................................................. 4
b. Latar Belakang..................................................................................................... 4
c. Tujuan Praktikum ................................................................................................ 6
BAB II LANDASAN TEORI ................................................................................................ 7
a. Pengenalan Java dan Netbeans ............................................................................. 7
b. Operator ............................................................................................................ 19
c. Class, Object, dan Metodh ................................................................................. 23
d. Struktur Perulangan dan Percabangan ................................................................ 29
e. Pemrograman Berorientasi Objek ...................................................................... 36
BAB III HASIL PERCOBAAN / PRAKTIKUM (MODUL 2-8) ......................................... 39
BAB IV ANALISA HASIL PERCOBAAN (MODUL 2-8) ................................................ 46
PENUTUP .......................................................................................................................... 91
DAFTAR PUSTAKA ......................................................................................................... 93

iii

BAB I
PENDAHULUAN

a.

Umum
Bahasa Pemrograman Java tidak seperti banyak bahasa pemrograman yang tidak
semakin populer dengan bertambahnya usia, Java semakin terkenal luas dan semakin
menunjukkan kesungguhannya seiring alur waktu. Bahkan sekarang, Java masih
merupakan pilihan pertama dan terbaik untuk aplikasi-aplikasi berbasis web.
Salah satu alasan kesuksesan Java ialah agilitasnya. Java cepat beradaptasi
terhadap perubahan-perubahan pada lingkungan pemrograman. Siklus rilis Java ratarata 1,5 tahun, kemampuan Java untuk mengakomodasi laju perkembangan dunia
komputasi merupakan bagian krusial mengapa Java masih merupakan bahasa
pemrograman komputer yang terdepan.

b.

Latar Belakang
Pada satu dekade atau dasawarsa ini peranan 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 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.
c.

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.

BAB II
LANDASAN TEORI
a.

Pengenalan Java dan Netbeans


a) Pengenalan Java
Java ialah bahasa pemrograman yang berorientasi objek (OOP(Object Orienation
Program)) dan dapat dijalankan pada berbagai macam platform sistem operasi, seperti
Windows, Unix, Linux, Mac OS, DOS dll. Java diciptakan oleh James Gosling dam
Patrick Naughton yang berhasil mengembangkan Java dalam suatu proyek dari SUN
Microsystem. Pada awalnya penemu Java yaitu James Gosling memberi nama OAK
yang namanya berasal dari pohon yang terdapat pada kantor James Gosling, tetapi
akhirnya diberi nama Java dikarenakan pada saat itu ia sedang minum sebuah kopi
tubruk yang khas berasal dari Indonesia yaitu lebih tepatnya Pulau Jawa, karena nama
Jawa dalam bahasa inggrisnya ialah Java, maka ia pun mematenkan nama prgram ini
dengan nama Java.
Java sering dugunakan oleh semua segmen, karena mampu merambah seluruh
hal, dari pemrograman desktop (desktop programming) hingga pemrograman mobile
(mobile programming).
Java telah berkembang dari semula diciptakan untuk pemrograman Applet
(program komputer yang telah dikompilasi menjadi bytecode, yaitu suatu keadaan
program yang dapat deksekusi langsung; tambahan didalam suatu homepage selain
gambar) yang berjalan di web browser menjadi pemrograman yang terkenal untuk
pengembangan berbagai aplikasi komputer yang berjalan di berbagai perangkat mulai
dari handled devices seperti handphone, PDA (Personal Digital Assistant) sampai
aplikasi khusus yang tersebar di berbagai macam komputer server. Perkembangan Java
tidak hanya terfokus pada satu sistem operasi, tetapi dikembangkan untuk berbagai
7

sistem operasi dan bersifat open source. Java merupakan program pengembangan dari
bahasa C++ sehingga pada strukturnya terlihat seperti bahasa C++.
Dari penjelasan diatas, timbul sebuah pertanyaan yaitu, Mengapa kita harus
mempelajari Java? Berdasarkan white paper resmi dari SUN Microsystem, Java memiliki
karakteristik sbb :
1. Sederhana (Simple)
Bahasa pemrograman Java menggunakan Sintaks mirip dengan C++ namun sintaks
pada Java telah banyak diperbaiki terutama menghilangkan penggunaan pointer yang
rumit dan multiple inheritance. Java juga menggunakan automatic memory allocation
dan memory garbage collection.
2. Berorientasi Objek (Object Oriented)
Java mengunakan pemrograman berorientasi objek yang membuat program dapat
dibuat secara modular dan dapat dipergunakan kembali. Pemrograman berorientasi
objek memodelkan dunia nyata kedalam objek dan melakukan interaksi antar objekobjek tersebut.
3. Terdistribusi (Distributed)
Java dibuat untuk membuat aplikasi terdistribusi secara mudah dengan adanya
libraries networking yang terintegrasi pada Java. Libraries yang akan digunakan
disini ialah Java Development Kit (JDK).

4. Interpreted
Program Java dijalankan menggunakan interpreter yaitu Java Virtual Machine (JVM).
Hal ini menyebabkan source code Java yang telah dikompilasi menjadi Java
bytecodes dapat dijalankan pada platform yang berbeda-beda.
5. Robust
Java mempuyai reliabilitas yang tinggi. Compiler pada Java mempunyai kemampuan
mendeteksi error secara lebih teliti dibandingkan bahasa pemrograman lain. Java
mempunyai runtime-Exception handling untuk membantu mengatasi error pada
pemrograman.
6. Secure
Sebagai bahasa pemrograman untuk aplikasi internet dan terdistribusi, Java memiliki
beberapa mekanisme keamanan untuk menjaga aplikasi tidak digunakan untuk
merusak sistem komputer yang menjalankan aplikasi tersebut.
7. Architecture Neutral
Program Java merupakan platform independent. Program cukup mempunyai satu
buah versi yang dapat dijalankan pada platform berbeda dengan Java Virtual
Machine.
8. Portable
Source code maupun program Java dapat dengan mudah dibawa ke platform yang
berbeda-beda tanpa harus dikompilasi ulang.
9. Performance

Performance pada Java sering dikatakan kurang tinggi. Namun performance Java
dapat ditingkatkan menggunakan kompilasi Java lain seperti buatan Inprise, Microsoft
ataupun Symantec yang menggunakan Just In Time Compilers (JIT).
10. Multithreaded
Java mempunyai kemampuan untuk membuat suatu program yang dapat melakukan
beberapa pekerjaan secara sekaligus dan simultan.
11. Dynamic
Java didesain untuk dapat dijalankan pada lingkungan yang dinamis. Perubahan pada
suatu class dengan menambahkan properties ataupun method dapat dilakukan tanpa
menggangu program yang menggunakan class tersebut.

Editor

Java
Compiler

Java
Interpreter

Hello.java
Satu kali

Hello.java
Berkali-kali
setiap program
dijalankan

Gambar diatas merupakan sebuah fase pemrograman Java yang menjelaskan


aliran proses kompilasi dan eksekusi sebuah program Java.
Langkah pertama dalam pembuatan sebuah program berbasis Java adalah
menuliskan kode program pada text editor. Contoh text editor yang dapat digunakan
yaitu notepad, vi, emacs dsb. Kode program yang dibuat kemudian disimpan dalam
sebuah berkas berekstensi .java. Stelah membuat dan menyimpan kode program,

10

kompilasi sebuah file yang berisi kode program tersebut dengan menggunakan Java
Compiler. Hasilnya ialah berupa berkas bytecode berekstensi .class dan berkas yang
mengandung bytecode tersebut kemudian akan dikonversikan oleh Java Interpreter
(Penerjemah Java) menjadi machine language (bahasa mesin) dengan jenis dan platform
yang digunakan.
Proses
Menulis kode program

Tool
Text Editor

Hasil
Berkas bereksistensi .java
Berkas bereksistensi .class

Kompilasi program

Java Compiler
(Java Bytecodes)

Menjalankan program

Java Interpreter

Program Output

Macam-macam Tool/Text Editor yang umum digunakan untuk menuliskan source


code Java, antara lain :
a. NotePad.
b. JCreator.
c. Edit Plus.
d. JFrameBuilder.
e. Eclipse.
f. Netbeans.
g. Borland JBuilder.
h. JDeveloper.
11

i.

Gel.

b) Pengenalan NetBeans
NetBeans ialah suatu tool umtuk membuat program dengan menggunakan sebuah
bahasa pemrograman Java berbasis grafis. NetBeans mengacu pada dua hal, yaitu
platform untuk pengembangan aplikasi desktop java, dan sebuah Integrated Development
Environment (IDE) yang dibangun menggunakan platform NetBeans yang mendukung
pengembangan semua tipe aplikasi Java (J2SE, Web, EJB, dan aplikasi mobile).
NetBeans

menyediakan cara

membuat

program dengan merancang

tampilan

menggunakan komponent visual dan proses diletakkan pada event driven. NetBeans juga
menyediakan sekumpulan software modular yang disebut modul yang dipakai untuk
membangun suatu aplikasi. Modul tersebut merupakan arsip Java (Java Archive) yang
memuat kelas-kelas Java yang berinteraksi dengan NetBeans Open API, kemudian
rancangan tampilan yang dibuat menggunakan NetBeans programnya secara otomatis
akan digenerate menjadi sebuah kode.
Platform NetBeans merupakan framework yang dapat digunakan kembali
(reusable) untuk menyederhanakan pengembangan aplikasi desktop. Ketika aplikasi
berbasis platform NetBeans dijalankan, kelas Main dari platform dieksekusi. Modulmodul yang tersedia ditempatkan pada sebuah registry didalam memori, dan tugas
startup modul dijalankan. Secara umum, kode modul dimuatkan ke dalam memori hanya
ketika ia diperlukan.
Platform NetBeans menawarkan layanan-layanan yang umum bagi aplikasi
desktop, mengijinkan pengembang untuk fokus ke logika yang spesifik terhadap aplikasi.
Fitur-fitur yang disediakan oleh platform NetBeans :
Manajemen pengaturan pengguna.
Manajemen penyimapanan (menyimpan dan membuka berbagai macam data).
12

Manajemen jendela.
Wizard framework (mendukung dialog langkah demi langkah).
Manajemen antarmuka (misalnya : menu & toolbar).
Berikut ini merupakan paket-paket tambahan yang ada pada NetBeans IDE
(Integrated Environment Development) :
1. NetBeans Mobility Pack
NetBeans Mobility Pack adalah alat untuk mengembangkan aplikasi yang berjalan
pada perangkat bergerak (mobile), umumnya telepon seluler, tetapi juga mencakup
PDA, dan lain-lain. NetBeans Mobility Pack dapat digunakan untuk menulis, menguji,
dan debugging aplikasi untuk perangkat bergerak yang menggunakan teknologi
berplatform Java Micro Edition (platform Java ME). Paket ini mengintegrasikan
dukungan terhadap Mobile Information Device Profile (MIDP) 2.0, Connected
Limited Device Configuration (CLDC) 1.1, dan Connected Device Configuration
(CDC). Emulator dari pihak ketiga dapat diintegrasikan dengan mudah untuk
lingkungan pengujian yang lebih kokoh. NetBeans Mobility Pack saat ini tersedia
dalam dua klaster yang berbeda, yang satu memuat CDC dan yang lainnya CLDC.
2. NetBeans Profiler
NetBeans Profiler adalah alat untuk mengoptimalkan aplikasi Java, membantu
menemukan kebocoran memori dan mengoptimalkan kecepatan. Profiler ini
berdasarkan sebuah proyek riset Sun Laboratories yang dahulu bernama Jfluid. Riset
tersebut mengungkap teknik tertentu yang dapat digunakan untuk menurunkan
overhead proses profiling aplikasi Java. Salah satu dari teknik tersebut adalah
instrumentas i kode byte dinamis, yang berguna untuk profiling aplikasi Java yang
besar. Dengan menggunakan instrumentasi kode byte dinamis dan algoritma-

13

algoritma tambahan, Netbeans Profiler mampu mendapatkan informasi runtime


aplikasi yang terlalu besar atau kompleks bagi profiler lain. NetBeans IDE 6.0 akan
mendukung Profiling Point yang memungkinkan kita memprofilkan titik yang tepat
dari eksekusi dan mengukur waktu eksekusi.
3. NetBeans Ruby Pack
NetBeans versi 6.0 mengijinkan pengembangan IDE menggunakan Ruby dan Jruby,
sebagaimana Rails untuk dua implementasi Ruby yang lain. Preview NetBeans Ruby
Pack tersedia sejak rilis Milestone 7 NetBeans 6. Ruby Pack memasukkan
fungsionalitas editor seperti:
Pengeditan dasar.
Pewarnaan sintaks untuk Ruby.
Pelengkapan kode.
Occurence highlighting.
Pop-up dokumentasi yang terintegrasi untuk pemanggilan Ruby API.
Analisis semantik dengan highlighting parameter dan variabel lokal yang tidak
terpakai.
4. NetBeans JavaScript Editor
NetBeans JavaScript Editor menyediakan perluasan dukunagn terhadap JavaScript
dan CSS. Fitur-fiturnya antara lain :
i. Editor JavaScript
Syntax highighting.
Pelengkapan kode untuk objek dan fungsi native.
Smua fitur dalam editor NetBeans.
Pembuatan kerangka kelas JavaScript secara otomatis.
Pembuatan pemanggilan AJAX dari template.
14

ii. Ekstensi editor CSS


Navigasi cepat melalui panel navigator.
Penampilan deklarasi aturan CSS di List View.
Pelengkapan kode untuk nama-nama style.
Penampilan struktur file di Tree View.
Mengurutkan outline view berdasarkan nama, tipe, atau urutan deklarasi (List &
Tree).
Pembuatan geklarasi aturan (hanya Tree).
Pemfaktoran kembali sebagian nama rule (hanya Tree).
Berikut ini merupakan cara menjalankan NetBeans :
Klik icon NetBeans IDE versi 8.0.1 (sesuaikan dengan NetBeans yang dimiliki).

Tunggu selagi program menjalankan eksekusi yang kita buat.

15

Lalu, setelah itu akan muncul layar awal dari aplikasi NetBeans IDE versi 8.0.1.

Selanjutnya, kita akan membuat sebuah project :


Klik Flie > New Project.

Pilih Categories : Java dan Project : Java Application > Klik Next.

16

Setelah itu akan muncul layar untuk mengisi Nama dan Lokasi Project yang akan
dibuat. Isilah project nama sesuai dengan kebutuhan yang diinginkan. Contoh :
Project Name : Latihan1
Project Location : Klik Browse (lokasi drive pada komputer yang akan dipilih
untuk penyimpanan project tersebut).
Project Folder : keterangan file yang tersimpan pada lokasi.
Setelah itu, non-aktifkan tanda centang pada Create Main Class dan Klik Finish.

17

Project telah dibuat.

Setelah itu, klik kanan pada project Latihan1 > New > Pada option New terdapat
Folder, Applet, Japplet, Jframe From, Java Class, Java Package, Java Inteface dll.
Sesuaikan file yang akan dibuat pada project sesuai kebutuhan yang ditentukan.

18

b.

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.
Operator

Penjelasan

Penjumlahan

Pengurangan

Perkalian

Pembagian

Modulus

++

Increament

+=

Penugasan penjumlahan

-=

Penugasan pengurangan

*=

Penugasan perkalian

19

/=

Penugasan pembagian

%=

Penugasan modulus

--

Decreament

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.
Operator

Penjelasan

Bitwise unary NOT

&

Bitwise AND

Bitwise OR

Bitwise XOR

>>

Geser Kanan

>>>

Geser kanan dengan pengganjalan nol

<<

Geser kiri

&=

Penugasan bitwise AND

|=

Penugasan bitwise OR

^=

Penugasan bitwise XOR

>>=

Penugasan geser kanan

>>>=

Penugasan geser kanan dengan pengganjalan nol

<<=

Penugasan geser kiri

Berikut ini merupakan tabel kebenaran untuk operator &, | , ^ , dan ~.


20

A|B

A&B

A^B

~A

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.
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
21

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)
Operator Relasional
Operator relasional menentukan relasi satu operand dengan operand lainnya. Operand
ini biasanya diapakai untuk menentukan ekualitas dan pengurutan.
Berikut ini merupakan tabel yang merangkum semua operator relasional.
Operator

Penjelasan

==

Sama dengan

!=

Tidak sama dengan

<

Kurang dari

>

Lebih dari

<=

Kurang dari atau sama dengan

>=

Lebih dari atau sama dengan

Operator Boolean
Operator logikal boolean yang ditampilkan disini hanya bisa diterapkan terhadap
operand-operand boolean, Setiap operaor logikal biner mengkombinasikan dua nilai
boolean untuk menghasilkan suatu nilai boolean.
Operator

Penjelasan

&

AND logikal

OR logikal

22

XOR logikal

||

OR short-circuit

&&

AND short-cicuit

NOT logikal

&=

Penugasan AND

|=

Penugasan OR

^=

Penugasan XOR

==

Sama dengan

!=

Tidak sama dengan

?:

If-then-else

Tabel berikut menunjukkan efek dari penggunaan tiap operasi logikal.

c.

A|B

A&B

A^B

!A

False

False

False

False

False

True

True

False

True

False

True

False

False

True

True

False

True

True

True

True

True

True

False

False

Class, Object, dan Method


a) Class
Class merupakan suatu konstruksi logikal dimana bahasa pemrograman Java akan
dibangun,

Class

juga

merupakan

grup

suatu

object

dengan

kemiripan

attributes/properties, behavior dan relasi ke object lain. Dengan kata lain Class
merupakan kumpulan dari object yang saling berhubungan dan memiliki keterkaitan dan
menggambarkan ciri-ciri umum dari object tersebut. Contoh : Class Orang, Pendidikan,
Mobil, dll. Ada dua kelompok kelas, yaitu kelas standard dan kelas yang didefinisikan
23

sendiri. Kumpulan dari method/kelas standard dalam Java dikenal dengan API
(Application Programming Interface).
Secara umum, kelas pada Java mempunyai struktur penulisan sbb :
(modifier) class NamaKelas (modifier2) {
classbody
}

Classbody terdiri dari attribute, contructor, dan method.


Modifier 1 untuk menentukan sifat dari suatu kelas dan menentukan preveledge
(hak akses) dari kelas lain. Modifier2 untuk menentukan relasi (extend atau implements)
dengan kelas lainnya.
Modifier pada anatomi kelas, sifatnya optional, digunakan berdasarkan
kebutuhan. Modifier menunjukkan sifat-sifat tertentu ari : kelasnya, metodhnya, atau
attributenya.
Beberapa

keyboard

yang

dapat

digunakan

sebagai

modifier1

dapat

dikelompokkan menjadi :
1. Modifier akses (public, protected, default, private).
2. Modifier final.
3. Modifier static.
4. Modifier abstract.
5. Modifier synchronized.
6. Modifier native.
7. Modifier storage (transient, volatile).

24

Modifier yang memiliki difat daling kontradiktif yaitu static an abstract.


Sementara static tidak boleh memberi sifat pada interface, dan keyword super tidak boleh
digunakan pada method static.
Hak akses terhadap member dari ebuah modifier juga dibatasi seperti yang
terlihat dari tabel berikut :
Wilayah Akses

Public

Protected

Default

Private

Di kelas yang sama

Beda kelas, di package


yang sama

Beda kelas, beda package,


di kelas turunan

Beda kelas, beda package,


tidak di kelas turunan

Contoh salah satu sebuah source code Class pada Class DemoKotak pada
program sederhana :

NB : Keterangan ada pada comment ( // ).


b) Object
Object merupakan segala sesuatu yang ada di dunia ini baik berupa makhluk
hidup maupun benda mati. Didalam pemrograman, objek-objek tersebut akan dikonversi
25

menggunakan bahasa pemrograman sehingga menjadi Objek Pemrograman. Secara


umum, object dalam dunia nyata mempunyai 2 komponen utama yaitu keadaan dan
sifat/perilaku. Pada bidang pemrograman, Object adalah instance of class. Jika class
secara umum mempresentasikan (template) sebuah object, sebuah instance adalah
representasi nyata dari class itu sendiri. Contoh : Dari class Mobil kita dapat membuat
object MobilPribadi, AngkutanUmum, dll. Sama halnya dengan Object Nyata, Object
dalam pemrograman memiliki dua karakteristik utama yaitu :
1. Atribut sebagai status (state).
2. Tingkah laku (behaviour).
Berikut ini merupakan contoh dari penggunaan object dalam lanjutan contoh class
sebelumnya dalam soal berikut ini :
Setiap objek memilki salinan dari setiap variabel instansnya sendiri. Ini berarti
bahwa jika Anda memiliki dua objek Kotak, maka tiap objaek memiliki salinan dari
dalam, lebar, dan tinggi. Hal ini penting dipahami bahwa perubahan yang terjadi pada
variabel instans dari satu objek tidak berpengaruh terhadap variabel instans dari objek
lain. Tulislah program yang mengilustrasikan konsep ini !
Penyelesaian :

26

NB : Keterangan ada pada comment ( // ).

c) Method
Method adalah aksi-aksi dan perilaku yang bisa dilakukan oleh suatu objek.
Didalam Java, kita dapat mendefinisikan banyak Method yang akan kita panggil dari
Method yang berbeda. Method juga bisa dikatakan suatu runtun deklarasi dan statement
yang dapat dieksekusi dan dibungkus bersama menjadi program-mini sederhana. Dalam
beberapa bahasa pemrograman lain, method dikenal dengan fungsi, prosedur, subrutin,
atau subprogram.
Method mempunyai 4 (empat) bagian dasar :
1. Nama metode
2. Tipe objek atau tipe primitive yang dikembalikan metode.
3. Daftar parameter
4. Badan atau isi kode

27

Berikut ini merupakan 2 contoh cara penulisan method dalam pemrograman Java
:
Deklarasi Method
public char charAt(int index)

Definisi
Mengambil karakter pada indeks tertentu

public boolean equalsIgnoreCase (String Membandingkan antar String, tidak case


sensitive
anotherString)

Contoh dari Method di salah satu program sederhana :

Penjelasan mengenai method diatas ialah dimana method tersebut digunakan


untuk menghapus atau meng-clear kan data yang telah diisi oleh field yang sebelumnya
pada program yang dieksekusi. Data dapat terhapus dikarenakan pada method yang
dibuat field-field atau button yang digunakan bernilai null dan false.

Setelah dibuat method, maka masukkan nama method (yaitu: Bersih(); ) pada
button hapus atau bersih yang ada pada program yang telah didesign, dengan cara
dimasukkan pada perintah AcitonPerformed.

28

d.

Struktur Perulangan dan Percabangan


a) Perulangan
Statement-statement iterasi (perulangan) pada Java adalah while, for, dan dowhile. Ketiga statement inilah yang dinamakan dengan loop. Loop secara berulang
mengeksekusi sehimpunan instruksi sampai kondisi terminasi terpenuhi.

While
Loop while merupakan satatement loop paling fundamental pada Java.
Statement ini mengeksekusi secara berulang suatu statement atau blok
statement ketika ekspresi pengendali bernilai true. Berikut adalah format
umumnya :
inisialisasi;
while (kondisi) {
// statement yang akan diulang
perulangan (iterasi);
}

Ekspresi?

Statement
................

29

Contoh

program

while

dalam

JApplet

atau

JClass

Do-While
Loop do-while selalu mengeksekusi tubuhnya minimal sebanyak sekali, karena
ekspresi kondisional berada dibawah loop. Format umumnya adalah :
inisialisasi;
do {
//statement yang akan diulang
iterasi;
} while (kondisi);

Statement
...................

Ekspresi?

Contoh dari program do-while dari JApplet dan JClass :

30

For
Looping For umumnya digunakan pada pengulangan yang jumlah iterasinya
sudah pasti atau sudah diketahui sebelumnya. Berikut adalah formula atau
formatnya :
for (inisialisasi; kondisi; iterasi) {
//statement yang akan diulang
}

Star
t

inisialisasi

kond
isi

End

Statement
yang diulang
Iterasi
(perulangan)

Contoh perulangan (looping) dari program JApplet atau JClass :

31

b) Percabangan
Java menyediakan statement percabangan if, if-else, dan switch, yang bisa
dipakai untuk membuat keputusan.

If (.....)
Pernyataan if ialah dimana kondisi adalah suatu ekspresi boolean (Y/N).
Ekspresi boolean merupakan suatu ekspresi yang yang menghasilkan
nilai bertipe boolean. Berikut contoh formulanya :
If (ekspresi_boolean)
statements

Logical
expressi
on

Y
Statement

Contoh dari program percabangan if :

32

If-else
Percabangan if-else ialah percabangan dimana ekspresi boolean (Y/N)
memilki dua satatement yaitu statement keputusan yang benar (1) dan
jika statement tersebut bukan statement yang diminta, maka fungsi elselah yang berfungsi untuk mengeksekusi pada stetement (2).
Formula :
If (ekspresi_boolean)
Statement 1
else
statement 2

Logical
Expression

Statements 1

Statements 2

33

Contoh program if-else :

If-else-if
Percabangan if-else-if ialah percabangan yang disebut if-else bertangga
atau bersarang, dimana percabangan ini memiliki 3 buah pernyataan
ekspresi boolean yang berbeda dan

3 buah statment-statement yang

berbeda pula. Berikut ini merupakan formula :


if (ekspresi_boolean1)
statement1;
else if (ekspresi_boolean2)
statement2;
else
statement3;

Logical
Expression

Statements 1

Statements 2

Statements 3

Contoh dari program if-else-if menggunakan JApplet atau JClass :

34

Switch
Switch ialah percabangan yang sama fungsinya dengan percabangan
lainnya, hanya saja ia menggunakan switch sebagai ekspresi yang akan
menjelaskan case, dan case merupakan isi dari statement-statement yang
digunakan, setelah itu ditutup oleh perintah break dan perintah default
untuk statement yang berisi pernyataan yang menyatakan tidak
ada/digunakan dari statement-statement yang ada sebelumnya . Berikut
formulanya :
switch ( switch_ekspresi ) {
case case_pilihan1:
statement1; //
statement2; //blok 1
Break;
case case_pilihan2:
statement1; //
statement2; //blok 2
break;
default:
statement1; //
statement2; //blok n
}

35

Berikut merupakan contoh dari penggunaan switch darip program


sederhana menggunakan JAplet atau JClass :

e.

Pemrograman Berorientasi Objek (OOP)


Seperti yang diketahui dari penjelasan mengenai Java diatas, Java merupakan
salah satu bahasa pemrograman berorientasi objek ( OOP Object Oriented
Programming). Paradigma OOP sendiri ialah menyelesaikan masalah dengan
mempresentasikan masalah ke model objek, hanya saja Java memiliki keutamaan
dibanding bahasa pemrograman yang lain yaitu Cross Platform dengan adanya Java
Virtual Machine (JVM), pengembangannya didukung oleh programmer secara luas dan
Automatic Garbage Collection yang membebaskan programmer secara luas dan
Automatic Garbage Collection yang membebaskan programmer dari tugas manajemen
memori.
OOP merupakan salah satu teknik yang memusatkan rancangan pada data (objek)
dan interface. Fasilitas pemrograman berorientasi objek pada Java, pada dasarnya adalah
36

sama dengan peemrograman C++. Feature pemrograman berorientasi objek pada Java
benar-benar sebanding dengan C++, perbedaan Java dengan C++ terletak pada
penurunan berganda (multiple inheritance), untuk ini Java memiliki cara penyelesaian
yang lebih baik.
i.

Pencontohan Objek dalam OOP


Objek-objek dalam dunia nyata, mempunyai 2 karakteristik khusus :
Status dan Perilaku. Contohnya, sepeda punya status(jumlah gir, jumlah
pedal, dua buah ban) dan perilaku(mengerem, mempercepat, ubah gir).
Bahasa yang berorientasi pada objek pun mempunyai karakteristik yang
sama dengan objek-objek di dunia nyata. Yaitu status yang dalam bahasa
pemrograman biasanya disimpan sebagai Variabel

dan perilaku yang

diimplementasikan sebagai Method.


ii.

Karakteristik OOP (Object Oriented Programming)


o Enkapsulasi (Pembungkusan)
Enkapsulasi adalah pelindung program dan data yang sedang diolah.
Enkapsulasi mendefinisikan perilaku dan melindungi program dan data
agar tidak diakses secara sembarangan oleh program lain. Dalam Java,
dasar enkapsulasi adalah class. Anda membuat suatu class yang
menyatakan bahwa variable atau method sebuah class tidak dapat
diakses oleh class lain dengan menjadikan class tersebut private, atau
menjadikan class tersebut protected yaitu hanya bisa diakses oleh
turunannya, atau menjadikan class tersebut public yaitu bisa diakses
oleh sembarang class.
o Inheritansi

37

Objek-objek yang berada di sekitar kita adalah objek-objek yang saling


terhubung secara hirarkis. Misalnya :

Objek Gambar

Bentuk 2D

Bujur Sangkar

Bentuk 3D

Lingkaran

Piramida

Bola

Lingkaran dan Bujur Sangkar adalah turunan dari bentuk 2D dan


bentuk 2D tersebut merupakan turunan dari Objek Gambar.
Lingkaran dan Bujur Sangkar mewarisi(inherit) sifat-sifat dari bentuk
2D, juga mewarisi sifat-sifat dari objek gambar Lingkaran dan Bujur
Sangkar dapat dikatakan subclass dari bentuk 2D. Bentuk 3D adalah
superclass dari Bola dan Piramida, dan seterusnya.
o Polimorfisme
Walaupun Lingkaran dan Bujur Sangkar sama-sama turunan dari
Bentuk 2D, tetapi cara mengubah ukuran masing-masing berbeda,
untuk lingkaran anda harus merubah besar jari-jarinya, sedang untuk
bujur sangkar anda harus mengubah panjang sisinya.

38

BAB III
HASIL PERCOBAAN / PRAKTIKUM (MODUL 2 -8)

a.

Modul 2
Hasil Pecobaan / Praktikum :

b.

Modul 3
Hasil Pecobaan / Praktikum :

39

Penambahan

Perkalian

40

Pembagian

Pengurangan

c.

Modul 4
Hasil Percobaan / Praktikum :

41

d.

Modul 5
Hasil Percobaan / Praktikum :

42

43

e.

Modul 6
Hasil Percobaan / Praktikum :

f.

Modul 7
Hasil Percobaan / Praktikum :

44

g.

Modul 8
Hasil Percobaan / Praktikum :

45

BAB IV
ANALISA HASIL PERCOBAAN (MODUL 2-8)

a.

Modul 2
Sebelum mengetahui analisa mengenai modul 2, mari lihat terlebih dahulu
source kode atau perintah yang digunakan untuk menjalankan program tersebut.

Pada source kode diatas, terlihat kode atau perintah yang digunakan berada
pada perintah btnprosesActionPerformed yang ada pada button Proses
(kotak merah) 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 hitam). 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
46

sebagai pengirim data yang telah diisi pada field txtnpm ke lblnpm pada saat
eksekusi

terjadi.

Keterangan

lblnama.setText(txtnma.getText());

fungsi
,

ini

sama

kaitannya

dengan

lbltgl.setText(txttgl.getText());

lblalamat.setText(txtalamat.getText()); , dan lblhobi.setText(txthobi.getText()); .


Sedangkan pada lbljenkel.setText(cbojenkel((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 jenkel (jenis kelamin) maka pada perintah
pengiriman data atau text yang telah dimasukkan user ialah dengan
menggunakan getSelectedIndex, lalu lbljenkel yang menset (menetapkan) text
yang telah dipilih dari combobox (cbojenkel) pada saat pengeksekusian
program.
Setelah itu, pada baris selanjutnya dibawah lblhobi terdapat perintah yang
dimana fungsinya untuk mengosongkan seluruh field-field yang telah diisi user
dengan mengklik button Proses kembali. Hanya saja pada cbojenkel ter-set jenis
kelamin Pria pada lbljenkel , sedangkan yang lainnya kosong atau bersih.

47

b.

Modul 3
Analisa mengenai percobaan atau praktikum pada Modul 3 dapat dilihat
pada source kode nya sebagai berikut :

48

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 :

49

Pada

gambar

diatas

merupakan

source

kode

(private

void

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


pada button tambah (+) dengan peintah yang telah tertera (kotak hitam).
Sekarang kita akan membahas dari perintah yang diletakkan untuk membuat
dari button + (tambah) jika dieksekusi maka akan berjalan dengan semestinya
(kotak biru).
Integer nilai1=Integer.valueOf(txtinput1.getText()) , dimana maksudnya
ialah fungsi dari tipe data Integer ialah untuk mendeklarasikan sebuah tipe data
dari nilai1. Setelah itu, operator = (sama dengan) mendeklarasikan perintah
yang akan dilakukan dari nilai1 yang telah dideklarasikan tipe data sebelumnya.
Integer.valueOf(txtinput1.getText()); , dimana maksudnya ialah tipe data Integer
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 Integer nilai1 sama
dengan pendeklarasian dengan Integer nilai2 , hanya saja nilai2 memiliki nilai
(valueOf) dari pengiriman text (getText) yang telah diisi user dari field txtinput2.
Pada baris selanjutnya yaitu Integer hasil3 = nilai1 + nilai2; , dimana disini
menjelaskan hasil3 yang memiliki tipe data Integer mendeklarasikan perintah
dengan operator = (sama dengan) meletakkan rumus nilai1 + nilai2 yang mana
rumus ini menyatakan bahwa nilai1 yang memiliki nilai (valueOf) dari

50

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 +
(tambah).
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 daripada hasil yang telah ditetapkan sebelumnya, dan


valueOf(hasil3); yang 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 btnkurang, btnkali, dan btnbagi semua sama
penjelasannya dengan btntambah yang telah kita jelaskan sebelumnya, hanya
saja pada btnkali , btnkurang, btnbagi pada baris Integer hasil3 = nilai1 +
nilai2; yang mendeklarasikan rumus, hanya diganti operatornya saja dimana
btnkurang diganti dengan (-), btnkali diganti dengan (*) , dan btnbagi diganti
dengan (/).
Sedikit penambahan, pada btnbagi dimana tipe data Integer yang biasanya
digunakan oleh btntambah, btnkurang, dan btnkali diganti oleh Float (tipe data
yang mendeklarasikan bilangan desimal atau pecahan) karena didalam
pembagian, hasil daripada bagi tidak selalu menghasilkan bilangan bulat.

51

Perkalian

52

Pembagian

Pengurangan

c.

Modul 4
Berikut ini merupakan analisa mengenai praktikum Modul 4 pada Program
Penjualan Gadget. Berikut source code nya dan ulasannya :

53

Pertama, mari analisis pada perintah yang ada dalam cbojenis ( private void
cbojenisActionPerformed(java.awt.event.ActionEvent evt) { ).
Pada isi perintah dari cbojenis ini, kita menggunakan perintah percabangan
if-else-if untuk menyatakan statement yang dialam item pada combobox jenis
(cbojenis) yaitu iPad, iPhone, dan iPod. Berikut formatnya dalam format bagan.

Logical
Expression

Statements 1

Statements 2

Statements 3

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

}
}
NB : Keterangan dan pengertian atau maksud terletak pada comment (//).
Berikut ini analisa mengenai pengeksekusian program ketika data telah
dimasukkan dan siap untuk dihitung keseluruhannya dari jumlah total, diskon,
dll dimana perintah ini diletakkan pada btnbayar atau button Bayar (private void
btnbayarActionPerformed(java.awt.event.ActionEvent evt) { )

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 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.
}
56

NB : Keterangan dan pengertian atau maksud terletak pada comment (//).

d.

Modul 5
Berikut ini merupakan analisa mengenai praktikum Modul 5 pada Program
Perhitungan Gaji Pegawai. Berikut source code nya dan ulasannya :

57

public class Program_Gaji_Pegawai extends javax.swing.JFrame { //disini, variabelvariabel yang diperlukan untuk program ini akan di konstruksikan pada class
Program_Gaji_Pegawai, 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 s_gajikotor,s_pajak,s_gajibersih; //pendeklarasian variabel sebagai objek yang
akan digunakan pada method.

58

public Program_Gaji_Pegawai() { //menyatakan nama program


setTitle("Program 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=cbojabatan.getSelectedIndex(); //dimana pilihan sebagai variabel
bertipe integer (int) dan deklarasi dari cbojabatan pada combobox jabatan dimana
perintahnya getSelectedIndex (yang memilih bukan berdasarkan item yang dideklarasi
percabangan if, tetapi pada deklarasi switch menggunakan Index yang mana memilih
secara langsung tetapi dikelompokkan)

yang
yang
pada
tidak

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
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
}}

59

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.
}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.
60
}

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
TunjanganAnak, karena jika yang dipilih user ialah option1 (Menikah) maka
TunjanaganAnak juga berfungsi didalam pemanggilan data dari perintah
method-nya.
} //tutup method.

61

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 terset 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) terset 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.
}
NB :Keterangan ada pada comment (//).

62

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...
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.
s_gajikotor=String.valueOf(gajikotor); //s_gajikotor atau menyatakan simpan gajikotor yang
bertipe String memiliki nilai dari gajikotor yang telah dideklarasi.
s_pajak=String.valueOf(pajak); //kurang lebih sama artinya dengan s_gajikotor sebelumnya,
hanya saja ini untuk s_pajak yang telah dideklarasi.
s_gajibersih=String.valueOf(gajibersih); //kurang lebih sama artinya dengan s_gajikotor
sebelumnya, hanya saja ini untuk s_gajibersih yang telah dideklarasi.
txtgajikotor.setText(s_gajikotor); //field txtgajikotor akan ter-set dari s_gajikotor yang
dideklarasi dari gajikotor sebelumnya.
txtpajak.setText(s_pajak); //field txtpajak akan ter-set dari s_pajak yang dideklarasi dari pajak
sebelumnya.
txtgajibersih.setText(s_gajibersih); //field txtgajibersih akan ter-set dari s_gajibersih yang
63
dideklarasi dari gajibersih sebelumnya.
} //tutup method.

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.
}

64

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 fieldfield akan kosong dan itu sesuai dengan perintah didalam method ini.
} //tutup perintah WindowOpened.

private void cbojabatanItemStateChanged(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 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.
65
}
}

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.
}
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.
}

66

private void btnbersihActionPerformed(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 btnhitungActionPerformed(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.
}

e.

Modul 6
Modul 6 akan dianalisa mengenai Multi Document Interface (MDI) yang
dimana modul ini akan berfungsi untuk menggabungkan hasil output diantara
modul-modul yang telah dibuat sebelumnya (Modul 2-5) didalam satu form.

67

Sebelum menganalisa dari source-source kode yang akan diisi pada program ini,
mari lihat terlebih dahulu apa saja yang diperlukan untuk mengisi program pada
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 ia hanya
memperjelas dari modul-modul yang ada didalamnya lah yang
digunakan pada MDI.

Berikut penjelasan Menu ataupun Submenu pada FormUtama :


68

69

Keterangan :
File tersebut dibuat dari Swing Menu > Menu Bar. Setelah itu ganti nama
menjadi File dan tambahkan Menu Item pada Menu Bar tersebut yaitu
New yag berfungsi untuk membuat form baru untuk mengisi keluaran
(output) dari program modul serta Exit yang berfungsi untuk
mengeluarkan semua program.
Data, dimana Menu Bar data berisi Menu Item dari modul-modul yang
akan dimasukkan ( Modul 2-5).
Help ialah Menu Bar yang didalamnya berisi Menu Item berisi Tentang
yang bermaksud untuk menjelaskan tentang program-program ini, atau
kalau bisa dikatakan ini hanya menu tambahan saja.
Langsung saja, berikut ini merupakan analisa dan keterangan mengenai
source code yang ada didalam program MDI.

70

71

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 FormUtama
*/
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,
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(200,200,500,500); //jin mensetkan panjang dan lebar form
yaitu dengan panjang x lebar (200 x 500)
jDesktopPane1.add(jin);
jDesktopPane1

//menambahkan

JinternalFrame

pada

jin.setVisible(true); //JInternalFrame terlihat.


}catch(Exception e){ //menyatakan eksepsi (jika perintah diminta tak ada
didalam program ini, maka...
JOptionPane.showMessageDialog(null,
message (pesan) / Warning.

e);

//JOptionPane

menunjukkan

} }

72

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.
}

73

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.
}

74

Keterangan IFModul3, IFModul4, dan IFModul5 ialah sama dengan


penjelasan dari IFModul2.

75

f.

Modul 7 dan 8
Modul 7 dan Modul 8 disini akan menggunakan database sebagai koneksi
untuk menambah data yang dilakukan program dengan Java. Berikut yang
diperlukan untuk mempersiapkan project Program Penjualan ini.

a) Project program ini dinamakan ProgramPenjualan.


b) Pada Source Package, package-package yang digunakan ialah package
gui, icon, dan koneksi.

76

c) Package gui digunakan untuk meletakkan form-form yang akan


dijalankan.
d) Package icon, dimana berisi ikon-ikon untuk diletakkan pada button
sebagai simbol.
e) 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 ini.
package gui; //mendeklarasikan dari isi package gui.
import java.sql.*; //mengimport java sql untuk support dari jalannya
program.
import javax.swing.JOptionPane;
JOptionPane.

//mengimport

javax

swing

pada

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

77

Dimana yang telah kita ketahui dari FrmInputData yang ada pada
komponen dalamnya ialah bacaId(); , yang mana bacaId ini merupakan method
yang akan terhubung pada database untuk membaca Id. Pada field txtid dan
btnsave bersifat false karena belum hidup (true) jika belum dimasukkan semua
data keseluruhan.

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","");), berikutnya keterangan mengenai


statement dan pendeklarasian sql untuk menyeleksi Id sebagai kode dari

78

tcustomer (tabel yang ada pada database). Selanjutnya hasil execute query
berdasarkan kode yang telah dmasukkan secara otomatis yaitu (mis :0001) yang
mana ini berfungsi pada txtid, setiap user menyimpan (Save) data tersebut maka
kode tersebut melangkah satu langkah berurut.

Penganalisaan saya disini intinya 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.

79

Method Bersih berfungsi untuk meng-clear kan atau mebersihkan data yang
telah diisi.
80

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 (Clear) akan hidup atau true. Contoh output sebelum
diisi nama (txtnama) :

81

Sesudah terisi nama :

82

Maka button Save true (hidup). Setelah itu data data yang telah terisi akan
terkirim ke database dan melakukan penambahan, namun itu akan dibahas pada
pembahsan classDB.
Sekarang kita akan membahas FormTransaksi yang ada pada package gui.
Silahkan cermati baik-baik.

Seperti pada FormInputData, maka di FormTransaksi package gui


dideklarasikan lagi import-import yang diperlukan untuk menjalankan program
ini.

83

FormTransaksi memiliki komponen yang didalamnya terdapat method


invoice, dan penggunaan penangglan hari, bulan, dan tahun yang akan
dideklarasikan pada output di txttanggal yang telah dibuat.
Pada method invoice , disini kurang lebih sama dengan penjelasan bacaId
pada FormInputData hanya saja kode dimulai dari 14000 dan string sql yang
diseleksi semaksimal invoice dari tabel panjualan (tpenjualan).

Disini pembuatan dari method cariId, yang berfungsi untuk mencari Id


yang telah diisi pada FormInputData.

84

Intinya fingsi method simpan disini ialah menyimpan data yang telah diisi
akan ditransferkan datanya tersebut ke tpenjualan (tabel panjualan).

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.

85

Disini perintah pemanggilan yang diletakkan pada cbojenis (combobox


jenis) yang memilih dari item-item yang ada didalamnya.

Intinya disini dimasukkan perintah-perintah untuk menjalankan program


tersebut dari method yang telah dideklarasi.
Sekarang penjelasan tentang ClassDB.

86

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

87

Berikut pengeksekusian ketika koneksi database pada FormInputData :

Seelah Klik Save, data sudah berada pada database SQLyog.


88

Berhasil tereksekusi !.
Berikut ini koneksi database dengan FormTransaksi.

Selah itu klik Simpan , maka akan terkoneksi ke database dan tersimpan.
89

Data tersimpan !.
Kode masukan yang digunakan untuk menjalankan tcustomer pada
database.

Kode masukan yang digunakan untuk menjalankan tpenjualan pada


database.

90

PENUTUP

a.

Kesimpulan
Kesimpulan mengenai laporan praktikum ini ialah dimana bahasa 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 penulis menegenai pemrograman bahasa 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 sya rasa
masih sedikit orang yang mau 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

91

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. Mungkin, saran saya apakah pihak
dari pengembang bahasa Java ingin mengembangkan bahasa Java yang dapat
dikonvert ke bahsa Indonesia maupun bahasa lainnya yang ada didunia ini ? Mungkin
ini dapat menjadi referensi bagi produsen Java yaitu SUN Microsystem untuk
mempertimbangkan hal ini, tujuannya agar semua orang yang mempelajari bahasa
Java dengan adanya pengembangan bahasa lainnya sebagai penggunaan syntaks untuk
membuat

program dapat

mengembangkan kreatifitas juga dan sama-sama

mengembangkan Java untuk lebih baik lagi agar bisa seperti Windows yang dijuluki
OS friendly, begitu juga bahasa pemrograman Java yang harusnya diberi julukan
Language programming Friendly

92

DAFTAR PUSTAKA

Sianipar, R.H . 2014 . Soal, Kasus, dan Penyelesaian Pemrograman Java . INFORMATIKA
: Bandung.
Deitel . 2006. Java; How To Program . Diete & Associates : New Jersey.
http%3A%2F%2Fuzihayuri.files.wordpress.com%2F2012%2F03%2Fpertemuan-ke-5.pdf
http//muhammadichwanuddin/oop_bab_02_pdf.com
https://www.google.com/search?es_sm=93&q=pengertian+class,+object+dan+method+pada
+java+pdf.

93