Rangkuman Modul Praktikum Pemrograman Berbasis Objek (PBO)

Rangkuman Modul Praktikum Pemrograman Berbasis Objek (PBO)

POKOK BAHASAN 1: ELEMEN DASAR JAVA
A.      Instalasi Java
Instal aplikasi Java SDK pada komputer. Berikut langkah-langkah untuk instalasi java:
    1. Jalankan installer Java SDK
    2. Ikuti semua proses sampai selesai
    3. Set variabel system path pada komputer. Caranya:
-       Buka Windows Explorer
-       Klik kanan icon My Computer, klik Properties
-       Klik Advanced system settings
-       Klik tab Advanced
-       Klik Tombol Environment Variables
-        Pada bagian system variable, cari variabel path, kemudian klik Edit, tambahkan alamat dari folder bin pada Java kompiler Anda ke dalam value variable path.
-       Pada bagian user variable, tambahkan variable classpath kemudian isi nilainya dengan “ .; ” (titik dan titik koma) alamat_folder_lib_anda
-       Cobalah Java Anda, buka command line
Ketikkan java<<enter>>
Ketikkan javac<<enter>>
Kalau kedua sintaks di atas tidak menemukan pesan error, maka instalasi berhasil
B.       Konsep Dasar Pemrograman Berorientasi Objek
Pemrograman berorientasi obyek menjadikan object dan class sebagai konsep utamanya.
C.      Konsep Dasar Variabel
Variabel adalah satuan yang dipakai oleh program sebagai basis untuk penyimpanan data. Penggunaan variable harus terlebih dahulu dideklarasikan nama dan tipenya.
Tipe dasar (primitive) dalam java adalah sebagai berikut ;
Tabel 1.1 Tabel tipe variabel
Tipe
Keterangan
Short
short integer, bilangan bulat 16 bit
Int
integer, bilangan bulat 32 bit
Long
long integer, bilangan bulat 64 bit
Byte
bilangan bulat 8 bit
Float
bilangan real (pecahan) 32 bit
double
bilangan real (pecahan) 64 bit
Char
karakter 16 bit
boolean
boolean value true atau false
D.      Konsep Dasar Array
Array adalah sekumpulan data yang sama tipenya. Isi array dapat diakses melalui index yang dimulai dari 0 sampai dengan jumlah_elemen_array-1.
     Tipe_variabel nama_array[];
Contoh
     Int MyArr[];
Contoh cara penginisialisasiannya:         
     Int MyArr[] = {340,-129, 499};
Array Multidimesi
Array Multidimensi adalah Array yang memiliki lebih dari satu dimensi. Misalnya dua dimensi. Contoh pendeklarasian array dua dimensi:
     Double Matrik[ ] [ ];
