UML dan Java Application

Ukuran: px
Mulai penontonan dengan halaman:

Download "UML dan Java Application"

Transkripsi

1 UML dan Java Application Software yang dibutuhkan Java Development Kit 6 Tools o o Visual Paradigm Notepad/Netbeans/Eclipse/InteliJ Relational Database (ex MySQL 5) Optional o MySQL Workbench Java Bootcamp

2 Contents UML... 5 Use Case Diagram... 6 Contoh Kasus... 7 Menggambar UseCase dengan Visual Paradigm... 8 Menggambar Actor Generalization Use Case Association Include Extend Use Case Diagram Perpustakaan Activity Diagram Menggambar Activity Diagram dengan Visual Paradigm Partition/Vertical Swinlane Initial Node Action Decision Node Activity Final Node Peminjaman oleh mahasiswa Peminjaman oleh Karyawan Pengembalian oleh karyawan Pengembalian Oleh Mahasiswa Class Diagram Class Generalisasi Aggregasi Multiplicity Composisi Asosiasi 1 Arah Class Diagram Perpustakaan Kode Program untuk Entity Kelas Anggota Kelas Karyawan Kelas Mahasiswa Kelas PetugasPerpus Java Bootcamp

3 Kelas Denda Kelas Koleksi Kelas ItemTransaksi Kelas Transaksi Kelas TransaksiPeminjaman Kelas TransaksiPengembalian DAO Sequence Diagram Actor Boundary Life Line Message Relasi Class Diagram dan Squence Diagram LifeLine Message dan Parameter Return Message Fragment Operand didalam Fragment Sequence Login Squence Peminjaman oleh Karyawan Sequence Diagram Pengembalian oleh Karyawan Sequence Diagram Peminjaman oleh Mahasiswa Sequence Diagram Pengembalian oleh mahasiswa Sequence Diagram Penambahan Data Mahasiswa Sequence Diagram Load Data Mahasiswa Diagram Database Object Oriented Programming Object Class Enkapsulasi Inheritance Interface Polymorphism Visual Programming Swing Form Login Form Main Java Bootcamp

4 Form Data Mahasiswa Form Input Mahasiswa Form Transaksi Peminjaman Controller Controller Login Controller Mahasiswa Data Access Object Kode Program untuk Kelas Database Kode Program untuk Dao Kelas AbstractDao Kelas DaoPetugasPerpus Kelas DaoItemKoleksi Kelas DaoKaryawan Kelas DaoKoleksi Kelas DaoPeminjaman Kelas DaoPengembalian Java Bootcamp

5 UML The Unifed Modeling Language adalah seperangkat aturan dan notasi untuk spesifikasi sistem perangkat lunak, dikelola dan dibuat oleh Object Management Group. notasi ini menyediakan satu set elemen grafis untuk pemodelan sistem. Beberapa diagram dari UML adalah 1. Use Case Diagram alat komunikasi tingkat tinggi untuk mewakili persyaratan sistem. Diagram menunjukkan interaksi antara pengguna dan entitas eksternal lainnya dengan sistem yang sedang dikembangkan. 2. Activity Diagram Menangkap alur dari sebuah sistem, termasuk tindakan utama dan poin keputusan. Diagram ini berguna untuk mendokumentasikan proses bisnis. 3. Class Diagram Class diagram menggambarkan struktur statis dari kelas dalam sistem anda dan menggambarkan atribut, operasi dan hubungan antara kelas. 4. Squence Diagram Squence diagram secara khusus menjabarkan sebuah Use Case. Diagram ini menunjukkan sejumlah objek dan pesan yang melewati suatu objek. 5. Component Diagram Komponen diagram digunakan untuk menggambarkan bagaimana komponen suatu sistem yang terhubung bersama di tingkat yang lebih tinggi dari abstraksi dari diagram kelas. Sebuah komponen bisa dimodelkan oleh salah satu atau lebih kelas. 6. Deployment Diagram Adalah model arsitektur runtime dari sistem dalam pengaturan dunia nyata. Mereka menunjukkan entitas bagaimana perangkat lunak diterapkan ke perangkat fisik. 7. State Machine Diagram Digunakan untuk menggambarkan status transisi dari objek tunggal dalam menanggapi peristiwa. 8. Interaction Overview Diagrams Merupakan pencangkokan dari Activity Diagram dan Squence Diagram. Disini berupa squence diagram yang dipecah menggunakan notasi activity diagram untuk menunjukkan aliran kontrol 9. Communications Diagram Mendeskripsikan kumpulan objek yang berinteraksi untuk menjalankan suatu tingkah laku dalam sistem. Case Tools Beberapa case tools yang bisa kita gunakan antara lain 1. Visual Paradigm (Komunity dan Komersil) 2. Violet 3. Tigris UML 4. UMLET 5. Rational Rose 6. JUDE 7. Poseidon UML 8. Visual Studio 2010 (Komersil) Java Bootcamp

6 Use Case Diagram Alat komunikasi tingkat tinggi untuk mewakili persyaratan sistem. Diagram menunjukkan interaksi antara pengguna dan entitas eksternal lainnya dengan sistem yang sedang dikembangkan. Symbol Use Case Actor Assosiasi Generalisasi Sebuah use case merupakan unit fungsi yang dapat berinteraksi dengan aktor atau terkait dengan use case lainnya. Penggunaannya diwakili dengan sebuah elips dengan nama use case didalamnya. Nama use case biasanya berupa suatu kata kerja Ex : Use Case Presensi Aktor mewakili entitas eksternal dalam sistem dan dapat berupa manusia, perangkat keras atau sistem lain. Aktor diambil menggunakan sebuah figure tongkat. Hubungan yang terjadi antar aktor biasanya adalah generalisasi untuk menunjukkan perilaku terhadap sistem yang lebih spesifik Ex : Use Case Mahasiswa Ditunjukkan dalam diagram use case oleh garis padat. Sebuah asosiasi setiap kali ada seorang aktor yang terlibat dengan interaksi yang dijelaskan oleh use case. Asosiasi dimodelkan sebagai garis yang menghubungkan use case dan aktor untuk satu sama lain, dengan mata panah yang bersifat opsional(tidak harus ada) pada salah satu ujung baris. panah ini sering digunakan untuk menunjukkan arah seruan awal hubungan atau untuk menunjukkan aktor utama dalam use case. Ex : Mahasiswa melakukan presensi Digunakan ketika ada use case yang umum atau actor yang umun, digunakan untuk memberikan dasar fungsi yang dapat digunakan oleh use case/actor yang lebih khusus. Ex : Mahasiswa merupakan actor yang lebih umum daripada asisten, dimana tidak semua mahasiswa adalah asisten dan semua asisten adalah mahasiswa Include Menggambarkan bahwa use case utama Java Bootcamp

7 mengincludkan use case yang lain, yang berefek use case yang diincludkan akan terisi kedalam perilaku dari use case utama. Ex : Setiap kali ada proses mengisi KRS maka proses pengecekan login pasti selalu dilakukan, jadi ketika Use Case mengisi KRS dieksekusi maka Use Case Cek Status Login akan ikut tereksekusi. Extend Menggambarkan bahwa use case tertentu menyediakan fungsionalitas tambahan kepada usecase induknya pada suatu aliran tertentu. Disini dapat diartikan bahwa use case yang mengextend tidak harus selalu tereksekusi ketika use case induknya dieksekusi Ex : Setiap kali use case memilih matakuliah belum tentu use case memilih kelas dieksekusi. Contoh Kasus Mari mencoba merancang sistem informasi dengan UML Perpustakaan STMIK AMIKOM Yogyakarta menyewakan buku dan CD kepada mahasiswa, dosen, dan karyawan. Dimana seorang mahasiswa hanya diijinkan meminjam buku berbahasa Indonesia, CD. Sementara itu dosen diijinkan meminjam semua koleksi di perpustakaan termasuk buku asing, begitu juga karyawan. Seorang mahasiswa hanya diijinkan meminjam maksimal 3 buah koleksi, berbeda dengan dosen dan karyawan yang bisa meminjam tanpa batas. Para pengunjung perpustakaan dapat melakukan pencarian koleksi berasarkan judul, pengarang atau penerbit, melihat daftar koleksi di komputer pencarian. Prosedur peminjaman adalah dengan membawa buku yang hendak dipinjam dan menunjukkan KTM untuk mahasiswa, NIK untuk dosen dan karyawan kepada petugas perpustakaan. Mahasiswa diperbolehkan meminjam selama satu minggu, selebihnya didenda. Petugas perpustakaan bertugas melakukan pendataan buku, mencatat peminjaman dan pengembalian, menghitung denda, serta membantu mencarikan koleksi melalui mesin pencari. Para pengunjung perpustakaan dapat meminjam buku, mencari koleksi di mesin pencari dan membayar denda. Selain itu petugas perpustakaan juga dapat mencetak laporan seperti Laporan Daftar Koleksi, Laporan Transaksi Harian, Bulanan, Laporan Daftar Anggota, Laporan Pembayaran Denda. Java Bootcamp

8 Menggambar UseCase dengan Visual Paradigm 1. Silahkan anda jalankan Visual Paradigm 2. Maka anda akan mendapat tampilan seperti berikut 3. Silahkan buat project baru melalui menu File New Project 4. Maka akan muncul window dialog New Project, pada Project Name beri nama Design System Perpustakaan kemudian klik Create Blank Project Java Bootcamp

9 5. Maka anda akan mendapatkan tampilan seperti berikut 6. Silahkan anda simpan dengan CTRL + S atau File Save Project 7. Maka akan muncul window berikut Pilih Save to directory (dilingkari hijau) Directory silahkan isikan direktory anda masing masing (dilingkari biru) Java Bootcamp

10 8. Silahkan anda pilih Use Case Diagram 9. Silahkan anda klik kanan kemudian pilih New Use Case Diagram 10. Beri nama Use Case Petugas Perpus kemudian Enter 11. Tambahkan 1 buah actor, diambil dari sebelah kiri Java Bootcamp

11 Menggambar Actor 12. Silahkan anda drag ke lembar kosong 13. Silahkan rename Actor menjadi Karyawan dengan cara double click pada gambar actor kemudian ubah namanya menjadi Karyawan 14. Silahkan tambahkan actor petugas perpus, sehingga diagram Use Case Petugas Perpus seperti gambar berikut Java Bootcamp

12 Generalization 15. Silahkan anda cari Generalization 16. Silahkan anda klik kiri item Generalization, kemudian diikuti klik kiri di Karyawan lalu klik kiri di Petugas Perpus, sehingga gambarnya tampil seperti berikut Use Case 17. Sekarang silahkan anda tambahkan 1 buah use case yaitu mencatat transaksi peminjaman, dengan cara pilih item Use Case 18. Sekarang silahkan anda drag ke tempat kosong dan beri nama mencatat transaksi peminjaman. Java Bootcamp

13 19. Silahkan anda klik actor Petugas Perpus, kemudian pilih Association seperti gambar Association 20. Silahkan anda drag association kemudian anda lepas di use case Mencatat transaksi peminjaman. 21. Tambahkan use case mencatat transaksi pengembalian Java Bootcamp

14 22. Tambahkan use case mengecek keterlambatan pengembalian Include 23. Silahkan anda tambahkan relasi include, yaitu use case mencatat transaksi pengembalian menginclude use case mengecek keterlambatan pengembalian, dengan cara : a. cari relasi include b. klik kiri pada relasi tersebut c. Klik kiri pada use case mencatat transaksi pengembalian d. Klik kiri pada use case mengecek keterlambatan pengembalian Java Bootcamp

15 24. Buat agar tercipta relasi bahwa petugas perpus memiliki pekerjaan mencatat pengembalian, yaitu relasi asosiasi 25. Buat use case mencatat denda pengembalian Java Bootcamp

16 Extend 26. Silahkan tambahkan relasi extend, yaitu use case mencatat denda mengextend use case mencatat transaksi pengembalian, dengan cara a. Cari relasi extend b. Klik kiri relasi extend c. Klik kiri pada use case mencatat pengembalian d. Klik kiri pada use case mencatat denda pengembalian 27. Klik kanan pada use case mentatat transaksi pengembalian, Presentation Options Show Extendsion, hilangkan tanda check Java Bootcamp

17 28. Maka hasilnya seperti gambar berikut 29. Selamat anda sudah membuat sebuah diagram sederhana. Silahkan anda cermati lagi materi diatas, tanyakan pada dosen atau asisten apabila ada yang tidak dimengerti. Java Bootcamp

18 Use Case Diagram Perpustakaan Activity Diagram Activity Diagram menangkap alur dari system, termasuk tindakan utama dan titik keputusan. Diagram ini berguna untuk mendokumentasikan proses bisnis. Symbol Action Menggambarkan 1 langkah dalam alur system. Start Node/Initial Node Digunakan untuk menggambarkan dimana aliran berawal Activity Final Node Akhir dari banyak aliran dalam diagram aktivitas Flow Final Node Menunjukkan akhir dari aliran tunggal dalam diagram aktivitas Control Flow Menunjukkan aliran kendali dari satu aksi ke aksi yang berikutnya lain. Decision Node Digunakan untuk merepresentasikan keputusan dalam alur kendali. Ini juga bisa digunakan untuk menggabungkan alur. Java Bootcamp

19 Sebuah keputusan akan memiliki kondisi yang harus ada untuk menentukan jalan atau alur yang akan diambil Dibaca : Pada sebuah kegiatan mencari buku ada proses penentuan keputusan, apabila buku tidak ketemu pulang, ketemu maka meminjam Fork Node/Join Node Fork Digunakan untuk memecah alur yang terjadi secara bersamaan (pararel) Join Digunakan untuk menggabungkan alur yang terjadi secara bersamaan (pararel) Dibaca : Pada proses membuka daftar peminjama permahasiswa maka akan terjadi proses untuk menampilkan 2 data yaitu daftar koleksi yang dipinjam kemudian detail atau informasi yang dipinjam Partition Dapat digunakan untuk mengilustrasikan aktivitas yang dilakukan oleh actor yang berbeda Java Bootcamp

20 Menggambar Activity Diagram dengan Visual Paradigm Silahkan anda buka project visual paradigm anda, kemudian tambahkan 1 buah activity diagram dengan nama activity diagram proses peminjaman Partition/Vertical Swinlane Tambahkan 1 buah Partition/Vertical Swimlane, untuk sebelah kiri beri nama Mahasiswa, Kanan beri nama Petugas Perpus Java Bootcamp

21 Initial Node Tambahkan 1 buah Initial Node dan tambahkan pada Mahasiswa Action Tambahkan 2 buah Action yaitu Menyerahkan buku yang hendak dipinjam ke petugas dan menyerahkan ktm agar diagram seperti berikut, gunakan control flow untuk menggambarkan aliran Tambahkan 1 buah Action cek apakah sudah pinjam, letakkan di Petugas Perpus, kemudian tambahkan control flow dari menyerahkan Action menyerahkan KTM ke Action Cek apakah masih pinjam Java Bootcamp

22 Java Bootcamp

23 Decision Node Tambahkan 1 buah decision node di petugas perpus, kemudian tambahkan juga 2 buah action yaitu Catat peminjaman dan Gagalkan peminjaman Tambahkan 2 buah action di petugas perpus, Mengembalikan KTM dan Menyerahkan buku yang hendak dipinjam ke mhs Java Bootcamp

24 Activity Final Node Tambahkan 1 buah activity final node untuk menandakan bahwa proses peminjaman sudah selesai Java Bootcamp

25 Untuk memperjelas, silahkan beri panah dari decision, yang ke kanan adalah masih ada peminjaman, yang kekiri tidak ada peminjaman sebelumnya Java Bootcamp

