Anda di halaman 1dari 38

MODUL PEMBELAJARAN JARAK JAUH

PEMROGRAMAN BERORIENTASI OBJEK


( PBO )
KELAS : XII ( DUA BELAS)
KOMPETENSI KEAHLIAN : REKAYASA PERANGKAT LUNAK
SEMESTER : GASAL
TAHUN PELAJARAN : 2020/2021

PEMERINTAH PROVINSI JAWA TENGAH


DINAS PENDIDIKAN DAN KEBUDAYAAN
SEKOLAH MENENGAH KEJURUAN NEGERI 2 KARANGANYAR
Jalan Yos Sudarso Karanganyar Kode Pos 57716 Telepon 0271- 494549/494335
Faximile 0271-6498171 Surat Elektronik smkn2kra97@gmail.com

2020

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 1


PETUNJUK MEMPELAJARI MODUL

Di bawah ini penulis sertakan cara/ teknik belajar menggunakan modul ini:
1. Bacalah terlebih dahulu judul buku dan petunjuk modul yang akan anda
pelajari, agar anda menggunakan modul ini secara efisien.
2. Bacalah cepat-cepat (tidak perlu mendalaminya) seluruh pembelajaran
yang akan anda pelajari agar anda memperolah gambaran secara global
mengenai materi yang terdapat di dalam modul ini.
3. Mulailah membaca teks pelajaran secara teliti. Perhatikan pula gambar-
gambarnya, bagan atau tabel-tabel jika ada. Tujuannya ialah untuk
melakukan analisa guna memahami isi yang tertera maupun yang
tersirat. Gambar , grafik dan cara visualisasi lainnya akan memperjelas
materi yang sedang dipelajari..
4. Buatlah catatan kecil pada margin (bagian tepi halaman yang kosong di
sebelah kanan atau kiri setiap halaman buku) mengenai bagian atau
pokok-pokok yang terpenting materi yang anda baca.Tujuannya adalah
mengutip pokok pikiran yang kita anggap penting pada materi tersebut.
6. Ulanglah kembali materi yang telah anda pelajari supaya anda tidak lupa.
7. Kerjakan semua latihan yang terdapat pada modul ini. Setelah selesai,
cocokkan jawaban anda dengan kunci jawaban. Jika jawaban anda sudah
benar, silahkan melanjutkan pelajaran anda. Jika masih banyak terdapat
kesalahan, ulangi kembali materi anda sampai anda menguasai materi
tersebut.
8. Kerjakan tugas mandiri anda dan kumpulkan hasil pekerjaaan anda..
9. Patuhilah jadwal belajar anda seperti yang sudah ditentukan.

Selamat Belajar

Penyusun
Tri Ani Sulistyo Wardani, S. Kom

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 2


Bab 1
STRING

A. Pengertian String
String mendefinisikan dan mendukung string karakter. Pada beberapa
bahasa pemrograman string merupakan array dari karakter, sedangkan di
Java string merupakan object. Semua Literal string di java, misal :
“JAVA” adalah instance dari kelas String, String objek pada Java
bersifat immutable, artinya ketika String itu dibuat, maka isinya tidak
bisa diganti. Untuk mengatasi sifat dari string diatas java
memperkenalkan StringBuffer.

B. Membuat Objek String


Java mendefinisikan class String dalam package java.lang.String,
sehingga tidak perlu melakukan impor secara eksplisit. Java String
digunakan untuk mendefinisikan string yang konstant ( tidak bisa
berubah ). Untuk membuat string, dapat melakukannya dengan beberapa
cara, dan yang sering digunakan adalah contoh membuat string
“JAVA”sebagai berikut.
• String java = “JAVA”;
• String java = new String(“JAVA”);
• char [] j = {‘J’,’A’,’V’,’A’}
String java = new String(j);
• String s = new String (java);
• String tulisan = “Belajar”+”Java”;
• int nilai = 80 ;
• String data = “Nilai =“ + nilai ;

C. Method Pada Class String


1. toUperCase atau toLowerCase adalah method untuk mengkonversi
karakter-karakter pada suatu string menjadi huruf kecil atau menjadi
huruf besar.
2. charAt adalah method untuk mengakses karakter di posisi tertentu.

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 3


3. indexOfchar (karakter) : Mencari posisi karakter pada String.
Memerlukan argumen berupa karakter dan akan mengembalikan
nilai posisi indeks dari karakter yang dicari. Posisi yang
dikembalikan adalah posisi pertama dari karakter yang ditemukan
4. indexOf(char karakter, int indeks) : sama dengan sebelumnya, tetapi
memerlukan argumen tambahan, yaitu indeks posisi awal pencarian
dalam integer.
5. indexOf(String Str) : Mencari posisi subString pada String.
Penggunaan dan fungsi sama dengan method untuk char.
6. indexOf(String str, int indeks) : Mencari posisi subString
pada String. Penggunaan dan fungsi sama dengan method
untuk char.
7. equal atau equalIsIgnoreCase adalah method untuk
membandingkan 2 string
8. startsWith(String s) : memeriksa objek String, apakah
diawali oleh objek String s, pada parameter fungsi ini.
Menghasilkan nilai boolean true bila benar dan false bila
salah.
9. endsWith(String s). Memeriksa objek string, apakah akan
diakhiri oleh objek string s, pada parameter fungsi ini.
Menghasilkan nilai boolean true bila benar dan false bila
salah.
10. compareTo() : Mengurutkan String dengan membandingkan
karakter-karakter pada String secara berurutan dari awal
String.
11. length(); : Mendapatkan Panjang String.
12. replace() : Mengganti huruf tertentu.
Contoh penggunaan method replace pada class string (lihat modul
diclassroom)

