Jumat, 29 Agustus 2008

use case Tampilan Satu Gambar

diagram interaksi tampilan satu gambar



Bagian memodelkan user, bagian kanan memodelkan komputer.

Sabtu, 23 Agustus 2008

konsep oop


Class = data + methods. Data dan methods dalam dimasukkan dalam kelas-kelas. Dengan pendekatan lama (prosedural), biasanya pembuatan kelas dengan java hanya berisi method static (algoritma program). Dengan method cara lama ini, seringkali membutuhkan tempat data (variabel) yang akan diolah, biasanya menggunakan variabel lokal. Sebenarnya, konsep local variabel inilah yang mendasari dibentuknya atribut pada kelas dengan visibilitas private atau protected, agar hubungan antar (modul) objek satu dengan objek lain mencapai tingkat data coupling.

Sejarah pembuatan (kelas). Kelas juga dapat digunakan untuk menyimpan data (sementara) sebagai pengganti variabel memori, array atau variabel pointer (ini kalau pakai paradigma prosedural). Kelas juga berarti sebagai suatu tempat data kelompok atau koleksi, yang dulu biasa diperankan oleh structur rekaman (struct or records). Oleh karena itu dapat dikatakan bahwa perilaku program objek dari suatu kelas merupakan kombinasi antara pemanfaatan tempat data (atribut) dan pemanfaatan methods (services atau layanan) untuk melakukan pengolahan data.

Penggunaan kelas (diharapkan) mengurangi kompleksitas (suatu sistem perangkat lunak). Seperti diketahui, kompleksitas akan membatasi ukuran dan keandalan dari suatu program (perangkat lunak). Kompleksitas dapat direduksi dengan meningkatkan kohesi (putting things together that belong together, maksudnya data dan program yang relevan disatukan dalam satu modul objek) dan mereduksi coupling (interconnections), terutama dengan menerapkan konsep enkapsulasi atribut.

Class, object, OOP. Kelas merupakan spesifikasi yang (umumnya) mengandung kombinasi dari data dan methods, objek disebut sebagai instant dari kelas yang perlu dikonstruksi dulu sebelum digunakan, dan praktek untuk membangun pemrograman yang berdasarkan sifat dari idea kelas dan objek ini disebut Pemrograman Berorientasi Objek (Object-Oriented Programming - OOP).

Suatu kelas bisa saja tanpa atribut, hanya mempunyai method. Namun di sisi lain, kelas yang hanya mempunyai atribut dan tidak mempunyai method, tidak mungkin. Alasannya, karena, pertama, kelas harus punya method khusus yang disebut konstruktor, dan biasanya nama method khusus ini sama dengan nama kelas. Yang kedua, bagaimana kita bisa mengakses atribut dari suatu kelas, jika dienkapsulasi. Sementara, jika visibilitas atribut ingin kita set public, tentunya ini tidak memenuhi sifat dari pemrograman berorientasi objek.

Loh, dengan java bisa loh, kita membuat program dengan visibilitas atribut yang public. Iya lah, tapi itu namanya program java prosedural, bukan oop. ... :-)

(Terjemahan bebas dari konsepnya Fred Swartz, dan diberi tambahan penjelasan secukupnya)

pustaka :
JavaBasics : OOP - Introduction to Classes and Objects

Kamis, 21 Agustus 2008

diagram kelas rantai gambar



Untuk mengimplementasikan aplikasi rantai gambar, yang terlihat sederhana, dibutuhkan beberapa kelas, yaitu :
kelas bikinan : kelas rantai1, untuk membentuk array ImageIcon sebagai penangkap gambar dari empat file gambar. kelas rantai2, untuk membentuk array dummy dari 8 (delapan) objek lnk dari kelas ImageIcon, sebagai pemberi efek gambar hilang jika gambar dari objek dari kelas rantai1 diletakkan pada indeks dengan angka besar [4] sampai [7]. Sementara jika gambar (pointernya) digeser ke indeks dengan angka kecil [0] sampai [3] akan dimunculkan oleh gbLabel dari kelas JLabel.

sementara jenis kelas yang disediakan oleh java, tak berbeda jauh dengan kelas yang digunakan pada aplikasi duaGbr.java (aplikasi tukar gambar)

diagram komponen rantai gambar



Dalam model dapat dibaca bahwa aplikasi rantaiGbr, yang diwakili oleh Rantai.jar, (terdapat pada rantai.zip) dapat mengakses empat file gambar : grapes.jpg, carrot.jpg, ayam.jpg dan burung.jpg.

File gambar dapat dianggap sebagai dokumen. Baik Rantai.jar dan file gambar dapat dimodelkan sebagai komponen dalam notasi UML.

