LAPORAN PRAKTIKUM BAHASA PEMROGRAMAN JAVA ASWINA.pdf
-
Upload
aswina-seriyantihsb -
Category
Documents
-
view
132 -
download
2
Transcript of LAPORAN PRAKTIKUM BAHASA PEMROGRAMAN JAVA ASWINA.pdf
1
LAPORAN PRAKTIKUM
BAHASA PEMROGRAMAN JAVA
NAMA PRAKTIKAN NPM MAHASISWA TANGGAL KUMPUL TANDA TANGAN
PRAKTIKAN
ASWINA SERIYANTI
HASIBUAN
1314370318
NAMA PENILAI TANGGAK KOREKSI NILAI TANDA TANGAN
DOSEN
Indri
Sulistianingsih,S.kom
FAKULTAS ILMU KOMPUTER
UNIVERSITAS PEMBANGUNAN PANCABUDI
MEDAN
2015
KELAS
5 siang A
2
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 sebanyak- banyaknya 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,11 Desember 2015
Penulis
Aswina seriyanti hasibuan
3
DAFTAR ISI
KATA PENGANTAR ..................................................................................... 2
DAFTAR ISI.................................................................................................... 3-4
BAB I PENDAHULUAN
1.1 Latar belakang .................................................................................. 5
1.2 Tujuan ................................................................................................ 6
1.3 Manfaat………………………………………………………........ 7
BAB II DASAR TEORI
2.1 Pernyataan Dan Ekspresi .................................................................. 8
2.2 Variabel, Tipe Data dan Literal ......................................................... 9-12
2.3 Array ................................................................................................ 13
2.4 Operator ............................................................................................. 14-19
2.5 Operasi I/O Stream Sederhana ......................................................... 20-32
2.6 Pengaturan Format Output Numerik…………………………........ 33-34
2.7 Konversi String dan Bilangan (Number)………………………..... 35-36
2.8 Pernyataan Penentu Keputusan………………………………......... . 37-42
2.9 Pernyataan Pengulangan Proses………………………………......... 43-45
2.10 Pernyataan Pemindah Proses……………………………………..... 46-48
BAB III HASIL PERCOBAAN
3.1 Hasil praktikum modul2 .................................................................... 49-50
3.2 Hasil praktikum modul3 .................................................................... 51-54
3.3 Hasil praktikum modul4 .................................................................... 55-57
3.4 Hasil praktikum modul5 .................................................................... 58-64
4
3.5 Hasil praktikum modul6 .................................................................... 65-69
3.6 Hasil praktikum modul7 .................................................................... 70-74
3.7 Hasil Praktikum Modul8 ................................................................... ... 75-84
BAB IV ANALISA HASIL PERCOBAAN
4.1 Analisa Hasil Percobaan Modul 2 ....................................................... . 85
4.2 Analisa Hasil Percobaan Modul 3 ....................................................... 85
4.3 Analisa Hasil Percobaan Modul 4 ........................................................ 86
4.4 Analisa Hasil Percobaan Modul 5 .......................................................
4.5 Analisa Hasil Percobaan Modul 6 ....................................................... 92
4.6 Analisa Hasil Percobaan Modul 7 ....................................................... 92
4.7 Analisa Hasil Percobaan Modul 8 ....................................................... 93
BAB V PENUTUP
Kesimpulan ................................................................................................. 94
Saran ........................................................................................................... 94
Daftar pustaka ............................................................................................. 95
5
BAB I
PENDAHULUAN
a. 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
6
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.
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
7
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
Secara umum adalah seni dan estetika dalam menulis kode program dalam bahasa pemrograman
tertentu untuk menerjemahkan Ide/pikiran yang berisi flow chart (alur logika) kedalam bentuk
program, software, atau perangkat lunak, yang memiliki tujuan utama untuk memecahakan masalah
tertentu secara logis, kronologis, dan sistematis. Untuk bisa mendapatkan manfaat secara universal
dalam mempelajari pemrograman, pengertian dan struktur pemrograman itu sendiri harus bisa
dipahami secara luas dan universal. Bagi sebagian orang pemrograman akan sangat sulit, terutama
yang bukan berasal dari jenjang pendidikan keteknikan, kecuali jika anda benar-benar tekun dan
berusaha mempelajari dan mengaplikasikannya secara luas.
Syntax Tulisan Kode Program sebenarnya sama seperti tulisan kita sehari - hari,
Perbedaannya tulisan dengan bahasa kita sehari-hari lebih bersifat deskriptif, sedangkan tulisan kode
program bersifat konseptual yang berisi baris penjelasan pendek namum mengandung alur logika
yang lebih kompleks/tinggi tidak seperti deskripsi biasa.
8
BAB II
LANDASAN TEORI
a. Pernyataan dan Ekspresi
Pernyataan adalah perintah yang menyebabkan sesuatu terjadi dan merepresentasikan aksi
tunggal dan tiap baris kode diakhiri dengan semicolon " ; ".
Ekpresi adalah pernyataan yang dapat menghasilkan suatu nilai. Nilai yang dihasilkan oleh
pernyataan ini yang disebut dengan nilai balik. Dan nilai balik bisa berupa bilangan, booleon,
atau objek. Method tanpa nilai balik biasanya menggunakan keyword void.
contoh: hasilBagi = a / b;
Dibawah ini kata kunci suatu pernyataan adan ekspresi:
Elemen Dasar Bahasa Java
Anda tentunya telah mengerti tentang konsep pemrograman Java dari bagian pertama.
Sekarang Anda akan menyelami lebih dalam pemrograman Java dengan mengenal secara
detil dan spesifik mengenai bahasa Java itu sendiri.
Dalam tutorial kali ini Anda akan lebih jauh mempelajari apa-apa yang dapat Anda lakukan
dengan statement dan hal-hal dasar di bahasa Java dalam mendefinisikan sebuah metode
seperti main atau yang lain. Namun sementara kita tidak akan membahas tentang paradigma
pemrograman berorientasi objek seperti kelas dan objek dan bagaimana komunikasi antar
objek dalam sebuah program.
Statement dan Ekspresi
Statement adalah bagian terkecil dalam sebuah program untuk melaksanakan suatu tugas
tertentu, seperti memanggil metode, mendeklarasikan variabel, membandingkan dua buah
variabel, mengassign suatu nilai ke dalam variabel, dll. Berikut ini adalah beberapa contoh
statement.
import java.awt.Graphics;
int i = 0;
System.out.println("Hallo " + nama + ", Selamat Datang!");
this.isRuning = false;
9
Statement-statement tadi hanya bertugas melakukan suatu tugas tanpa perlu mengembalikan
suatu nilai atau hasil. Statement-statement yang mengembalikan suatu nilai tersebut kita sebut
ekspresi. Berikut contoh ekspresi:
int arraySize = theArray.size();
int result = x + y + z;
Dalam menulis statement Anda tidak perlu menggunakan bentuk penulisan tertentu. Anda dapat
saja menuliskan seluruh statement dalam satu baris walaupun hal ini sangat tidak dianjurkan.
Yang paling penting untuk Anda ingat di sini adalah bahwa whitespace (enter, spasi, dan tab)
tidak mempengaruhi program Anda, dan bahwa setiap statement harus selalu diakhiri tanda titik
koma (;). Kelalaian membubuhkan titik koma pada akhir statement dapat menyebabkan program
Anda tidak dapat dikompile, atau lebih parah menyebabkan bug yang sulit ditemukan.
B.Variabel,Tipe data dan literal
Variabel dalam ilmu matematika adalah sesuatu yang menyimpan nilai yang dapat berubah-ubah.
Demikian juga dalam bahasa pemrograman. Variabel dalam bahasa pemrograman adalah lokasi dalam
memori di mana sebuah nilai disimpan, dan nilai tersebut dapat diubah. Setiap variabel memiliki
nama, tipe, dan nilai.
Untuk menggunakan variabel, pertama kita harus mendeklarasikan variabel tersebut. Informasi yang
dibutuhkan dalam pendeklarasian variabel adalah tipe variabel tersebut. Tipe variabel sendiri akan
kita bahas sebentar lagi. Setelah mendeklarasikan variabel, kita dapat memberi nilai kepada variabel
tersebut, yang dalam bahasa pemrograman diistilahkan dengan assignment. Jadi assignment adalah
proses pemberian nilai kepada sebuah variabel.
Kita dapat mendefinisikan variabel di bagian manapun dari program sama seperti statement. Namun
dianjurkan pendefinisian variabel diletakkan pada awal pendefinisian metode di mana variabel
tersebut digunakan. Dalam beberapa hal, kita perlu melakukan pendefinisian variabel di tempat lain
untuk menyesuaikan ruang lingkup berlakunya variabel tersebut.
10
Untuk memahami lebih jauh pendefinisian variabel dan hal-hal yang dapat Anda lakukan dalam
mendefinisikan variabel, perhatikanlah kode berikut ini.
public static void main (String[] args)
{
int x; // deklarasi variable biasa
int y, z; // deklarasi dua variabel bertipe sama sekaligus
boolean isRunning = true;
// deklarasi sekaligus assignment nilai
int a = 3, b = 4; // deklarasi sekaligus assignment nilai
int c, d = 6; // deklarasi dan assignment variabel kedua
}
Kode tadi menunjukkan berbagai cara mendefinisikan variabel. Suatu saat mungkin Anda akan
merasakan manfaat tertentu dalam menggunakan cara-cara pendefinisian tersebut. Namun disarankan
Anda menggunakan cara biasa saja demi kerapian dan pencegahan kesalahan-kesalahan akibat
kelalaian dalam penulisan program.
Java memiliki tiga jenis variabel, yaitu: variabel instans, variabel kelas, dan variabel lokal.
Variabel instans adalah variabel yang digunakan sebagai atribut dari sebuah objek. Instans adalah
objek yang diciptakan dari sebuah kelas. Anggaplah kelas sebagai template untuk membuat objek.
Anda akan memahami lebih jauh mengenai hal ini dalam pembahasan mengenai pemrograman
berorientasi objek.
Variabel kelas adalah variabel yang digunakan sebagai atribut dari sebuah kelas. Berbeda dengan
variabel instans, variabel kelas akan bernilai sama bagi semua instans dari kelas ybs.
Variabel kelas adalah variabel yang didefinisikan dan digunakan hanya dalam sebuah metode.
11
Ketiga jenis variabel ini didefinisikan dengan cara yang sangat mirip tetapi variabel kelas dan instans
diakses dan diassign dengan cara yang agak berbeda dibandingkan variabel lokal.Saat ini kita hanya
akan memusatkan perhatian pada variabel lokal.
Sebagai tambahan, tidak seperti bahasa pemrograman lain, Java tidak memiliki variabel global, yaitu
variabel yang tersedia bagi semua bagian program. Dalam Java kita menggunakan variabel kelas dan
instans untuk mengkomunikasikan informasi global di antara objek-objek. Hal ini disebabkan Java
menganut paradigma pemrograman berorientasi objek murni, sehingga segala hal dipandang sebagai
interaksi antarobjek bukan antar bagian program.
Nama sebuah variabel harus diawali huruf atau garis bawah (_) atau tanda dolar ($), dan tidak boleh
diawali angka. Karakter berikutnya boleh angka. Ingat kembali Java bersifat case sensitive, jadi
perhatikan besar kecil huruf yang Anda pakai dalam nama variabel. Java juga menggunakan set
karakter Unicode. Namun hal ini tidak terlalu penting untuk Anda ketahui. Disarankan agar membuat
nama variabel yang mengandung makna, sehingga memudahkan pembacaan program Anda, misalnya
goButton, cancelButton, statusLabel, dll.
Jenis Variabel
Setiap variabel harus memiliki sebuah tipe. Tipe tersebut bisa berupa salah satu dari delapan tipe
primitif Java, nama kelas atau interface, atau sebuah array. Saat ini kita hanya akan membahas tipe
primitif dan tipe kelas saja.
Tipe Primitif
Java memiliki delapan jenis tipe primitif atau tipe-tipe dasar yang builtin. Tipe tersebut disebut
primitif karena dibangun ke dalam sistem dan bukan benar-benar objek sehingga pemakaiannya lebih
efisien. Tipe-tipe tersebut tidak bergantung pada arsitektur mesin, sehingga pemakaiannya tidak
mengganggu portabilitas program Anda. Kedelapan tipe primitif ini dijelaskan dalam.
12
Penting untuk diperhatikan bahwa tipe primitif dimulai dengan huruf kecil, karena ada kelas yang
memiliki nama yang sama dengan tipe primitif tersebut yang disebut kelas pembungkus.
Tipe Kelas
Tipe kelas digunakan untuk menyimpan instans dari kelas atau instans subkelas dari kelas tersebut.
Subkelas adalah kelas yang mewarisi sifat-sifat kelas tertentu.
Literal
Literal adalah sebuah istilah dalam bahasa pemrograman yang berarti sesuatu nilai yang memiliki arti
atau nilai sesuai dengan apa yang kita ketikkan. Misalnya kalau Anda memberi nilai 4 pada suatu
variabel bertipe int, maka nilai variabel tersebut adalah 4. Bilangan, karakter, dan string kesemuanya
merupakan literal. Berikut dijelaskan beberapa jenis literal dalam Java.
Literal angka dapat berupa bilangan positif. Angka negatif ditulis dengan menambahkan tanda minus
(-) di awal angka positif. Angka oktal dengan menambahkan angka 0 di awalnya. Angka
heksadecimal dengan menambahkan 0x di awalnya. Literal angka floating point (pecahan desimal)
biasanya memiliki dua bagian yaitu bagian integer dan bagian desimal. Untuk memaksa suatu
bilangan menjadi misalnya float atau long, cukup tambahkan huruf F atau L di belakang bilangan
tersebut. Untuk eksponen gunakan huruf E, seperti 3.0E-7 yang berarti 3,0 kali 10 pangkat minus 7
(0,0000003). Literal boolean terdiri atas true dan false.
Literal karakter terdiri sebuah karakter dalam kutip tunggal seperti 'a', '#', atau '1'. Literal karater juga
memiliki karakter khusus yang mewakili karakter noncetak. menunjukkan karakter-karakter khusus
tersebut. Huruf d pada oktal, hekadecimal, dan escape Unicode mewakili bilangan biasa atau bilangan
heksadecimal.
Literal string pada dasarnya adalah kombinasi dari karakter dalam tanda kutip ganda. Maka itu
karakter-karakter khusus dalam juga berlaku dalam literal string. Sebagai kelas tersendiri (bukan tipe
13
primitif) String mempunyai metode-metode sehingga Anda dapat melakukan penggabungan, tes, dan
pengubahan literal String dengan mudah.
C.ARRAY
Array adalah suatu variable yang terdiri dari sekumpulan data, dimana data-data tersebut mempunyai
tipe data yang sama. Setiap data disimpan dalam alamat memori yang berbeda-beda yang disebut
dengan elemen array. Setiap elemen mempunyai nilai indek sesuai dengan urutanya. Melalui indek
inilah kita dapat mengakses data-data tersebut. Pada bahasa java dan c++ array dimulai dari 0,
bukan 1 seperi pada pascal.
Array di deklarasikan dengan tanda [] (bracket)
Bentuk Umum dari array dimensi 1:
tipe_data nama_array[jumlah_elemen]
Jika ingin mendeklarasikan sebuah array dengan tipe data integer dengan nama a dan jumlah
elemen array-nya 10 maka kodenya adalah :
int a[10];
Dalam bahasa Java pendeklarasian array lebih variarif. Selain dengan kode seperti di atas,
Java juga dapat mendeklarasikan array dalam bentuk :
int[ ] a;
Kemudian setelah mendeklarasikan array, baik dengan kode yang pertama maupun yang kedua, Java
14
harus menciptakan (membuat) objek terlebih dahulu sebelum array dapat digunakan karena dalam
Java array merupakan sebuah Class.
Cara menciptakan objek array dalam Java adalah :
a = new int[10];
Dalam Java pendeklarasian array dan pembuatan objek array dapat dilakukan alam satu
sintak, yaitu:
int[ ] a = new int[10]; atau int a[ ] = new int[10];
Bentuk umum pendeklarasian variable array dua dimensi atau array multidimensi pada Java
adalah sebagai berikut:
tipeData[ ][ ] namaVariable [= new tipeData [jumlahBaris] [jumlahKolom]];
atau
tipeData namaVariable[ ][ ] [= new tipeData [jumlahBaris] [jumlahKolom]];
D. Operator
Pada sub bab sebelumnya telah dijelaskan secara singkat mengenai operator. Operator dapat diartikan
juga simbol yang biasa digunakan dalam menulis suatu pernyataan dalam bahasa pemrograman.
Operator akan melakukan suatu operasi terhadap operand sesuai dengan fungsinya, seperti
penjumlahan, pengurangan, perkalian, dan sebagainya.
Operator di Java ada 7 macam, yaitu :
Operator penugasan
Operator matematika
Operator penaikan dan penurunan
15
Operator bitwise ( manipulasi bit ) tidak dibahas
Operator relasional
Operator logika Boolean
Operator majemuk
Operator Penugasan
Operator ini yang paling sederhana dan hanya dilambangkan dengan karakter � = �. Operator ini
digunakan untuk menugaskan suatu nilai ke suatu variabel. Contoh:
int var = 1;
Uniknya, operator ini dapat digunakan secara berantai. Contoh:
int a,b,c;
a = b = c = 99;
Operator Matematika
Operator ini digunakan dalam ekspresi matematika. Operator matematka yang dikenal dalam Java
adalah sebagai berikut:
Operator Keterangan Contoh Hasil
+ Penjumlahan 4 + 5 9
- Pengurangan 9 � 2 7
* Perkalian 3 * 4 12
/ Pembagian 9 / 3 3
% Modulus ( sisa bagi ) 7 % 2 1
16
Operator matematika hanya dapat digunakan dengan operan bertipe bilangan, baik bilangan bulat
maupun pecahan, serta tipe data char yang merupakan pengecualian. Tipe data char menyimpan
informasi karakter dengan menggunakan bilangan yang merepresentasikan karakter tersebut. Contoh:
int x = 10;
int y = 2;
int z = x * y;
char x =
�a�;
z = x * 10;
Dalam Unicode, karakter �a�
direpresentasikan dengan angka desimal
97. Sehingga
: z = x * 10;
pada kondisi ini adalah sama dengan:
z = 97 * 10;
Operator Penaikan dan Penurunan
Operator ini digunakan untuk menaikkan atau menurunkan suatu nilai integer (bilangan bulat)
sebanyak satu satuan dan hanya dapat digunakan pada variabel. Operator�operator tersebut adalah
Operator Keterangan
++ Penambahan dengan nilai satu
– Pengurangan dengan nilai satu
Operator ini dapat ditempatkan sebelum atau sesudah variabel. Jika ditempatkan sebelum variabel,
maka variabel tersebut akan dikurangi/ ditambah dengan 1 sebelum di operasikan. Sebaliknya, jika
operator ini diletakkan sesudah variabel, maka variabel tersebut akan di operasikan terlebih dahulu
dan kemudian di tambahkan/ dikurangi dengan 1. Contoh penggunaannya :
x = x + 1; dapat ditulis menjadi x++; atau ++x;
y = y � 1; dapat ditulis menjadi y–; atau –y;
17
int x = 10;
int y , z;
y = ++x;
z = x++;
Variabel y mendapatkan nilai dari nilai x
yang ditambahkan dengan 1 terlebih
dahulu, sehingga nilai y adalah 11.
Variabel z mendapatkan nilai dari nilai x
yang belum ditambahkan dengan
1terlebih dahulu, sehingga nilai z adalah
10.
Operator Relasional
Operator ini digunakan untuk membandingkan dua buah nilai operand dan menghasilkan nilai
Boolean, yaitu true atau false. Berikut ini operator relasional dalam Java:
Operator Keterangan
== Sama dengan ( membandingkan, bukan penugasan )
!= Tidak sama dengan
> Lebih besar dari
< Lebih kecil dari
>= Lebih besar dari atau sama dengan
<= Lebih kecil dari atau sama dengan
Operator ini banyak digunakan sebagai kontrol alur eksekusi program seperti dalam pernyataan if,
while, do, for, dan lain-lain. Contoh penggunaan :
If(x>10) Jika nilai x lebih dari 10 maka akan
18
{
x = 0;
}
mengeksekusi operasi dibawahnya, yaitu
nilai x menjadi 0.
Operator Logika Boolean
Operator ini hanya digunakan untuk melakukan operasi pada operand yang bertipe boolean. Berikut
daftar operator logika boolean :
Operator Keterangan
& Logika AND
| Logika OR
^ Logika XOR
! Logika NOT
&& Short circuit Logika AND
|| Short circuit Logika OR
== Logika sama dengan ( membandingkan, bukan penugasan )
!= Logika tidak sama dengan
Berikut contoh penggunaan operator logika boolean :
If(x!=0 &&
y>=10)
{
Menggunakan short circuit AND (&&).
Jika Boolean x!=0 bernilai false, maka
Boolean y>=10 tidak akan dieksekusi.
19
z = 15;
}
Jika Boolean x!=0 bernilai true, maka
Boolean y>=10 dieksekusi. Jika
keduanya bernilai true, maka akan
mengeksekusi statement dibawahnya,
yaitu memasukkan nilai 15 ke variabel z.
If(x!=0 &
y>=10)
{
z = 15;
}
Menggunakan logika AND (&).
Mengeksekusi semua ekspresi yang
terlibat. Boolean x!=0 dan y>=10 pasti
dieksekusi. Jika keduanya bernilai true,
maka akan mengeksekusi statement
dibawahnya, yaitu memasukkan nilai 15
ke variabel z.
Operator Majemuk
Operator ini merupakan gabungan dari operator yang telah dibahas sebelumnya dengan operator
penugasan. Berikut operator majemuk pada Java yang dipelajari:
Operator Keterangan
+ = Logika AND
- = Logika OR
* = Logika XOR
/ = Logika NOT
% = Short circuit Logika AND
20
Berikut contoh penggunaannya:
hasil += 10; memiliki arti yang sama dengan hasil = hasil + 10;
hasil -= 20; memiliki arti yang sama dengan hasil = hasil – 20;dan
seterusnya.
E.OPERASI I/O Stream Sederhana
Sebuah I / O Stream merupakan sumber input atau output tujuan. Sebuah stream dapat mewakili
berbagai macam sumber dan tujuan, termasuk file disk, perangkat, program lain, dan array memori.
Stream mendukung berbagai jenis data, termasuk byte sederhana, tipe data primitif, karakter lokal,
dan objek. Beberapa aliran sungai cukup dengan memberikan data, yang lain memanipulasi dan
mengubah data dengan cara yang bermanfaat.
Tidak peduli bagaimana mereka bekerja secara internal, semua aliran menyajikan model sederhana
yang sama untuk program yang menggunakannya: stream adalah urutan data. Suatu program
menggunakan input stream untuk membaca data dari sumber, satu item pada suatu waktu:
Suatu program menggunakan output stream untuk menulis data ke tujuan, satu item pada waktu:
21
Dalam pelajaran ini, kita akan melihat sungai yang dapat menangani semua jenis data, dari nilai
primitif ke objek maju.
Sumber data dan tujuan data digambarkan di atas bisa apa saja yang memegang, menghasilkan, atau
data mengkonsumsi. Jelas ini termasuk file disk, tetapi sumber atau tujuan juga bisa program lain,
perangkat periferal, soket jaringan, atau array.
Pada bagian berikutnya, kita akan menggunakan jenis yang paling dasar sungai, byte stream, untuk
menunjukkan operasi umum Stream I / O. Untuk input sampel, kita akan menggunakan contoh
xanadu.txt file, yang berisi ayat berikut ini:
Dalam Xanadu tidak Khan Kubla
Sebuah keputusan kesenangan-kubah megah:
Dimana Alph, sungai suci, berlari
Melalui gua terukur kepada manusia
Turun ke laut sunless.
Byte Stream
byte menggunakan Program stream untuk melakukan input dan output byte 8-bit. Semua kelas stream
byte adalah keturunan dari InputStream dan OutputStream.
Ada banyak kelas stream byte. Untuk mendemonstrasikan bagaimana byte stream bekerja, kita akan
fokus pada file I / O byte stream, FileInputStream dan FileOutputStream. jenis lain dari byte stream
yang digunakan dalam banyak cara yang sama, mereka berbeda terutama dalam cara mereka
dibangun.
22
Menggunakan Byte Streaming
Kita akan mengeksplorasi FileInputStream dan FileOutputStream dengan memeriksa program contoh
bernama CopyBytes, yang menggunakan byte stream untuk menyalin xanadu.txt, satu byte pada suatu
waktu.
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
public class CopyBytes {
public static void main(String[] args) throws IOException {
FileInputStream in = null;
FileOutputStream out = null;
try {
in = new FileInputStream("xanadu.txt");
out = new FileOutputStream("outagain.txt");
int c;
while ((c = in.read()) != -1) {
out.write(c);
}
} finally {
if (in != null) {
in.close();
}
23
if (out != null) {
out.close();
}
}
}
}
CopyBytes menghabiskan sebagian besar waktu dalam satu lingkaran sederhana yang membaca input
stream dan menulis output stream, satu byte pada suatu waktu, seperti yang ditunjukkan pada gambar
berikut
byte input stream dan output.
Perhatikan bahwa membaca () mengembalikan nilai int. Jika input merupakan aliran byte, mengapa
tidak membaca () mengembalikan nilai byte? Menggunakan int sebagai tipe kembali memungkinkan
read () untuk menggunakan -1 untuk menunjukkan bahwa ia telah mencapai ujung sungai.
Selalu Tutup Streaming
Menutup aliran saat itu tidak lagi dibutuhkan adalah sangat penting - sangat penting bahwa
24
CopyBytes menggunakan akhirnya blok untuk menjamin bahwa kedua sungai akan ditutup bahkan
jika terjadi kesalahan. Praktek ini membantu menghindari kebocoran sumber daya yang serius.
Satu kesalahan yang mungkin adalah bahwa CopyBytes tidak dapat membuka satu atau kedua file.
Ketika itu terjadi, variabel aliran sesuai dengan file tidak pernah berubah dari nilai null awal. Itu
sebabnya CopyBytes memastikan bahwa setiap variabel stream berisi referensi obyek sebelum
memanggil dekat.
Ketika Tidak Menggunakan Byte Streams
CopyBytes tampaknya seperti program normal, tetapi sebenarnya merupakan semacam rendah tingkat
I / O yang harus Anda hindari. Sejak xanadu.txt berisi data karakter, pendekatan terbaik adalah
dengan menggunakan karakter stream, seperti dijelaskan dalam bagian berikutnya. Ada juga aliran
untuk lebih jenis data rumit. Byte stream seharusnya hanya digunakan untuk paling primitif I / O.
Jadi mengapa bicara tentang byte stream? Karena semua jenis aliran lain yang dibangun pada byte
stream.
Krakter Stream
Platform Java toko karakter nilai-nilai menggunakan konvensi Unicode. Karakter stream I / O secara
otomatis menerjemahkan format internal untuk dan dari set karakter lokal. Dalam locales Barat, set
karakter lokal biasanya merupakan superset 8-bit ASCII.
Untuk sebagian besar aplikasi, I / O dengan karakter stream tidak lebih rumit daripada I / O dengan
byte stream. Input dan output dilakukan dengan kelas-kelas aliran secara otomatis menerjemahkan
dari dan ke set karakter lokal. Sebuah program yang menggunakan stream karakter di tempat byte
stream secara otomatis menyesuaikan dengan set karakter lokal dan siap untuk internasionalisasi -
semua tanpa upaya ekstra oleh programmer.
Jika internasionalisasi tidak prioritas, Anda dapat menggunakan class stream karakter tanpa
membayar banyak perhatian terhadap isu-isu set karakter. Kemudian, jika internasionalisasi menjadi
prioritas, program anda dapat disesuaikan tanpa recoding luas. Lihat jejak Internasionalisasi untuk
informasi lebih lanjut.
25
Menggunakan Karakter Streaming
kelas karakter stream Semua adalah keturunan dari Reader dan Writer. Seperti dengan byte stream,
ada kelas aliran karakter yang mengkhususkan diri dalam file I / O: FileReader dan FileWriter.
Contoh CopyCharacters menggambarkan kelas-kelas ini..........
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyCharacters {
public static void main(String[] args) throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("xanadu.txt");
outputStream = new FileWriter("characteroutput.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
26
outputStream.close();
}
}
}
}
CopyCharacters sangat mirip dengan CopyBytes. Perbedaan yang paling penting adalah bahwa
CopyCharacters menggunakan FileReader dan FileWriter untuk input dan output di tempat
FileInputStream dan FileOutputStream. Perhatikan bahwa kedua CopyBytes dan CopyCharacters
menggunakan variabel int untuk membaca dan menulis dari. Namun, di CopyCharacters, variabel int
memiliki nilai karakter dalam terakhir 16 bit, dalam CopyBytes, variabel int memiliki nilai byte dalam
8 bit terakhir.
Karakter Streaming bahwa Gunakan Byte Streams
Karakter aliran sering "pembungkus" untuk byte stream. Aliran karakter menggunakan aliran byte
untuk melakukan fisik I / O, sedangkan aliran karakter menangani terjemahan antara karakter dan
byte. FileReader, misalnya, menggunakan FileInputStream, sedangkan FileWriter menggunakan
FileOutputStream.
Ada dua tujuan umum byte-untuk-karakter "jembatan" stream: InputStreamReader dan
OutputStreamWriter. Gunakan mereka untuk menciptakan karakter stream jika tidak ada aliran
dikemas kelas karakter yang memenuhi kebutuhan Anda. Pelajaran soket dalam jejak jaringan
menunjukkan bagaimana untuk menciptakan karakter stream dari byte stream yang disediakan oleh
kelas socket.
Krakter Stream
Platform Java toko karakter nilai-nilai menggunakan konvensi Unicode. Karakter stream I / O secara
otomatis menerjemahkan format internal untuk dan dari set karakter lokal. Dalam locales Barat, set
27
karakter lokal biasanya merupakan superset 8-bit ASCII.
Untuk sebagian besar aplikasi, I / O dengan karakter stream tidak lebih rumit daripada I / O dengan
byte stream. Input dan output dilakukan dengan kelas-kelas aliran secara otomatis menerjemahkan
dari dan ke set karakter lokal. Sebuah program yang menggunakan stream karakter di tempat byte
stream secara otomatis menyesuaikan dengan set karakter lokal dan siap untuk internasionalisasi -
semua tanpa upaya ekstra oleh programmer.
Jika internasionalisasi tidak prioritas, Anda dapat menggunakan class stream karakter tanpa
membayar banyak perhatian terhadap isu-isu set karakter. Kemudian, jika internasionalisasi menjadi
prioritas, program anda dapat disesuaikan tanpa recoding luas. Lihat jejak Internasionalisasi untuk
informasi lebih lanjut.
Menggunakan Karakter Streaming
kelas karakter stream Semua adalah keturunan dari Reader dan Writer. Seperti dengan byte stream,
ada kelas aliran karakter yang mengkhususkan diri dalam file I / O: FileReader dan FileWriter.
Contoh CopyCharacters menggambarkan kelas-kelas ini..........
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
public class CopyCharacters {
public static void main(String[] args) throws IOException {
FileReader inputStream = null;
FileWriter outputStream = null;
try {
inputStream = new FileReader("xanadu.txt");
28
outputStream = new FileWriter("characteroutput.txt");
int c;
while ((c = inputStream.read()) != -1) {
outputStream.write(c);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
CopyCharacters sangat mirip dengan CopyBytes. Perbedaan yang paling penting adalah bahwa
CopyCharacters menggunakan FileReader dan FileWriter untuk input dan output di tempat
FileInputStream dan FileOutputStream. Perhatikan bahwa kedua CopyBytes dan CopyCharacters
menggunakan variabel int untuk membaca dan menulis dari. Namun, di CopyCharacters, variabel int
memiliki nilai karakter dalam terakhir 16 bit, dalam CopyBytes, variabel int memiliki nilai byte dalam
8 bit terakhir.
Karakter Streaming bahwa Gunakan Byte Streams
Karakter aliran sering "pembungkus" untuk byte stream. Aliran karakter menggunakan aliran byte
untuk melakukan fisik I / O, sedangkan aliran karakter menangani terjemahan antara karakter dan
byte. FileReader, misalnya, menggunakan FileInputStream, sedangkan FileWriter menggunakan
29
FileOutputStream.
Ada dua tujuan umum byte-untuk-karakter "jembatan" stream: InputStreamReader dan
OutputStreamWriter. Gunakan mereka untuk menciptakan karakter stream jika tidak ada aliran
dikemas kelas karakter yang memenuhi kebutuhan Anda. Pelajaran soket dalam jejak jaringan
menunjukkan bagaimana untuk menciptakan karakter stream dari byte stream yang disediakan oleh
kelas socket.
Line-Oriented I / O
Karakter I / O biasanya terjadi dalam unit lebih besar dari karakter tunggal. Satu unit umum adalah
baris: string karakter dengan terminator garis di akhir. Sebuah terminator garis bisa menjadi urutan
carriage-return/line-feed ("\ r \ n"), sebuah kereta tunggal-return ("\ r"), atau feed line-tunggal ("\ n").
Mendukung semua line terminator mungkin memungkinkan program untuk membaca file teks yang
dibuat pada salah satu sistem operasi yang banyak digunakan.
Mari kita memodifikasi contoh CopyCharacters untuk menggunakan line-berorientasi I / O. Untuk
melakukan ini, kita harus menggunakan dua kelas belum kita lihat sebelumnya, BufferedReader dan
PrintWriter. Kita akan mengeksplorasi kelas-kelas ini lebih mendalam dalam Buffered I / O dan
Format. Saat ini, kami hanya tertarik pada dukungan mereka untuk baris-berorientasi I / O.
Contoh CopyLines memanggil BufferedReader.readLine dan PrintWriter.println untuk melakukan
input dan output satu baris pada suatu waktu.
import java.io.FileReader;
import java.io.FileWriter;
import java.io.BufferedReader;
import java.io.PrintWriter;
import java.io.IOException;
30
public class CopyLines {
public static void main(String[] args) throws IOException {
BufferedReader inputStream = null;
PrintWriter outputStream = null;
try {
inputStream =
new BufferedReader(new FileReader("xanadu.txt"));
outputStream =
new PrintWriter(new FileWriter("characteroutput.txt"));
String l;
while ((l = inputStream.readLine()) != null) {
outputStream.println(l);
}
} finally {
if (inputStream != null) {
inputStream.close();
}
if (outputStream != null) {
outputStream.close();
}
}
}
}
31
Menjalankan kembali readLine baris teks dengan baris. CopyLines output setiap baris menggunakan
println, yang menambahkan line terminator untuk sistem operasi saat ini. Ini mungkin bukan
terminator baris yang sama yang digunakan dalam file input.
Ada banyak cara untuk struktur input teks dan output di luar karakter dan garis. Untuk informasi lebih
lanjut, lihat Scanning dan Format.
Stream buffered
Sebagian besar contoh yang telah kita lihat sejauh ini menggunakan unbuffered I O. / Ini berarti setiap
membaca atau menulis request ditangani langsung oleh OS yang mendasarinya. Hal ini dapat
membuat program yang jauh kurang efisien, karena masing-masing permintaan seperti itu sering
memicu akses disk, aktivitas jaringan, atau beberapa operasi lain yang relatif mahal.
Untuk mengurangi jenis overhead, platform Java mengimplementasikan buffered I / O stream.
Buffered input stream membaca data dari area memori yang dikenal sebagai penyangga; masukan API
asli disebut hanya ketika buffer kosong. Demikian pula, output buffer stream menulis data ke buffer,
dan output API asli disebut hanya ketika buffer penuh.
Suatu program dapat mengkonversi aliran unbuffered ke dalam sungai buffer menggunakan idiom
pembungkus kami telah digunakan beberapa kali sekarang, di mana objek sungai unbuffered
dilewatkan ke konstruktor untuk kelas stream buffer. Berikut adalah bagaimana Anda dapat
memodifikasi pemanggilan konstruktor dalam contoh CopyCharacters untuk menggunakan buffered I
/ O:
32
inputStream =
new BufferedReader(new FileReader("xanadu.txt"));
outputStream =
new BufferedWriter(new FileWriter("characteroutput.txt"));
Ada empat kelas sungai buffer digunakan untuk membungkus unbuffered stream:
BufferedInputStream dan BufferedOutputStream membuat buffer byte stream, sedangkan
BufferedReader dan BufferedWriter membuat buffered stream karakter.
Flushing Buffered Streaming
Sering masuk akal untuk menulis buffer di titik kritis, tanpa menunggu untuk itu untuk mengisi. Ini
dikenal sebagai pembilasan buffer.
Beberapa kelas output buffer dukungan autoflush, ditetapkan oleh argumen konstruktor opsional.
Ketika autoflush diaktifkan, peristiwa penting tertentu menyebabkan buffer yang akan memerah.
Sebagai contoh, suatu obyek PrintWriter autoflush mengosongkan buffer pada setiap permintaan dari
println atau format. Lihat Memformat untuk lebih lanjut tentang metode ini.
Untuk flush stream secara manual, memanggil metode flush nya. Metode flush berlaku pada setiap
output stream, tapi tidak berpengaruh kecuali sungai adalah buffered.
33
F.PENGATURAN FORMAT OUTPUT NUMERIK
Metode Pengaturan Format
1. Menggunakan Method System.out.format()
2. 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);
34
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);
}
}
2. DecimalFormat Class
public class DecimalFormatDemo {
public static void main(String[] args){
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 ) {
35
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);
}
}
G.Konversi String Dan Bilangan(Numerik)
Konversi String ke Bilangan
String myString;
double myDbl = Double.parseDouble(myString); //konversi string ke double
Integer.parseInt(myString); //konversi string ke integer
Float.parseFloat(myString); //konversi string float
Argument untuk Menerima Input
36
public class LuasSegitigaArgs {
public static void main(String[] args) {
double alas= Double.parseDouble(args[0]);
double tinggi = Double.parseDouble(args[1]);
double luas = (alas*tinggi)/2;
System.out.println(“Luas Segitiga : ” + luas);
}
}
Konversi Bilangan ke String
double myDouble;
int myInteger;
float myFloat;
String myString = Double.toString(myDouble);
Integer.toString(myInteger);
Float.toString(myFloat);
37
H.Pernyataan Penentu Keputusan
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){
int diskon =0, totalBelanja = 500000;
if(totalBelanja >= 100000){
diskon = totalBelanja/10;
}
38
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){
int diskon =0, totalBelanja = 500000;
if(totalBelanja >= 100000){
diskon = totalBelanja/10;
39
} else{
diskon = 0;
}
System.out.println(“Diskon = ” + diskon);
}
}
if-else if-else
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){
// pernyataan yang dijalankan, bila kondisiC benar
}else{
// pernyataan yang dijalankan untuk kondisi selain itu
}
40
PernyataanIFELSEIF.java
public class PernyataanIFELSEIF{
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‟;
}
System.out.println(“Nilai = ” + nilai);
}
}
41
Operator Ternary (Kondisi)
Pernyataan kondisi yang menggunakan operator ternary (melibatkan tiga buah operand)
Bentuk:
ekspresi_kondisi ? nilai_1 : nilai_2
OperatorTernary.java
public class OperatorTernary{
public static void main(String[] args){
int totalBelanja = 500000;
int diskon = totalBelanja >= 100000 ?totalBelanja/10 : 0;
System.out.println(“Diskon = ” + diskon);
}
}
Switch
Switch digunakan untuk melakukan tindakan berbeda terhadap sejumlah kemungkinan nilai
Bentuk:
switch(ekspresi){
case nilaiSatu:
Pernyataan 1
42
break;
case nilaiDua:
Pernyataan2
break;
…
default: PernyataanN;
}
PernyataanSWITCH.java
public class PernyataanSWITCH1{
public static void main(String[] args){
int pilihan = 3;
switch(pilihan){
case 1:
System.out.println(“Soto Ayam”);
break;
case 2:
System.out.println(“Gule Kambing”);
break;
43
case 3:
System.out.println(“Nasi Goreng”);
break;
default:
System.out.println(“Silakan Pilih 1, 2 atau 3”);
}
}
}
I.Pernyataan Pengulangan Proses
Java menyediakan pernyataan while, do… while, dan for untuk melakukan perulangan
terhadap suatu proses. Berikut bentuk umumnya:
Perulangan Java
For for (inisialisasi;kondisi;iterasi)
pernyataan;
While while (kondisi) {
pernyataan;
}
Do – While do {
44
pernyataan;
} while (kondisi);
Seleksi Kondisi dan Perulangan Dalam Java
Pada kesempatan kali ini saya akan mencoba untuk berbagi informasi mengenai seleksi kondisi
dan perulangan dalam java. Seleksi kondisi dalam java menggunakan fungsi " if " dan "switch-
case". Dimana pernyataan if merupakan salah satu bentuk pernyataan berkondisi yang
berguna untuk pengambilan keputusan terhadap 2 buah kemungkinan atau lebih. Adapun
bentuk umum atau sintak untuk seleksi kondisi ini adalah sebagai berikut :
1) If-else
Bentuk umum :
if (kondisi)
pernyataan jika kondisi benar;
else
pernyataan jika kondisi salah;
2) Switch-case
Bentuk umum :
switch (expresi switch){
case nilai1 : pernyataan 1;
break;
case nilai2 : pernyataan 2;
break;
case nilaiN : pernyataan N;
break;
default : pernyataan default;
}
45
Agar pembaca lebih mudah untuk memahami seleksi kondisi ini, saya juga memberikan sebuah
contoh sebagai berikut :
dari kode program diatas akan menghasilkan output sebagai berikut :
ok baiklah, setelah seleksi kondisi kita beralih ke perulangan. Perulangan dalam java menggunakan 3
bentuk yaitu :
1) For
bentuk umum :
for (inisialisasi;kondisi;iterasi)
pernyataan;
46
2) While
bentuk umum :
while (kondisi) {
pernyataan;
}
3) Do-While
bentuk umum :
do{
pernyataan;
} while (kondisi);
Ada hal yang perlu diketahui dalam hal perulangan ini. Perbedaan antara while dengan do-while
adalah
perulangan while melakukan perulangan ketika kondisi dari perulangan tersebut telah
terpenuhi, jadi kondisinya dahulu dibaca lalu melakukan perulangan.
sedangkan pada do-while perulangan dilakukan terlebih dahulu, lalu setelah itu membaca
kondisi.
J.Pernyataan Pemindah Proses
Pernyataan Pemindah Proses
1. return
2. break
3. continue
4. return
Digunakan untuk keluar dari method
return memiliki dua bentuk:
47
1. mengembalikan nilai (sesuai dengan tipe data)
2. tidak mengembalikan nilai (untuk void)
Contoh:
int perkalian(int x, int y){
return x * y;
}
void perkalian(int x, int y){
hasilKali = x * y;
return;
}
Break
Penyataan break digunakan untuk keluar dari suatu pengulangan (loop)
Penggunaan break bisa berbentuk tanpa label atau berlabel
PernyataanBREAK.java
public class PernyataanBREAK {
public static void main(String[] args){
for(int i=1; i<11; i++){
if(i==5) break;
System.out.println(i);
48
}
}
}
PernyataanBREAKLABEL.java
public class PernyataanBREAK {
public static void main(String[] args){
selesai:
for(int i=1; i<11; i++){
if(i==5) break selesai;
System.out.println(i);
}
}
}
49
BAB III
HASIL PERCOBAAN PRAKTIKUM
TAMPILAN PROGRAM DI EKSEKUSI
KODE PROGRAM
public class modul2 extends javax.swing.JFrame {
public modul2() {
initComponents();
}
@SuppressWarnings("unchecked")
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
lblnpm.setText(txtnpm.getText());
lblnama.setText(txtnama.getText());
lbljk.setText((String)cbojk.getSelectedItem());
50
lbltl.setText(txttl.getText());
lblalamat.setText(txtalamat.getText());
lblhobi.setText(txthobi.getText());
txtnpm.setText("");
txtnama.setText("");
txttl.setText("");
txthobi.setText("");
txtalamat.setText("");
cbojk.setSelectedItem("Pilih");
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new modul2().setVisible(true);
}
});
}
// Variables declaration - do not modify
private javax.swing.JComboBox cbojk;
private javax.swing.JButton jButton1;
51
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JPanel jPanel1;
private javax.swing.JLabel lblalamat;
private javax.swing.JLabel lblhobi;
private javax.swing.JLabel lbljk;
private javax.swing.JLabel lblnama;
private javax.swing.JLabel lblnpm;
private javax.swing.JLabel lbltl
3.1 HASIL PRAKTIKUM MODUL 3
Tampilan awal program
52
Tampilan setelah program di eksekusi
Kode Program
public class modul3 extends javax.swing.JFrame {
public modul3() {
initComponents();
}
@SuppressWarnings("unchecked")
private void btntambahActionPerformed(java.awt.event.ActionEvent evt) {
Integer nilai1=Integer.valueOf(txtinput1.getText());
Integer nilai2=Integer.valueOf(txtinput2.getText());
Integer Hasil3 = nilai1 + nilai2;
String Hasil = String.valueOf(Hasil3);
txthasil.setText(Hasil);
}private void btnkurangActionPerformed(java.awt.event.ActionEvent evt) {
Integer nilai1=Integer.valueOf(txtinput1.getText());
Integer nilai2=Integer.valueOf(txtinput2.getText());
53
Integer Hasil3 = nilai1 - nilai2;
String Hasil = String.valueOf(Hasil3);
txthasil.setText(Hasil);
}
private void btnkaliActionPerformed(java.awt.event.ActionEvent evt) {
Integer nilai1=Integer.valueOf(txtinput1.getText());
Integer nilai2=Integer.valueOf(txtinput2.getText());
Integer Hasil3 = nilai1 * nilai2;
String Hasil = String.valueOf(Hasil3);
txthasil.setText(Hasil);
}
private void btnbagiActionPerformed(java.awt.event.ActionEvent evt) {
Integer nilai1=Integer.valueOf(txtinput1.getText());
Integer nilai2=Integer.valueOf(txtinput2.getText());
Integer Hasil3 = nilai1 / nilai2;
String Hasil = String.valueOf(Hasil3);
txthasil.setText(Hasil);
}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
54
public void run() {
new modul3().setVisible(true);
}
});
}
private javax.swing.JButton btnbagi;
private javax.swing.JButton btnkali;
private javax.swing.JButton btnkurang;
private javax.swing.JButton btntambah;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JPanel jPanel1;
private javax.swing.JTextField txthasil;
private javax.swing.JTextField txtinput1;
private javax.swing.JTextField txtinput2;}
55
3.1 HASIL PRAKTIKUM MODUL 4
TAMPILAN AWAL PROGRAM
PROGRAM YANG TELAH DI EKSEKUSI
KODE PROGRAM
public class modul4 extends javax.swing.JFrame {
public modul4() {
initComponents();}
@SuppressWarnings("unchecked")
56
private void cbojenisActionPerformed(java.awt.event.ActionEvent evt) {
if(cbojenis.getSelectedItem()=="IPAD"){
txtharga.setText("4999000");
}else if(cbojenis.getSelectedItem()=="IPHONE"){
txtharga.setText("7999000");
}else if(cbojenis.getSelectedItem()=="IPOD"){txtharga.setText("2999000");}else{
txtharga.setText("");
}} private void btnbayarActionPerformed(java.awt.event.ActionEvent evt) {
int harga=Integer.parseInt(txtharga.getText());
int jumlah=Integer.parseInt(txtjumlah.getText());
double diskon,total,nilaidiskon;
if(cbostatus.getSelectedItem()=="MEMBER"){
diskon=0.05*harga;
nilaidiskon=harga-diskon;
total=nilaidiskon*jumlah;
}else{
diskon=0;
nilaidiskon=harga-diskon;
total=nilaidiskon*jumlah;
}txtdiskon.setText(""+diskon);
57
txttotal.setText(""+total);}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {new modul4().setVisible(true);
}});}private javax.swing.JButton btnbayar;
private javax.swing.JComboBox cbojenis;
private javax.swing.JComboBox cbostatus;
private javax.swing.JLabel diskon;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel2;
private javax.swing.JTextField txtdiskon;
private javax.swing.JTextField txtharga;
private javax.swing.JTextField txtjumlah;
private javax.swing.JTextField txtnama;
58
private javax.swing.JTextField txttotal;
private javax.swing.JLabel txttotal12;}
3.2 HASIL PRAKTIKUM MODUL 5
Gambar awal aplikasi
Gambar setelah aplikasi di eksekusi
SOURCE KODE
public class modul5 extends javax.swing.JFrame {
int gajipokok,gajikotor,pajak,gajibersih;
int tunjanganistri,tunjangananak,jumlahanak;
59
String t_istri,t_anak;
String gajikotor_1 ,pajak_1,gajibersih_1;
private String s_gajikotor;
private String s_pajak;
private String s_gajibersih;
public modul5() {setTitle("Form perhitungan gaji pegawai");
initComponents();}
private void Gaji(){
int pilihan=cmbjabatan.getSelectedIndex();
switch(pilihan){ case 0:
txtgajipokok.setText("7500000"); break;
case 1: txtgajipokok.setText("5000000");
break; case 2:
txtgajipokok.setText("3000000");
break; case 3:
txtgajipokok.setText("2000000");
break;
case 4:
txtgajipokok.setText("1200000");
break;
60
case 5:
txtgajipokok.setText("750000");
break;}}
private void TunjanganAnak(){
gajipokok = Integer.valueOf(txtgajipokok.getText());
jumlahanak = Integer.valueOf(txtjumlahanak.getText());
if(jumlahanak<=2){
tunjangananak=((15*gajipokok)/100)*jumlahanak;
}
else if (jumlahanak>2){
tunjangananak=((15*gajipokok)/100)*2;
}else {
tunjangananak=0;
}
t_anak = String.valueOf(tunjangananak);
txttunjangananak.setText(t_anak);}
private void Menikah(){
txttunjanganistri.setEnabled(true);
txttunjangananak.setEnabled(true);
61
txtjumlahanak.setEnabled(true);
gajipokok = Integer.valueOf(txtgajipokok.getText());
tunjanganistri=(20*gajipokok)/100;
t_istri=String.valueOf(tunjanganistri);
txttunjanganistri.setText(t_istri);
TunjanganAnak();}
private void BelumMenikah(){
tunjanganistri=0;
tunjangananak=0;
jumlahanak=0;
txttunjanganistri.setText("0");
txttunjangananak.setText("0");
txtjumlahanak.setText("0");
txttunjanganistri.setEnabled(false);
txttunjangananak.setEnabled(false);
txtjumlahanak.setEnabled(false);}
private void Total(){
gajipokok=Integer.valueOf(txtgajipokok.getText());
62
if(opsi1.isSelected()==true){
gajikotor = gajipokok + tunjangananak + tunjanganistri;}
else{
gajikotor=gajipokok;
}
pajak=(gajikotor*10)/100;
gajibersih=gajikotor-pajak;
s_gajikotor=String.valueOf(gajikotor);
s_pajak=String.valueOf(pajak);
s_gajibersih=String.valueOf(gajibersih);
txtgajikotor.setText(s_gajikotor);
txtpajak.setText(s_pajak);
txtgajibersih.setText(s_gajibersih);} private void BersihTeks(){
gajipokok=0; gajikotor=0; pajak=0; gajibersih=0; tunjanganistri=0;
tunjangananak=0; jumlahanak=0; txtgajipokok.setText("0"); txttunjanganistri.setText("0");
txtjumlahanak.setText("0");
txttunjangananak.setText("0"); txtgajikotor.setText("0"); txtpajak.setText("0");
txtgajibersih.setText("0");}
@SuppressWarnings("unchecked")
private void formWindowOpened(java.awt.event.WindowEvent evt) {
63
BelumMenikah();}
private void cmbjabatanItemStateChanged(java.awt.event.ItemEvent evt) {
BersihTeks(); Gaji(); If(opsi1.isSelected()==true){
Menikah(); }else{ BelumMenikah(); }}
private void opsi1ActionPerformed(java.awt.event.ActionEvent evt) {
Menikah();}
private void opsi2ActionPerformed(java.awt.event.ActionEvent evt) {
BelumMenikah();}
private void txtjumlahanakKeyReleased(java.awt.event.KeyEvent evt) {
TunjanganAnak();}
private void btnbersihMouseClicked(java.awt.event.MouseEvent evt) {
BersihTeks();}
private void btnhitungMouseClicked(java.awt.event.MouseEvent evt) {
Total();}
private void btnhitungActionPerformed(java.awt.event.ActionEvent evt) { }
private void btnbersihActionPerformed(java.awt.event.ActionEvent evt) { }
public static void main(String args[]) { java.awt.EventQueue.invokeLater(new Runnable() { public
void run() {new modul5().setVisible(true); }});}
private javax.swing.JButton btnbersih;
private javax.swing.JButton btnhitung;
64
private javax.swing.ButtonGroup buttonGroup1;
private javax.swing.JComboBox cmbjabatan;
private javax.swing.JLabel jLabel1;private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel2;private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel1;
private javax.swing.JRadioButton opsi1;
private javax.swing.JRadioButton opsi2;
private javax.swing.JTextField txtgajibersih;
private javax.swing.JTextField txtgajikotor;
private javax.swing.JTextField txtgajipokok;
private javax.swing.JTextField txtjumlahanak;
private javax.swing.JTextField txtnama;
private javax.swing.JTextField txtnip;
private javax.swing.JTextField txtpajak;
private javax.swing.JTextField txttunjangananak;
private javax.swing.JTextField txttunjanganistri;}
65
3.1 HASIL PRAKTIKUM MODUL 6
GAMBAR AWAL APLIKASI
GAMBAR APLIKASI YANG TELAH DI EKSEKUSI
SOURCE KODE
import MDI.IFModul2;
import MDI.IFModul3;
import MDI.IFModul4;
import MDI.IFModul5;
import java.awt.Dimension;
66
import java.awt.PopupMenu;
import javax.swing.JInternalFrame;
import javax.swing.JOptionPane;
import javax.swing.JPanel;
public class FormUtama extends javax.swing.JFrame {
private int jml;
private String judul;
private PopupMenu jin;
public FormUtama() {
setTitle("MDI Form");
setExtendedState(MAXIMIZED_BOTH);
initComponents();}
private void FormBaru(){
try{
JInternalFrame Jin = new JInternalFrame(judul,false,true,true);
jin.setDefaultCloseOperation(DISPOSE_ON_CLOSE);
JPanel pn = new JPanel();
jin.setBounds(10,10,500,500);
jDesktopPane1.add(jin);
jin.setVisible(true);
67
}catch(Exception e){
JOptionPane.showMessageDialog(null,e);}}
@SuppressWarnings("unchecked")
private void jMenu3ActionPerformed(java.awt.event.ActionEvent evt) {
jml = jml+1;
judul= "Form Baru"+jml;
FormBaru(); }
private void jMenu4ActionPerformed(java.awt.event.ActionEvent evt) {
System.exit(0);}
private void jMenu5ActionPerformed(java.awt.event.ActionEvent evt) {
IFModul2 form2 = new IFModul2();
jDesktopPane1.add(form2);
Dimension parentSize = jDesktopPane1.getSize();
Dimension childSize = form2.getSize();
form2.setLocation((parentSize.width-childSize.width)/2,
(parentSize.height - childSize.height)/2);
form2.setVisible(true);}
private void jMenu6ActionPerformed(java.awt.event.ActionEvent evt) {
IFModul3 form3 = new IFModul3();
jDesktopPane1.add(form3);
68
Dimension parentSize = jDesktopPane1.getSize();
Dimension childSize = form3.getSize();
form3.setLocation((parentSize.width-childSize.width)/2,
(parentSize.height - childSize.height)/2);
form3.setVisible(true);}
private void jMenu7ActionPerformed(java.awt.event.ActionEvent evt) {
IFModul4 form4 = new IFModul4();
jDesktopPane1.add(form4);
Dimension parentSize = jDesktopPane1.getSize();
Dimension childSize = form4.getSize();
form4.setLocation((parentSize.width-childSize.width)/2,
(parentSize.height - childSize.height)/2);
form4.setVisible(true);}
private void jMenu8ActionPerformed(java.awt.event.ActionEvent evt) {
IFModul5 form5 = new IFModul5();
jDesktopPane1.add(form5);
Dimension parentSize = jDesktopPane1.getSize();
Dimension childSize = form5.getSize();
form5.setLocation((parentSize.width-childSize.width)/2,
(parentSize.height - childSize.height)/2);
69
form5.setVisible(true);}
private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {}
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormUtama().setVisible(true);
}});}
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JMenu jMenu1;
private javax.swing.JMenu jMenu2;
private javax.swing.JMenu jMenu3;
private javax.swing.JMenu jMenu4;
private javax.swing.JMenu jMenu5;
private javax.swing.JMenu jMenu6;
private javax.swing.JMenu jMenu7;
private javax.swing.JMenu jMenu8;
private javax.swing.JMenu jMenu9;
private javax.swing.JMenuBar jMenuBar1;}
70
3.2 HASIL PRAKTIKUM MODUL 7
GAMBAR AWAL APLIKA
GAMBAR APLIKASI SETELAH DI EKSEKUSI
SOURCE KODE UNTUK DATABASE MYSQL
CREATE DATABASE dbjava;
USE dbjava;
CREATE TABLE tcustomer (
id VARCHAR(6) PRIMARY KEY,
nama VARCHAR(25),
nohp VARCHAR(14),
alamat VARCHAR(100));
SOURCE KODE UNTUK JAVA
71
package gui;
import java.awt.HeadlessException;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
import koneksi.ClassDB;
public class formInputData extends javax.swing.JFrame {
public formInputData()
{
initComponents();
bacaId();
txtid.setEnabled(false);
btnsave.setEnabled(false);}
private void bacaId(){
int kode = 0; try{
Class.forName("com.mysql.jdbc.Driver");
try(Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/dbjava","root","");
Statement smt = cn.createStatement()){ String sql="SELECT max(Id) as kd FROM tcustomer";
ResultSet rs = smt.executeQuery(sql);
72
if (rs.next()){
kode = rs.getInt("kd");
}else{
}txtid.setText("000"+(kode + 1));
}
}catch (ClassNotFoundException | SQLException e){}}
private void simpan() {
String id = this.txtid.getText();
String nama = this.txtnama.getText();
String nohp = this.txthp.getText();
String alamat = this.txtalamat.getText();
String st = "Free";
if ("".equals(this.txtid.getText()) || ("".equals(this.txtnama.getText ()))
|| ("".equals(this.txthp.getText())) || ("".equals(this.txtalamat.getText()))) {
JOptionPane.showMessageDialog(this, "Lengkapi data");
}
else {
try{
Connection c = ClassDB.getkoneksi();
Statement s = c.createStatement();
73
String sql = "Insert into tcustomer values (?,?,?,?)";
try (com.mysql.jdbc.PreparedStatement
p = (com.mysql.jdbc.PreparedStatement) c.prepareStatement(sql))
{
p.setString(1, id);
p.setString(2, nama);
p.setString(3, nohp);
p.setString(4, alamat);
p.executeUpdate();
}JOptionPane.showMessageDialog(this, "Sukses Tambah data");
}catch (SQLException e) {
System.out.println("Terjadi kesalahan " + e);
}finally {
bersih();
}}}
private void bersih() {
bacaId();
txtnama.setText(null);
txthp.setText(null);
txtalamat.setText(null); btnsave.setEnabled(false); btnclear.setEnabled(false);
74
txtid.setEnabled(false);} @SuppressWarnings("unchecked")
private void btnsaveActionPerformed(java.awt.event.ActionEvent evt) {
simpan();}
private void btnclearActionPerformed(java.awt.event.ActionEvent evt) {
bersih(); }
private void txtnamaKeyTyped(java.awt.event.KeyEvent evt) {
btnsave.setEnabled(true); btnclear.setEnabled(true); }
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() { new formInputData().setVisible(true);}});}
private javax.swing.JButton btnclear; private javax.swing.JButton btnsave;
private javax.swing.JDesktopPane jDesktopPane1; private javax.swing.JLabel jLabel1; private
javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel1;
private javax.swing.JScrollPane jScrollPane1; private javax.swing.JTextArea txtalamat; private
javax.swing.JTextField txthp;
private javax.swing.JTextField txtid; private javax.swing.JTextField txtnama;}
75
3.3 HASIL PRAKTIKUM MODUL 8
Gambar awal aplikasi
Gambar aplikasi yang telas di eksekusi
Source kode database mysql
CREATE DATABASE dbjava;
76
USE dbjava;
CREATE TABLE tpenjualan (
invoice VARCHAR(12) PRIMARY KEY,
tanggal DATE,
id VARCHAR(6),
nama VARCHAR(30),
status VARCHAR(15),
barang VARCHAR(30),
harga VARCHAR(12),
jumlah VARCHAR(6),
diskon VARCHAR(12),
bayar VARCHAR(12)
);
Source kode program java
package gui;
import java.awt.HeadlessException;
import java.sql.*;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JOptionPane;
77
import koneksi.ClassDB;
public class FormTransaksi extends javax.swing.JFrame {
public FormTransaksi() {
initComponents();
invoice();
Date current = new Date();
SimpleDateFormat frmt = new SimpleDateFormat("dd/mm/yyyy");
String dateString1 = frmt.format(current);
txttanggal.setText(dateString1);}
private void invoice(){
String kode = "14000" ;
try {Class.forName("com.mysql.jdbc.Driver");
try (Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/dbjava", "root", "");
Statement smt = cn.createStatement()) {
String sql = "SELECT max(invoice) as iv FROM tpenjualan";
ResultSet rs = smt.executeQuery(sql) ;
if (rs.next()) {
}else {}txtinvoice.setText((kode+1));
}}catch (ClassNotFoundException | SQLException e) { } }
private void cariId(){
78
try {
Class.forName("com.mysql.jdbc.Driver");
try (Connection cn = DriverManager.getConnection("jdbc:mysql://localhost/dbjava",
"root", "");
Statement smt = cn.createStatement()) {
String sql = "SELECT * FROM tcustomer where id ='"+txtid.getText()+"' " ;
ResultSet rs = smt.executeQuery(sql) ;
if (rs.next()) {
txtnama.setText(rs.getString("Nama"));
txthp.setText(rs.getString("nohp"));
txtalamat.setText(rs.getString("alamat"));
}else {
JOptionPane.showMessageDialog(null,"Id Customer Tidak
Terdaftar","INFORMASI",JOptionPane.INFORMATION_MESSAGE) ;
txtid.setText(null); txtnama.setText(null);txtid.requestFocus() ;
}}} catch (ClassNotFoundException | SQLException | HeadlessException e) {}}
private void simpan(){
String invoice=this.txtinvoice.getText();
String tanggal=this.txttanggal.getText().toString();
String id=this.txtid.getText();
79
String nama=this.txtnama.getText();
String status=this.cbostatus.getSelectedItem().toString();
String barang=this.cbojenis.getSelectedItem().toString();
String harga=this.txtharga.getText();
String jumlah=this.txtjumlah.getText();
String diskon=this.txtdiskon.getText();
String bayar=this.txttotal.getText();
String st="Free";
if ("".equals(this.txtinvoice.getText()) || ("".equals(this.txttanggal.getText()))
|| ("".equals(this.txtid.getText()) || ("".equals(this.txtnama.getText()))
|| ("".equals(this.cbostatus.getSelectedItem().toString())) ||
("".equals(this.cbojenis.getSelectedItem().toString()))
|| ("".equals(this.txtharga.getText())) || ("".equals(this.txtjumlah.getText()))
|| ("".equals(this.txtdiskon.getText())) || ("".equals(this.txttotal.getText()))))
{JOptionPane.showMessageDialog(this, "Lengkapi data");
}else{try {Connection c=ClassDB.getkoneksi();
Statement s= c.createStatement();
String sql="Insert into tpenjualan values (?,?,?,?,?,?,?,?,?,?)";
try (com.mysql.jdbc.PreparedStatement p = (com.mysql.jdbc.PreparedStatement)
c.prepareStatement(sql)) {
80
p.setString(1, invoice);
p.setString(2, tanggal);
p.setString(3, id);
p.setString(4, nama);
p.setString(5, status);
p.setString(6, barang);
p.setString(7, harga);
p.setString(8, jumlah);
p.setString(9, diskon);
p.setString(10, bayar);
p.executeUpdate();
}JOptionPane.showMessageDialog(this, "Invoice Tersimpan");
}catch(SQLException e) {
System.out.println("Gagal Menyimpan " + e);
}finally{
bersih();}}}
private void bayar(){
txtjumlah.setText("1");
int harga=Integer.parseInt(txtharga.getText());
int jumlah=Integer.parseInt(txtjumlah.getText());
81
int diskon, nilaidiskon, total ;
if(cbostatus.getSelectedItem()=="Silver"){
diskon = ((5 * harga)/100);
nilaidiskon = harga - diskon ;
total = (nilaidiskon * jumlah) ;
}else{diskon = ((20 * harga)/100);
nilaidiskon = harga - diskon ;
total = (nilaidiskon * jumlah) ;}
txtdiskon.setText(""+diskon);
txttotal.setText(""+total);}
private void bersih(){
invoice();
txtid.setText(null);
txtnama.setText(null);
txthp.setText(null);
txtalamat.setText(null);
cbostatus.setSelectedItem("Pilih");
txtharga.setText(null);
txtjumlah.setText("1");
txtdiskon.setText(null);
82
txttotal.setText(null);
}
@SuppressWarnings("unchecked")
private void btnbayarActionPerformed(java.awt.event.ActionEvent evt) {
bayar(); }
private void txtnamaMouseClicked(java.awt.event.MouseEvent evt) {
cariId(); }
private void txtnamaMouseReleased(java.awt.event.MouseEvent evt) {
cariId(); }
private void btnsimpanActionPerformed(java.awt.event.ActionEvent evt) {
simpan();
bersih();}
private void cbojenisActionPerformed(java.awt.event.ActionEvent evt) {
if(cbojenis.getSelectedItem()=="ipad")
{txtharga.setText("4999000");
}
else if(cbojenis.getSelectedItem()=="iphone")
{txtharga.setText("7999000");}
else if(cbojenis.getSelectedItem()=="ipod")
{txtharga.setText("2999000");}
83
else{txtharga.setText("");}}
private void cbostatusActionPerformed(java.awt.event.ActionEvent evt) { }
public static void main(String args[]) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new FormTransaksi().setVisible(true);
}});}
private javax.swing.JButton btnbayar;
private javax.swing.JButton btnsimpan;
private javax.swing.JComboBox cbojenis;
private javax.swing.JComboBox cbostatus;
private javax.swing.JDesktopPane jDesktopPane1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel10;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel12;
private javax.swing.JLabel jLabel14;
private javax.swing.JLabel jLabel15;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
84
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
private javax.swing.JLabel jLabel6;
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JTextField jTextField1;
private javax.swing.JTextField jTextField2;
private javax.swing.JTextField txtalamat;
private javax.swing.JTextField txtdiskon;
private javax.swing.JTextField txtharga;
private javax.swing.JTextField txthp;
private javax.swing.JTextField txtid;
private javax.swing.JTextField txtinvoice;
private javax.swing.JTextField txtjumlah;
private javax.swing.JTextField txtnama;
private javax.swing.JTextField txttanggal;
private javax.swing.JTextField txttotal;}
85
BAB IV
ANALISA HASIL PERCOBAAN
4.1 Analisa Hasil Percobaan Modul 2
Program tersebut digunakan untuk menampilkan hasil output Biodata, seperti mengisi NPM,
Nama, Jenis Kelamin, Tanggal Lahir, Alamat, Hobi. Pallete yang digunakan adalah jLabel, Text
Field, Combo Box dan JButton . jLabel yang digunakan unutk menampilkan output biodata “ variabel
name ” di ubah masing-masing menjadi lblnpm, lblnama, lbljk, lbltgl, lblalamat, lblhobi . Kemudian
Text Field yang digunakan untuk mengisi data “ variabel name” di ubah menjadi txtnpm, txtnama,
txttgl, txtalamat dan txthobi. Jenis Kelamin yang menggunakan Combo Box Karena pada Jenis
Kelamin ini terdapat 2 pilihan yaitu : (Laki-laki dan Perempuan) variabel name diubah menjadi cbojk,
dan Proses menggunakan J Button juga digantikan variabel name menjadi btnproses. Hal ini untuk
memudahkan dalam penulisan program, Kemudian kembali ke tab design dan memberi
ActionPerformed pada button Proses, Kemudian ketikan source code seprti pada gambar 3.1.10,
Kemudian jalankan program.
4.2 A nalisa Hasil Percobaan Modul 3
Program tersebut digunakan untuk menampilkan hasil output seperti pada Kalkulator. Program
ini terdiri dari Input Nilai Pertama, Input Nilai Kedua, Hasil dan Operator Aritmatika seperti (+, -, *,
/). Disini pada tampilan Input Nilai Pertama, Input Nilai Kedua dan Hasil menggunakan Pallete Text
Field yang digunakan untuk mengisi nilai pertama dan nilai kedua, tetapi pada hasil penulis mengubah
pengaturan agar hasil tersebut tidak bisa diedit ataupun dihapus, Kemudian pada Operator Aritmatika
menggunakan Pallete Button agar Operator Aritmatika dapat di klik, seperti menampilkan hasil
Penjumlahan, Pengurangan, Perkalian dan Pembagian. Masing Button di ubah masing-masing
variabel namenya. Kemudian klik kanan pada button > pilih Event kemudian MouseCliked lalu
ketikan kode perintah. Lakukan juga pada button yang lain. Setelah itu jalankan program
4.3 Analisa Hasil Percobaan Modul 4
86
Program tersebut digunakan untuk menampilkan hasil output seperti pada Kalkulator. Program
ini terdiri dari Input Nilai Pertama, Input Nilai Kedua, Hasil dan Operator Aritmatika seperti (+, -, *,
/). Disini pada tampilan Input Nilai Pertama, Input Nilai Kedua dan Hasil menggunakan Pallete Text
Field yang digunakan untuk mengisi nilai pertama dan nilai kedua, tetapi pada hasil penulis mengubah
pengaturan agar hasil tersebut tidak bisa diedit ataupun dihapus, Kemudian pada Operator Aritmatika
menggunakan Pallete Button agar Operator Aritmatika dapat di klik, seperti menampilkan hasil
Penjumlahan, Pengurangan, Perkalian dan Pembagian. Masing Button di ubah masing-masing
variabel namenya. Kemudian klik kanan pada button > pilih Event kemudian MouseCliked lalu
ketikan kode perintah. Lakukan juga pada button yang lain. Setelah itu jalankan program
4.4 Analisa Hasil Percobaan Modul 5
Disini kami Menggunakan struktur kontrol pemulihan dimana (if, else, switch) dimana
statement akan digunakan untuk mengeksekusi beberapa kondisi , Pendeklarasian variabel pilihan
yang bernilai integer. struktur kontrol switch yang digunakan untuk mengevaluasi suatu ekspresi
dengan kemungkinan banyak nilai dan banyak perintah yang harus dieksekusi berdasarkan ekspresi
dan nilainya. Pada kode program di atas, nilai dari variabel akan dicek pada setiap option yang ada
(terletak di bagian case). Jika option yang sama dengan nilai variabel, maka statement-statement di
bawah option tersebutlah yang akan dijalankan.
4.5 Analisa Hasil Percobaan Modul 6
Program tersebut digunakan untuk menampilkan hasil output seperti Tampilan website
sederhana yang terdiri dari Menu Bar seperti File, Data dan Help, Cara membuatnya klik JMenu Bar
dari pallete kemudian letakan pada tab design form. File, Data dan Help masing-masing terdapat 2
Menu Item seperti (New dan Keluar), 4 Menu Item yang berisi (Modul 2, Modul 3, Modul 4 dan
Modul 5), dan n 1 Menu Item yang berisi (Tentang). Cara menambahkannya Menu Item Klik kanan
pada Menu bar > Add Form Pallete > Menu Item. Kemudian ganti text JMenuItem dengan „New‟
87
caranya Klik kanan JMenuItem1 > Edit Text, Lakukan berulang sesuai dengan form. Kemudian
membuat packages baru dengan nama MDI dan menambahkan JInternal Frame Form
4.6 Analisa Hasil Percobaan Modul 7
Program ini terdiri dari Id, Nama, No HP dan Alamat dengan tombol Save dan Clear. Program
Form Input Data Customer ini juga mengkoneksikan ke MySQL Database. Pada Modul 7, program
ini menggunakan 2 Package yaitu Package Gui dan Package Koneksi, Package Koneksi inilah yang
menghubungkan dari Program Java Netbeans IDE ke MySQL Database. Pada bagian code public
class ClassDB merupakan perintah yang menghungkan hasil inputan ke DATABASE. Method dengan
nama simpan, di gunakan untuk menyipan data ke database tcustomer. Kemudian tambahkan Library
konektor MySQL, Caranya : Klik kanan folder Libararies > Add Library > Pilih MySQL JDBC
Driver > Add Library. Yang berfungsi sebagai penghubungProgram tersebut digunakan untuk
menampilkan hasil output Data Customer,
4.7Analisa Hasil Percobaan Modul 8
pada hasil prcobaan modul8 formTransaksi ini dapat dengan mudah menangani perubahan -
perubahan yang terjadi, seperti perubahan harga, penambahan jenis barang, user hanya perlu
melakukan perubahan data pada form jenis. Selain itu dalam pengoperasian Aplikasi formtransaksi ini
mudah dimengerti user, sehingga tidak memerlukan waktu yang lama untuk pelatihan menggunakan
aplikasi ini. Tingkat ketelitian aplikasi ini dapat dilihat misalnya dalam hal input data, selain itu
Aplikasi ini dapat menyimpan data ke data base sebagai media penyimpanan data yang pasti, akurat ,
cepat dan terjamin keasliannya.
88
BAB V
KESIMPULAN
Demikian yang dapat saya paparkan mengenai materi yang menjadi pokok bahasan dalam laporan
praktikum, tentunya masih banyak kekurangan dan kelemahannya, kerena terbatasnya pengetahuan
dan kurangnya rujukan atau referensi yang ada hubungannya dengan judul makalah ini. Penulis
banyak berharap para pembaca yang budiman bisa memberikan kritik dan saran yang membangun
kepada penulis demi sempurnanya praktukum ini dan dan penulisan makalah di kesempatan –
kesempatan berikutnya. Semoga praktikum ini berguna bagi penulis pada khususnya juga para
pembaca yang budiman pada umumnya.
SARAN
Semoga praktikum bahasa pemograman java lebih di tingkatkan lagi. Agar mahasiswa dapat
membangun sebuah aplikasi atau sistem informasi yang kemudian bisa diterapkan dalam kehidupan
sebagai kebutuhan akan informasi.
Akhirnya penulis mengucapkan banyak terima kasih kepada semua pihak yang telah
membantu hingga terselesaikannya laporan praktikum ini, penulis juga mengucapkan terima kasih
kepada Ibu Indri Sulistianingsih S.Kom selaku dosen pembimbing praktikum yang telah membimbing
kami selama praktikum pemrograman java ini berlangsung di laboratorium komputer Universitas
Pembangunan panca budi Terima kasih Buk.
MEDAN, 11 Desember 2015
Aswina seriyanti hasibuan
89
Daftar pustaka
https://maqilazt.wordpress.com/2012/01/02/pernyataan-pemindah-proses-jump/
https://maqilazt.wordpress.com/2012/01/02/konversi-string-dan-bilangan-number/
https://maqilazt.wordpress.com/2012/01/02/pengaturan-format-output-numerik/
http://setyoteguhriyanto.blogspot.co.id/2010/12/file-io-stream_09.html