D. Class StringBuffered
Kelas StringBuffer serupa dengan Sting, namun nilai dari variable
StrringBuffer dapat dimodifiksi.

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 4


StringBuffer merupakan Class yang bisa digunakan untuk memodifikasi
String. Memiliki default kapasitas 16 karakter, tapi biasanya ukuran
diatur sendiri dengan mendefinisikan kapasitas pada saat pembuatan.
Misalnya adalah sebagai berikut :
StringBuffer baru = new StringBuffer(50);
Contoh di atas merupakan StringBuffer kosong dengan kapasitas 50
karakter.
❖ Ada3cara untuk mengefinisikan StringBuffer :
✓ StringBuffer baru = new StringBuffer()
Secara tidak langsung variabel baru akan menjadi objek
StringBuffer dengan ukuran 16 karakter karena defaultnya
adalah 16 karakter.
✓ StringBuffer baru1 = new StringBuffer(50)
Objek baru1 merupakan StringBuffer dengan panjang karakter
50.
✓ StringBuffer baru2 = new StringBuffer(String)
Objek baru2 merupakan objek StringBuffer dengan panjang
karakter String + 16 karakter
Contoh :
public class SB{
public static void main (String args[]){
String kata = "Java";
StringBuffer baru = new StringBuffer();
StringBuffer baru1 = new StringBuffer(50);
StringBuffer baru2 = new StringBuffer(kata);
System.out.println("baru : "+baru.capacity());
System.out.println("baru1 : "+baru1.capacity());
System.out.println("baru1 : "+baru2.capacity());
}
}
E. Konstruktor dan Method StringBuffer
StringBuffer mempunyai 3 constructor. Dapat mengkonstruksi obyek
kelas StringBuffer menggunakan salah satu di antara 3 konstruktor :

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 5


1. StringBuffer() : Untuk mengkonstruksi buffer string kosong (tanpa
karakter).
2. StringBuffer(int length) : Untuk mengkonstruksi buffer string
kosong (tanpa karakter) dengan kapasitas ditentukan oleh parameter
length.
3. StringBuffer(String str) : Untuk mengkonstruksi buffer string
dengan parameter String.
Beberapa Method pada class StringBuffer :
1. Capacity() : Untuk mengetahui kapasitas dari suatu variable
StringBuffer.
2. Reverse() : Untuk membalik isi dari variable StringBuffer.
3. setCharAt() : Untuk mengubah karaker pada indeks tertentu.
4. append() : Untuk menambahkan string pada akhir StringBuffer.
5. insert() : Untuk menyisipkan string pada posisi tertentu.
6. delete() : Untuk menghapus string pada indeks tertentu.
7. Length() : Untuk mengetahui panjang objek

Contoh program method class


public class SB{
public static void main (String args[]){
StringBuffer baru = new StringBuffer(“belajar”);
StringBuffer baru1 = new StringBuffer(“java”);
baru.append(baru1);
System.out.println("baru : "+baru);
baru.delete(0,3);
System.out.println("baru : "+baru);
baru.insert(0,3);
System.out.println("baru : "+baru);
}
}

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 6


TUGAS PRAKTIKUM

(program di kumpulkan di google class room)


1. Buatlah Program Java yang dapat menghitung jumlah karakter “A” pada
kata “R”
2. Buatlah program login sederhana dengan masukan Username dan
passwordnya adalah Admin

Seperti gambar dibawah ini!

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 7


Bab 2
COLLECTION
(LIST DAN SET)

A. Pengertian Collection
Collection adalah suatu objek yang bisa digunakan untuk menyimpan
sekumpulan objek. Objek yang berada didalam collection disebut
element. Collection merupakan suatu penyimpanan yang
memungkinkan untuk menyimpan, megambil serta memanipulasi (
menghapus, mengubah, mencari dan mengurutkan ) objek-objek
dengan mudah.salah satu collection yang paling sederhana adalah
array. Namun dalam collection framework, java menawarkan berbagai
bentuk lain collection, karena collection adalah interface, maka harus
dibuat class yang mengimplementasikannya.

B. Kelompok Collection
Collection terbagi menjadi 3 kelompok yaitu Set, List dan Map.
Collection framework antara lain :
1. Set interface adalah collection untuk menyimpan data unik (tidak
boleh sama/ duplikat)
2. List interface adalah collection untuk menyimpan data secara urut
(sequensial)
3. Queue interface adalah collection untuk menyimpan data dengan
menggunakan First in First Out
4. Map interface adalah collection menyimpan data menggunakan
key, Map adalah interface yang berdiri sendiri bukan turunan dari
interface collection, tapi map termasuk dari collection framework.
✓ interface collection adalah collection ang menerima paremeter berupa
tipe data (objek) yang akan disimpan menggunakan < > seperti
berikut Collection <E>.
fungsi dasar interface collection adalah :
- Add : menambah data

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 8