26 Peminjaman oleh mahasiswa Java Bootcamp

27 Peminjaman oleh Karyawan Pengembalian oleh karyawan Java Bootcamp

28 Pengembalian Oleh Mahasiswa Java Bootcamp

29 Class Diagram Class diagram mendeskripsikan struktur statis dari kelas kelas dalam system dan mengilustrasikan attribute, operations dan relationship antara satu kelas dengan kelas yang lain. Class Asscociation Rancangan dari objek yang mendefinisikan attribute dan method umum pada semua objek dari jenis tertentu Digambarkan dengan 3 tingkat, yaitu (dari atas ke bawah) Name Nama dari kelas, aturan penulisan huruf pertama dari semua kata adalah huruf besar, selain dari itu huruf kecil Attributes Mengambarkan attribute yang dimiliki oleh kelas, aturan penamaan huruf pertama dari kata kedua dan kata selanjutnya adalah huruf besar, selain dari itu huruf kecil Format modifier name : type = value Operations Menggambarkan method yang dimiliki oleh kelas, aturan penamaan sama dengan penamaan attribute. Format modifier name(parameter:type):return type Relasi yang kuat, relasi ini mengindikasikan bahwa suatu kelas mereferensikan kelas yang lain, menggambarkan interaksi yang mungkin terjadi antara 1 kelas dengan kelas yang lain selama kelas tersebut tidak saling memiliki atau bukan bagian dari. Directional Association (1 arah) Menggambarkan bahwa pesan terjadi hanya dari satu kelas sedangkan kelas yang lain pasif Bidirectional Association (2 arah) Menggambarkan bahwa pesan dari kedua kelas yang saling berelasi. Aggregation Composition Lebih spesifik dari assosiasi, mengindikasikan bahwa suatu kelas merupakan bagian dari kelas yang lain namun bersifat tidak wajib. Relasi ini juga menyatakan bahwa suatu kelas yang menjadi bagian dari kelas yang lain tidak akan dihapus meskipus kelas yang memilikinya dihapus. Lebih spesifik daripada aggregation, mengindikasikan hubungan yang saling bergantung, dimana suatu kelas merupakan Java Bootcamp

30 bagian dari kelas yang lain dan bersifat wajib. Relasi ini juga mengindikasikan bahwa suatu kelas yang menjadi bagian kelas yang lain akan terhapus ketika kelas yang memilikinya dihapus. Generalization Juga dikenal sebagai inheritance. Mengindikasikan bahwa sebuah kelas adalah child class atau sub class lebih spesifik terhadap parent class / super kelasnya. Semua sub class akan memiliki apa yang dimiliki super class tapi super class tidak memiliki apa yang hanya dimiliki oleh sub class. Multiplicity Mengindikasikan berapa banyak objek dari suatu kelas terelasi ke objek yang lain Multiplicity Arti * Banyak 0 Nol 1 Satu (bisa tidak ditulis) 0..* 0 sampai banyak 1..* 1 sampai banyak atau 1 Modifier Digunakan untuk menandakan bagaimana kelas lain menggunakan attribute, constructor dan method dari suatu kelas. Notasi Keterangan Kegunaan + Membuat visible terhadap kelas lain Visibility public # Membuat visible terhadap turunannya Visibility protected - Membuat visible hanya dalam 1 kelas Visibility private ~ Membuat visible untuk semua kelas dalam satu paket Visibility package Java Bootcamp

31 1. Silahkan anda tambahkan 1 buah class diagram dengan nama Class Diagram Perpustakaan Class 2. Tambahkan 1 buah Class dan beri nama koleksi 3. Tambahkan lagi kelas dengan nama Buku, Majalah, CD, Referensi, TugasAkhir Generalisasi 4. Atur agar Buku adalah turunan dari Koleksi, Majalah turunan dari Buku, Referensi turunan dari Buku, Tugas Akhir turunan dari Buku 5. Atur agar CD adalah turunan dari Koleksi Java Bootcamp

32 Aggregasi 6. Tambahkan relasi Aggregasi antara Buku dan CD Multiplicity 7. Atur agar Aggregasi antara Buku dan CD memiliki arti bahawa 1 Buku bisa memiliki 0 sampai banyak CD tetapi boleh juga tidak memiliki CD, dengan cara klik kanan relasi antara Buku dan CD, klik didekat Class CD Java Bootcamp

33 8. Pilih Multiplicity 0..* 9. Tambahkan 1 buah kelas dengan nama Penulis Composisi 10. Tambahkan 1 buah relasi Composition antara TugasAkhir dengan Penulis dan Referensi dengan Penulis. Java Bootcamp

34 11. Tambahkan 2 buah kelas yaitu Anggota, Transaksi, TransaksiPeminjaman 12. Buat agar kelas TransaksiPeminjaman adalah subclass dari kelas Transaksi 13. Buat relasi Association antara kelas TransaksiPeminjaman dan Anggota 14. Silahkan anda klik kanan didekat kelas TransaksiPeminjaman pada relasi antara TransaksiPeminjaman dan Anggota Asosiasi 1 Arah 15. Pilih Navigable False Java Bootcamp

35 16. Buat relasi Association antara TransaksiPeminjaman dan Koleksi 17. Buat agar relasi antara transaksi peminjaman dan koleksi menjadi asosiasi 1 arah Java Bootcamp

36 18. Atur agar 1 transaksi peminjaman terdiri dari 1...* Koleksi Class Diagram Perpustakaan Java Bootcamp