Kita dapat menginisialisasinya dengan cara :
     Double Matrik [ ] [ ] ={
                 {20.5, 10.9, 309.0}
                 {-8.8, 98.7, 100.0}

E.       Kerangka Program Java
Progam dalam java dibagi- bagi menjadi class-class dimulai dengan kata kunci class atau public class. Lihat Contoh Berikut :
public class Hello {
            public static void main(String argv []) {
                        System.out.println("Hello java programmer UMSIDA");
}}
Program selalu dimulai dengan kurung kurawal buka, dan diakhiri dengan kurung kurawal tutup. Class dalam java yang bersifat public harus disimpan dalam file dengan nama yang sama dengan nama class dan ditambah ekstensi java.
Agar sebuah class dapat dijalankan kita harus mendeklarasikan metode main() dengan klasifikasi public static dan kata kunci void.
Perintah System.out.println(), merupakan perintah untuk mencetak string yang menjadi ke layar dan setelah pencetakan akan ganti baris. Perlu diperhatikan bahwa antara satu perintah yang lain dipisah dengan semi colon (;).
Program dapat kita compile dengan java compiler dengan perintah :
C:\>javac Hello.Java
Javac adalah program java compiler, sedangkan Hello java adalah program yang akan di compile. Jika berhasil, file class akan dihasilkan dari proses compile dan dapat dijalankan dengan java interpreter dengan perintah :
C:\>java Hello
Setelah File class dieksekusi maka hasilnya akan muncul di monitor.

Komentar
Pemberian komentar dalam program adalah penting karena akan memperjelas alur program serta akan memberikan dokumentasi yang jelas.
Contoh :
//ini komentar
atau
/* ini
    adalah
    komentar */

Kata Kunci
Program java mempunyai beberapa kata kunci yang tidak boleh kita gunakan sebagai nama variable, nama class dan yang lainnya. Kata kunci tersebut adalah :
Tabel 1.2 Tabel Kata Kunci
abstract
default
goto
operator
synchronized
boolean
do
if
outer
this
break
double
implements
package
throw
byte
else
import
private
throws
byvalue
extends
inner
protected
transient
case
false
instaceof
public
true
cast
final
int
rest
try
catch
finally
interface
return
var
char
float
long
short
void
class
for
native
static
volatile
const
future
new
super
while
continue
generic
null
switch


POKOK BAHASAN 2: OPERATOR, CONTROL FLOW DAN STRING
Operator dan Control Flow adalah jantung dari program Control Flow mempunyai kemampuan untuk mengendalikan jalan dari program.
1. Aritmatika Operator
Java mempunyai operator aritmatika seperti + (penjumlahan), - (pengurangan),* (perkalian), / (pembagian) dan % (modulo). Dalam java juga dimungkinkan penyederhanaan penulisan operator.

2. Logika Operator
Ada tiga logika Operator dalam java yaitu:
&&      Logika And
||           Logika Or
 |          Logika Not
Ketiga operator tersebut dioperasikan terhadap tipe data boolean yang menghasilkan tipe data boolean juga (true atau false)

3. Bit per bit operator
Tabel 2.1 Tabel bit per bit Operator
Operator
Nama
Keterangan
~
NOT
Mengubah 0 menjadi 1 dan 1 menjadi 0
&
AND
1 & 1 = 1 selain itu hasilnya selalu 0
|
OR
0|0 = 0 selain itu hasilnya selalu 1
^
XOR
0^0 = 0, 1^1 = 0 selain itu hasilnya 1
>> 
SHIFT RIGT
Dorong 1 bit ke kanan termasuk tanda minus
>>> 
SHIFT RIGT
Dorong 1 bit ke kanan isi bit paling kiri dengan 0
<< 
SHIFT LEFT
Dorong 1 bit ke kiri

Bit per bit operator juga bisa dilakukan Penyederhanaan penulisannya.

4.  Relasional
Operator relasional digunakan untuk membandingkan dua nilai. Hasil dari perbandingan tersebut adalah data tipe Boolean (true atau false).
Tabel 2.2 Tabel operator Relasional
Operator
Keterangan
Lebih Besar
Lebih kecil
>=
Lebih besar atau sama dengan
<=
Lebih kecil atau sama dengan
!=
Tidak sama dengan
= =
Sama dengan

Tipe variable di java seperti short, int, long, float, double, Boolean, dan character dapat dibandingkan satu dengan yang lainnya .

5.  Prioritas
Setiap operator mempunyai prioritas sendiri – sendiri, sehingga perhitungan matematika dilakukan sesuai prioritasnya.
Tabel 2.3  Tabel operator Prioritas
Operator
( ) [ ]
++ -- ~!
*/ %
+ -
>>    >>>   <<
>>=  < <=
== ! =
&
^
|
&&
||
?:
=

6. Pernyataan if
Pernyataan if  adalah control flow yang paling sederhana Pernyataan ini mengevaluasi suatu ekspresi. Jika ekspresi benar (true) maka blok pernyataan akan dijalankan. Sebaliknya computer akan melompati blok pernyataan tersebut.
7. Pernyataan if-else
Pernyataan if-else mengevaluasi suatu ekspresi. Jika ekspresi benar (true) maka blok pernyataan dijalankan. Sebaliknya computer akan menjalankan blok pernyataan yang lain.
8.  Pernyataan switch, case dan break
Switch digunakan untuk percabangan (seleksi) lebih dari dua. Ini digunakan untuk menghindari pergunaan if-else yang berlapis-lapis.
9.  Pengulangan (Loop)
Pengulangan dengan while
Alur program blok while akan dilakukan berulang-berulang selama ekspresi benar (true)
Sintaks dari pengulangan while adalah sbb:

While (ekspresi)
     Pernyataan;

Pengulangan dengan do-while
Pemeriksaan ekspresi dilakukan setelah pengulangan. Jadi minimal satu kali pengulangan dilakukan. Sintaksnya.
            do
               pernyataan;
            while (ekspresi);

Pengulangan dengan for
Pengulangan dengan for menyerupai while, namun dilengkapi dengan inisialisasi, test kondisi dan update counter. Sintaknya :
for (inisialisasi_counter ; test_kondisi ; update_counter) {
       instruksi;
       --------
};

Break, continue
Dalam pengulangan break digunakan untuk mematahkan (mengakhiri) pengulangan secara paksa. Sedangkan continue digunakan untuk melanjutkan pengulangan berikutnya secara paksa dengan mengabaikan perintah dibawah pernyataan continue.

String
String adalah obyek yang terdiri atas deretan karakter. Ada beberapa method dalam String yang perlu kita ketahui antara lain:
Int length ( )
memberikan nilai balik (return value) panjang dari aktual string.
char charAt (int index)
memberikan nilai balik berupa karakter pada posisi index dalam aktual string.  
int indexOf(char ch)
Memberikan nilai balik posisi pada String di mana karakter ch berada
int indexOf(String s)
Memberikan nilai balik posisi index pada String dimana string s ditemukan
int indexOf(char ch, int starPos)
int indexOf(String s, int startPos)
Sama dengan indexOf sebelumnya, hanya pencarian tidak dimulai dari index 0, melainkan dari index = startPos
Int lastIndexOf(char c)
Int lastIndexOf(char c, int startPos)
Int lastIndexOf(String s);
Int lastIndexOf(string s, int startPos)
Method lastIndexOf( ) mencari karakter/String pada String yang diberikan, hanya pencarian dimulai dri kanan ke kiri.
Boolean equals (String s)
Membandingkan aktual string dengan string s dengan mengabaikan huruf besar maupun huruf kecil.
String substring (int offset)
Memberikan nilai balik isi aktual string dari posisi offset sampai akhir string
String substring(int offset, int endIndex)
Memberikan nilai balik si aktual string dari posisi offset sampai posisi endIndex
String toLowerCase( )
Mengubah string menjadi huruf kecil semua
String toUpperCase( )
Mengubah string menjadi huruf besar semua
Char[ ] getChars(int startPos, int endPos, char buffer[ ], int offset)
Mengambil karakter dan startPos sampai endPos, dan menyimpanannya ke dalam buffer dimulai dari index = offset.
Int compareTo(String str)
Membandingkan String dalam UTF (Unicode Transfer Format) dengan nilai balik 0 bila sama, negative bila kecil, dan positif bila lebih besar.

StringTokenizer
Class StringTokenizer berfungsi untuk membagi string berdasarkan token tertentu.

POKOK BAHASAN 3 : CLASS
1.    Pendeklarasian class
Sintaks pendeklarasian class dalam java adalah
            modifiers class NamaClass {
                        <class attribute list>
                        <class method list>
            }

modifier menentukan bagaimana class dapat ditangani pada fase development berikutnya. Ada tiga jenis modifier dalam class yaitu public, final, abstract dan friendly.
·         Public
Ini berarti class tersebut dapat dipakai atau dikembangkan (extend) oleh sembarang object.
·         Final
Ini berarti class tersebut tidak bisa memiliki subclass (turunan). Dengan kata lain class tersebut tidak bisa dikembangkan.
·         Abstract
Ini berarti kita tidak bisa menciptakan obyek dari class tersebut. Class tersebut harus dipakai sebagai super class dari class lain. Dalam abstract class paling tidak ada satu method yang belum komplit.
·         Friendly
Secara default modifiers class adalah friendly ,artinya class tersebut tersebut boleh  dikembangkan atau dipakei oleh class lain dalam satu paket (package). Jika kita tidak memberikan modifiers didepan pendefinisian class maka class bersifat friendly.

<class attribute list>adalah daftar semua atribute (variable ) dari class ,sedangkan <class method list>adalah daftar semua method (fungsi\operasi) yang bisa dilakukan oleh class tersebut.

Sintaks pendefinisian class attribute :
modifiers data_type nama attribute ;

Sintaks  pendefinisian class method :
modifers return_type nama method (<parameters list>)

Ada beberapa  akses modifier yaitu:
·         Friendly
Secara default akses modifiers adalah friendly , yang berarti bahwa  attribute/methode bisa diakses oleh class lain dalam satu paket (package ).
·         Public
Attribute/methode tersebut dapat diakses oleh pihak luar manapun.
·         Private
Attribute/methode hanya dapat diakses oleh class itu sendiri
·         Protected
Attribute/methode hanya dapat diakses oleh class itu sendiri dan class turunannya (subclass nya ).
·         Final
Attribute ini tidak boleh diubah pada saat eksekusi. Karena attribute ini tidak boleh diubah maka harus diberi nilai pada saat pendeklarasian misal final int SIZE 5;
·         Static
Attribute tersebut mempunyai nilai sama untuk semua obyek dari class tersebut.
2. Konstruktur
Konstruktur adalah method dengan property yang unik dan untuk keperluan inialisasi pada saat obyek diciptakan. Jadi konstruktur digunakan untuk memberikan nilai kepada attribute tertentu pada saat obyek diciptakan.
3. Inherintance (Pewarisan)
Inheritance (Pewarisan) adalah suatu mekanisme yang memungkinkan satu class mewarisi (memiliki) attribute dan method dari class lain. Class yang mewarisi disebut subclass sedangkan class yang diwarisi disebut super class. Pewarisan class dalam java menggunakan sintaks:
             modifier<NamaSubClass> extends<NamaSuperCalss> {
            }

4. Kata Kunci this
Nilai this ini menunjukkan bahwa obyek yang dimaksud adalah obyek yang sedang aktif itu sendiri.       
5. Overriding Method
Overriding method adalah suatu mekanisme pewarisan class di mana subclass mendefinisikan ulang satu atau lebih method (fungsi) yang ada di super class.

POKOK BAHASAN 4 : THREADS
Property unik dari java adalah bahwa Java memberi support adanya threads. Threads adalah komponen java yang memungkinkan kita untuk membuat program yang bersifat multitasking programming.
Kita bisa membuat aplikasi dan class berjalan dalam threads yang terpisah dengan dua cara, yaitu :
·         Mengembangkan dari class Thread (extending class Thread)
·         Mengimplementasikan Runnable interface

Mengembangkan class Thread
Dengan menggunakan extends Thread, mekanisme Thread dapat diaplikasikan dengan membuat fungsi run ().
Untuk melihat concurrency (multitasking) pada program tersebut tambahkan method sleep( ) untuk actual Thread (current Thread). Method sleep( ) hanya dapat dilakukan dengan menangkap sinyal
Method yang berhubungan dengan Thread
start( )
Mengaktifkan Thread Obyek Thread kemudian akan menjalankan method run( ).
stop( )
Menghentikan Thread yang sedang aktif.
sleep(int delta)
Menunda aktifitas Thread untuk delta milisecond.

Mengimplementasikan Runnable interface
Pada contoh di atas Thread digunakan dengan mengembangkan class Thread, yang mana berarti bahwa Subclass Thread hanya dapat mewarisi sifat-sifat dari Thread. Pengikatan Class ini dapat dihindari dengan menggunakan konsep interface. Dengan mengimplementasikan Runnable interface. Interface Runnable ini hanya berisi satu method yang harus diimplementasikan, yaitu run().
Konstruktor Thread adalah :
            Thread(Runnable ThreadObject)
Atau
            Thread(Runnable ThreadObject, String nama Thread)
ThreadObject pada contoh di atas adalah this, yang merupakan Obyek itu sendiri yang mengimplementasikan Runnable.
            Method is Active( ) akan memberikan nilai true jika Thread actual aktif, dan false jika tidak aktif.

POKOK BAHASAN 5 : EXCEPTION (EKSEPSI)
Eksepsi adalah mekanisme yang memungkinkan program untuk menangkap kondisi-kondisi tertentu yang membutuhkan penanganan khusus misalnya kesalahan/ error. Format eksepsi adalah :
Try {
            // blok program
            . . . . . .
} catch (EksepsiTipe1 e) {
            // blok program untuk EksepsiTipe1
            . . . . . .
} catch (EksepsiTipe2 e) {
            // blok program untuk EksepsiTipe2
            . . . . . .
} catch (EksepsiTipe3 e) {
            // blok program untuk EksepsiTipe3
            . . . . . .
} finally {
            // blok program
            . . . . . . }
try menyatakan bahwa dalam blok try dapat terjadi suatu ekspresi dan bila eksepsi terjadi, maka aktifkan program yang berada dalam kelompok (blok) catch sesuai dengan tipe ekspresinya.
Object dari tipe ekspresi dapat digunakan sebagai referensi penanganan eksepsi aktual. 
finally menyatakan bahwa apapun jenis tipe ekspresinya, maka program dalam blok ini harus tetap dijalankan.
Pada saat run time, jika java menemukan kesalahan akan melempar pesan ke program. Dengan pesan ini, program akan melakukan suatu aksi tertentu. Mekanisme melempar ini disebut juga sebagai throw, alur program akan dihentikan, kemudian program pengendali (exception handling) akan diaktifkan.

throw
Throw digunakan secara eksplisit untuk membuang sebuah eksepsi.
throws
Dengan throws ini, kita bisa menghilangkan try dan catch pada subroutine demo( ), namun dengan menggunakan tambahan kata kunci throws Exception.

Tabel 6.1 Common Jaxa Exceptions
Exceptions
Description
ArithmeticException
Disebabkan oleh error secara matematika seperti pembagian dengan nol
ArrayIndexOutOfBouns Exception
Disebabkan oleh array index yang salah
ArrayStoreException
Disebabkan ketika program mencoba menyimpan file data yang salah
FileNotFoundException
Disebabkan oleh usaha mengakses file yang tidak ada
IOException
Disebabkan oleh general I/O failures, seperti kegagalan membaca file
NullPointException
Disebabkan oleh mereferensi obyek null
NumberFormatException
Disebabkan ketika konversi antara string dan bilangan gagal
OutOfMemoryException
Disebabkan ketika tidak cukup memory untuk alokasi obyek
SecurityException
Disebabkan ketika sebuah applet mencoba melakukan aksi yang tidak diperbolehkan oleh setting security browser
StackOverflowException
Disebabkan ketika sistem run melebihi kapasitas stack
StringIndexOutOfBoundsException
Disebabkan ketika program mencoba mengakses posisi karakter yang tidak ada di dalam string

POKOK BAHASAN 6 : JAVA GRAPHICAL USER INTERFACE
Graphical User Interface
Graphical User Interface merupakan antar muka grafis yang memfasilitasi interaksi antara pengguna dengan program aplikasi. Salah satu komponennya adalah Swing yang didefinisikan di dalam paket javax.swing. Swing diturunkan dari Abstract Windowing Toolkit dalam paket java.awt. Hirarki dari komponen Swing adalah :
java.swing.Jcomponent à java.awt.Container  à  java.awt.Component à Java.Lang. Object
JComponent adalah superclass dari semua komponen Swing. 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
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.
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.
3. Atomic component: merupakan komponen yang memiliki fungsi khusus. Umumnya pengguna langsung berinteraksi dengan komponen ini.
4. Layout Manager Berfungsi untuk mengatur bagaiman tata letak/posisi dari komponen yang akan diletakkan, satu sama lain di dalam suatu container. Secara default ada 6 buah layout : BorderLayout, BoxLayout, FlowLayout, CardLayout, GridBagLayout & GridLayout
5. Event Handling : Menangani event yang dilakukan oleh user

Layout Management
Untuk mengatur layout dari setiap komponen-komponen GUI yang diletakkan pada container, digunakan layout manager. Java menyediakan 6 buah class standar yang dapat digunakan sebagai layout manager yang terdapat dalam package java.awt, yaitu:
1.      Flow Layout merupakan layout manager default yang digunakan JPanel. Layout manager ini meletakkan komponen yg ada secara berurutan dari kiri ke kanan dan berpindah baris jika dibutuhkan. Jarak antar komponen baik secara vertikal maupun horizontal dapat ditentukan sendiri. Selain itu, kita bisa menentukan alignment dari komponen yang diletakkan, yaitu rata kanan, rata kiri atau di tengah
2.      GridLayout 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). Konstruktor yang digunakan dengan nilai default hGap dan vGap sama dengan 0.
3.      BorderLayout adalah default manager untuk ContentPane. Layout ini menempatkan komponen dengan pendekatan arah mata angin northsouthwestcentereast.
4.      Cardlayout digunakan untuk menampilkan container-container/panel-panel seperti tumpukan kartu. Hanya satu container yang akan tampil untuk satu waktu. Komponen yang diletakkan dengan layout ini berupa object yang bertipe intermediate container yang di dalamnya terdapat atomic component.
5.      GridBaglayout
Grid bag layout adalah pengaturan layout yang dapat digunakan untuk meletakkan komponen secara bebas.
Boxlayout digunakan untuk meletakkan komponen berurutan ke kanan (sumbu X) atau berurutan ke bawah (sumbu Y).


Comments