- Remove : menghapus data
- Contains : mencari data pada collection
- Size : mendapatkan jumlah data yang tersimpan
- Clear : mengosongkan collection
- toArray : mengubah collection menjadi Array
1. List
List atau disebut sequence merupakan collection terurut yang
memperbolehkan adanya element yang sama. List dapat
menampung berbagai macam tipe data antara lain string, integer,
long bahkan object, cara penyimpanan list sama seperti dengan
array.
Class- class yang mengimplementasikan interface list yaitu :
a. ArrayList digunakan untuk membuat array yang ukurannya
dinamis( dapat berubah)
b. LinkedList merupakan bentuk struktur data yang berisi
kumpulan daya yang tesusun secara urut terhubung, saling
menyambung dan dinamis, Method dalam LinkedList adalah
addFirst, addLast, get(int), remove(), removeLast().
c. Vector merupaka suatu bentuk array dinamis, sehngga perlu
mengubah ukuran array saat melakukan penambahan pada array
yang sudah penuh. Pengaksesan element pada vector tidak bias
dilakukan secara langsung namun harus dengan menggunakan
method getter dan setter (harus mengimport java.until.Vector)
d. Stack merupakan sebuah collection sederhana yang
menerapkan aturan LIFO ( Last In First Out) yang berarti
element yang terakhir akan dikeluarkan terlebih dahulu.
Contoh :
2. Set
set interface salah satu collection yang memiliki aturan bahwa data/
object didalamnya tidak boleh ada yang sama. Contohnya :
- nomer telepon
- nomer ktp

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 9


- alamat email
Jadi implementasi pada interface Set ada batasan bahwa unsur-unsur
tidak boleh ada yang duplikasi
✓ set dapat diimplementasikan menggunakan :
a. Hashset : penyimpanan data tidak urut / tidak
memperhatikan posisi data
b. Linked Hastset : penyimpanan data berdasarkan urutan
masuknya
c. Treeset : penyimpanan data berdasarkan nlai terkecil ke
terbesar
Untuk operasi tambah dan hapus data, hashset dan linked hashset
memiliki kompleksitas yang sama yaitu O(1)(kecepatan data),
namun dari segi perorma hashset lebih baik. Treeset memiliki
kompleksitas O(log(n))

TUGAS PRAKTIKUM

Praktikan dan analisa output dari percobaan 1 dan percobaan 2,


kemudian buatlah jobseet sebagai laporan resmi dari analisa output yang
telah anda lakukan !

Percobaan 1 : Memahami penggunaan class-class yang


mengimplementasikan interface Set yaitu class HashSet dan class TreeSet

import java.util.*; System.out.print("Elemen pada HashSet : ");


public class SetExample { System.out.println(set);
public static void main(String[] args) { Set sortSet=new TreeSet(set);
Set set=new HashSet(); System.out.print("Elemen pada TreeSet : ");
set.add("Bernadine"); System.out.println(sortSet);
set.add("Elizabeth"); }
set.add("Gene"); }
set.add("Elizabeth");
set.add("Clara");
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 10
Percobaan 2 : Memahami penggunaan class-class yang
mengimplementasikan interface List yaitu ArrayList dan LinkedList.

import java.util.*; LinkedList queue=new


