jurusan s1 teknik informatika -...

36
Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno

Upload: duongthien

Post on 30-Mar-2019

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno

Page 2: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

1

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Object Oriented Programming

Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip dengan obyek pada dunia nyata. Disekeliling kita ada banyak contoh dari objek, seperti meja, pena, kursi, televisi dan masih banyak lagi. Yang dimiliki oleh objek antar lain ◦ state Pada implementasinya berupa field dari kelas ◦ behaviour Implementasinya menjadi method dari kelas

Class Kelas adalah keluarga dari Objek. Apabila beberapa objek memiliki struktur yang sama, perilaku dan arti secara umum, maka bisa dikelompokkan menjadi sebuah kelas. Yang kemudian dapat digunakan untuk menciptakan sebuah objek yang memiliki keseragaman. Setiap kelas memberikan skema yang umum untuk satu atau lebih objek, dimana kelas dapat menjadi template dari satu atau banyak objek.

Variabel Ada beberapa jenis variabel, yaitu

Variable yang terletak di dalam kelas, disebut field, attribute

Variabel yang terletak didalam method atau blok kode, disebut local variable

Variabel dalam deklarasi method, disebut sebagai parameter Secara umum field terdiri dari 3 komponen, yaitu

Tanpa atau dengan modifier

Tipe data dari field

Nama dari field

package entity;

import java.util.Date;