37 Kode Program untuk Entity Kelas Anggota 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; 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; Kelas Karyawan package entity; public class Karyawan extends Anggota { private String nik; public String getnik() { return nik; public void setnik(string nik) { this.nik = nik; Java Bootcamp

38 Kelas Mahasiswa 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; Kelas PetugasPerpus package entity; public class PetugasPerpus extends Karyawan { private String user; private String pwd; public String getuser() { return user; public void setuser(string user) { this.user = user; public String getpwd() { return pwd; public void setpwd(string pwd) { this.pwd = pwd; Java Bootcamp

39 Kelas Denda package entity; public class Denda { private int iddenda; private double nominaldenda; private int lamaterlambat; public int getiddenda() { return iddenda; public void setiddenda(int iddenda) { this.iddenda = iddenda; public double getnominaldenda() { return nominaldenda; public void setnominaldenda(double nominaldenda) { this.nominaldenda = nominaldenda; public int getlamaterlambat() { return lamaterlambat; public void setlamaterlambat(int lamaterlambat) { this.lamaterlambat = lamaterlambat; Kelas ItemKoleksi package entity; public class ItemKoleksi { private String kode; private Koleksi koleksi; public Koleksi getkoleksi() { return koleksi; public void setkoleksi(koleksi koleksi) { this.koleksi = koleksi; public String getkode() { return kode; public void setkode(string kode) { this.kode = kode; Java Bootcamp

40 Kelas Koleksi package entity; public class Koleksi { private int id; private String judul; private boolean cd; private boolean referensi; private ItemKoleksi[] itemkoleksi; public ItemKoleksi[] getitemkoleksi() { return itemkoleksi; public void setitemkoleksi(itemkoleksi[] itemkoleksi) { this.itemkoleksi = itemkoleksi; public int getid() { return id; public void setid(int id) { this.id = id; public String getjudul() { return judul; public void setjudul(string judul) { this.judul = judul; public boolean iscd() { return cd; public void setcd(boolean cd) { this.cd = cd; public boolean isreferensi() { return referensi; public void setreferensi(boolean referensi) { this.referensi = referensi; Kelas ItemTransaksi package entity; public class ItemTransaksi { private ItemKoleksi itemkoleksi; private Transaksi transaksi; public ItemKoleksi getitemkoleksi() { return itemkoleksi; public void setitemkoleksi(itemkoleksi itemkoleksi) { this.itemkoleksi = itemkoleksi; public Transaksi gettransaksi() { return transaksi; public void settransaksi(transaksi transaksi) { this.transaksi = transaksi; Java Bootcamp

41 Kelas Transaksi package entity; import java.util.date; public class Transaksi { private int idtransaksi; private Date tanggal; private PetugasPerpus petugasperpus; private Anggota anggota; private ItemKoleksi[] itemkoleksi; public int getidtransaksi() { return idtransaksi; public void setidtransaksi(int idtransaksi) { this.idtransaksi = idtransaksi; public Date gettanggal() { return tanggal; public void settanggal(date tanggal) { this.tanggal = tanggal; public PetugasPerpus getpetugasperpus() { return petugasperpus; public void setpetugasperpus(petugasperpus petugasperpus) { this.petugasperpus = petugasperpus; public Anggota getanggota() { return anggota; public void setanggota(anggota anggota) { this.anggota = anggota; public ItemKoleksi[] getitemkoleksi() { return itemkoleksi; public void setitemkoleksi(itemkoleksi[] itemkoleksi) { this.itemkoleksi = itemkoleksi; Kelas TransaksiPeminjaman package entity; public class TransaksiPeminjaman extends public void setitemkoleksi(itemkoleksi[] itemkoleksi) { // TODO Auto-generated method stub super.setitemkoleksi(itemkoleksi); Java Bootcamp

42 Kelas TransaksiPengembalian package entity; public class TransaksiPengembalian extends Transaksi{ private Denda public void setitemkoleksi(itemkoleksi[] itemkoleksi) { // TODO Auto-generated method stub super.setitemkoleksi(itemkoleksi); public Denda getdenda() { return denda; public void setdenda(denda denda) { this.denda = denda; DAO Java Bootcamp

43 Sequence Diagram Sequence diagram mendeskripsikan bagaimana entitas dalam system berinteraksi, termasuk pesan yang digunakan saat interaksi. Semua pesan dideskripsikan dalam urutan dari eksekusi. Sequence diagram berhubungan erat dengan Use Case diagram, dimana 1 Use Case akan menjadi 1 Sequence Diagram. 1. LifeLine Sequence Diagram dibuat dengan banyak lifeline. Setiap lifeline mendapatkan tempat sendiri sendiri. Beberapa jenis lifeline antara lain Actor Lifeline Actor merepresentasikan entitas yang berada di luar system. Mereka bisa berupa manusia, perangkat keras atau system lain. General Lifeline Merepresentasikan entitas tunggal dalam sequence diagram, digambarkan dengan kotak. Entitas ini memiliki nama, stereotype atau berupa instance (menggunakan instance:class) Boundary Lifeline Boundary biasanya berupa tepi dari system, seperti user interface, atau suatu alat yang berinteraksi dengan system lain. Control Lifeline Control element mengatur aliran dari informasi untuk sebuah scenario. Perilaku dan perilaku bisnis umumnya diatur oleh objek ini Java Bootcamp

44 Entity Lifeline Entity biasanya elemen yang bertanggung jawab menyimpan data atau informasi. Ini dapat berupa beans atau model object 2. Message Create Synchronous Asynchronous Self message Digunakan untuk melakukan inisialisasi suatu objek Relasi ini digunakan untuk memaggil operasi atau ethod yang dimiliki oleh suatu objek. Synchronous mengharuskan kita menyelesaikan 1 proses baru kemudian memanggil proses berikutnya. Relasi ini digunakan untuk memanggil operasi atau method yang dimiliki oleh suatu objek. Asynchronous memberikan kita fasilitas untuk menjalankan proses lain ketika proses sebelumnya belum selesai. Relasi ini menunjukkan bahwa suatu objek hendak menanggil dirinya sendiri 3. Fragment Alt Opt loop Memodelkan if then else blok Memodelkan pernyataan switch Loop fragment Java Bootcamp

45 Ada 2 macam sequence diagram yaitu 1. High Level Sequence Diagram Disini kita memfokuskan pada usecase, dimana sebuah diagram hanya terdiri dari actor dan object yang mewakili system. Diagram ini hanya menampilkan 2 atau 3 object yang secara graphics memperjelas use case. 2. Application Level Sequence Diagram Untuk level ini, kita mengganti actor dengan controller atau manager semacam device yang terpasang pada system. Latihan 1. Pada materi Use Case kita pernah membuat Use Case diagram seperti berikut 2. Buat 1 buah sequence diagram, beri nama Mencatat Transaksi Peminjaman Actor 3. Kembali pada dokumen Mencatat Transaksi Peminjaman, silahkan anda tambahkan Actor Petugas perpus dari Usecase Petugas Perpus dengan cara drag dari Petugas Perpus di Use Case Diagram ke Sequence Diagram Mencatat transaksi peminjaman Java Bootcamp

46 Boundary Life Line 4. Pilih create Boundary Life Line 5. Maka akan tampak seperti gambar berikut Ubah nama Lifeline menjadi Form Peminjaman, disini menunjukkan bahwa Java Bootcamp

47 Message 6. Berikan message dari petugas perpus ke LifeLine, kemudian berinama memasukkan nim 7. Tambahkan 1 buah boundary Lifeline dengan nama Tombol Proses Kemudian tambahkan 1 buah message dari Petugas perpus ke Tombol Proses dan beri nama menekan tombol proses Java Bootcamp

48 Relasi Class Diagram dan Squence Diagram 8. Pertama tama akan kita hubungkan Sequence diagram Mencatat transaksi peminjaman dengan Class Diagram Perpustakaan. Klik kanan pada tempat kosong kemudian open specification 9. Pilih References, kemudian pilih Add Diagram Java Bootcamp

49 10. Pada Diagrams pilih Class Diagram kemudian beri tanda check pada Class Diagram Perpustakaan lalu OK 11., kemudian pilih OK Java Bootcamp

50 LifeLine 12. Kemudian silahkan anda tambahkan Class Transaksi Peminjaman dari Class Diagram ke sequence diagram yang sedang anda buat, apabila diminta memilih lifeline atau class pilih life line, dengan cara Drag Transaksi Peminjaman dari Class Diagram Perpustakaan ke Squence Diagram Mencatat transaksi peminjaman Apabila anda pilih Lifeline maka tampak seperti gambar berikut Java Bootcamp

51 Pada toolbox silahkan anda ganti message dengan call message 14. Buat call message dari tombol proses ke lifeline TransaksiPeminjaman 15. Klik kanan pada call message dengan kode 2.1, Select Operation Create Operation Java Bootcamp

52 Message dan Parameter 16. Maka akan muncul window berikut Pada Name beri nama cekbolehpinjam, pada Return type isikan Boolean Java Bootcamp

53 17. Kemudian pilih tab Parameters, tambahkan parameter dengan menekan tombol add Pada name isikan nim, type isikan string, direction pilih in kemudian OK 18. Maka akan terdapat 1 buah parameter baru, pilih OK Java Bootcamp

54 19. Maka akan tampak seperti berikut Untuk menampilkan info lengkap dari method bolehpinjam maka klik kanan pada tempat kosong kemudian ikuti gambar berikut Java Bootcamp

55 20. Coba anda perhatikan lagi gambar yang barusan dihasilkan Return Message 21. Silahkan klik message dengan kode 2.1, kemudian pilih Create Return Message Java Bootcamp

56 22. Maka akan menghasilkan gambar berikut 23. Tambahkan message dari Tombol Proses ke Form Peminjaman, kemudian beri nama munculkan pesan proses peminjaman tidak bisa dilanjutkan Fragment 24. Klik kanan pada message yang anda buat di nomor 2.3, kemudian pilih Create Combinet Fragment Alt Java Bootcamp

57 25. Maka hasilnya akan seperti gambar berikut ini Operand didalam Fragment 26. Silahkan anda klik kanan pada fragment kemudian Operand Add Operand, lalu tambahkan 1 buah message lagi dari tombol proses ke form peminjaman, beri nama pesannya aktifkan input peminjaman koleksi, pastikan bahwa pesan ini terletak di operand yang bawah Java Bootcamp

58 27. Klik kanan pada Fragment kemudian Open Spesification, pilih Iteraction Operand Pilih Operand, kemudian Open Specification Guard. Pada Constraint isikan bolehpinjam=false. Untuk Operand2 klik Open Specification Guard. Pada Constraint isikan bolehpinjam=true Pada Operand, apabila hasil dari pemanggilan method bolehpinjam adalah false maka akan memunculkan pesan di form peminjaman yang berisi Peminjaman tidak bisa dilanjutkan, bila true maka akan mengaktifkan input peminjaman koleksi Java Bootcamp

59 28. Buat message dari Petugas Perpus ke Form Peminjaman, kemudian beri nama input kode koleksi 29. Tambahkan 1 buah Boundary Lifeline dengan nama Tombol Simpan Peminjaman Java Bootcamp

60 30. Buat message dari Petugas Perpus ke Tombol Simpan Peminjaman dengan nama 31. Tambahkan 1 buah message dari Tombol Simpan Peminjaman ke LifeLine TransaksiPeminjaman Type message 32. Pastikan message 4.1 typenya Call, dengan cara Klik kanan 4.1 Type Call Call Java Bootcamp

61 33. Klik kanan pada pesan 4.1 kemudian Select Operation Create Operation 34. Berinama operation ini dengan nama simpanpeminjaman, return type boolean 35. Pada parameter buat 2 buah parameter yaitu kodekoleksi dan npm, kedua parameter bertipe string, untuk parameter kodekoleksi multiplicitynya beri nila 1..* dan typemodifiernya [] Java Bootcamp

62 36. Hasil akhirnya seperti berikut Java Bootcamp

63 Sequence Login Java Bootcamp

64 Squence Peminjaman oleh Karyawan Java Bootcamp

65 Sequence Diagram Pengembalian oleh Karyawan Java Bootcamp

66 Sequence Diagram Peminjaman oleh Mahasiswa Java Bootcamp

67 Sequence Diagram Pengembalian oleh mahasiswa Java Bootcamp

68 Sequence Diagram Penambahan Data Mahasiswa Java Bootcamp

69 Sequence Diagram Load Data Mahasiswa Java Bootcamp

70 Diagram Database Java Bootcamp

71 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. 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 Java Bootcamp

72 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. Contohnya diketahui bahwa kelas Database memiliki 4 buah method yaitu 1. connect 2. dml 3. getgeneratedkey 4. getrs Ketika anda hendak melakukan Query ke database misalnya untuk mengambil data Mahasiswa yang menjadi anggota perpus maka cukup dengan perintah seperti dibahwa public Mahasiswa[] findall() { // TODO Auto-generated method stub ss="select a.idanggota,nim,nama,tmplahir,tgllahir,tahunmasuk "; ss+="from mahasiswa m "; ss+="inner join anggota a on m.idanggota=a.idanggota"; if(database.dml(ss, true)){ rs=database.getrs(); List<Mahasiswa> lstmahasiswa=new ArrayList<Mahasiswa>(); try { while(rs.next()){ Mahasiswa mahasiswa=new Mahasiswa(); mahasiswa.setid(rs.getint("idanggota")); mahasiswa.setnim(rs.getstring("nim")); mahasiswa.setnama(rs.getstring("nama")); mahasiswa.settmplahir(rs.getstring("tmplahir")); mahasiswa.settgllahir(rs.getdate("tgllahir")); mahasiswa.settahunmasuk(rs.getint("tahunmasuk")); lstmahasiswa.add(mahasiswa); rs.close(); return lstmahasiswa.toarray( new Mahasiswa[lstMahasiswa.size()]); catch (SQLException e) { // TODO Auto-generated catch block e.printstacktrace(); return null; return null; Coba anda perhatikan kode program yang dilingkari, disana tampak bahwa untuk mengirimkan query ke database kita cukup memanggil method dml dari objek database dengan parameter ss yang Java Bootcamp

73 berisi query dan true yang berarti method tersebut akan mengirimkan select, padahal isi dari method tersebut cukup panjang yaitu public boolean dml(string query, boolean getrow, Object... objects) { try { prep = con.preparestatement(query); int i = 1; for (Object obj : objects) { prep.setobject(i, obj); i++; if (getrow) { rs = prep.executequery(); else { prep.executeupdate(); catch (SQLException e) { // TODO Auto-generated catch block e.printstacktrace(); return false; return true; Disini dapat kita ambil kesimpulan bahwa untuk mengirimkan perintah query, kita tidak perlu memahami betul bagaimana perintahnya dari Java akan tetapi kita cukup memanggil method dml dan mengisi parameter yang dibutuhkan. 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 : 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; Java Bootcamp

74 Dan untuk kelas Karyawan package entity; public class Karyawan extends Anggota { private String nik; public String getnik() { return nik; public void setnik(string nik) { this.nik = nik; 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; 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---*/ Java Bootcamp

75 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. Inheritance apabila diterapkan di database tampak seperti gambar berikut (Digambar dengan MySQL Workbench CE) Pada gambar diatas tampak bahwa 1. tabel Anggota memiliki 4 buah kolom yaitu idanggota, nama, tmplahir dan tgllahir dimana idanggota sebagai PrimaryKey. 2. tabel Mahasiswa memiliki 3 buah kolom yaitu idanggota, nim dan tahunmasuk dimana idanggota sebagai foreign key yang mereferensikan kolom idanggota di tabel Anggota. 3. tabel Karyawan memiliki 2 buah kolom yaitu nik dan idanggota dimana idanggota sebagai foreign key yang mereferensikan kolom idanggota di tabel Anggota. Di UML tampak seperti gambar berikut (tanpa menunjukkan method setter dan getter) Dari pola diatas dapat diambil suatu keuntungan bahwa yang dicatat di dalam transaksi pengembalian buku dan peminjaman buku cukup idanggota, tidak perlu nim, nik karena mahasiswa, karyawan, petugas perpus memiliki primary key yang sama yaitu idanggota. Java Bootcamp

76 Berikut ini contoh sederhana untuk keuntungan yang bisa kita ambil dari menerapkan konsep inheritance package example; import entity.anggota; import entity.mahasiswa; import entity.petugasperpus; public class TestingInheritance { /** 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()); Keluaran dari program diatas adalah anggota =>Ratno Kustiawan =>Purworejo anggota2 =>Afif Syaifullah =>Indonesia anggota3 =>Afif =>Indonesia karyawan =>Kustiawan =>Indonesia 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 expected (dikutip dari Object Oriented Design and Pattern second edition, Bab The Concept of Inheritace, bagian The Substitution Principle halaman 219 karangan Cay Horstmann). Java Bootcamp

77 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 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. Java Bootcamp

78 Visual Programming Swing Form Login Form login akan digunakan oleh petugas perpus untuk masuk kedalam aplikasi perpustakaan, susunan layout pada form login ini seperti langkah berikut 1. Atur agar layout dari Jframe adalah Border Layout Sehingga akan terbagi menjadi 5 buah region seperti gambar berikut yaitu North,South,West dan East 2. Tambahkan 3 buah panel pada 3 posisi yaitu pada posisi North (berinama pntop), South (berinama pnbottom) dan Center (berinama pncenter) 3. Atur agar layout dari pntop dan pnbottom menjadi FlowLayout 4. Atur agar layout dari pncenter menjadi GridBagLayout 5. Kode program untuk menghasilkan FrmLogin adalah sebagai berikut Java Bootcamp

79 package view; import java.awt.borderlayout; public class FrmLogin extends JFrame implements ActionListener { private JButton btnlogin; private JButton btntutup; private JPasswordField txtpassword; private JTextField txtuser; private ControllerLogin clogin; /** * Launch the application. */ public static void main(string[] args) { EventQueue.invokeLater(new Runnable() { public void run() { try { FrmLogin frame = new FrmLogin(); frame.setvisible(true); catch (Exception e) { e.printstacktrace(); public void actionperformed(actionevent arg0) { // TODO Auto-generated method stub if(arg0.getactioncommand().equals("login")){ clogin.login( txtuser.gettext(),string.valueof(txtpassword.getpassword())); else{ System.exit(0); /** * Create the frame. */ public FrmLogin() { setlocationbyplatform(true); setresizable(false); setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 259, 188); getcontentpane().setlayout(new BorderLayout(0, 0)); Java Bootcamp

80 JPanel pntop = new JPanel(); getcontentpane().add(pntop, BorderLayout.NORTH); pntop.setlayout(new FlowLayout(FlowLayout.CENTER, 5, 5)); JLabel lblloginaplikasiperpustakaan = new JLabel( "Login Aplikasi Perpustakaan"); pntop.add(lblloginaplikasiperpustakaan); JPanel pnbottom = new JPanel(); getcontentpane().add(pnbottom, BorderLayout.SOUTH); pnbottom.setlayout(new FlowLayout(FlowLayout.RIGHT, 5, 5)); btnlogin = new JButton("Login"); btnlogin.addactionlistener(this); pnbottom.add(btnlogin); btntutup = new JButton("Tutup"); btntutup.addactionlistener(this); pnbottom.add(btntutup); JPanel pncenter = new JPanel(); getcontentpane().add(pncenter, BorderLayout.CENTER); pncenter.setlayout(new GridBagLayout()); JLabel lbluser = new JLabel("User"); GridBagConstraints gbclbluser = new GridBagConstraints(); gbclbluser.insets = new Insets(0, 0, 5, 5); gbclbluser.gridx = 0; gbclbluser.gridy = 0; pncenter.add(lbluser, gbclbluser); txtuser = new JTextField(); txtuser.setpreferredsize(new Dimension(120, 20)); GridBagConstraints gbctxtuser = new GridBagConstraints(); gbctxtuser.insets = new Insets(0, 0, 5, 5); gbctxtuser.fill = GridBagConstraints.HORIZONTAL; gbctxtuser.gridx = 1; gbctxtuser.gridy = 0; pncenter.add(txtuser, gbctxtuser); JLabel lblpassword = new JLabel("Password"); GridBagConstraints gbclblpassword = new GridBagConstraints(); gbclblpassword.insets = new Insets(0, 0, 5, 5); gbclblpassword.gridx = 0; gbclblpassword.gridy = 1; pncenter.add(lblpassword, gbclblpassword); txtpassword = new JPasswordField(); GridBagConstraints gbctxtpassword = new GridBagConstraints(); gbctxtpassword.insets = new Insets(0, 0, 5, 5); gbctxtpassword.fill = GridBagConstraints.HORIZONTAL; gbctxtpassword.gridx = 1; gbctxtpassword.gridy = 1; pncenter.add(txtpassword, gbctxtpassword); setlocationrelativeto(null); clogin=new ControllerLogin(this); Java Bootcamp

81 Form Main 1. Atur agar Layout dari FrmMain adalah BorderLayout 2. Tambahkan menubar di North 3. Tambahkan panel sebagai status bar di Sourt dengan nama pnstatusbar 4. Tambahkan desktoppane di Center untuk meletakkan JinternalFrame 5. Kode program untuk FrmMain adalah sebagai berikut package view; import java.awt.borderlayout; import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import javax.swing.jmenubar; import javax.swing.jlabel; import java.awt.flowlayout; import javax.swing.jdesktoppane; import javax.swing.jmenu; import java.awt.color; import java.awt.event.actionevent; import java.awt.event.actionlistener; import javax.swing.jmenuitem; import entity.petugasperpus; public class FrmMain extends JFrame implements ActionListener{ private JMenuBar menubar; private JPanel pnstatusbar; private JLabel lbluser; private JLabel lblnama; private JDesktopPane desktoppane; Java Bootcamp

82 private JMenu mnmaster; private JMenu mntransaksi; private JMenu mnlaporan; private JMenu mnkeluar; private JMenuItem mnuitemmahasiswa; private JMenuItem mnuitemkaryawan; private JMenuItem mnuitembuku; private JMenuItem mnuitemcd; private JMenuItem mnuitemtranspeminjaman; private JMenuItem mnuitemtranspengembalian; private JMenuItem mnuitemlaporananggota; private JMenuItem mnuitemlaporandenda; private JMenuItem mnuitemlaporantransaksi; private JMenuItem mnuitemlaporankoleksi; private JMenuItem mnuitemlogout; private JMenuItem mnuitemkeluar; private static PetugasPerpus petugasaktif; public void setpetugasaktif(petugasperpus petugasperpus){ FrmMain.petugasAktif=petugasPerpus; lbluser.settext(petugasaktif.getuser()); lblnama.settext(petugasaktif.getnama()); public static PetugasPerpus getpetugasaktif(){ return FrmMain.petugasAktif; /* * (non-javadoc) java.awt.event.actionlistener * #actionperformed(java.awt.event.actionevent) */ private FrmDataMahasiswa public void actionperformed(actionevent e) { // TODO Auto-generated method stub if(e.getsource().equals(mnuitemkeluar)){ System.exit(0); else if(e.getsource().equals(mnuitemmahasiswa)){ if(frmdatamahasiswa==null){ frmdatamahasiswa=new FrmDataMahasiswa(); desktoppane.add(frmdatamahasiswa); desktoppane. getdesktopmanager(). maximizeframe(frmdatamahasiswa); frmdatamahasiswa.setvisible(true); Java Bootcamp

83 /** * Create the frame. */ public FrmMain() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 832, 513); menubar = new JMenuBar(); mnmaster = new JMenu("Master"); menubar.add(mnmaster); mnuitemmahasiswa = new JMenuItem("Mahasiswa"); mnuitemmahasiswa.addactionlistener(this); mnmaster.add(mnuitemmahasiswa); mnuitemkaryawan = new JMenuItem("Karyawan"); mnuitemkaryawan.addactionlistener(this); mnmaster.add(mnuitemkaryawan); mnuitembuku = new JMenuItem("Buku"); mnuitembuku.addactionlistener(this); mnmaster.add(mnuitembuku); mnuitemcd = new JMenuItem("CD"); mnuitemcd.addactionlistener(this); mnmaster.add(mnuitemcd); mntransaksi = new JMenu("Transaksi"); mnuitemtranspeminjaman = new JMenuItem("Peminjaman"); mntransaksi.add(mnuitemtranspeminjaman); mnuitemtranspengembalian = new JMenuItem("Pengembalian"); mntransaksi.add(mnuitemtranspengembalian); menubar.add(mntransaksi); mnlaporan = new JMenu("Laporan"); mnuitemlaporananggota = new JMenuItem("Laporan Anggota"); mnlaporan.add(mnuitemlaporananggota); mnuitemlaporankoleksi = new JMenuItem("Koleksi"); mnlaporan.add(mnuitemlaporankoleksi); mnuitemlaporandenda = new JMenuItem("Laporan Denda"); mnlaporan.add(mnuitemlaporandenda); mnuitemlaporantransaksi = new JMenuItem("Transaksi"); mnlaporan.add(mnuitemlaporantransaksi); menubar.add(mnlaporan); mnkeluar = new JMenu("Keluar"); mnuitemlogout = new JMenuItem("Logout"); mnkeluar.add(mnuitemlogout); mnuitemkeluar = new JMenuItem("Keluar"); mnuitemkeluar.addactionlistener(this); mnkeluar.add(mnuitemkeluar); menubar.add(mnkeluar); setjmenubar(menubar); getcontentpane().setlayout(new BorderLayout(0, 0)); pnstatusbar = new JPanel(); pnstatusbar.setlayout(new FlowLayout( FlowLayout.RIGHT, 5, 5)); lbluser = new JLabel("New label"); pnstatusbar.add(lbluser); Java Bootcamp

84 lblnama = new JLabel("New label"); pnstatusbar.add(lblnama); getcontentpane().add(pnstatusbar, BorderLayout.SOUTH); desktoppane = new JDesktopPane(); desktoppane.setbackground(color.gray); getcontentpane().add(desktoppane, BorderLayout.CENTER); setminimumsize(new java.awt.dimension(844, 599)); Form Data Mahasiswa 1. Atur agar JinternalFrame layoutnya menjadi BorderLayout 2. Tambahkan 1 buah panel dan letakkan di posisi North, beri nama pntop 3. Tambahkan 1 buah panel dan letakkan di posisi South, beri nama pnbottom 4. Tambahkan 1 buah ScrollPane dan letakkan di posisi Center, beri nama scollpane, tambahkan tabel ke scrollpane tersebut 5. Atur agar alignment dari pntop adalah Left dan pnbottom adalah Right 6. Tambahkan 1 buah label dan 1 buah textbox pada pntop, untuk label ubah textnya menjadi Cari, untuk textbox ubah namanya menjadi txtcari 7. Tambahkan 4 buah Button dan ubah textnya menjadi Tutup, Hapus, Ubah dan Tambah, untuk namanya tambahkan prefix btn sehingga menjadi btntutup, btnhapus, btnubah dan btntambah 8. Kode program lengkapnya adalah berikut Java Bootcamp

85 package view; import java.awt.borderlayout; import java.awt.eventqueue; import javax.swing.jpanel; import java.awt.flowlayout; import javax.swing.jbutton; import javax.swing.jinternalframe; import javax.swing.jlabel; import javax.swing.jtextfield; import javax.swing.jtable; import javax.swing.rowfilter; import javax.swing.event.documentevent; import javax.swing.event.documentlistener; import javax.swing.table.defaulttablemodel; import javax.swing.table.tablerowsorter; import javax.swing.jscrollpane; import controller.controllermahasiswa; import javax.swing.jframe; import java.awt.event.actionlistener; import java.awt.event.actionevent; public class FrmDataMahasiswa extends JInternalFrame implements ActionListener,DocumentListener { private JTextField txtcari; private JTable table; private ControllerMahasiswa cmhs; private TableRowSorter<DefaultTableModel> sorter; public JTable gettable() { return table; /** * Create the frame. */ public FrmDataMahasiswa() { setdefaultcloseoperation(jframe.hide_on_close); setmaximizable(true); setclosable(true); seticonifiable(true); settitle("data Mahasiswa"); setbounds(100, 100, 452, 300); JPanel pnbottom = new JPanel(); getcontentpane().add(pnbottom, BorderLayout.SOUTH); pnbottom.setlayout(new FlowLayout(FlowLayout.RIGHT, 5, 5)); JButton btntambah = new JButton("Tambah"); btntambah.addactionlistener(this); pnbottom.add(btntambah); JButton btnubah = new JButton("Ubah"); btnubah.addactionlistener(this); pnbottom.add(btnubah); JButton btnhapus = new JButton("Hapus"); pnbottom.add(btnhapus); Java Bootcamp

86 JButton btntutup = new JButton("Tutup"); btntutup.addactionlistener(this); pnbottom.add(btntutup); JPanel pntop = new JPanel(); pntop.setlayout(new FlowLayout(FlowLayout.LEFT,5,5)); getcontentpane().add(pntop, BorderLayout.NORTH); JLabel lblcari = new JLabel("Cari"); pntop.add(lblcari); txtcari = new JTextField(); pntop.add(txtcari); txtcari.setcolumns(20); txtcari.getdocument().adddocumentlistener(this); JScrollPane scrollpane = new JScrollPane(); getcontentpane().add(scrollpane, BorderLayout.CENTER); table = new JTable(); table.setmodel(new DefaultTableModel( new Object[][] {, new String[] { "NPM", "Nama", "Tempat Lahir", "Tanggal Lahir", "Tahun Masuk" )); scrollpane.setviewportview(table); sorter = new TableRowSorter<DefaultTableModel>( (DefaultTableModel)table.getModel()); table.setrowsorter(sorter); cmhs=new ControllerMahasiswa(this); cmhs.findall(); public void actionperformed(actionevent e) { if(e.getactioncommand().equals("tutup")){ setvisible(false); else if(e.getactioncommand().equals("tambah")){ DialogInputMahasiswa inputmhs=new DialogInputMahasiswa(cMhs,true); inputmhs.setvisible(true); else if(e.getactioncommand().equals("ubah")){ DialogInputMahasiswa inputmhs=new DialogInputMahasiswa(cMhs,false); int row=table.getselectedrow(); if(row==-1) return; inputmhs.setdata( table.getvalueat(row, 0).toString(), table.getvalueat(row, 1).toString(), table.getvalueat(row, 2).toString(), Java Bootcamp

87 table.getvalueat(row, 3).toString(), table.getvalueat(row, 4).toString()); inputmhs.setvisible(true); else if(e.getactioncommand().equals("hapus")){ int row=table.getselectedrow(); if(row==-1) return; cmhs.deletemahasiswa(table.getvalueat(row, public void changedupdate(documentevent arg0) { // TODO Auto-generated method stub newfilter() public void insertupdate(documentevent arg0) { // TODO Auto-generated method stub newfilter() public void removeupdate(documentevent arg0) { // TODO Auto-generated method stub newfilter() ; private void newfilter() { RowFilter<DefaultTableModel, Object> rf = null; //If current expression doesn't parse, don't update. try { rf = RowFilter.regexFilter(txtCari.getText(), 0, 1); catch (java.util.regex.patternsyntaxexception e) { return; sorter.setrowfilter(rf); Java Bootcamp

88 Form Input Mahasiswa 1. Atur agar JDialog menggunakan layout BorderLayout 2. Tambahkan 2 buah panel, 1 panel di posisi South dan beri nama pnbottom 3. 1 panel lagi di posisi Center dan berinama pbcontent 4. Atur agar pnbottom menggunakan FlowLayout yang alignmentnya di set Right 5. Atur agar pncontent menggunakan GridBagLayout 6. Tambahkan 2 buah button pada pnbottom, atur agar seperti gambar 7. Tambahkan komponen label dan textfield sesuai gambar 8. Berikut ini kode program lengkapnya package view; import java.awt.borderlayout; import javax.swing.jdialog; import javax.swing.jframe; import javax.swing.jpanel; import java.awt.flowlayout; import javax.swing.jbutton; import java.awt.gridbaglayout; import javax.swing.jlabel; import java.awt.gridbagconstraints; import java.awt.insets; import javax.swing.jtextfield; import javax.swing.jformattedtextfield; import controller.controllermahasiswa; import java.awt.event.actionlistener; import java.awt.event.actionevent; import java.text.parseexception; import java.text.simpledateformat; public class DialogInputMahasiswa extends JDialog implements ActionListener { Java Bootcamp

89 private JTextField txtnim; private JTextField txtnama; private JTextField txttempatlahir; private JFormattedTextField txtformattgllahir; private JFormattedTextField txtformattahunmasuk; private ControllerMahasiswa cmhs; public DialogInputMahasiswa(ControllerMahasiswa cmhs, boolean insert) { this.cmhs=cmhs; setresizable(false); setdefaultcloseoperation(jframe.dispose_on_close); setbounds(100, 100, 450, 300); JPanel pnbottom = new JPanel(); getcontentpane().add(pnbottom, BorderLayout.SOUTH); pnbottom.setlayout(new FlowLayout(FlowLayout.RIGHT, 5, 5)); JButton btnsimpan = new JButton("Simpan"); btnsimpan.addactionlistener(this); pnbottom.add(btnsimpan); JButton btnbatal = new JButton("Batal"); btnbatal.addactionlistener(this); pnbottom.add(btnbatal); JPanel pncontent = new JPanel(); getcontentpane().add(pncontent, BorderLayout.CENTER); GridBagLayout gbl_pncontent = new GridBagLayout(); pncontent.setlayout(gbl_pncontent); JLabel lblnim = new JLabel("NIM"); GridBagConstraints gbc = new GridBagConstraints(); gbc.anchor = GridBagConstraints.EAST; gbc.insets = new Insets(0, 0, 5, 5); gbc.gridx = 0; gbc.gridy = 0; pncontent.add(lblnim, gbc); txtnim = new JTextField(); txtnim.setenabled(insert); GridBagConstraints gbc_5 = new GridBagConstraints(); gbc_5.insets = new Insets(0, 0, 5, 0); gbc_5.fill = GridBagConstraints.HORIZONTAL; gbc_5.gridx = 1; gbc_5.gridy = 0; pncontent.add(txtnim, gbc_5); txtnim.setcolumns(20); JLabel lblnama = new JLabel("Nama"); GridBagConstraints gbc_1 = new GridBagConstraints(); gbc_1.anchor = GridBagConstraints.EAST; gbc_1.insets = new Insets(0, 0, 5, 5); gbc_1.gridx = 0; gbc_1.gridy = 1; pncontent.add(lblnama, gbc_1); Java Bootcamp

90 txtnama = new JTextField(); GridBagConstraints gbc_6 = new GridBagConstraints(); gbc_6.insets = new Insets(0, 0, 5, 0); gbc_6.fill = GridBagConstraints.HORIZONTAL; gbc_6.gridx = 1; gbc_6.gridy = 1; pncontent.add(txtnama, gbc_6); txtnama.setcolumns(10); JLabel lbltempatlahir = new JLabel("Tempat Lahir"); GridBagConstraints gbc_2 = new GridBagConstraints(); gbc_2.anchor = GridBagConstraints.EAST; gbc_2.insets = new Insets(0, 0, 5, 5); gbc_2.gridx = 0; gbc_2.gridy = 2; pncontent.add(lbltempatlahir, gbc_2); txttempatlahir = new JTextField(); GridBagConstraints gbc_7 = new GridBagConstraints(); gbc_7.insets = new Insets(0, 0, 5, 0); gbc_7.fill = GridBagConstraints.HORIZONTAL; gbc_7.gridx = 1; gbc_7.gridy = 2; pncontent.add(txttempatlahir, gbc_7); txttempatlahir.setcolumns(10); JLabel lbltanggallahir = new JLabel("Tanggal Lahir"); GridBagConstraints gbc_3 = new GridBagConstraints(); gbc_3.anchor = GridBagConstraints.EAST; gbc_3.insets = new Insets(0, 0, 5, 5); gbc_3.gridx = 0; gbc_3.gridy = 3; pncontent.add(lbltanggallahir, gbc_3); txtformattgllahir = new JFormattedTextField(); GridBagConstraints gbc_8 = new GridBagConstraints(); gbc_8.insets = new Insets(0, 0, 5, 0); gbc_8.fill = GridBagConstraints.HORIZONTAL; gbc_8.gridx = 1; gbc_8.gridy = 3; pncontent.add(txtformattgllahir, gbc_8); JLabel lbltahunmasuk = new JLabel("Tahun Masuk"); GridBagConstraints gbc_4 = new GridBagConstraints(); gbc_4.anchor = GridBagConstraints.EAST; gbc_4.insets = new Insets(0, 0, 0, 5); gbc_4.gridx = 0; gbc_4.gridy = 4; pncontent.add(lbltahunmasuk, gbc_4); txtformattahunmasuk = new JFormattedTextField(); GridBagConstraints gbc_9 = new GridBagConstraints(); gbc_9.fill = GridBagConstraints.HORIZONTAL; gbc_9.gridx = 1; gbc_9.gridy = 4; pncontent.add(txtformattahunmasuk, gbc_9); setlocationrelativeto(null); Java Bootcamp

91 public void clear(){ txtnim.settext(""); txtnama.settext(""); txttempatlahir.settext(""); txtformattgllahir.settext(""); txtformattahunmasuk.settext(""); public void setdata(string nim,string nama,string tempatlahir,string tgllahir,string tahunmasuk){ txtnim.settext(nim); txtnama.settext(nama); txttempatlahir.settext(tempatlahir); txtformattgllahir.settext(tgllahir); txtformattahunmasuk.settext(tahunmasuk); public void actionperformed(actionevent e) { if(e.getactioncommand().equals("batal")){ dispose(); else{ try { cmhs.setdialoginputmahasiswa(this); if(txtnim.isenabled()){ cmhs.inputmahasiswa( txtnim.gettext(), txtnama.gettext(), txttempatlahir.gettext(), new SimpleDateFormat("dd/MM/yyyy").parse(txtFormatTglLahir.getText()), txtformattahunmasuk.gettext()); else{ cmhs.updatemahasiswa(txtnim.gettext(), txtnama.gettext(), txttempatlahir.gettext(), new SimpleDateFormat("dd/MM/yyyy").parse(txtFormatTglLahir.getText()), txtformattahunmasuk.gettext()); catch (ParseException e1) { // TODO Auto-generated catch block e1.printstacktrace(); Java Bootcamp

92 Form Transaksi Peminjaman 1. Atur agar layout dari JinternalFrame ini menjadi BorderLayout 2. Tambahkan 1 buah panel dan Letakkan di South, kemudian atur agar alignmentnya menjadi Right 3. Tambahkan 3 buah button di panel ini dan atur seperti gambar 4. Tambahkan 1buah TabPane, letakkan di Center kemudian isi dengan 2 buah panel, yaitu pnmahasiswa dan pnkaryawan 5. Sekarang kita akan fokus ke pnmahasiswa 6. Atur agar pnmahasiswa ini menggunakan BorderLayout 7. Tambahkan 1 buah ScrollPane dan letakkan di Center, tambahkan tabel ke scroll panel tersebut. 8. Tambahkan 1 buah panel dengan nama pninputnim dan letakkan di North, atur agar layoutnya menjadi GridBagLayout, tambahkan komponen ke panel ini dan atur agar seperti gambar 9. Kode program lengkapnya seperti gambar berikut Java Bootcamp

93 package view; import java.awt.borderlayout; import java.awt.eventqueue; import javax.swing.jframe; import javax.swing.jpanel; import java.awt.flowlayout; import javax.swing.jbutton; import javax.swing.jinternalframe; import javax.swing.jtabbedpane; import javax.swing.jlabel; import javax.swing.jtextfield; import java.awt.gridbaglayout; import java.awt.gridbagconstraints; import java.awt.insets; import javax.swing.jscrollpane; import javax.swing.jtable; import javax.swing.table.defaulttablemodel; public class FrmTransaksiPeminjaman extends JInternalFrame { private JTextField txtnama; private JTextField txtnim; private JTextField txtkodekoleksimhs; private JTable tbpeminjamanmahasiswa; private JTextField txtnik; private JTextField txtnamakaryawan; private JTextField txtkodekoleksikaryawan; private JTable tbpeminjamankaryawan; public JTextField gettxtnama() { return txtnama; public JTextField gettxtnim() { return txtnim; public JTextField gettxtnik() { return txtnik; public JTextField gettxtnamakaryawan() { return txtnamakaryawan; public JTextField gettxtkodekoleksimhs() { return txtkodekoleksimhs; public JTextField gettxtkodekoleksikaryawan() { return txtkodekoleksikaryawan; public JTable gettbpeminjamanmahasiswa() { return tbpeminjamanmahasiswa; Java Bootcamp

94 public JTable gettbpeminjamankaryawan() { return tbpeminjamankaryawan; public FrmTransaksiPeminjaman() { setdefaultcloseoperation(jframe.exit_on_close); setbounds(100, 100, 582, 452); getcontentpane().setlayout(new BorderLayout(0, 0)); JPanel panel = new JPanel(); getcontentpane().add(panel, BorderLayout.SOUTH); panel.setlayout(new FlowLayout(FlowLayout.RIGHT, 5, 5)); JButton btnsimpan = new JButton("Simpan"); panel.add(btnsimpan); JButton btnbatal = new JButton("Batal"); panel.add(btnbatal); JButton btntutup = new JButton("Tutup"); panel.add(btntutup); JTabbedPane tabbedpane = new JTabbedPane(JTabbedPane.TOP); getcontentpane().add(tabbedpane, BorderLayout.CENTER); JPanel pnmahasiswa = new JPanel(); tabbedpane.addtab("mahasiswa", null, pnmahasiswa, null); pnmahasiswa.setlayout(new BorderLayout(0, 0)); JPanel pninputnim = new JPanel(); pnmahasiswa.add(pninputnim, BorderLayout.NORTH); GridBagLayout gbl_pninputnim = new GridBagLayout(); pninputnim.setlayout(gbl_pninputnim); JLabel lblnim = new JLabel("NIM"); GridBagConstraints gbc = new GridBagConstraints(); gbc.anchor = GridBagConstraints.WEST; gbc.insets = new Insets(0, 0, 5, 5); gbc.gridx = 0; gbc.gridy = 0; pninputnim.add(lblnim, gbc); txtnim = new JTextField(); GridBagConstraints gbc_1 = new GridBagConstraints(); gbc_1.insets = new Insets(0, 0, 5, 0); gbc_1.fill = GridBagConstraints.HORIZONTAL; gbc_1.gridx = 1; gbc_1.gridy = 0; pninputnim.add(txtnim, gbc_1); txtnim.setcolumns(10); JLabel lblnama = new JLabel("Nama"); GridBagConstraints gbc_2 = new GridBagConstraints(); gbc_2.anchor = GridBagConstraints.WEST; gbc_2.insets = new Insets(0, 0, 5, 5); gbc_2.gridx = 0; gbc_2.gridy = 1; pninputnim.add(lblnama, gbc_2); Java Bootcamp

95 txtnama = new JTextField(); GridBagConstraints gbc_3 = new GridBagConstraints(); gbc_3.insets = new Insets(0, 0, 5, 0); gbc_3.fill = GridBagConstraints.HORIZONTAL; gbc_3.gridx = 1; gbc_3.gridy = 1; pninputnim.add(txtnama, gbc_3); txtnama.setcolumns(30); JLabel lblinformasi = new JLabel("Informasi"); GridBagConstraints gbc_4 = new GridBagConstraints(); gbc_4.anchor = GridBagConstraints.WEST; gbc_4.insets = new Insets(0, 0, 5, 5); gbc_4.gridx = 0; gbc_4.gridy = 2; pninputnim.add(lblinformasi, gbc_4); JLabel lblmessage = new JLabel(""); GridBagConstraints gbc_5 = new GridBagConstraints(); gbc_5.insets = new Insets(0, 0, 5, 0); gbc_5.gridx = 1; gbc_5.gridy = 2; pninputnim.add(lblmessage, gbc_5); JLabel lblkodekoleksi = new JLabel("Kode Item Koleksi"); GridBagConstraints gbc_6 = new GridBagConstraints(); gbc_6.anchor = GridBagConstraints.EAST; gbc_6.insets = new Insets(0, 0, 0, 5); gbc_6.gridx = 0; gbc_6.gridy = 3; pninputnim.add(lblkodekoleksi, gbc_6); txtkodekoleksimhs = new JTextField(); txtkodekoleksimhs.setenabled(false); GridBagConstraints gbc_7 = new GridBagConstraints(); gbc_7.anchor = GridBagConstraints.WEST; gbc_7.gridx = 1; gbc_7.gridy = 3; pninputnim.add(txtkodekoleksimhs, gbc_7); txtkodekoleksimhs.setcolumns(20); JScrollPane scrollpane = new JScrollPane(); pnmahasiswa.add(scrollpane, BorderLayout.CENTER); tbpeminjamanmahasiswa = new JTable(); tbpeminjamanmahasiswa.setmodel(new DefaultTableModel( new Object[][] {, new String[] { "Kode Item Koleksi", "Judul", "Referensi" )); scrollpane.setviewportview(tbpeminjamanmahasiswa); JPanel pnkaryawan = new JPanel(); tabbedpane.addtab("karyawan", null, pnkaryawan, null); pnkaryawan.setlayout(new BorderLayout(0, 0)); JPanel pninputnik = new JPanel(); pnkaryawan.add(pninputnik, BorderLayout.NORTH); GridBagLayout gbl_pninputnik = new GridBagLayout(); pninputnik.setlayout(gbl_pninputnik); Java Bootcamp

96 JLabel lblnik = new JLabel("NIK"); GridBagConstraints gbc_8 = new GridBagConstraints(); gbc_8.anchor = GridBagConstraints.WEST; gbc_8.insets = new Insets(0, 0, 5, 5); gbc_8.gridx = 0; gbc_8.gridy = 0; pninputnik.add(lblnik, gbc_8); txtnik = new JTextField(); txtnik.setcolumns(10); GridBagConstraints gbc_9 = new GridBagConstraints(); gbc_9.fill = GridBagConstraints.HORIZONTAL; gbc_9.insets = new Insets(0, 0, 5, 0); gbc_9.gridx = 1; gbc_9.gridy = 0; pninputnik.add(txtnik, gbc_9); JLabel label_1 = new JLabel("Nama"); GridBagConstraints gbc_10 = new GridBagConstraints(); gbc_10.anchor = GridBagConstraints.WEST; gbc_10.insets = new Insets(0, 0, 5, 5); gbc_10.gridx = 0; gbc_10.gridy = 1; pninputnik.add(label_1, gbc_10); txtnamakaryawan = new JTextField(); txtnamakaryawan.setcolumns(30); GridBagConstraints gbc_11 = new GridBagConstraints(); gbc_11.fill = GridBagConstraints.HORIZONTAL; gbc_11.insets = new Insets(0, 0, 5, 0); gbc_11.gridx = 1; gbc_11.gridy = 1; pninputnik.add(txtnamakaryawan, gbc_11); JLabel label_4 = new JLabel("Kode Item Koleksi"); GridBagConstraints gbc_14 = new GridBagConstraints(); gbc_14.anchor = GridBagConstraints.EAST; gbc_14.insets = new Insets(0, 0, 5, 5); gbc_14.gridx = 0; gbc_14.gridy = 2; pninputnik.add(label_4, gbc_14); txtkodekoleksikaryawan = new JTextField(); txtkodekoleksikaryawan.setenabled(false); txtkodekoleksikaryawan.setcolumns(20); GridBagConstraints gbc_15 = new GridBagConstraints(); gbc_15.insets = new Insets(0, 0, 5, 0); gbc_15.anchor = GridBagConstraints.WEST; gbc_15.gridx = 1; gbc_15.gridy = 2; pninputnik.add(txtkodekoleksikaryawan, gbc_15); JScrollPane scrollpane_1 = new JScrollPane(); pnkaryawan.add(scrollpane_1, BorderLayout.CENTER); Java Bootcamp

97 tbpeminjamankaryawan = new JTable(); tbpeminjamankaryawan.setmodel(new DefaultTableModel( new Object[][] {, new String[] { "Kode Item Koleksi", "Judul", "Referensi" )); scrollpane_1.setviewportview(tbpeminjamankaryawan); public void clearkaryawan() { txtnik.settext(""); txtnama.settext(""); DefaultTableModel dtm=(defaulttablemodel) tbpeminjamankaryawan.getmodel(); dtm.setrowcount(0); Controller Controller Login package controller; import javax.swing.joptionpane; import view.frmlogin; import view.frmmain; import dao.daopetugasperpus; import entity.petugasperpus; public class ControllerLogin { private DaoPetugasPerpus daopetugasperpus; private FrmLogin frmlogin; private FrmMain frmmain; private PetugasPerpus petugasperpus; public ControllerLogin(FrmLogin frmlogin) { // TODO Auto-generated constructor stub daopetugasperpus=new DaoPetugasPerpus(); this.frmlogin=frmlogin; frmmain=new FrmMain(); public void login(string user,string password) { if(daopetugasperpus.cekuserpassword(user, password)){ frmlogin.setvisible(false); petugasperpus=daopetugasperpus.getpetugas(user); Java Bootcamp

98 frmmain.setvisible(true); frmmain.setpetugasaktif(petugasperpus); else{ JOptionPane.showMessageDialog( frmlogin,"login gagal", "Perhatian",JOptionPane.WARNING_MESSAGE); Controller Mahasiswa package controller; import java.util.date; import javax.swing.joptionpane; import javax.swing.table.defaulttablemodel; import view.dialoginputmahasiswa; import view.frmdatamahasiswa; import dao.daomahasiswa; import entity.mahasiswa; public class ControllerMahasiswa { private DaoMahasiswa daomahasiswa; private FrmDataMahasiswa frmdatamahasiswa; private DialogInputMahasiswa dialoginputmahasiswa; public ControllerMahasiswa(FrmDataMahasiswa frmdatamahasiswa){ daomahasiswa=new DaoMahasiswa(); this.frmdatamahasiswa=frmdatamahasiswa; public void setdialoginputmahasiswa(dialoginputmahasiswa dialoginputmahasiswa) { this.dialoginputmahasiswa = dialoginputmahasiswa; public void inputmahasiswa(string npm,string nama,string tmplahir,date tgllahir,string tahunmasuk) { Mahasiswa mahasiswa=new Mahasiswa(); mahasiswa.setnim(npm); mahasiswa.setnama(nama); mahasiswa.settahunmasuk(integer.parseint(tahunmasuk)); mahasiswa.settgllahir(tgllahir); mahasiswa.settmplahir(tmplahir); if(daomahasiswa.insert(mahasiswa)){ dialoginputmahasiswa.clear(); findall(); Java Bootcamp

99 else{ JOptionPane.showMessageDialog(dialogInputMahasiswa, "Penyimpanan gagal", "Perhatian",JOptionPane.WARNING_MESSAGE); public void updatemahasiswa(string npm,string nama,string tmplahir,date tgllahir,string tahunmasuk){ Mahasiswa mahasiswa=new Mahasiswa(); mahasiswa.setnim(npm); mahasiswa.setnama(nama); mahasiswa.settahunmasuk(integer.parseint(tahunmasuk)); mahasiswa.settgllahir(tgllahir); mahasiswa.settmplahir(tmplahir); if(daomahasiswa.update(mahasiswa)){ dialoginputmahasiswa.clear(); findall(); else{ JOptionPane.showMessageDialog(dialogInputMahasiswa, "Penyimpanan gagal", "Perhatian",JOptionPane.WARNING_MESSAGE); public void deletemahasiswa(string npm) { Mahasiswa mahasiswa=new Mahasiswa(); mahasiswa.setnim(npm); if(daomahasiswa.delete(mahasiswa)){ findall(); else{ JOptionPane.showMessageDialog(dialogInputMahasiswa, "Penghapusan gagal", "Perhatian",JOptionPane.WARNING_MESSAGE); public void findall() { Mahasiswa[] lstmahasiswa=daomahasiswa.findall(); DefaultTableModel dtm=(defaulttablemodel) frmdatamahasiswa.gettable().getmodel(); dtm.setrowcount(0); for(mahasiswa mahasiswa : lstmahasiswa){ dtm.addrow(new Object[]{ mahasiswa.getnim(),mahasiswa.getnama(), mahasiswa.gettmplahir(), mahasiswa.gettgllahir(),mahasiswa.gettahunmasuk() ); Java Bootcamp

100 Data Access Object Salah satu aspek dari lapisan bisnis adalah lapisan akses data yang menghubungkan layanan dengan database. Mengakses data bervariasi tergantung pada sumber data. Akses ke data persisten sangat bervariasi tergantung pada jenis penyimpanan (database, flat file, file xml, dan sebagainya) dan bahkan berbeda dari pelaksanaannya (misalnya berbeda-dialek SQL). Tujuannya adalah untuk merangkum semua akses ke data dan menyediakan interface. Ini disebut pola DAO. Dari sudut pandang aplikasi, tidak ada bedanya ketika mengakses sebuah database relasional atau mem-parsing file xml (menggunakan DAO). DAO ini biasanya mampu menciptakan sebuah instance dari objek data ("untuk membaca data") dan juga untuk menyimpan data sebagai sumber data. Java Bootcamp

101 Kode Program untuk Kelas Database package helper; import java.sql.connection; import java.sql.drivermanager; import java.sql.preparedstatement; import java.sql.resultset; import java.sql.sqlexception; public class Database { private Connection con; private PreparedStatement prep; private ResultSet rs; public boolean connect() { try { Class.forName("com.mysql.jdbc.Driver"); con = DriverManager.getConnection( "jdbc:mysql://localhost:3306/perpustakaan", "root", ""); catch (SQLException ex) { System.out.println("Error 1 : " + ex.getmessage()); return false; catch (ClassNotFoundException ex) { System.out.println("Error 2 : " + ex.getmessage()); return false; return true; public Database(){ connect(); public ResultSet getrs() { return rs; public boolean dml(string query, boolean getrow, Object... objects) { try { prep = con.preparestatement(query); int i = 1; for (Object obj : objects) { prep.setobject(i, obj); i++; if (getrow) { rs = prep.executequery(); else { prep.executeupdate(); catch (SQLException e) { // TODO Auto-generated catch block e.printstacktrace(); return false; return true; Java Bootcamp

102 public int getgeneratedkeys() { int keys=0; try{ if(dml("select LAST_INSERT_ID();",true)){ rs.next(); keys=rs.getint("last_insert_id()"); rs.close(); return keys; return -1; catch(sqlexception e){ return -1; Kode Program untuk Dao Kelas AbstractDao package dao; import java.sql.resultset; import helper.database; public abstract class AbstractDao<T> { protected Database database; protected String ss=""; protected ResultSet rs; public AbstractDao(){ database=new Database(); public abstract boolean insert(t obj); public abstract boolean update(t obj); public abstract boolean delete(t obj); public abstract T[] findall(); public abstract T findbyid(int id); Java Bootcamp

103 Kelas DaoMahasiswa package dao; import java.sql.sqlexception; import java.util.arraylist; import java.util.list; import entity.mahasiswa; public class DaoMahasiswa extends AbstractDao<Mahasiswa> public boolean delete(mahasiswa obj) { // TODO Auto-generated method stub obj.setid(findid(obj.getnim())); ss="delete mahasiswa where idanggota=?"; if(!database.dml(ss, false, obj.getid())) return false; ss="delete anggota where idanggota=?"; if(!database.dml(ss, false, obj.getid())) return false; return public Mahasiswa[] findall() { // TODO Auto-generated method stub ss="select a.idanggota,nim,nama,tmplahir,tgllahir,tahunmasuk "; ss+="from mahasiswa m "; ss+="inner join anggota a on m.idanggota=a.idanggota"; if(database.dml(ss, true)){ rs=database.getrs(); List<Mahasiswa> lstmahasiswa=new ArrayList<Mahasiswa>(); try { while(rs.next()){ Mahasiswa mahasiswa=new Mahasiswa(); mahasiswa.setid(rs.getint("idanggota")); mahasiswa.setnim(rs.getstring("nim")); mahasiswa.setnama(rs.getstring("nama")); mahasiswa.settmplahir(rs.getstring("tmplahir")); mahasiswa.settgllahir(rs.getdate("tgllahir")); mahasiswa.settahunmasuk(rs.getint("tahunmasuk")); lstmahasiswa.add(mahasiswa); rs.close(); return lstmahasiswa.toarray( new Mahasiswa[lstMahasiswa.size()]); catch (SQLException e) { // TODO Auto-generated catch block e.printstacktrace(); return null; return public Mahasiswa findbyid(int id) { // TODO Auto-generated method stub return null; Java Bootcamp

104 @Override public boolean insert(mahasiswa obj) { // TODO Auto-generated method stub ss="insert into anggota(nama,tmplahir,tgllahir)values(?,?,?);"; if(!database.dml(ss, false, obj.getnama(),obj.gettmplahir(),obj.gettgllahir())){ return false; obj.setid(database.getgeneratedkeys()); ss="insert into mahasiswa(idanggota,nim,tahunmasuk)values(?,?,?)"; if(!database.dml(ss, false, obj.getid(),obj.getnim(),obj.gettahunmasuk())){ return false; return public boolean update(mahasiswa obj) { // TODO Auto-generated method stub obj.setid(findid(obj.getnim())); ss="update anggota set nama=?,tmplahir=?,tgllahir=? where idanggota=?"; if(!database.dml(ss, false, obj.getnama(),obj.gettmplahir(),obj.gettgllahir(),obj.getid())){ return false; ss="update mahasiswa set tahunmasuk=? where idanggota=?"; if(!database.dml(ss, false, obj.gettahunmasuk(),obj.getid())){ return false; return true; private int findid(string nim){ int result=0; try{ ss="select idanggota from anggota a "; ss+="inner join mahasiswa m on a.idanggota=m.idanggota "; ss+="where nim=?"; if(database.dml(ss, true, nim)){ rs=database.getrs(); if(rs.next()){ result= rs.getint("idanggota"); rs.close(); return result; catch(sqlexception ex){ ex.printstacktrace(); return result; Java Bootcamp

105 Kelas DaoPetugasPerpus package dao; import java.sql.sqlexception; import entity.petugasperpus; public class DaoPetugasPerpus extends AbstractDao<PetugasPerpus> { public boolean cekuserpassword(string user,string password){ ss="select count(*)jml from petugasperpus where user=? and password=?"; try{ if(database.dml(ss, true, user,password)){ rs=database.getrs(); rs.next(); if(rs.getint("jml")>0){ rs.close(); return true; else{ rs.close(); return false; return false; catch(sqlexception e){ e.printstacktrace(); return public boolean delete(petugasperpus obj) { // TODO Auto-generated method stub return public PetugasPerpus[] findall() { // TODO Auto-generated method stub return public PetugasPerpus findbyid(int id) { // TODO Auto-generated method stub return public boolean insert(petugasperpus obj) { // TODO Auto-generated method stub return public boolean update(petugasperpus obj) { // TODO Auto-generated method stub return false; Java Bootcamp

106 public PetugasPerpus getpetugas(string user) { ss="select nama,user from petugasperpus p "; ss+="inner join karyawan k on p.nik=k.nik "; ss+="inner join anggota a on k.idanggota=a.idanggota "; ss+="where user=?"; try{ if(database.dml(ss, true, user)){ rs=database.getrs(); rs.next(); PetugasPerpus petugasperpus=new PetugasPerpus(); petugasperpus.setnama(rs.getstring("nama")); petugasperpus.setuser(rs.getstring("user")); rs.close(); return petugasperpus; return null; catch(sqlexception e){ e.printstacktrace(); return null; Java Bootcamp

107 Kelas DaoItemKoleksi package dao; import entity.itemkoleksi; public class DaoItemKoleksi extends AbstractDao<ItemKoleksi> public boolean delete(itemkoleksi obj) { // TODO Auto-generated method stub return public ItemKoleksi[] findall() { // TODO Auto-generated method stub return public ItemKoleksi findbyid(int id) { // TODO Auto-generated method stub return public boolean insert(itemkoleksi obj) { // TODO Auto-generated method stub return public boolean update(itemkoleksi obj) { // TODO Auto-generated method stub return false; public ItemKoleksi findbykode(string kode){ return null; Java Bootcamp

108 Kelas DaoKaryawan package dao; import entity.karyawan; public class DaoKaryawan extends AbstractDao<Karyawan> public boolean delete(karyawan obj) { // TODO Auto-generated method stub return public Karyawan[] findall() { // TODO Auto-generated method stub return public Karyawan findbyid(int id) { // TODO Auto-generated method stub return public boolean insert(karyawan obj) { // TODO Auto-generated method stub return public boolean update(karyawan obj) { // TODO Auto-generated method stub return false; public Karyawan findbykode(string kode) { return null; Java Bootcamp

109 Kelas DaoKoleksi package dao; import entity.koleksi; public class DaoKoleksi extends AbstractDao<Koleksi> public boolean delete(koleksi obj) { // TODO Auto-generated method stub return public Koleksi[] findall() { // TODO Auto-generated method stub return public Koleksi findbyid(int id) { // TODO Auto-generated method stub return public boolean insert(koleksi obj) { // TODO Auto-generated method stub return public boolean update(koleksi obj) { // TODO Auto-generated method stub return false; Java Bootcamp

110 Kelas DaoPeminjaman package dao; import entity.transaksipeminjaman; public class DaoPeminjaman extends AbstractDao<TransaksiPeminjaman> public boolean delete(transaksipeminjaman obj) { // TODO Auto-generated method stub return public TransaksiPeminjaman[] findall() { // TODO Auto-generated method stub return public TransaksiPeminjaman findbyid(int id) { // TODO Auto-generated method stub return public boolean insert(transaksipeminjaman obj) { // TODO Auto-generated method stub return public boolean update(transaksipeminjaman obj) { // TODO Auto-generated method stub return false; Java Bootcamp

111 Kelas DaoPengembalian package dao; import entity.transaksipengembalian; public class DaoPengembalian extends AbstractDao<TransaksiPengembalian> public boolean delete(transaksipengembalian obj) { // TODO Auto-generated method stub return public TransaksiPengembalian[] findall() { // TODO Auto-generated method stub return public TransaksiPengembalian findbyid(int id) { // TODO Auto-generated method stub return public boolean insert(transaksipengembalian obj) { // TODO Auto-generated method stub return public boolean update(transaksipengembalian obj) { // TODO Auto-generated method stub return false; Untuk melihat pola DAO dalam tindakan, lihatlah JdbcObjectStudentDAO kelas (sangat didokumentasikan) dalam contoh dasar. Penerapan / Penggunaan Gunakan Obyek Akses Data apabila: Anda perlu untuk mengakses penyimpanan persisten lebih dari satu kali, terutama jika Anda ingin bertukar sumber data nanti. Java Bootcamp

112 Anda ingin memisahkan antarmuka klien data sumber daya dari mekanisme akses datanya Anda ingin menyesuaikan data sumber daya khusus dari akses API untuk antarmuka klien generik dalam proyek yang lebih besar, tim yang berbeda bekerja pada bagian yang berbeda dari aplikasi: pola DAO memungkinkan pemisahan bersih dari keprihatinan. Diagram DAO sesudah melewati proses dari Sequence Diagram Java Bootcamp

Object Oriented Programming

Object Oriented Programming 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

Lebih terperinci

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

Materi 1. 1 Rekayasa Perangkat Lunak

Materi 1. 1 Rekayasa Perangkat Lunak 1 Rekayasa Perangkat Lunak Materi 1 Rekayasa Perangkat Lunak Rekayasa perangkat lunak telah berkembang sejak pertama kali ddiciptakan pada tahun 1940-an hingga kini. Focus utama pengembangannya adalah

Lebih terperinci

1. LifeLine Sequence Diagram dibuat dengan banyak lifeline. Setiap lifeline mendapatkan tempat sendiri sendiri. Beberapa jenis lifeline antara lain

1. LifeLine Sequence Diagram dibuat dengan banyak lifeline. Setiap lifeline mendapatkan tempat sendiri sendiri. Beberapa jenis lifeline antara lain 1 Rekayasa Perangkat Lunak Materi 5 Sequence Diagram Sequence diagram mendeskripsikan bagaimana entitas dalam system berinteraksi, termasuk pesan yang digunakan saat interaksi. Semua pesan dideskripsikan

Lebih terperinci

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

Materi 2. Rekayasa Perangkat Lunak

Materi 2. Rekayasa Perangkat Lunak 1 Materi 2 Use Case Diagram Alat komunikasi tingkat tinggi untuk mewakili persyaratan sistem. Diagram menunjukkan interaksi antara pengguna dan entitas eksternal lainnya dengan sistem yang sedang dikembangkan.

Lebih terperinci

DAO Pattern... 3 Contoh Kasus... 4 Diagram UML dan Database... 4 Use Case Diagram Perpustakaan... 4

DAO Pattern... 3 Contoh Kasus... 4 Diagram UML dan Database... 4 Use Case Diagram Perpustakaan... 4 Pemrograman Lanjut 3/28/2011 1 Table of Contents DAO Pattern... 3 Contoh Kasus... 4 Diagram UML dan Database... 4 Use Case Diagram Perpustakaan... 4 Class Diagram Entity Perpustakaan... 5 Class Diagram

Lebih terperinci

Class Diagram (Class, Association,Aggregation,Compositon,Generalization,Multiplicity)

Class Diagram (Class, Association,Aggregation,Compositon,Generalization,Multiplicity) 1 Rekayasa Perangkat Lunak Materi 4 Class Diagram (Class, Association,Aggregation,Compositon,Generalization,Multiplicity) Class diagram mendeskripsikan struktur statis dari kelas kelas dalam system dan

Lebih terperinci

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

C. Membuat Class Diagram

C. Membuat Class Diagram C. Membuat Class Diagram Class diagram mendeskripsikan jenis jenis obyek dalam sistem dan berbagai macam hubungan statis yang terjadi1. Class diagram juga menunjukkan property dan operasi sebuah Class

Lebih terperinci

UML Netbeans UML (The Unified Modelling Language)

UML Netbeans UML (The Unified Modelling Language) UML Netbeans 6.7.1 UML (The Unified Modelling Language) Sebuah notasi untuk menspesifikasi, memvisualisasi, membangun dan mendokumentasikan rancangan dari sebuah perangkat lunak. Diagram pada UML Ada 9

Lebih terperinci

* Banyak 0 Nol 1 Satu, bisa ditulis bisa tidak 0..* Antara nol sampai banyak 1..* Antara satu sampai banyak 0..1 Nol atau 1 1..

* Banyak 0 Nol 1 Satu, bisa ditulis bisa tidak 0..* Antara nol sampai banyak 1..* Antara satu sampai banyak 0..1 Nol atau 1 1.. Relasi dan multiplicity Pada Kelas Diagram Multiplicity Pada relasi terdapat suatu penanda yang disebut multiplicity. Multiplicity ini akan mengindikasikan berapa banyak obyek dari suatu kelas terelasi

Lebih terperinci

Class & Sequence Diagram

Class & Sequence Diagram Class & Sequence Diagram 1. Modifier Digunakan untuk memberikan batasan atau penanda bagaimana kelas lain menggunakan attribut, constructor dan method dari suatu kelas Notasi Keterangan Kegunaan + Membuat

Lebih terperinci

OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram)

OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram) OOAD (Object Oriented Analysis and Design) UML part 2 (Activity diagram, Class diagram, Sequence diagram) Gentisya Tri Mardiani, S.Kom., M.Kom ADSI-2015 Activity Diagram Activity diagram digunakan untuk

Lebih terperinci

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

Pemrograman Lanjut Jurusan S1 Teknik Informatika. 9/17/2012 Ratno Pemrograman Lanjut Jurusan S1 Teknik Informatika 9/17/2012 Ratno Object Oriented Programming Object Pada dunia perangkat lunak, sebuah obyek adalah sebuah komponen perangkat lunak yang stukturnya mirip

Lebih terperinci

Praktikum Rekayasa Perangkat Lunak Pertemuan II Use Case Diagram bag I

Praktikum Rekayasa Perangkat Lunak Pertemuan II Use Case Diagram bag I Praktikum Rekayasa Perangkat Lunak Pertemuan II Use Case Diagram bag I Tujuan Pembelajaran 1. Mahasiswa memahami kapan dan untuk apa menggunakan Use Case diagram 2. Mahasiswa dapat menggunakan Actor,Use

Lebih terperinci

Perancangan Analisis dan Database Sistem

Perancangan Analisis dan Database Sistem MODU L 2 Perancangan Analisis dan Database Sistem 2.1 Tujuan Praktikum 1. Praktikan mampu memahami macam-macam perancangan obyek dan kelas di tahap analisis. 2. Praktikan mampu membuat object diagram.

Lebih terperinci

UNIFIED MODELING LANGUAGE

UNIFIED MODELING LANGUAGE UNIFIED MODELING LANGUAGE UML (Unified Modeling Language) adalah metode pemodelan secara visual sebagai sarana untuk merancang dan atau membuat software berorientasi objek. Karena UML ini merupakan bahasa

Lebih terperinci

Class Diagram Class diagram mendeskripsikan jenis-jenis objek dalam system dan berbagai macam hubungan statis yang terdapat di antara mereka.

Class Diagram Class diagram mendeskripsikan jenis-jenis objek dalam system dan berbagai macam hubungan statis yang terdapat di antara mereka. Modul ke: 06 Bima Fakultas Ilmu Komputer Class Diagram Class diagram mendeskripsikan jenis-jenis objek dalam system dan berbagai macam hubungan statis yang terdapat di antara mereka. Cahya Putra, M.Kom

Lebih terperinci

1. Modifier Digunakan untuk memberikan batasan atau penanda bagaimana kelas lain menggunakan attribut, constructor dan method dari suatu kelas.

1. Modifier Digunakan untuk memberikan batasan atau penanda bagaimana kelas lain menggunakan attribut, constructor dan method dari suatu kelas. Rekayasa Perangkat Lunak Class Diagram dan Squence Diagram 1. Modifier Digunakan untuk memberikan batasan atau penanda bagaimana kelas lain menggunakan attribut, constructor dan method dari suatu kelas.

Lebih terperinci

2. Fungsi di dalam kelas yang dikombinasikan bentuk tingkah laku kelas dinamakan dengan. c.operasi

2. Fungsi di dalam kelas yang dikombinasikan bentuk tingkah laku kelas dinamakan dengan. c.operasi Soal Kuis I PSBO 1. Konsep awal programming (Basic) dengan kekuatan GOTO statement dinamakan dengan a. Non Procedural Language b. Procedural Language c. Object Oriented Programming d. Visual Object Oriented

Lebih terperinci

DAFTAR ISI. KATA PENGANTAR... i. DAFTAR ISI... iii. DAFTAR GAMBAR... xi. DAFTAR TABEL... xvii. DAFTAR SIMBOL... xx BAB I PENDAHULUAN...

DAFTAR ISI. KATA PENGANTAR... i. DAFTAR ISI... iii. DAFTAR GAMBAR... xi. DAFTAR TABEL... xvii. DAFTAR SIMBOL... xx BAB I PENDAHULUAN... DAFTAR ISI KATA PENGANTAR... i DAFTAR ISI... iii DAFTAR GAMBAR... xi DAFTAR TABEL... xvii DAFTAR SIMBOL... xx BAB I PENDAHULUAN... 1 1.1 Latar Belakang... 1 1.2 Rumusan Masalah... 2 1.3 Maksud dan Tujuan...

Lebih terperinci

ABSTRAK. Kata kunci : penjualan, pembelian, aplikasi desktop, C#, Microsoft SQL. Server

ABSTRAK. Kata kunci : penjualan, pembelian, aplikasi desktop, C#, Microsoft SQL. Server ABSTRAK Saat ini pengolahan data di Es Lilin Kita-kita belum menggunakan sistem informasi sehingga menimbulkan banyaknya kesalahan dalam pencatatan data. Berangkat dari permasalah tersebut, akan dibuat

Lebih terperinci

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI

MODUL 2. UML, Generalization, and Specialization UML. 2.1 Pengertian UML. 2.2 Diagram-Diagram yang Ada Dalam UML TUJUAN PRAKTIKUM LANDASAN TEORI MODUL 2 UML, Generalization, and Specialization TUJUAN PRAKTIKUM 1. Mahasiswa mengetahui fungsi UML. 2. Mahasiswa mengetahui fungsi Use Case Diagram. 3. Mahasiswa memahami fungsi Class Diagram dan SequenceDiagram.

Lebih terperinci

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom

E-Book PEMROGRAMAN BERORIENTASI OBJEK. Disusun Oleh: Arfian Hidayat, S.Kom E-Book PEMROGRAMAN BERORIENTASI OBJEK Disusun Oleh: Arfian Hidayat, S.Kom http://arfianhidayat.com FAKULTAS ILMU KOMPUTER UNIVERSITAS DIAN NUSWANTORO SEMARANG 2013 Daftar Isi Daftar Isi... i Daftar Gambar...

Lebih terperinci

BAB 2 LANDASAN TEORI

BAB 2 LANDASAN TEORI 7 BAB 2 LANDASAN TEORI 2.1 Konsep Pemodelan Objek Pemodelan objek merupakan suatu metode untuk menggambarkan struktur sistem yang memperlihatkan semua objek yang ada pada sistem. (Nugroho, 2005, hal:37).

Lebih terperinci

Gambar Use Case Diagram

Gambar Use Case Diagram 1. Use Case Diagram Use case adalah abstraksi dari interaksi antara system dan actor. Use case bekerja dengan cara mendeskripsikan tipe interaksi antara user sebuah system dengan sistemnya sendiri melalui

Lebih terperinci

SOAL PRA UTS PSBO. 1.SIMULA di perkenalkan pertama kali pada tahun.. a d b e c. 1970

SOAL PRA UTS PSBO. 1.SIMULA di perkenalkan pertama kali pada tahun.. a d b e c. 1970 SOAL PRA UTS PSBO 1.SIMULA di perkenalkan pertama kali pada tahun.. a. 1950 d. 1980 b. 1960 e. 1990 c. 1970 2. Hal penting dalam pengembangan berorientasi objek adalah:... a.konsep mengidentifikasi dan

Lebih terperinci

VISUAL PARADIGM. Tugas Mata Kuliah IF-4061 Analisis dan Perancangan Berorientasi Objek Tanggal Pengumpulan : 20 Oktober 2004

VISUAL PARADIGM. Tugas Mata Kuliah IF-4061 Analisis dan Perancangan Berorientasi Objek Tanggal Pengumpulan : 20 Oktober 2004 EKSPLORASI VISUAL PARADIGM Tugas Mata Kuliah IF-4061 Analisis dan Perancangan Berorientasi Objek Tanggal Pengumpulan : 20 Oktober 2004 Disusun oleh : Rosa Ariani Sukamto 13501058 DEPARTEMEN TEKNIK INFORMATIKA

Lebih terperinci

DAFTAR SIMBOL. Notasi Keterangan Simbol. Titik awal, untuk memulai suatu aktivitas. Titik akhir, untuk mengakhiri aktivitas.

DAFTAR SIMBOL. Notasi Keterangan Simbol. Titik awal, untuk memulai suatu aktivitas. Titik akhir, untuk mengakhiri aktivitas. DAFTAR SIMBOL DAFTAR SIMBOL DIAGRAM ACTIVITY Initial Titik awal, untuk memulai suatu aktivitas. Final Titik akhir, untuk mengakhiri aktivitas. Activity Menandakan sebuah aktivitas Decision Pilihan untuk

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 RAPAT UMUM PEMEGANG SAHAM Peraturan Otoritas Jasa Keuangan Nomor 32 /Pojk.04/2014 Tentang Rencana Dan Penyelenggaraan Rapat Umum Pemegang Saham Perusahaan Terbuka. Pasal 2. 1.

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Pengembangan Sistem Informasi 2.1.1 SDLC (System Development Life Cycle) Menurut Dennis, Barbara, dan Roberta (2012:6) System Development Life Cycle (SDLC) merupakan proses menentukan

Lebih terperinci

Yuli Purwati, M.Kom USE CASE DIAGRAM

Yuli Purwati, M.Kom USE CASE DIAGRAM Yuli Purwati, M.Kom USE CASE DIAGRAM UML UML (Unified Modeling Language) merupakan pengganti dari metode analisis berorientasi object dan design berorientasi object (OOA&D) yang dimunculkan sekitar akhir

Lebih terperinci

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta

- Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta MODUL 1 IMPLEMENTASI MODEL VIEW CONTROLLER (MVC) DESIGN PATTERN Design Pattern dapat didefinisikan : - Setiap pola yang menggambarkan permasalahan yang terjadi secara berulang, serta menjelaskan cara utama

Lebih terperinci

INSTRUKSI PENCABANGAN

INSTRUKSI PENCABANGAN INSTRUKSI PENCABANGAN Sebagai pengembang (programmer) sudah pasti mengetahui jenis operasi instruksi. Salah satu yang perlu dipelajari atau dimengerti adalah operasi instruksi pencabangan. 3.1 Pencabangan

Lebih terperinci

1. SIMULA di perkenalkan pertama kali pada tahun.. a d b e c Hal penting dalampengembangan berorientasi objek

1. SIMULA di perkenalkan pertama kali pada tahun.. a d b e c Hal penting dalampengembangan berorientasi objek LAT UTS AMIK BSI 1. SIMULA di perkenalkan pertama kali pada tahun.. a. 1950 d. 1980 b. 1960 e. 1990 c. 1970 2. Hal penting dalampengembangan berorientasi objek adalah:... a.konsep mengidentifikasi dan

Lebih terperinci

Lampiran 1. Notasi UML. Generalization. Aggregation. Association 0..* 1..* L.1. Class(generalization) Class(Specialization) Class(Specialization)

Lampiran 1. Notasi UML. Generalization. Aggregation. Association 0..* 1..* L.1. Class(generalization) Class(Specialization) Class(Specialization) Lampiran 1 Notasi UML Generalization Class(generalization) Class(Specialization) Class(Specialization) Gambar L1.1. Generalization Aggregation Class (the whole) * Class (part) 1 * Class (part) Gambar L.2.2.

Lebih terperinci

Diagram Use Case. Pertemuan 3

Diagram Use Case. Pertemuan 3 Diagram Use Case Pertemuan 3 Definisi Use Case Diagram Use Case merupakan pemodelan untuk kelakuan (behavior) sistem informasi yang akan dibuat. Use case mendeskripsikan sebuah interaksi antara satu atau

Lebih terperinci

Unified Modelling Language UML

Unified Modelling Language UML Unified Modelling Language UML Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak.

Lebih terperinci

BAB IV PERANCANGAN SISTEM 4.1 PERANCANGAN SISTEM Untuk memudahkan pembuatan aplikasi sistem pakar berbasis website, maka akan dibuat model menggunakan UML (Unified Modeling Language). Perlu diketahui metode

Lebih terperinci

Inheritance dan Kata Kunci static

Inheritance dan Kata Kunci static Inheritance dan Kata Kunci static PEWARISAN (INHERITANCE) Salah satu fitur yang paling kuat dalam OOP adalah penggunaan kode kembali (code reuse). Sekali sebuah prosedur dibuat, maka kita bisa menggunakannya

Lebih terperinci

MAKALAH ANALISIS & PERANCANGAN SISTEM II USE CASE DIAGRAM

MAKALAH ANALISIS & PERANCANGAN SISTEM II USE CASE DIAGRAM MAKALAH T02/Use Case Diagram ANALISIS & PERANCANGAN SISTEM II USE CASE DIAGRAM Nama : Abdul Kholik NIM : 05.05.2684 E mail : ik.kyoe.san@gmail.com Sumber : http://artikel.webgaul.com/iptek/unifiedmodellinglanguage.htm

Lebih terperinci

DAFTAR SIMBOL. Notasi Keterangan Simbol. Actor adalah pengguna sistem. Actor. tidak terbatas hanya manusia saja, jika

DAFTAR SIMBOL. Notasi Keterangan Simbol. Actor adalah pengguna sistem. Actor. tidak terbatas hanya manusia saja, jika DAFTAR SIMBOL DAFTAR SIMBOL DIAGRAM USE CASE Notasi Keterangan Simbol Actor adalah pengguna sistem. Actor tidak terbatas hanya manusia saja, jika sebuah sistem berkomunikasi dengan Actor aplikasi lain

Lebih terperinci

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut

PEWARISAN. Disusun Oleh: Reza Budiawan. Untuk: Tim Dosen Algoritma & Pemrograman Lanjut MI1274 Algoritma & Pemrograman Lanjut Genap 2015-2016 PEWARISAN Disusun Oleh: Reza Budiawan Untuk: Tim Dosen Algoritma & Pemrograman Lanjut Hanya dipergunakan untuk kepentingan pengajaran di lingkungan

Lebih terperinci

ABSTRACT ABSTRAKSI KATA PENGANTAR

ABSTRACT ABSTRAKSI KATA PENGANTAR DAFTAR ISI ABSTRACT... i ABSTRAKSI... ii KATA PENGANTAR... iii DAFTAR ISI... v DAFTAR TABEL... ix DAFTAR GAMBAR... x DAFTAR SIMBOL... xiii DAFTAR LAMPIRAN... xvi BAB I PENDAHULUAN 1.1 Latar Belakang...

Lebih terperinci

Bagian 7 ANALISIS DESAIN PADA PEMROGRAMAN BERORIENTASI OBJECT DENGAN UML

Bagian 7 ANALISIS DESAIN PADA PEMROGRAMAN BERORIENTASI OBJECT DENGAN UML Bagian 7 ANALISIS DESAIN PADA PEMROGRAMAN BERORIENTASI OBJECT DENGAN UML Apa itu UML? Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi standar dalam industri untuk visualisasi,

Lebih terperinci

GUI & Event Handling. Viska Mutiawani, M.Sc

GUI & Event Handling. Viska Mutiawani, M.Sc GUI & Event Handling Viska Mutiawani, M.Sc GUI pada Java GUI (Graphical User Interface) pada Java umumnya menggunakan kelas dari package javax.swing dan java.awt. AWT dan Swing dapat dipergunakan untuk

Lebih terperinci

Pembuatan Use Case Diagram, misalkan spt ini :

Pembuatan Use Case Diagram, misalkan spt ini : Petunjuk pembuatan argouml 1. Jalankan ArgoUML dan terlihat tampilan sbb : A. Navigasi pane (kiri atas) tempat semua obyek yang telah dibuat B. Editing pane (kanan atas) diagram yang telah dibuat C. To

Lebih terperinci

DAFTAR SIMBOL. Tabel Notasi Use Case Diagram

DAFTAR SIMBOL. Tabel Notasi Use Case Diagram DAFTAR SIMBOL Tabel Notasi Use Case Diagram Actor Actor adalah pengguna sistem. Actor tidak terbatas hanya manusia saja, jika sebuah sistem berkomunikasi dengan aplikasi lain dan membutuhkan input atau

Lebih terperinci

Membuat Menu Login Sederhana [Full Coding]

Membuat Menu Login Sederhana [Full Coding] Membuat Menu Login Sederhana [Full Coding] Oleh: Yudi Setiawan Pada tutorial, ini saya berusaha mengajari Anda secara lebih keras lagi agar Anda mempunyai bekal ilmu dasar yang kuat di ilmu pemrograman

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Konsep Dasar Sistem Dalam membangun sebuah system informasi diperlukan suatu pemahaman mengenai system itu sendiri sehingga tujuan dari pembangunan system informasi dapat tercapai.

Lebih terperinci

Notasi dalam UML. Actor

Notasi dalam UML. Actor Notasi dalam UML Actor Gambar 1. Notasi Actor Actor menggambarkan segala pengguna software aplikasi (user). Actor memberikan suatu gambaran jelas tentang apa yang harus dikerjakan software aplikasi. Sebagai

Lebih terperinci

MODUL I MODEL DESAIN

MODUL I MODEL DESAIN MODUL I MODEL DESAIN TUJUAN : - Mahasiswa mengetahui cara pertama kali mengenal model desain dan dapat mempraktekannya. TEORI : DEFINISI MODEL DESAIN - Merupakan abstraksi dari penerapan (implementasi)

Lebih terperinci

Pengenalan APLIKASI DATABASE

Pengenalan APLIKASI DATABASE Page 1 of 23 APLIKASI DATABASE Pengenalan Aplikasi database merupakan aplikasi yang menggunakan database berbasis komputerisasi dan tampilan form sebagai media penghubung antara user dan database, dimana

Lebih terperinci

LAMPIRAN A. Class. Association. dua class atau lebih. Multiplicity. instances dari class lain. Generalization. lain.

LAMPIRAN A. Class. Association. dua class atau lebih. Multiplicity. instances dari class lain. Generalization. lain. L1 LAMPIRAN A Notasi yang digunakan dalam Class Diagram Class1 -Attribute +Operations() Class Menjelaskan kumpulan obyek dangan structure, behavior dan relationship yang serupa.class ini terbagi menjadi

Lebih terperinci

Modeling Tools StarUML

Modeling Tools StarUML StarUML Pengenalan Modeling Tools StarUML Pemodelan merupakan suatu hal yang tidak bisa dilepaskan dari pembangunan aplikasi. Sebagai cikal-bakal dari suatu aplikasi, proses memodelkan tentu bukan hal

Lebih terperinci

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah

GUI & Event Handling. Viska Mutiawani, M.Sc. 1 Viska Mutiawani - Informatika FMIPA Unsyiah GUI & Event Handling Viska Mutiawani, M.Sc 1 Viska Mutiawani - Informatika FMIPA GUI pada Java GUI (Graphical User Interface) pada Java umumnya menggunakan kelas dari package javax.swing dan java.awt.

Lebih terperinci

ABSTRAK. Kata kunci : voucher elektronik SMS (Short Message Service)

ABSTRAK. Kata kunci : voucher elektronik SMS (Short Message Service) ABSTRAK Pada saat ini penulis melihat banyak distributor voucher elektronik mengalami kesulitan dalam menganalisa dan mendokumentasikan transaksi voucher elektronik yang sudah dilakukan. Perkembangan fitur

Lebih terperinci

MODUL 1 ANALISIS KEBUTUHAN SISTEM

MODUL 1 ANALISIS KEBUTUHAN SISTEM 1 MODUL 1 ANALISIS KEBUTUHAN SISTEM 1.1 Tujuan Praktikum 2. Praktikan mampu mendefinisikan pengertian analisis sistem. 3. Praktikan mampu menjelaskan peran para ahli yang akan terlibat dalam pengembangan

Lebih terperinci

Membuat Kalkulator dengan Java

Membuat Kalkulator dengan Java Membuat Kalkulator dengan Java Oleh: Eko Wicaksono Ini merupakan program kalkulator sederhana Kali ini saya ingin membuat tutor dari bahasa java, belajar membuat kalkulator namanya. Ini program masih sangat

Lebih terperinci

DAFTAR ISI LEMBAR PENGESAHAN SURAT PERNYATAAN

DAFTAR ISI LEMBAR PENGESAHAN SURAT PERNYATAAN DAFTAR ISI LEMBAR PENGESAHAN... i SURAT PERNYATAAN... ii ABSTRACT... iii ABSTRAKSI... iv KATA PENGANTAR... v DAFTAR ISI... vii DAFTAR TABEL... x DAFTAR GAMBAR... xi DAFTAR SIMBOL... xiii DAFTAR LAMPIRAN...

Lebih terperinci

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang

BAB III ANALISA DAN PERANCANGAN SISTEM. permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang BAB III ANALISA DAN PERANCANGAN SISTEM 3.1 Analisis Masalah Langkah awal dalam pembuatan sistem adalah mengidentifikasi permasalahan yang ada sebagai dasar untuk membuat sebuah solusi yang disajikan dalam

Lebih terperinci

BAB III ANALISIS DAN PERANCANGAN SISTEM. dengan menggunakan metode System Development Life Cycle (SDLC). Tahap yang

BAB III ANALISIS DAN PERANCANGAN SISTEM. dengan menggunakan metode System Development Life Cycle (SDLC). Tahap yang BAB III ANALISIS DAN PERANCANGAN SISTEM Analisis dan perancangan sistem pada aplikasi presensi kegiatan dilakukan dengan menggunakan metode System Development Life Cycle (SDLC). Tahap yang dilakukan adalah

Lebih terperinci

Latihan Pertemuan 5: Sub Diagram New Activity Diagram Select In Browser rename Pemohon Class 5.

Latihan Pertemuan 5: Sub Diagram New Activity Diagram Select In Browser rename Pemohon Class 5. Latihan Pertemuan 5: Alur kerja(workflow) ari business use-case yang telah kita buat di atas dapat digambarkan secara detail menggunakan activity diagram. Disini kita akan belajar membuat activity diagram

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Android versi 2.2 (Froyo :Frozen Yoghurt) Pada 20 Mei 2010, Android versi 2.2 (Froyo) diluncurkan. Perubahanperubahan umumnya terhadap versi-versi sebelumnya antara lain dukungan

Lebih terperinci

LEMBARAN SOAL ULANGAN KENAIKAN KELAS Tahun 2014/ Komunikasi Paket Keahlian

LEMBARAN SOAL ULANGAN KENAIKAN KELAS Tahun 2014/ Komunikasi Paket Keahlian PEMERINTAH KABUPATEN WONOSOBO DINAS PENDIDIKAN PEMUDA DAN OLAHRAGA SMK NEGERI 1 WONOSOBO Jl. Bhayangkara 12 Telp./ Fax. 321219/ 325073 Wonosobo 56300 website : www.smkn1-wnb.sch.id email : info@smkn1-

Lebih terperinci

Kuliah#3 TSK-612 Sistem Embedded Terdistribusi - TA 2011/2012. Eko Didik Widianto

Kuliah#3 TSK-612 Sistem Embedded Terdistribusi - TA 2011/2012. Eko Didik Widianto Kuliah#3 TSK-612 Sistem Embedded Terdistribusi - TA 2011/2012 Eko Didik Teknik Sistem Komputer - Universitas Diponegoro Review Kuliah Pokok bahasan di kuliah #2 Metodologi desain sistem: waterflow, v-model,

Lebih terperinci

PENGANTAR RUP & UML. Pertemuan 2

PENGANTAR RUP & UML. Pertemuan 2 PENGANTAR RUP & UML Pertemuan 2 PENGANTAR RUP Rational Unified Process (RUP) atau dikenal juga dengan proses iteratif dan incremental merupakan sebuah pengembangan perangkat lunak yang dilakukan secara

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI II.1 Pengertian Aplikasi Aplikasi adalah suatu subkelas perangkat lunak komputer yang memanfaatkan kemampuan komputer langsung untuk melakukan suatu tugas yang diinginkan pengguna.

Lebih terperinci

DAFTAR SIMBOL 1. CLASS DIAGRAM. Nama Komponen Class

DAFTAR SIMBOL 1. CLASS DIAGRAM. Nama Komponen Class DAFTAR SIMBOL 1. CLASS DIAGRAM Class Composition Dependency Class adalah blok - blok pembangun pada pemrograman berorientasi obyek. Sebuah class digambarkan sebagai sebuah kotak yang terbagi atas 3 bagian.

Lebih terperinci

Gambar Window Transaksi Pengeluaran Barang Gudang

Gambar Window Transaksi Pengeluaran Barang Gudang Gambar Window Transaksi Pengeluaran Barang Gudang L8 Gambar Window Laporan Fisik Persediaan L9 Gambar Window Laporan Status Persediaan L10 Gambar Window Laporan Management by Exception L11 L12 Descriptions

Lebih terperinci

PERANCANGAN SISTEM. Gambar 3. 1 Use Case Persewaan Buku. Registrasi Pelaporan Transaksi. Peminjaman. Pengunjung. Operator. Manager.

PERANCANGAN SISTEM. Gambar 3. 1 Use Case Persewaan Buku. Registrasi Pelaporan Transaksi. Peminjaman. Pengunjung. Operator. Manager. BAB III PERANCANGAN SISTEM 3.. Use Case Diagram Aktor dalam sistem terdiri dari pengunjung, operator, admin, manager, dan distributor. Aktivitas usecase terdiri dari registrasi, peminjaman, pengembalian,

Lebih terperinci

Gambar L.37 Form Print Laporan Absensi Harian Gambar L.38 Form Print Laporan Absensi Periode

Gambar L.37 Form Print Laporan Absensi Harian Gambar L.38 Form Print Laporan Absensi Periode L-27 Gambar L.37 Form Print Laporan Absensi Harian Gambar L.38 Form Print Laporan Absensi Periode L-28 Gambar L.39 Form Menu Utama Transaksi Finance Gambar L.40 Form Kenaikan Gaji L-29 Gambar L.41 Form

Lebih terperinci

DAFTAR SIMBOL. case. Dependency 2. Generalization 3. 4 Include. 5 Extend. 6 Associaton

DAFTAR SIMBOL. case. Dependency 2. Generalization 3. 4 Include. 5 Extend. 6 Associaton DAFTAR SIMBOL Daftar Simbol Pada Use Case Diagram Menspesifikasikan himpunan Actor peran yang pengguna mainkan ketika berinteraksi dengan use 1. case. Dependency 2. Generalization 3. 4 Include 5 Extend

Lebih terperinci

2. Dibawah ini yang bukan merupakan bentuk bentuk objek adalah

2. Dibawah ini yang bukan merupakan bentuk bentuk objek adalah PEMODELAN SISTEM BERBASIS OBJEK Selesai Ujian (bukti ujian HOZtHOLuIuT0I2PuyOcoHhkcwBInySMmwhEpJCW2UhydxOD=) Sisa waktu : 00:25:25 1. Objek dapat berupa konkrit dan abstrak. Contoh dari Objek konkrit adalah:

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1. Pengertian Kendaraan Bermotor Secara umum pengertian tentang kendaraan bermotor adalah semua jenis kendaraan dimana sistem geraknya menggunakan peralatan teknik atau mesin. Fungsi

Lebih terperinci

ANALISA & PERANCANGAN SISTEM INFORMASI. Sufajar Butsianto, M.Kom

ANALISA & PERANCANGAN SISTEM INFORMASI. Sufajar Butsianto, M.Kom ANALISA & PERANCANGAN SISTEM INFORMASI Sufajar Butsianto, M.Kom MODUL 5 UML Unified Modelling Language Tools : Star UML, Rational Rose dll TOOLS 1. Mahasiswa mengetahui tool untuk perancangan sistem informasi

Lebih terperinci

BAB III ANALISIS DAN DESAIN SISTEM

BAB III ANALISIS DAN DESAIN SISTEM BAB III ANALISIS DAN DESAIN SISTEM Pada bab ini akan dibahas mengenai Aplikasi Penjualan Alat-Alat Pada Toko Eiger Berbasis Mobile Dan Client-Server yang meliputi analisa sistem yang sedang berjalan dan

Lebih terperinci

Modul II Object Oriented Programming

Modul II Object Oriented Programming Modul II Object Oriented Programming Tujuan 1. Mahasiswa dapat mengenal dan memahami konsep pemrograman berorientasi objek. 2. Mahasiswa mampu membuat class, object dan access modifier. Dasar Teori OOP

Lebih terperinci

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor

MODUL 2 Constructor. Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor MODUL 2 Constructor Tujuan: Mahasiswa dapat mengenal dan memahami konsep constructor dan overloading constructor Materi: Pengantar Constructor Overloading constructor Soal Latihan Referensi: Fikri, Rijalul.

Lebih terperinci

MODUL 3 Inheritance. Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor

MODUL 3 Inheritance. Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor MODUL 3 Inheritance Tujuan: Mahasiswa dapat mengenal dan memahami konsep inheritance dan cara menerapkan inheritance dengan constructor Materi: Pengantar Inheritance Manfaat Penggunaan Inherintance Keyword

Lebih terperinci

BAB II LANDASAN TEORI

BAB II LANDASAN TEORI BAB II LANDASAN TEORI 2.1 Manajemen Proyek 2.1.1. Pengertian Manajemen Menurut James A.F. Stoner (2006) Manajemen adalah suatu proses perencanaan, pengorganisasian, kepemimpinan, dan pengendalian upaya

Lebih terperinci

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN BAB 6 ABSTRACTION Disusun Oleh : NAMA : FARIDATUS SHOFIYAH NRP : 13.06.311.00112 KELOMPOK : C1 DOSEN PENGAMPU : MEDIKA RISNASARI, MT ASISTEN : AGUS PRIYONO Disetujui

Lebih terperinci

SISTEM MONITORING PENGANTARAN OBAT PADA PT. XYZ DENGAN PEMROGRAMAN JAVA ANDROID DAN WEB

SISTEM MONITORING PENGANTARAN OBAT PADA PT. XYZ DENGAN PEMROGRAMAN JAVA ANDROID DAN WEB SISTEM MONITORING PENGANTARAN OBAT PADA PT. XYZ DENGAN PEMROGRAMAN JAVA ANDROID DAN WEB Rivan Junizar 41513120145 FAKULTAS ILMU KOMPUTER UNIVERSITAS MERCU BUANA 2015 SISTEM MONITORING PENGANTARAN OBAT

Lebih terperinci

A. TUJUAN PEMBELAJARAN

A. TUJUAN PEMBELAJARAN PRAKTIKUM 27 ANTAR MUKA GRAFIS A. TUJUAN PEMBELAJARAN 1. Memahami konsep Graphical User Interface (GUI). 2. Mampu membuat program yang menerapkan konsep GUI. 3. Mampu membuat program berbasis GUI yang

Lebih terperinci

Materi 5 Pemrograman Visual

Materi 5 Pemrograman Visual Materi 5 Pemrograman Visual Pada materi ini akan dipelajari tentang pemberian aksi pada komponen swing (listener), terutama ActionListener. Sesi Materi ActionListener merupakan salah satu listener yang

Lebih terperinci

DASAR REKAYASA PERANGKAT LUNAK

DASAR REKAYASA PERANGKAT LUNAK DASAR REKAYASA PERANGKAT LUNAK PEMODELAN ANALISIS KEBUTUHAN Institut Teknologi Sumatera DEFINISI MODEL ANALISIS Menurut Ian Sommerville(2011) Model Analisis adalah suatu teknik untuk merepresentasikan

Lebih terperinci

3 BEKERJA DENGAN MICROSOFT VISIO

3 BEKERJA DENGAN MICROSOFT VISIO System Design & Implementation: Introduction to UML with Microsoft VISIO 40 3 BEKERJA DENGAN MICROSOFT VISIO Objektif : Mengenal lingkungan kerja Microsoft Visio Memahami penggunaan tool yang dimiliki

Lebih terperinci

Prosedur merupakan suatu tata cara kerja atau kegiatan untuk menyelesaikan pekerjaan

Prosedur merupakan suatu tata cara kerja atau kegiatan untuk menyelesaikan pekerjaan Prosedur merupakan suatu tata cara kerja atau kegiatan untuk menyelesaikan pekerjaan dengan urutan waktu dan memiliki pola kerja yang tetap yang telah ditentukan. Tujuan dari prosedur ini adalah sebagai

Lebih terperinci

Citra Noviyasari, S.Si, MT SI - UNIKOM

Citra Noviyasari, S.Si, MT SI - UNIKOM Citra Noviyasari, S.Si, MT SI - UNIKOM Diagram class sebuah spesifikasi yang jika diinstansiasi akan menghasilkan sebuah objek dan merupakan inti dari pengembangan dan desain berorientasi objek. Class

Lebih terperinci

visit : www.marisharingilmu.wordpress.com

visit : www.marisharingilmu.wordpress.com Lisensi Pocket Book Pocket Book ini dapat anda copy dan distribusikan dengan gratis untuk kegiatan pembelajaran. Selamat datang di Pocket Book edisi selanjutnya yaitu Pocket Book : Membuat Aplikasi Java

Lebih terperinci

BAB III METODOLOGI PENELITIAN

BAB III METODOLOGI PENELITIAN BAB III METODOLOGI PENELITIAN Metodologi penelitian adalah cara yang digunakan dalam memperoleh berbagai data untuk diproses menjadi informasi yang lebih akurat sesuai permasalahan yang akan diteliti.

Lebih terperinci

SUMBER BELAJAR PENUNJANG PLPG

SUMBER BELAJAR PENUNJANG PLPG SUMBER BELAJAR PENUNJANG PLPG 2017 [TIK] BAB VIII PEMROGRAMAN BERORIENTASI OBJEK [Alfa Faridh Suni] KEMENTERIAN PENDIDIKAN DAN KEBUDAYAAN DIREKTORAT JENDERAL GURU DAN TENAGA KEPENDIDIKAN 2017 BAB VIII

Lebih terperinci

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI

BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI BAB II TINJAUAN PUSTAKA DAN LANDASAN TEORI 2.1 Tinjauan Pustaka Radite Purwahana dalam tugas akhirnya telah membuat tugas akhir yang berjudul RAPOR ONLINE SMA N 8 SURAKARTA BERBASIS PHP, MYSQL, DAN SMS

Lebih terperinci

BAB II TINJAUAN PUSTAKA

BAB II TINJAUAN PUSTAKA BAB II TINJAUAN PUSTAKA II.1. Sistem Sistem merupakan kumpulan dari unsur atau elemen-elemen yang saling berkaitan/berinteraksi dan saling memengaruhi dalam melakukan kegiatan bersama untuk mencapai suatu

Lebih terperinci

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface)

Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface) Object Oriented Programming (Class, Inheritance, Encapsulation dan Interface) Ramos Somya Object sebuah benda (entity) yang memiliki batasan (boundary) dan identitas (identity) yang terdefinisi dengan

Lebih terperinci

Pertemuan 6-7. UML (Unified Modeling Language) (Software Design 2) Muhamad Alif,S.Kom Teknik Informatika UTM 17 Oktober 2012

Pertemuan 6-7. UML (Unified Modeling Language) (Software Design 2) Muhamad Alif,S.Kom Teknik Informatika UTM 17 Oktober 2012 Pertemuan 6-7 UML (Unified Modeling Language) (Software Design 2) Muhamad Alif,S.Kom Teknik Informatika UTM 17 Oktober 2012 UML Unified Modeling Language (UML) adalah bahasa standart untuk melakukan spesifikasi,

Lebih terperinci

Membuat Sequence Diagram Menggunakan Visual Paradigm

Membuat Sequence Diagram Menggunakan Visual Paradigm Membuat Sequence Diagram Menggunakan Visual Paradigm winda.larasati@raharja.info Abstrak Seiring dengan perkembangan teknologi informasi yang semakin pesat dan semakin bertambahnya penggunaan sistem informasi,

Lebih terperinci