LinkedList();
public class ListExample { queue.addFirst("Bernadine");
public static void main(String[] queue.addFirst("Elizabeth");
args) { queue.addFirst("Gene");
List list=new ArrayList();
queue.addFirst("Elizabeth");
list.add("Bernadine"); queue.addFirst("Clara");
list.add("Elizabeth");
list.add("Gene"); System.out.println(queue);
list.add("Elizabeth"); queue.removeLast();
list.add("Clara"); queue.removeLast();
System.out.println(list); System.out.println(queue);
System.out.println("2 : }
"+list.get(2)); }
System.out.println("0 :
"+list.get(0));

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 11


Bab3
OPERASI FILE
DAN INPUT OUTPUT

Proses penulisan dan pembacaan data sering kita sebut dengan proses input
dan output, dimana penulisan data berarti mengalirkan data ke output dan
menerima atau mendapatkan data dari input.

A. Stream
Stream merupakan dasar operasi input-output ( I/O ) dalam Java yang
menggunakan package java.io sebagai package utama. Stream adalah
representasi abstrak dari input dan output device, dimana aliran bytes akan
ditransfer seperti file dalam harddisk, file pada sistem remote atau printer.
Kita dapat membaca data dari input stream, yang dapat berupa file,
keyboard atau komputer remote. Sedangkan untuk operasi penulisan
berarti menulis data pada output stream. Package java.io mendukung dua
tipe stream, yaitu binari dan karakter stream. Binari merupakan data
berupa bit atau data binari, sedangkan karakter adalah tipe khusus untuk
pembacaan dan penulisan teks/karakter.

B. Input Stream
Dua method utama dari InputStream adalah :
a. Read adalah Method ini digunakan untuk membaca stream.
b. Close adalah Method ini digunakan untuk menutup koneksi input
stream.
Latihan InputStream.java
import java.io.*;
class InputStream {
public static void main(String[] args) throws IOException {
byte[] data = new byte[10];
System.out.print("Ketik 10 buah karakter :");
System.in.read(data);
System.out.print("Karakter yang Anda ketik yaitu : ");
for(int i=0;i<data.length;i++) {
System.out.print((char)data[i]); }
}
}
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 12
C. Output Stream
✓ Subclass-subclass dari outputStream adalah :
• ByteArrayOutputStream : digunakan untuk menuliskan stream
menjadi byte array.
• FileOutputStream : digunakan untuk menulis pada file
• FilterOutputStream : merupakan superclass dari subclass-
subclass seperti DataOutputStream, BufferOutputStream,
PrintStream, CheckedOutputStream
• ObjectOutputStream : digunakan untuk menuliskan objek pada
OutputStream.
• PipedOutputStream : digunakan untuk menjadi output dari
PipedInputStream.

✓ Sebagian method-method OutputStream adalah :


• Voidclose() adalah method untuk menutup output stream yang
aktif dan melepaskan sumber daya terkait dengan stream
tersebut
• Void flush() adalah method untuk melakukan flush output
stream dan memaksa semua byte buffer untuk dituliskan keluar
• Void write(byte[] b) adalah method untuk menulis sebanyak
b.length dari byte array ke output stream
• Void write(byte[] b, int off, int len) adalah method untuk
menuliskan sebanyak len byte dari byte array b dimulai dari
index off

Latihan OutputStream.java

import java.io.*;
class OutputStream {
public static void main(String[] args) throws IOException {
byte[] data = {'a','b','c','d','e','f','g'};
System.out.write(data,3,4);
System.out.write('\n'); //pindah baris
System.out.write(data); //tulis semua isi array data
}
}

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 13


D. Data Output Stream
DataOutputStream merupakan class yang menyediakan cara praktis
untuk menuliskan tipe data primitif ke output stream. Sebagian method
DataOutputStream adalah :
✓ writeDouble : berfungsi menuliskan data bertipe double ke output
stream
✓ writeInt : berfungsi menuliskan data bertipe integer ke output stream
✓ writeBoolean : berfungsi menuliskan data boolean ke output stream
✓ writeUTF : berfungsi menuliskan data string menggunakan
encoding UTF-8 yang tidak tergantung pada mesin.

E. DataInputStream
DataInputStream berfungsi untuk saling melengkapi dengan
DataOutputStream, yaitu untuk mendapatkan data yang ditulis dengan
DataOutputStream. Sebagian method DataInputStream adalah :
✓ ReadDouble() : membaca data bertipe double
✓ readInt() : membaca data bertipe integer
✓ readBoolean() : membaca data Boolean
✓ readUTF() : membaca data dengan encoding UTF-8

F. FileInputStream dan FileOutputStream


FileInputStream digunakan untuk membaca data dari file yang
merupakan turunan langsung dari class InputStream dan
FileOutputStream untuk menuliskan data ke file merupakan turunan
langsung dari class OutputStream.

G. Class File
Class File merupakan langkah awal dalam mempelajari proses input-
output dengan Java, karena File merupakan objek yang mewakili path,
file, atau direktori pada harddisk. Ada tiga cara membuat objek File,
yaitu :
1. Menggunakan objek string sebagai argumen yang
menginformasikan path untuk file atau direktori.
2. Menggunakan dua langkah, dimana yang pertama untuk
mendefinisikan direktori dan yang kedua untuk file.

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 14


3. Menggunakan dua argumen, dimana yang pertama adalah argumen
string yang mendefinisikan direktori, dan yang kedua adalah
argumen string yang mendefinisikan nama file.

H. File Writer
Di dalam aplikasi web, disamping database, penggunaan file untuk
menyimpan data cukup banyak dilakukan karena kebutuhan
penyimpanan data yang sederhana cukup dengan menggunakan file.
FileWriter merupakan subclass dari OutputStreamWriter yang
merupakan subclass dari class abstract Writer.
Class FileWriter memiliki konstruktor yang umum seperti berikut :
1. FileWriter ( File objekfile );
2. FileWriter ( String pathkefile );
3. FileWriter ( String pathkefile, boolean append );
4. Contoh penggunaan :
5. File inifile = (pathdirektori, namafile);
6. FileWriter outputnya = new FileWriter (inifile);

Latihan Menulis File.java


import java.io.*;
class MenulisFile {
public static void main(String[] args){
if(args.length==0) {
System.out.println("Anda harus memasukkan nama file sebagai
parameternya.");
return; }
String data;
FileWriter fout=null;
BufferedReader br = new BufferedReader(new
InputStreamReader(System.in))
try{
fout = new FileWriter(args[0]);
System.out.println("Ketik data yang ingin Anda tulis ke file.");
System.out.println("Ketik BERHENTI jika Anda ingin berhenti.");
data = br.readLine();
while(!data.equals("BERHENTI")){ // \r\n digunakan untuk
pindah baris
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 15
fout.write(data + "\r\n");
data = br.readLine();
}
} catch(FileNotFoundException e) {
System.out.println("File : " + args[0] + " tidak dapat dibuka atau
dibuat.");
}catch(IOException e) {
System.out.println("Eksepsi tidak diketahui : " + e);
}finally //tutup file
if(fout!=null) {
try{
fout.close();
}catch(IOException err) {
System.out.println("Eksepsi tidak diketahui : " + err);
} } }
}}

I. File Reader
FileReader merupakan class yang dapat digunakan untuk membaca file
teks.
✓ Konstruktor dari FileReader :
1. FileReader(File objekfile);
2. FileReader(String pathkefile);
✓ Method yang digunakan :
1. Read(char[] array);
2. Read(char[] array, int offset, int length);

Contoh penggunaan :
File fileteks = new File(direktori, namafile);
FileReader baca = new FileReader(fileteks);
C=baca.read(char[] yang dibaca);

Latihan BacaFile.java
import java.io.*;
class BacaFile {
public static void main(String[] args){
if(args.length==0) {
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 16
System.out.println("Anda harus memasukkan nama file sebagai
parameternya.");
return; }
String data;
FileReader fin=null;
try{
fin = new FileReader(args[0]);
BufferedReader br = new BufferedReader(fin);
//bungkus objek FileReader dengan objek BufferedReader
do{
data = br.readLine();
System.out.println(data);
}while(data!=null);
}catch(FileNotFoundException e) {
System.out.println("File : " + args[0] + " tidak ditemukan.");
}catch(IOException e) {
System.out.println("Eksepsi tidak diketahui : " + e);
}finally { //tutup file
if(fin!=null) {
try{
fin.close();
}catch(IOException err) {
System.out.println("Eksepsi tidak diketahui : " + err);
} }
} } }

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 17


SOAL LATIHAN

Buatlah jobsheet dari soal latihan dibaah ini sebagai laporan resmi
dari yang telah anda lakukan !

1. Jelaskan tentang Byte Stream dan Character Stream, beserta dengan


2. perbedaan utamanya ?
3. Berikan contoh program untuk DataInputStream dan
DataOutputStream !
4. Buatlah program untuk mengecek keberadaan file/isi pada direktori
!
5. Buatlah program untuk mengkopi suatu file teks ! Nama file yang
hendak dikopi dan hasil kopianya harus dilewatkan sebagai
parameter pada waktu eksekusi.
Contoh eksekusi program :
Java kopi file1.txt file2.txt

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 18


Bab 4
THREAD

A. Pengertian Thread
Thread memungkinkan program untuk beroperasi secara lebih efisien
dengan melakukan banyak hal sekaligus. Thread dapat digunakan untuk
melakukan tugas-tugas rumit di latar belakang tanpa mengganggu program
utama.

B. Membuat Thread
Ada dua cara untuk membuat Thread, yaitu
1. Dengan meng-extend class thread dan menggunakan
method run()
Contoh :
public class MyClass extends Thread{
public void run(){
System.out.println("ini code untuk menjalankan thread");
}
}
2. Dengan mengimplementasikan interface Runnable:
Contoh :
public class MyClass implements Runnable{
public void run(){
System.out.println(“ini code untuk menjalankan thread”);
}
}

C. State Thread
Thread memiliki 5 state yaitu :
1. New Kondisi, ketika kita telah membuat instance dari class Thread
namun belum memanggil method start()

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 19


2. Runnable Kondisi, ketika method start() telah dipanggil, tetapi thread
scheduler belum memilih thread tersebut untuk menjadi thread
berjalan
3. Running Kondisi, ketika thread telah di start dan thread scheduler
telah memilih thread tersebut untuk berjalan
4. Non-Runnable (blocked) Kondisi, ketika thread masih aktif, namun
tidak memenuhi syarat untuk running. Contohnya ketika method
sleep() sedang dipanggil
5. Terminated (dead) Kondisi, ketika thread berhenti berjalan. Yaitu
ketika keluar dari run() method

Jika kelas meng-ekstend kelas Thread, thread dapat dijalankan dengan


membuat turunan kelas dan memanggil metode start ():
Contoh :
public class NewClass extends Thread {
public static void main(String[] args) {
NewClass thread = new NewClass();
thread.start();
System.out.println("This code is outside of the thread");
}
public void run() {
System.out.println("This code is running in a thread");
}
}
Hasil :
This code is outside of the thread
This code is running in a thread
Jika kelas mengimplementasikan interface Runnable, thread dapat
dijalankan dengan melewatkan turunan kelas ke konstruktor objek Thread
dan kemudian memanggil metode start ().
Contoh implement
public class NewClass implements Thread {
public static void main(String[] args) {
NewClass thread = new NewClass();
thread.start();
System.out.println("This code is outside of the thread");
}
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 20
public void run() {
System.out.println("This code is running in a thread");
}
}
Hasil :
This code is outside of the thread
This code is running in a thread

Perbedaan antara "extending" dan "implementing" Thread


Perbedaan utamany adalah bahwa ketika suatu kelas meng-extends kelas
Thread, Anda tidak dapat meng-extends kelas lain, tetapi dengan
mengimplementasikan interface Runnable, dimungkinkan untuk meng-
extends dari kelas lain juga, seperti: kelas MyClass memperluas OtherClass
mengimplementasikan Runnable.

Problem Concurrency
Karena thread berjalan pada saat yang sama dengan bagian lain dari
program, tidak ada cara untuk mengetahui urutan kode yang akan
dijalankan. Ketika thread dan program utama membaca dan menulis
variabel yang sama, nilainya tidak dapat diprediksi. Masalah yang
dihasilkan dari ini disebut masalah konkurensi.

Contoh kode di mana nilai jumlah variabel tidak dapat diprediksi:


public class NewClass1 extends Thread { amount++;
public static int amount = 0; System.out.println(amount);
public static void main(String[] args) { }
NewClass1 thread = new NewClass1(); public void run() {
thread.start(); amount++;
System.out.println(amount); }
}

Hasil :
0
1

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 21


Untuk menghindari masalah konkurensi, yang terbaik adalah membagikan
atribut sesedikit mungkin di antara utas. Jika atribut perlu dibagikan, salah
satu solusi yang mungkin adalah dengan menggunakan metode isAlive ()
dari utas untuk memeriksa apakah utas telah selesai berjalan sebelum
menggunakan atribut apa pun yang dapat diubah oleh utas.
Contoh gunakan isAlive () untuk mencegah masalah konkurensi:

public class NewClass2 extends Thread { // Update amount and print its value
public static int amount = 0; System.out.println("Main: " + amount);
public static void main(String[] args) { amount++;
MyClass thread = new MyClass(); System.out.println("Main: " + amount);
thread.start(); }
// Wait for the thread to finish public void run() {
while(thread.isAlive()) { amount++;
System.out.println("Waiting..."); }
} }

Hasil :
Waiting…
Main : 1
Main : 2

SOAL LATIHAN
1. Apa perbedaan multiprocessing dan multithreading?
2. Apa yang dimaksud dengan thread di dalam java?
3. Jelaskan keuntungan penggunaan thread!
4. Sebutkan contoh proses yang membutuhkan thread!

TUGAS PRAKTIKUM

Tugas Praktikum silahkan buka classroom !

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 22


Bab 5
USER INTERFACE

A. User Interface
User interface atau UI adalah suguhan yang dirancang sedemikian rupa
kedalam bentuk visual atau atampilan berdasarkan User Experience atau
UX atau bias kita katakana UI adalah output visual dari UX untuk user.
User interface terbagi 2 tipe, yaitu :
1. Command Line Interface
2. Graphichal User Interface
Graphical User Interface adalah jenis antarmuka pengguna yang
mengunakan metode interaksi pada piranti electronic secara grafis(bukan
perintah teks) antara pengguna dan computer.
Command Line Interface (CLI) adalah mekanisme interaksi dengan system
operasi atau perangkat lunak computer dengan mengetikkan perintah untuk
menjalankan tugas tertentu.
Kelabihan CLI adalah
1. Mudah membuat folder dan sub folder
2. Cepat dalam mengcopy
3. Spesifikasi hardare rendah
4. Akses cepat
Kekurangan CLI adalah
1. Resiko kehilangan file lebih besar apabia ceroboh
2. Tampilan yang tidak menarik
3. Masih meggunakan perintah atau teks
Contoh aplikasi dari user interface
a. Pada windows secara GUI kita mengenal istilah tema,dan skin aeo,
XP dan Redmon, sedangkan secara CLI kita menganal Command
Promp
b. Pada linux secara GUI kita mengenal ada KDE, Gnome,Cinnamon,
XFCE, dan lain sebagainya.
c. Pada Apple Mac OS X kita mengenal Leopard, Lion dan sebaginya
d. UI pada android telah menjadi satu bersi androidnya, missal
Froo,ZenUI dan MIUI

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 23


B. Graphichal User Interface (GUI)
Pada modul kali ini kita akan mempelajari antarmuka grafis yang dikenal
dengan nama Graphical User Interface (GUI). GUI merupakan antar muka
grafis yang memfasilitasi interaksi antara pengguna dengan program
aplikasi. Berikut adalah contoh GUI.

Salah satu komponen dalam bahasa pemrograman Java untuk


membangun GUI adalah Swing. Komponen ini didefinisikan di dalam paket
javax.swing. Swing diturunkan dari Abstract Windowing Toolkit dalam
paket java.awt. JComponent adalah superclass dari semua komponen
Swing. Sebagian besar fungsionalitas komponen diturunkan dari superclass
ini.
✓ Beberapa komponen utama dalam GUI adalah:
1. Containers: merupakan wadah yang berfungsi untuk menempatkan
komponen-komponen lain di dalamnya.
2. Canvas : merupakan komponen GUI yang berfungsi untuk
menampilkan gambar atau untuk membuat program grafis. Dengan
canvas, kita bisa menggambar berbagai bentuk seperti lingkaran,
segitiga, dll.
3. User Interface (UI) components: contohnya adalah buttons,
list, simple popup menus, check boxes, text fields, dan elemen
lain

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 24


4. Komponen pembentuk window: seperti frames, menu bars,
windows, dan dialog boxes.

Komponen-komponen Dasar User Interface dengan Swing


Berikut adalah beberapa komponen dasar antarmuka pengguna (user
interface) yang disediakan oleh Swing:
1. Top level containers: adalah container dasar untuk meletakkan
komponen-komponen lain. Contohnya adalah JFrame, JDialog,
dll.
2. Intermediate level containers: merupakan container perantara.
Umumnya digunakan hanya untuk meletakkan atau mengelompokkan
komponen-komponen yang digunakan, baik itu container atau berupa
atomic component. Contoh dari Intermediate level container adalah
JPanel (panel).
3. Atomic component: merupakan komponen yang memiliki fungsi khusus.
Umumnya pengguna langsusng berinteraksi dengan komponen ini.
Contohnya adalah JButton (tombol), JLabel (label), JTextField,
JTextArea (area untuk menulis teks), dll.

Sekarang kita akan berkenalan dengan Top Level Container, yaitu


JFrame. Cobalah jalankan kode program di bawah:
( praktikkan )

import javax.swing.*;
public class FrameSederhana{
public static void main(String[]args){
JFrame f1;
f1 = new JFrame("Ini Frame lho...");
f1.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f1.setSize(500,500);
f1.setVisible(true);
}
}

Konstruktor untuk membentuk JFrame adalah JFrame() atau


JFrame(String NamaFrame).

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 25


Salah satu method yang sering digunakan di kelas JFrame adalah
setDefaultCloseOperation(int ops). Method ini berfungsi untuk mengatur
apa yang akan dilakukan oleh program ketika tombil close di klik.
Parameter method tersebut di antaranya adalah:
1. JFrame.DO_NOTHING_ON_CLOSE: tidak ada satu aktivitas
pun yang dilakukan secara otomatis apabila frame ditutup.
2. JFrame.HIDE_ON_CLOSE: frame hanya disembunyikan, namun
secara fisik frame masih ada di memori sehingga dapat dimunculkan
kembali. Merupakan aktivitas default.
3. JFrame.DISPOSE_ON_CLOSE: mengilangkan tampilan frame dari
layar, menghilangkannya dari memori, dan membebaskan resource
yang dipakai.
4. JFrame.EXIT_ON_CLOSE: menghentikan eksekusi program.
Selain JFrame, top level container yang lain adalah JDialog. Berbeda
dengan JFrame, JDialog tidak dibuat berdiri sendiri, melainkan dibuat
bersama-sama dengan frame sebagai parent-nya. Jika frame parent-nya
ditutup, maka dialog akan dihapus dari memori. Kemunculan dialog akan
membuat semua input terhadap frame parent-nya akan terblokir sampai
dialog tersebut ditutup. Berikut contoh JDialog ( praktikkan)

import javax.swing.*;
public class Dialog{
public static void main (String[]
args){ JFrame f2;
f2 = new JFrame("Ini sebuah frame lho...");
f2.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
f2.setVisible(true);
JOptionPane.showConfirmDialog(f2,"ini adalah sebuah contoh
dialog..", "ini judul dialognya tau!",
JOptionPane.OK_CANCEL_OPTION,
JOptionPane.QUESTION_MESSAGE);
}
}

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 26


Hasil :

1. Layout Manager (Pengaturan Tata Letak)


Layout manager berfungsi untuk menyusun komponen-komponen GUI
di atas container.
2. Border Layout
BorderLayout merupakan default manager untuk ContentPane.
3. Grid Layout
Grid layout merupakan layout manager berbentuk grid. Semua
komponen dalam layout ini memiliki ukuran yang sama. Konstruktor
GridLayout adalah sebagai berikut :
a. GridLayout(rows, columns, hGap, vGap). Konstruktor ini
mendefinisikan jumlah baris, kolom, dan ukuran gap
horisontal/vertikal antar elemen dalam pixel.
b. GridLayout(rows, columns). Sama halnya dengan konstruktor
pertama, namun dengan nilaidefault hGap dan vGap sama dengan
0.
4. Grid Bag Layout
Grid bag layout adalah pengaturan layout yang dapat digunakan
untuk meletakkan komponen secara bebas.
5. Spring Layout
Ini adalah pengaturan tata letak yang sangat fleksibel, dan dapat meniru
fitur-fitur layout manager yang lain.

C. Event Handler
Event adalah peristiwa atau kejadian yang dibangkitkan atau distimulasi
oleh pengguna terhadap GUI. Untuk mendeteksi dan menangani apa yang
dilakukan oleh pengguna terhadap GUI, diperlukan suatu mekanisme yang
disebut Event Handling. Mekanisme event handling pada bahasa Java
ditangani oleh event handling component, yang terbagi menjadi dua bagian,
yaitu event listener dan event handler.

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 27


Ilustrasi dari mekanisme event handling adalah sebagai berikut. Misalkan
suatu button di tekan. Maka terciptalah suatu objek event, yaitu kejadian
ditekannya button. Kejadian atau event itu ditangkap oleh event listener.
Selanjutnya event tersebut harus ditangani oleh program dengan memanggil
method event handler. Method tersebut berisi blok kode program yang
melakukan suatu proses sebagai respon atas terjadinya event tersebut.
Sebuah objek event mempunyai sebuah kelas event sebagai acuan bagi tipe
datanya. Kelas event memiliki akar hirarki yaitu kelas EventObject. Kelas
ini berada di package java.util. Kelas AWTEvent merupakan turunan dari
kelas EventObject. Kelas AWTEvent didefinisikan dalam package
java.awt.
Berikut ini adalah daftar kelas yang merupakan turunan dari kelas
AWTEvent.
1. ComponentEvent: turunan dari AWTEvent, dijalankan ketika sebuah
komponen dijalankan, di resize, dibuat terlihat, atau disembunyikan.
2. InputEvent: turunan dari kelas ComponentEvent dan Abstract root
class Event untuk semua komponen input.
3. KeyEvent: turunan dari kelas InputEvent, dijalankan saat sebuah
key pada keyboard ditekan, dilepas, atau diketikkan.
4. ItemEvent: turunan dari kelas AWTEvent, dijalankan ketika sebuah
item dipilih seperti pada combo box dan list.
5. ActionEvent: turunan dari kelas AWTEvent, dijalankan ketika
sebuah tombol ditekan, melakukan double click pada daftar item,
atau memilih menu.
6. MouseEvent: turunan dari kelas InputEvent, dijalankan ketika
pengguna melakukan sesuatu terhadap mouse, seperti, ditekan,
dilepas, diklik, masuk atau keluar window, di drag, dll.
7. TextEvent: turunan dari kelas AWTEvent, dijalankan ketika sebuah
nilai text berubah
8. WindowEvent: turunan dari kelas ComponentEvent, dijalankan
ketika pengguna melakukan sesuatu terhadap window, seperti
dibuka, ditutup, diaktifkan, atau dinon-aktifkan.

Event Listener adalah kelas yang mengimplemetasi interface Listener.


Beberapa event listener yang sering digunakan adalah:
1. ActionListener : listener yang bereaksi jika terjadi event pada mouse
atau keyboard.
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 28
2. MouseListener: listener yang bereaksi atas event yang terjadi pada
mouse.
3. MouseMotionListener: menyediakan beberapa method untuk
memantau perubahan mouse seperti drag atau perpindahan mouse.
4. WindowListener: listener yang bereaksi atas event yang terjadi pada
window.

Latihan Program 1 :
1. Bukalah NetBean kemudian buatlah project dengan nama GUI dan
buatlah class baru dengan nama GUI2.class kemudian ketikan kode
program berikut :
import java.awt.Container;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JTextField;

public class GUI2 {


public GUI2(){
JFrame frame = new JFrame();
JButton btnHalo = new JButton("Halo Sayang");
JButton btnSelamatTinggal = new JButton("Selamat Tinggal");
final JTextField txtPesan = new JTextField(20);
txtPesan.setText("Coba Buat Antarmuka");

btnHalo.addActionListener (new ActionListener() {


public void actionPerformed(ActionEvent event) {
txtPesan.setText("Halo Sayang, Apa kabar ?");
}
});
btnSelamatTinggal.addActionListener (new ActionListener() {
public void actionPerformed(ActionEvent event) {
txtPesan.setText("Selamat Tinggal Sayang");
}
});
Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 29
Container contentPane = frame.getContentPane();
contentPane.setLayout(new FlowLayout());
contentPane.add(btnHalo);
contentPane.add(btnSelamatTinggal);
contentPane.add(txtPesan);

frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.show();
}
public static void main(String[] args) {
new GUI2();
}
}
Bagaimana hasilnya ??

Keterangan :
• Class ActionListener adalah listener interface dengan event class
ActionEvent , tindakan oleh user yang mengakibatkan event dengan
mengKlik suatu tombol.
• Void actionPerformed, method yang dipanggil ketika event Action
terjadi

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 30


TUGAS PRAKTIKUM

(Dikumpulkan pada google classroom)


1. Pada latihan percobaan02, tambahkan komponen JButton yang
mempunyai fungsi untuk menghapus isi pada textpesan. Contoh
hasilnya:

2. Buat program dengan menggunakan JDialog dengan menggunakan


showInputDialog dan
showMessageDialog, seperti output dibawah ini :

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 31


Bab 6
KONEKTIFITAS BASIS DATA DENGAN JAVA
DAN PENGGUNAAN LIBRARY JAVA

1. Pengantar Koneksi Database


Database merupakan salah satu bagian inti dari Sistem Informasi yang
menyimpan data untuk proses pengolahan nantinya. Agar aplikasi bisa
mengakses data dari suatu database engine, maka diperlukan suatu
mekanisme koneksi antara aplikasi dan database tersebut. Pada bahasa
pemrograman java terdapat kumpulan kelas yang digunakan khusus
untuk koneksi database. Komponen database pada java mengikuti
standar SQL (Structured Query Language), sehingga library fungsinya
dapat ditemukan dalam package java.sql.* dan javax.sql.*.
Terdapat 3 langkah utama untuk melakukan koneksi ke database :
a) Membuat koneksi sengan server database.
b) Membuat perintah dan mengirimkannya ke server database.
c) Menerima dan mengolah hasil.
Untuk mendapatkan koneksi database, diperlukan 3 langkah, yaitu :
a) Menginstalasi driver database yang digunakan
b) Menciptakan instance object dari server
c) Melakukan registrasi koneksi ke database
JDBC digunakan untuk melakukan koneksi ke suatu sumber data,
diperlukan database driver yang akan menjadi jembatan antara Aplikasi
dengan Database.