membuat diagram kelas

Cukup mudah membuat diagram kelas. Saat ini cukup banyak tools untuk membuatnya dari suatu source-code. Tools ada yang commercial, ada yang shareware, ada yang free. Sebaiknya diteliti dulu sebelum menggunakannya, sebelum nantinya mengundang masalah.

Tools yang menarik, di antara tools yang tersedia dari seluruh dunia adalah sebagai berikut :Contoh penggunaan tools untuk menghasilkan diagram kelas dapat dilihat berikut ini:

Kelas untuk aplikasi satuGbr


Kita lihat di situ, bahwa kelas utama untuk aplikasi satuGbr. Kelas boundary : SatuGbr dan kelas control : drvSatuGbr. Kelas boundary digunakan untuk interaksi antara user dengan aplikasi. Sedangkan kelas drvSatuGbr digunakan sebagai kontrol, di antaranya untuk membentuk objek panel yang dibentuk dari kelas SatuGbr. Baca source di : drvSatuGbr.java sebagai refetrensi pembahasan.

Gambar bisa dibaca pada saat pembentukan objek panel (kelas SatuGbr). Untuk menangkap hasil pembacaan itu, digunakan objek gbr dari kelas ImageIcon.

Di sini terlihat, ada kelas yang dibentuk : SatuGbr dan drvSatuGbr, juga ada beberapa kelas yang disediakan oleh engine java, di antaranya kelas JPanel, ImageIcon, JTable, JLabel dan JFrame.

Untuk keperluan interaksi melalui tombol yang dibentuk oleh objek tmb01, tmb02 dan tmb03 dari kelas JButton, maka kelas SatuGbr perlu mengimplementasikan interface yang bernama ActionListener, dan merupakan turunan dari interface EventListener.

Perhatikan simbol relasi antara kelas SatuGbr lalu ada garis putus, yang berujung model segitiga, yang "menunjuk" pada gambar interface ActionListener.

Referensi ActionListener dan EventListener dapat dilihat pada situs berikut :


Di situs itu Anda juga bisa melihat spesifikasi kelas lain yang disediakan oleh engine java. Misal :

dan banyak kelas lainnya lagi.

Saran saya, jangan hafalkan semua syntax itu. Coba bikin suatu aplikasi yang sederhana, dan kemudian menuju ke kompleks. Setiap aplikasi pahami baik-baik objeknya dari kelas apa. Apakah itu kelas bikinan sendiri atau merujuk pada kelas yang disediakan java, atau kelas turunan, seperti SatuGbr itu dirancang sebagai turunan dari kelas JPanel (perhatikan simbol asosiasinya). Lalu sebelum semuanya menjadi lebih rumit dan kompleks, pelajari juga cara membuat peta arsitektur programnya dengan menggunakan sifat-sifat dari model UML. Sehingga kelak ketika Anda sudah mampu membuat aplikasi yang lebih rumit, Anda masih bisa mengendalikannya, karena bisa bikin "peta"-nya dengan UML.

Coba dua gambar berikut Anda pahami seperti pendekatan pembahasan di atas. Sengaja yang satu disediakan source code-nya, sedang yang berikutnya hanya diberikan kompilasinya untuk menguji apakah untuk membaca suatu peta gambar UML Anda masih tergantung pada suatu source code, atau justru dengan adanya peta UML Anda bisa menyusun sendiri bagaimana source codenya.... :-)

Referensi source code : drvDuaGbr.java
code rar dalam zip : rantai.zip

Kelas untuk aplikasi duaGbr


Kelas untuk aplikasi rantaiGbr



Selasa, 19 Agustus 2008

rantai gambar

Problem:
1. Buat rantai atau rangkaian gambar yang bisa bergeser ke kiri, satu per satu.

solusi:
rantai.zip

2. Buat analisis diagram state-nya

solusi: Tabel Analisis State


  • state dimulai oleh state0000, artinya, ke-empat label menunjuk null (kosong).
  • ketika dilakukan klik pertama (geser t(0)), akan tampil satu gambar dari arah kanan. state ini disebut state0001
  • Demikian seterusnya, ketika muncul keempat gambar, setelah klik geser t(2), maka state ini disebut state1111


3. Bagaimana bentuk tampilannya ?

solusi:
Gambar tampilan pada state1111 adalah sebagai berikut:



Penjelasan interaksi user dengan aplikasi (pengoperasian) :

  • tombol start untuk memulai memuncukan satu gambar dari kiri
  • tombol geser untuk menggeser satu gambar ke kiri, diikuti oleh kemunculan gambar berikutnya
  • tombol bersihkan untuk menghapus semua gambar