public class Anggota {

private int id;

private String nama;

private String tmpLahir;

private Date tglLahir;

public Anggota(){

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getNama() {

return nama;

}

public void setNama(String nama) {

this.nama = nama;

}

public String getTmpLahir() {

return tmpLahir;

}

public void setTmpLahir(String tmpLahir) {

this.tmpLahir = tmpLahir;

}

public Date getTglLahir() {

return tglLahir;

}

public void setTglLahir(Date tglLahir) {

this.tglLahir = tglLahir;

}

}

Deklarasi paket

Import kelas Date

Nama kelas

Attribut atau Field

Constructor

Salah satu setter dan getter

Page 3: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

2

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Contructor Adalah sebuah method atau fungsi yang diekseskusi ketika sebuah kelas diinisialisasi, secara default sebuah Java Class memiliki 1 buah konstruktor tanpa parameter, konstruktor ini bisa ditulis, bisa tidak ditulis. Setiap kelas dalam java bisa memiliki lebih dari 1 konstruktor dengan parameter yang berbeda – beda. Nama dari sebuah konstruktor harus sama dengan nama dari kelas dan tidak memiliki nilai kembalian. Apabila sebuah kelas memiliki 1 buah konstruktor dengan 1 buah parameter atau lebih, maka kelas tersebut menjadi tidak memiliki lagi konstruktor default.

Method Method / operasi adalah apa yang bisa dilakukan oleh suatu objek, method bisa berupa setter getter atau method yang berfungsi selain sebagai setter dan getter. Secara umum method terdiri dari 7 komponen

Modifier

Return type

Method name

Parameter

Exception

Method body

Access Modifier Access Modifier atau akses modifier menjelaskan bagaimana kelas lain menggunakan field atau memanggil method. Sebuah kelas mungkin dideklarasikan dengan modifier public, sehingga kelas ini dapat dipanggil dari kelas yang lain. Jika kelas tidak memiliki modifier (default), maka hanya dapat dipanggil oleh kelas yang berada dalam satu paket. Di level dibawah kelas ada constructor, attribute dan method. Dapat diberikan juga modifier public atau default. Dibagian ini (constructor, attribute dan methodmember) ada dua tambahan modifier yaitu private dan protected. Private modifier menunjukkan bahwa member hanya dapat diakses dari dalam kelasnya sendiri. Protected modifier menunjukkan bahwa member dapat di akses dari kelasnya sendiri, kelas dalam satu paket dan oleh subclassnya.

Access Levels

Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N

no modifier Y Y N N private Y N N N

Enkapsulasi Ini adalah salah satu fitur penting di OOP. Enkapsulation atau enkapsulasi adalah suatu cara untuk menyembunyikan detail dari suatu proses atau cara untuk memberikan akses tidak langsung ke data. Dengan enkapsulasi, data yang ada dalam sistem lebih aman dan konsisten. Enkapsulasi juga akan membuat detail proses yang rumit tersembunyi sehingga para pengguna suatu Class atau obyek akan menemukan suatu kemudahan dimana. Kemudahan itu didapat karena mereka tidak perlu menyetahui detail suatu proses untuk dapat melakukan suatu proses, cukup dengan nama Method yang dibutuhkan.

Latihan 1 Latihan Kelas 1. Buatlah sebuah kelas dengan nama Sepeda

2. Simpan dengan nama file Sepeda.java 3. Buatlah sebuah kelas lagi dengan nama Utama, simpan dengan nama Utama.java

Page 4: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

3

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

4. Tambahkan method main pada kelas Utama, method main adalah method yang dijadikan starting point pada aplikasi yang berbasiskan java

5. Buatlah objek sepedaKu dari kelas sepeda di method main yang terletak di kelas Utama, kemudian

inisialisasi dengan memanggil konstruktor sepeda

6. Buka command prompt kemudian arahkan ke direktory dimana project anda ada

7. Jalankan perintah javac Sepeda.java untuk mengkompile kelas Sepeda, jika berhasil maka akan

tertambah 1 buah file Sepeda.class

8. Lakukan perintah yang sama untuk kelas Utama.java, pastikan menghasilkan 2 file baru yaitu

Sepeda.class dan Utama.class

Page 5: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

4

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

9. Jalankan kelas Utama dengan perintah java Utama

Latihan field 1. Tambahkan 1 buah variabel bernama warna dengan tipe data String dan modifier private

Field diatas digunakan untuk menampung warna sepeda, tipenya string dan modifiernya private sehingga hanya dapat diakses dari kelas Sepeda.

2. Tambahkan 1 buah setter dan getter di kelas Sepeda untuk field warna

3. Panggil method setWarna di kelas Utama method main, beri warna Ijo

4. Sebutkan warna sepeda dengan method println dari objek out paket system, dengan cara

memanggil method getWarna dari objek sepedaKu

5. Kompile kelas Sepeda.java dan Utama.java kemudian jalankan kelas Utama, maka hasilnya seperti

berikut

Page 6: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

5

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Latihan Constructor 1. Tambahkan 1 buah konstruktor di kelas sepeda, konstruktor ini memiliki 1 buah parameter, yaitu

warna

2. Silahkan anda compile kelas sepeda kemudian jalankan lagi kelas Utama, pasti error !!!!

3. Errornya muncul adalah java.lang.NoSuchMethodError, coba anda cek di kelas Utama, pada saat

pemanggilan construktor Sepeda, kode programnya seperti berikut

4. Yang dilingkari diatas tampak bahwa new Sepeda adalah pemanggilan konstruktor kelas Sepeda, dan

tadi kita sudah menambahkan konstruktor di kelas sepeda

5. Maka kita harus merubah pemanggilan konstruktor dikelas Utama agar seperti berikut

Page 7: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

6

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Coba anda kompile lagi kelas Utama dan jalankan kelas utama maka tidak menghasilkan error dan hasilnya adalah seperti berikut

Inheritance Inheritance atau pewarisan, di dalam OOP digunakan untuk mengklasifikasikan suatu obyek ke dalam suatu karakteristik dan fungsi yang umum. Maka ini akan membuat bekerja dengan obyek lebih mudah dan menguntungkan, karena hal ini memungkinkan kombinasi karakteristik umum pada obyek induk dengan obyek anak dengan cara mewariskan karakteristik pada obyek induk pada obyek anak. Misalnya suatu kelas Mahasiswa dan Karyawan adalah dua buah obyek yang memiliki karakteristik berbeda, namun kedua obyek tersebut dapat mewarisi obyek induk misalnya Anggota. Karena Mahasiswa dan Karyawan adalah dua obyek yang berbeda tapi keduanya adalah Anggota dari suatu perpustakaan. Dapat dilihat di kode program untuk kelas Mahasiswa Berikut :

Dan untuk kelas Karyawan

Pada dua kelas diatas, yaitu kelas Mahasiswa dan Karyawan terdapat kode program yang dilingkari yaitu

1. Mahasiswa extends Anggota

2. Karyawan extends Anggota

Dapat dibaca bahwa kelas Mahasiswa adalah turunan dari kelas Anggota dan kelas Karyawan adalah turunan dari kelas Anggota. Apabila anda perhatikan lebih teliti misalnya pada kelas Karyawan maka tampak disana hanya terdapat 1 buah attribut atau field (dilingkari warna merah). Untuk attribut id, nama, tempat lahir dan tanggal lahir cukup dideklarasikan saja di kelas Anggota, sehingga tidak terjadi proses deklarasi variabel yang sama berulang – ulang, berikut ini kode program kelas Anggota

package entity;

public class Mahasiswa extends Anggota {

private String nim;

private int tahunMasuk;

public String getNim() {

return nim;

}

public void setNim(String nim) {

this.nim = nim;

}

public int getTahunMasuk() {

return tahunMasuk;

}

public void setTahunMasuk(int tahunMasuk) {

this.tahunMasuk = tahunMasuk;

}

}

package entity;

public class Karyawan extends Anggota {

private String nik;

public String getNik() {

return nik;

}

public void setNik(String nik) {

this.nik = nik;

}

}

Page 8: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

7

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Kode program yang dilingkari warna ungu menunjukkan attribut yang dimiliki kelas Anggota seperti id, nama, tmpLahir dan tglLahir. Attribut itu juga yang nantinya akan digunakan oleh kelas Mahasiswa, Karyawan dan PetugasPerpus. Berikut ini contoh sederhana untuk keuntungan yang bisa kita ambil dari menerapkan konsep inheritance

Keluaran dari program diatas adalah

Prinsip diatas sesuai dengan aturan Substitusi Liskov yang berbunyi seperti berikut “Since a subclass inherits the behaviour of its superclass, you can substitue objects whenever a superclass object is

package entity;

import java.util.Date;

public class Anggota {

private int id;

private String nama;

private String tmpLahir;

private Date tglLahir;

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

/*-----setter dan getter attribut yang lain---*/

}

package example;

import entity.Anggota;

import entity.Mahasiswa;

import entity.PetugasPerpus;

public class TestingInheritance {

/**

* @param args

*/

public static void main(String[] args) {

/* TODO deklarasi objek anggota dengan Type Anggota

* menggunakan Contructor Anggota()

*/

Anggota anggota=new Anggota();

anggota.setNama("Ratno Kustiawan");

anggota.setTmpLahir("Purworejo");

/* TODO decklarasi objek anggota2 dengan Type Anggota dengan

* menggunakan Contructor Mahasiswa()

*/

Anggota anggota2=new Mahasiswa();

anggota2.setNama("Afif Syaifullah");

anggota2.setTmpLahir("Indonesia");

/* TODO deklarasi objek anggota3 dengan Type Anggota dengan

* menggunakan Contructor PetugasPerpus()

*/

Anggota anggota3=new PetugasPerpus();

anggota3.setNama("Afif");

anggota3.setTmpLahir("Indonesia");

/* TODO deklarasi objek karyawan dengan Type Karyawan dengan

* menggunakan Contructor PetugasPerpus() */

Anggota karyawan=new PetugasPerpus();

karyawan.setNama("Kustiawan");

karyawan.setTmpLahir("Indonesia");

/* TODO munculkan data dari objek yang sudah dibuat */

System.out.println("anggota =>" + anggota.getNama() + " =>" + anggota.getTmpLahir());

System.out.println("anggota2 =>" + anggota2.getNama() + " =>" + anggota2.getTmpLahir());

System.out.println("anggota3 =>" + anggota3.getNama() + " =>" + anggota3.getTmpLahir());

System.out.println("karyawan =>" + karyawan.getNama() + " =>" + karyawan.getTmpLahir());

}

}

anggota =>Ratno Kustiawan =>Purworejo

anggota2 =>Afif Syaifullah =>Indonesia

anggota3 =>Afif =>Indonesia

karyawan =>Kustiawan =>Indonesia

Page 9: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

8

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

expected” (dikutip dari Object Oriented Design and Pattern second edition, Bab The Concept of Inheritace, bagian The Substitution Principle halaman 219 karangan Cay Horstmann).

Latihan 2 1. Buatlah sebuah kelas bernama SepedaMini, kelas ini adalah turunan dari kelas Sepeda

2. Tambahkan 1 buah field bernama jumlah roda, bertipe integer dengan modifier private

3. Buat setter dan getter untuk field jumlahRoda

4. Buka command prompt dan comple kelas SepedaMini.java, maka akan didapatkan pesan error dari

sebagai berikut

Perhatikan bahwa ada kalimat cannot find symbol, dimana symbol yang dimaksud adalah konstruktor Sepeda yang tanpa parameter, symbol yang dicari (konstruktor sepeda tanpa parameter) berada pada kelas Sepeda.

5. Error diatas terjadi karena tidak ditemukan konstruktor tanpa parameter di kelas sepeda, oleh karena itu dikonstruktor dari kelas SepedaMini perlu kita tambahkan konstruktor dengan parameter warna bertipe String

6. Compile lagi kelas SepedaMini.java maka tidak terjadi error dan anda sudah mendapatkan file

SepedaMini.class

Page 10: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

9

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

7. Buat kelas Utama2 yang didalamnya terdapat method main

8. Buat objek sepeda dari kelas sepeda menggunakan konstruktor Sepeda dengan mengisi

parameternya dengan nilai Biru

9. Tuliskan warna sepeda dengan mamanggil method println dari objek out kemudian mengambil

warna dari sepeda dengan memanggil method getWarna dari objek sepeda

10. Tambahkan objek sepedaMini dari kelas SepedaMini dan inisialisasi dengan konstruktor SepedaMini,

beri warna Hijau dan beri roda 4

11. Tambahkan objek dengan nama sepedaKu, dari kelas Sepeda tapi diinisialisasi dengan konstruktor

SepedaMini, kemudian munculkan warnanya

12. Pelajari dengan seksama dan tanyakan bila ada yang perlu ditanyakan ke dosen/asisten.

Page 11: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

10

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Polymorphism Polimorphisme adalah kemampuan dari dua buah obyek untuk merespon suatu pesan yang sama dengan cara yang tidak sama.Dalam OOP biasanya bisa diimplementasikan kedalam dua proses yang

disebut overloading dan overriding. 1. Overloading

Overloading adalah suatu kondisi ketika ditemukan beberapa Method yang memiliki nama sama pada sebuah Class namun memiliki jumlah masukan dan tipe data masukan yang berbeda – beda. Sehingga Method – Method itu dikenali sebagai Method yang berbeda meskipun namanya sama. Misalkan sebuah Class Anggota memiliki Method untuk mencari buku, namun satu Method memiliki masukan pengarang buku dan satu Method tidak memiliki masukan apapun. 2. Overriding

Biasanya ditemukan pada sebuah Class yang merupakan sebuah Class turunan. Class turunan ini memiliki satu atau lebih Method yang sama dengan Class induknya. Method di Class turunan inilah yang melakukan overriding Method terhadap Method di Class induk. Misalkan diketahui Class AnakAnak yang merupakan turunan Class Anggota, tetapi Class AnakAnak memiliki Method cariBuku yang juga dimiliki oleh Class Induknya, maka digunakan overriding.

Latihan 3 Overloading Constructor 1. Tambahkan 1 buah constructor tanpa parameter ke kelas Sepeda

2. Sehingga terdapat 2 buah konstructor di kelas Sepeda

3. Buat kelas dengan nama Utama3, didalamnya terdapat method main

4. Buat kelas dengan nama sepedaA di kelas Utama3 dengan menggunakan default konstruktor

5. Compile Kelas Sepeda 6. Compile Kelas Utama3 7. Jalankan Kelas Utama3

8. Tambahkan objek SepedaB dengan memanggil konstruktor dengan parameter

Page 12: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

11

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

9. Compile kelas Utama3 10. Jalankan Kelas Utama3

Overloading Method 1. Tambahkan field merk dengan tipe String modifier private, dan tambahkan setter dan getternya di

kelas Sepeda

2. Tambahkan method setWarna di kelas Sepeda dengan 2 attribut, warna, merk, semuanya bertipe

String

3. Compile kelas Sepeda.java 4. Pada kelas Utama3, tambahkan objek sepedaC, dinisialisasi dengan constructor default

5. Panggil method setWarna dengan 2 parameter, beri nilai Hijau dan merek Maju Mundur, kemudian

tampilkan di command prompt

6. Compile kelas Utama3 7. Jalankan kelas Utama3

Latihan 4 Overriding Method 1. Tambahkan method setWarna di kelas SepedaMini

Page 13: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

12

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

2. Kompile kelas SepedaMini

3. Buat kelas Utama4 dan beri method main didalamnya

4. Buat objek sepedaA dengan tipe Sepeda

5. Buat objek sepedaB dengan tipe SepedaMini

6. Kompile kelas Utama4 dan jalankan, lihat hasilnya

7. Panggil method setWarna dari sepedaA dan sepedaB

8. Kompile dan jalankan kelas Utama4, hasilnya warna sepeda A adalah biru, sepeda B adalah biru tua

Page 14: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

13

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Interface Merupakan sebuah keyword untuk mendefinisikan sekumpulan method dan konstanta. Interface bisa digunakan apabila sudah dilakukan implementasi pada sebuah kelas non abstract. Interface dapat digunakan untuk

1. Mewakili suatu tingkah laku yang bisa dimiliki oleh suatu kelas tanpa memaksakan relasi antar kelas tersebut.

2. Menangani event atau action yang terjadi pada suatu kelas 3. Memudahkan penanganan objek dalam parameter 4. Multiple inheritace

1. Buat interface dengan nama ISepedaEvent

2. Tambahkan abstract method dengan nama warnaBerubah

3. Kompile kelas ISepedaEvent 4. Buat kelas dengan nama SepedaEvent

5. Implementasikan interface ISepedaEvent ke kelas SepedaEvent

6. Override method warnaBerubah di kelas SepedaEvent

7. Kompile kelas SepedaEvent 8. Tambahkan field dengan nama event, dengan tipe ISepedaEvent di kelas Sepeda

9. Buat setter untuk field event di kelas Sepeda

10. Panggil method eventBerubah dari objek event di method setWarna, baik yang terdiri dari 1

parameter atau 2 parameter

11. Kompile kelas Sepeda

Page 15: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

14

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

12. Tambahkan kode program untuk menuliskan informasi perubaha warna di kelas SepedaEvent

13. Buat kelas dengan nama Utama5 didalamnya terdapat method main

14. Deklarasikan objek sepedaA dengan tipe Sepeda dan inisialisasi warna Merah

15. Buat objek sepedaEvent dari kelas SepedaEvent

16. Relasikan atau hubungkan event di objek sepedaA dengan objek sepedaEvent, sehingga apabila ada

event perubahan warna (contohnya) maka dapat diketahui berubah dari warna apa menjadi warna apa

17. Munculkan informasi warna sepeda A, kemudian ubah warna menjadi biru dan munculkan warna

sepeda A lagi

18. Hasilnya seperti berikut

Page 16: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

15

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

GUI (Graphical User Interface)

Untuk mengembangkan tampilan aplikasi di java standard edition, developer memiliki banyak pilihan. Dapat menggunakan Java Swing atau menggunakan Standard Window Toolkit yang disediakan eclipse. Antara Swing dan SWT masing – masing memiliki kelebihan dan kelemahan. Semua komponen di Swing diturunkan dari JComponent yang dapat menangani look and feel, event handling dll.

JFrame Mencerminkan window dari aplikasi, dimana memiliki border dan control window seperti close, minimize, maximize. Terletak pada paket javax.swing.JFrame 1. Buat kelas MyFrame yang merupakan turunan JFrame

2. Tambahkan import javax.swing.JFrame karena JFrame adalah kelas yang terletak di paket

javax.swing

3. Simpan dengan nama MyFrame.java, kemudian compile 4. Buat kelas Utama6

5. Deklarasikan objek frame1 dengan tipe MyFrame di method main kelas Utama6

6. Untuk memunculkan frame1 panggil method setVisible dari objek frame1 dan parameternya diberi

nilai true

7. Kompile utama6 kemudian jalankan utama6, maka hasilnya seperti berikut

Tampak ada window di kiri atas

8. Untuk mengatur ukuran dari frame1, panggil method setSize di konstruktor MyFrame

9. Kompile kelas MyFrame kemudian jalankan kelas Utama6, hasilnya seperti berikut

Page 17: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

16

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

10. Panggil method setTitle untuk mengatur title dari MyFrame

11. Agar posisinya berada di tengah – tengah panggil method setLocationRelativeTo dengan parameter

null

12. Kompile kelas MyFrame dan jalankan utama6

13. Ketika anda tekan close maka tampilan command prompt tidak kembali seperti semula tapi harus

menekan ctrl + C dulu, oleh karena itu panggil method setDefaultCloseOperation dimana ada 3 jenis konstanta yang bisa anda masukkan yaitu

Konstanta Tipe Keterangan

DO_NOTHING_ON_CLOSE int Tidak melakukan aksi apapun ketika ditutup

HIDE_ON_CLOSE int Menyembunyikan window ini (nilai default)

DISPOSE_ON_CLOSE int Menutup window

14. Kompile MyFrame kemudian jalankan Utama6, coba anda tutup maka command prompt akan

kembali seperti semula

Page 18: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

17

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Komponen Dasar JLabel Dengan JLabel anda dapat menampilkan teks. Terletak pada paket javax.swing.JLabel 1. Tambahkan objek label1 di konstruktor MyFrame

2. Untuk meletakkan label panggil method add kemudian parameternya diisi label1

3. Coba compile, pasti error, salah satu pesannya cannot find symbol JLabel, oleh karena itu

tambahkan import javax.swing.JLabel;

4. Kompile MyFrame dan jalankan utama6, hasilnya seperti gambar berikut

Page 19: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

18

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

JButton Adalah kelas yang digunakan untuk menciptakan tombol, terletak pada paket javax.swing.JButton 1. Buat attribute btnTutup dengan tipe JButton dan access modifier private di kelas MyFrame. Jangan

lupa tambahkan import javax.swing.JButton

2. Inisialisasi btnTutup sesudah pemanggilan method add

3. Coba compile kelas MyFrame dan jalankan Utama6, tampak btnTutup menutupi label 1

4. Solusi dari masalah ini adalah kita harus menggunakan Layout Manager, ada banyak layout manager

antara lain FlowLayout, BorderLayout, AbsoluteLayout dan GridBagLayout.

Page 20: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

19

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Layout Manager Layout Manager digunakan untuk mengatur posisi dan ukuran komponen dalam kontainer atau frame

FlowLayout Flow Layout mengurutkan komponen menjadi suatu baris, kemudian memindahkan ke baris berikutnya bila sudah tidak mencukupi. Arah aliran diatur dengan 2 konstanta yaitu ComponentOrientation.LEFT_TO_RIGHT dan ComponentOrientation.RIGHT_TO_LEFT.

Contoh Flow Layout 1. Buat kelas dengan nama FlowLayoutDemo, kelas ini turunan JFrame

2. Tambahkan import javax.swing.JFrame

3. Atur ukuran agar panjangnya 500 dan tingginya 200

4. Deklarasikan 3 buah button dengan modifier private

5. Inisialisasi kesemua button tersebut

6. Atur agar FlowLayoutDemo menggunakan flow Layout

Page 21: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

20

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

7. Atur default close operation menjadi close dan posisi di tengah

8. Tambahkan import java.awt.FlowLayout dan javax.swing.JButton

9. Compile kelas FlowLayoutDemo 10. Buat kelas UtamaFlowLayout

11. Buat objek flowDemo, kemudian munculkan framenya

12. KOmpile FlowLayoutDemo dan UtamaFlowLayout kemudian jalankan UtamaFlowLayout,Tampak

tidak ada komponen yang muncul satupun, hehehe

Page 22: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

21

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

13. Add semua button ke FlowLayoutDemo

14. Ulangi perintah 12 hasilnya seperti berikut

Latihan FlowLayout Atur agar tampilan dari kelas MyFrame tampak seperti gambar berikut

Page 23: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

22

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Border Layout Border layout menempatkan komponen di dalam 5 area yaitu north, south, east, west, center. Tiap area hanya boleh terdiri dari 1 komponen.

Contoh Border Layout 1. Tambahkan 1 buah kelas dengan nama BorderLayoutDemo yang merupakan turunan JFrame

2. Tambahkan import java.awt.BorderLayout

3. Set agar layout dari JFrame menjadi BorderLayout

4. Tambahkan 5 buah button dengan nama button 1 sampai 5, dengan lokasi berurutan dari north,

south, east, west, center

5. Jangan lupa tambahkan import javax.swing.JFrame 6. Kompile kelas BorderLayoutDemo 7. Tambahkan kelas dengan nama UtamaBorderLayout

8. Munculkan BorderLayoutDemo

9. Kompile UtamaBorderLayout.java, kemudian jalankan maka hasilnya seperti gambar berikut

Page 24: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

23

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Absolute Position Anda juga dapat menata komponen tanpa menggunakan layout manager, meskipun disarankan untuk tetap menggunakan layout manager. Apabila anda membutuhkan penataan komponen yang lebih manual maka anda bisa menggunakan absolute position. Dimana harus menentukan posisi x, y serta witdh dan height dari komponen yang hendak anda atur posisinya

Contoh Absolute Posit ion 1. Buat kelas dengan nama DemoAbsoultePosition dan turunan JFrame

2. Tambahkan import javax.swing.JFrame

3. Ubah agar layoutnya menjadi null

4. Tambahkan label dengan tulisan Nama , tambahkan import javax.swing.JLabel

5. Buat kelas lagi dengan nama UtamaAbsolutePosition

6. Munculkan DemoAbsolutePosition dari kelas utama

7. Kembali ke DemoAbsolutePosition.java, tambahkan kode program agar lokasi munculnya ditengah,

dispose ketika close dan ukurannya width 300, height 200

8. Kompile DemoAbsolutePosition.java dan UtamaAbsolutePosition.java kemudian jalankan

UtamaAbsolutePosition

Page 25: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

24

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

9. Kembali ke kelas DemoAbsolutePosition.java kemudian atur agar posisi dan ukuran dari lblNama. Gunakan method setBounds, dimana method setBounds memiliki 4 parameter yaitu X, Y, Width dan Height. Dimana X dan Y adalah posisi kiri atas dari komponen dan ukuran ditentukan dengan width dan height

10. Kompile DemoAbsolutePosition kemudian jalankan UtamaAbsolutePosition

11. Tambahkan lagi JTextField di kanan dari nama di bawah textfield nama

12. Munculnya seperti berikut

Page 26: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

25

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

13. Tambahkan tombol tutup dibawah textfield

14. Hasilnya seperti berikut

Kombinasi Flow Layout dan Border Layout 1. Buat kelas baru dengan nama FlowBorder dan turunan dari JFrame

2. Atur agar posisi ditengah, akan dispose ketika close dan ukuran 300,200

Page 27: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

26

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

3. Ingat, bahwa Border Layout maksimum hanya dapat menampung 5 komponen, kondisi ini akan kita manfaatkan agar tombol selalu terletak di kanan bawah, oleh karena itu kita akan menggunakan komponen JPanel, kemudian akan kita tambahkan label nama dan textfield

4. Buat kelas utama dengan nama Utama7 yang akan memunculkan FlowBorder

5. Tambahkan panel 1 lagi untuk menampung button, letakkan dibawah

Page 28: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

27

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

6. Maka hasilnya seperti berikut

7. Tambahkan kode program untuk mengatur width dari txtNama, agar columnNama menjadi lebar

8. Sehingga hasilnya seperti berikut

Page 29: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

28

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Koneksi Database di Java

Desain Form 1. Tuliskan kode program berikut untuk membuat membagi JFrame menjadi 2 bagian yaitu North dan

South

2. Deklarasikan 4 JLabel, 3 JTextField, 1 JButton dan 1 buah ComboBox dan importnya

3. Inisialisasi dan atur posisi semua label di constructor

4. Inisialisasi dan atur posisi untuk semua JTextfield

5. Inisialisasi dan atur posisi untuk semua JComboBox

Page 30: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

29

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

6. Tambahkan semua komponen tadi ke pnCenter

7. Tambahkah Size dan default close operation

8. Tambahkah pnCenter ke JFrame

9. Compile kelas ini 10. Buat kelas main untuk menampilkan form tambah data

11. Jalankan kelas main, tampilannya seperti berikut

Silahkan disesuaikan kalo ukuran suatu komponen mungkin kurang panjang misal nama

12. Deklarasikan jbutton untuk tambah data

13. Inisialisaasi, tentukan posisi dan tambahkan ke pnSouth serta tempelkan pnSouth ke jframe

Library JDBC 1. Buat 1 folder dengan nama lib, kemudian kopikan file mysql-connector.jar 2. Buat 1 buah file manifest diluar folder lib dengan nama informasi.txt, isinya sebagai berikut

Pastikan tekan enter 1 kali sesudah tulisan Class-Path: lib/mysql-connector.jar

Page 31: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

30

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Method Koneksi 1. Deklarasikan objek koneksi

2. Buat method koneksi, lakukan registrasi JDBC driver kemudian buka koneksi ke server database

Kode program diatas dapat dibaca - Driver yang digunakan bernama Driver pada paket com.mysql.jdbc - Protokol koneksi jdbc yang digunakan adalah jdbc:mysql - Localhost adalah ip server database (bisa diganti 127.0.0.1 atau ip sesuai kebutuhan misal

192.168.100.1) - DATASISWA adalah nama database - Root adalah user untuk login database - String kosong (“”) adalah password, jika menggunakan password ya diisikan password

3. Panggil di konstruktor untuk method koneksi 4. Kompile kelas TambahData.java 5. Kompile agar menjadi file jar dengan perintah

jar cfm DataSiswa.jar informasi.txt TambahData.class MainData.class 6. Jalankan dengan perintah

java –jar DataSiswa.jar 7. Pasti muncul informasi berikut

8. Jalankan dulu service mysql anda kemudian ulangi perintah nomor 6

Method Insert 1. Buat method insert, dimana terdapat perintah sql untuk insert data.

2. Buat objek stmt untuk mengeksekusi perintah sql

Event di tombol Tambah 1. Implements ActionListener di JFrame

2. Buat method actionPerformed

3. HUbungkan antara tombol tambah dengan action listener

4. Cek di actionPerformed, jika sumber event dari tombol tambah maka panggil method insert

Page 32: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

31

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

5. Kompile dulu denganperintah

Javac TambahData.java 6. Kompile agar menjadi file jar dengan perintah

jar cfm DataSiswa.jar informasi.txt TambahData.class MainData.class 7. Jalankan dengan perintah

java –jar DataSiswa.jar 8. Tambah data kemudian coba cek di database mysql pasti data bertambah

Page 33: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

32

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Menampilkan Data di ComboBox 1. Buka file TambahData.java 2. Buat method dengan nama loadGolonganDarah 3. Tuliskan perintah sql berikut untuk menampilkan golongan darah

4. Buat statement, kemudian eksekusi perintah sql dengan method executeQuery lalu hasilnya

tampilkan di ResultSet

5. Lakukan perulangan untuk mengambil data di resultset, dalam perulangan tambahkan data

golongan darah ke combo box

6. Masukkan ke dalam blok try catch

7. Panggil di konstruktor 8. Kompile, jadikan file jar dan jalankan file jarnya

Membuat JTabel 1. Deklarasikan attribute

private javax.swing.table.DefaultTableModel dtm; 2. Buat Jpanel, inisialisasi dtm,tentukan kolom pada JTabel

3. Inisialisasi Jtabel dan scrollpane, atur ukuran dari scrollpane menjadi width 400 dan height 130,

letakkan scrollPane ke pnNorth dan tambahkan pnNorth ke frame dengan BorderLayout.North

4. Kompile, jadikan file jar dan jalankan file jarnya

Page 34: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

33

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Mengisi JTabel 1. Tambahkan method loadDataSiswa

2. Tuliskan perintah sql untuk menampilkan data

3. Eksekusi dengan method executeQuery dari objek stmt

4. Lakukan perulangan untuk menampilkan data ke JTabel

5. Letakkan dalam blok try catch

6. Panggil method loadDataSiswa di konstruktor 7. Kompile, jadikan file jar, jalankan file jarnya

Page 35: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

34

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

Mengatur JTabel 1. Agar jtabel hanya dapat dipilih1 baris maka tambahkan kode program berikut, sebelum

menambahkan JTabel ke JScrollPanel

2. Agar jtabel header kolom tidak bisa diubah – ubah

3. Agar cell di jtable tidak bisa diedit, buat kelas dengan nama NonEditableTableModel yang

merupakan turunan dari DefaultTableModel

4. Override method isCellEditable, berikan nilai kembalian false

5. Inisialisasi dtm dengan NonEditableTableModel

6. Kompile berurutan NonEditableTableModel.java, TambahData.java 7. Jadikan file jar, jangan lupa NonEditableTableModel.class juga ditambahkan

jar cfm DataSiswa.jar informasi.txt TambahData.class MainData.class NonEditableTableModel.class

8. Jalankan file jarnya, cek apakah cell di jtable masih bisa di edit?

Baris yang terpilih di jtable muncul di textfield dan yang lain 1. Implements ListSelectionListener

2. Pindah deklarasi tbSiswa ke level attribute, tidak di dalam constructor

3. Tambahkan ListSelectionListener ke tbSiswa

4. Tambahkan method valueChange

5. Ambil row terpilih di method valueChanged

Page 36: Jurusan S1 Teknik Informatika - elearning.amikom.ac.idelearning.amikom.ac.id/index.php/download/materi/190302158-ST122-8...Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen

35

Pem

rogr

aman

Lan

jut

| 9

/17

/20

12

6. Tampilkan data di jtable yang terpilih ke txtNis,txtNama,txtUsia,cbGolDarah

7. Jalankan, jadikan file jar dan jalankan file jar