2. Komponen Utama JDBC


a) Driver adalah komponen untuk menangani masalah komunikasi
dengan server database.
b) DriverManager adalah komponen untuk menangani objek driver.
c) Connection adalah komponen yang menyimpan koneksi ke
database.
d) Statement adalah komponen yang menangani perintah SQL ke
database.
e) PreparedStatement : merupakan alternatif untuk objek Statement
SQL yang telah terkompilasi awal.

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 32


f) CallableStatement : mempresentasikan suatu stored procedure,
dan dapat digunakan untuk menjalankan stored procedures yang
terkompilasi dalam suatu RDBMS yang mendukung fasilitas
tersebut.
g) ResultSet adalah komponen yang menyimpan data hasil perintah
ke database.
h) SQLException adalah komponen untuk menangani kesalahan-
kesalahan yang mungkin terjadi saat pengolahan database.

3. Melakukan Koneksi
a. Mengaktifkan driver JDBC

Atau jika sudah setting CLASSPATH-nya, bias langsung dengan


perintah :

b. Membuat koneksi
Perintah melakukan koneksi ke database :

Keterangan :
- con adalah variable yang bertipe Connection (berfungsi
menampung hasil koneksi)
- url aalah informasi jenis database + host database + nama
database
- usr adalah user untuk koneksi ke database
- pwd adalah password untuk masuk ke database

contoh :

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 33


Contoh program untuk melakukan koneksi :

Latihan : melakukan cek koneksi


1. Buatlah database penjualan mengguakan MySQL
2. Buka netbean, buat project baru dengan nama koneksi kemudian
buat class dengan nama login, kemudian ketikkan sintak berikut
:

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.Statement;

/**
*
* @author RPL_Kra_macan
*/
public class cekKon {
public static Connection con;
public static Statement stm;
public static void main(String args[]){
try {
String url ="jdbc:mysql://localhost/penjualan";
String user="root";
String pass="";
Class.forName("com.mysql.jdbc.Driver");
con =DriverManager.getConnection(url,user,pass);

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 34


stm = con.createStatement();
System.out.println("koneksi berhasil;");
} catch (Exception e) {
System.err.println("koneksi gagal" +e.getMessage());
}
}

}
3. Sebelum kita run file tambahkan library JDBC dengan cara
sebagai berikut

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 35


TUGAS PRAKTIKUM
Untuk tugas silakan buka classroomnya !!
1. Dari database penjualan, buatlah tabele-tabel yang berelasi
berikut ini dengan mysql dan isikan recordnya minimal 5 data !

2. Bukalah neatbean kalian, kemudian buatlah form berikut dengan


menggunakan JFrame
a. Form login

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 36


b. Form Pelanggan

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 37


Sumber Pustaka

https://www.slideshare.net/praktikumpemrograman-java-dgn-netbeans
Sumber : http://id.wikipedia.org/wiki/MySQL, diakses pada 19 September
2010 pukul 15.00
https://dinus.ac.id/repository/docs/ajar/1._Edi_PPBO_Java_Mysql.pdf

http://fahrul.lecturer.pens.ac.id/lecturer/uploads/Bab%202.%20Multithrea
ding%201.pdf

http://dauntless69.blogspot.com/

Link Youtube
https://www.youtube.com/watch?v=vEjkd5OtOU4 (collection)

https://www.youtube.com/watch?v=vEjkd5OtOU4

Modul Penbelajaran Jarak Jauh SMK N2 Karanganyar hal. 38

Anda mungkin juga menyukai