-
1.1 Tujuan Praktikum 1. Praktikan mampu memahami konsep
permodelan dinamis menggunakan UML baik ditahap analisis maupun
tahap perancangan.
2. Praktikan mampu menggambarkan alur sistem ke dalam activity
dan sequence diagram.
3. Praktikan mampu memahami alur kodingan sistem yang akan
dibuat dan menggambarkannya dalam bentuk
activity dan sequence diagram.
1.2 Perlengkapan Praktikum 1. Software Power Designer.
2. Modul 3 Praktikum APSI.
1.3 Landasan Teori 1.3.1 Model Dinamis
Setelah model obyek dibuat, langkah selanjutnya di fase analisis
adalah memodelkan cara sistem dan
obyek-obyek di dalamnya beroperasi dan bekerja sama satu sama
lain. Pemodelan ini disebut pemodelan
dinamis. Pemodelan dinamis terdiri dari dua hal, yaitu :
● pemodelan selama tahap analisis scara logik (memastikan bahwa
setiap operasi mungkin dilakukan di
dalam sistem);
● pemodelan selama tahap perancangan secara fisik
(mendefinisikan method di kelas-kelas yang sesuai).
UML menyediakan empat diagram dasar untuk memodelkan dinamika
alur informasi di dalam sistem,
yaitu sequence diagram, collaboration diagram, state transition
diagram, dan activity diagram. Dalam
praktikum modul 4 hanya membahas mengenai sequence diagram dan
activity diagram.
1.3.2 Sequence Diagram
Sequence Diagram digunakan di UML untuk menggambarkan deskripsi
setiap skenario di dalam Use
Case. Sequence Diagram memodelkan obyek-obyek yang mengambil
peranan di dalam skenario dan
menggambarkan interaksinya. Selama fase analisis, sequence
diagram mencerminkan suatu interkasi.
Selama fase perancangan, setiap interaksi dikonversi ke dalam
pemanggilan method sesuai dengan bahasa
pemroraman yang dipilihnya.
-
Setiap sequence diagram :
● mendeskripsikan use case atau satu skenario di dalam sebuah
use case secara diagramatik;
● mengidentifikasi obyek-obyek yang terlibat di setiap
proses;
● mengidentifikasi aksi atau peristiwa yang terjadi di setiap
proses;
● mengidentifikasi informasi apa saja yang harus dikirim di
sekitarnya untuk setiap proses;
● mengidentifikasi respon-respon apa saja yang diperlukan
setelah setiap aksi atau peristiwa.
System analyst harus membuat kurang lebih satu sequence diagram
untuk setiap use case. Use case
dapat memiliki lebih dari satu alur atau cabang yang muncul
ketika keputusan dibuat di dalam aliran informasi.
Proses recall setiap jalur berbeda yang ada di use case, yaitu
satu jalur tanpa cabang, dinamakan sebagai
skenario. Satu sequence diagram umumnya digambarkan untuk setiap
skenario di dalam use case. Sequence
diagram menggambarkan aliran informasi dalam periode waktu
tertentu.
Gambar 1 Struktur Model Sequence Diagram
Pada Gambar 1 Actor1 memanggil task1 pada object1 (instan dari
Class1). Sebagai bagian dari
aktifasi ini, object1 harus memanggil task2 pada object2, dengan
segera obyek ini dihapus setelah method
task2 diselesaikan. Object1 selanjutnya memanggil task3 pada
object3 untuk menyelesaikan transaksi.
Object3 tidak pernah ada sebelum dibutuhkan oleh Object1 untuk
memanggil task3. Garis hidup aktor di atas
digambarkan sebagai persegi panjang yang tidak terputus.
Penggambaran ini tidaklah bersifat wajib.
Namun, karena aktornya berupa orang atau sistem eksternal lain,
maka garis hidupnya tak akan pernah
berakhir pada konteks sistem ini. Hal ini diasumsikan bahwa
aktor aktor tersebut berstatus aktifasi yang
berkelanjutan.
1.3.3 Activity Diagram
Activity Diagram menggambarkan keterkaitan obyek dengan alur
kerja dan mendeskripsikan pemrosesan
secara paralel. Setiap use case memiliki satu Activity diagram.
Aktifitas juga dapat disebut sebagai sebuah
method atau kelompok method.
-
Simbol dalam activity diagram:
Gambar 2 Simbol Activity Diagram
1.3.4 Contoh Kasus
1.3.4.1 Penjelasan Singkat
Hotel Horison Bandung membutuhkan paket piranti lunak komputer
untuk otomatisasi beberapa
pekerjaan yang saat ini dilakukan secara manual oleh staf hotel.
Hotel terdiri dari kamar hotel yang disewakan
ke tamu hotel. Informasi yang relevan untuk setiap kamar adalah
:
• Nomor Kamar
• Harga Dasar
• Occupancy Maksimum
• Tipe Kamar (single, double, twin, executive, suite)
Harga kamar adalah harga kamar dasar dengan perubahan harga
untuk setiap musim, tanggal, atau
peristiwa tertentu. Tamu potensial dapat memesan satu atau lebih
kamar untuk periode tertentu
menggunakan telepon. Reservasi ini ditangani oleh petugas
reservasi. Tamu potensial meminta tipe
ruangan, tanggal kedatangan, durasi (atau tanggal
keberangkatan). Fasilitas pencarian dibuat untuk
-
mengetahui ketersediaan kamar kosong untuk tanggal yang diminta.
Jika ditemukan kamar kosong,
selanjutnya customer diberikan informasi tentang detil dan
harganya.
Jika diterima, reservasi sementara dibuatkan. Reservasi
sementara ini disimpan untuk durasi yang
telah dimasukkan datanya oleh petugas reservasi. Reservasi
sementara ini dimodifikasi menjadi reservasi
tetap ketika pembayaran deposit diterima dan dikonfirmasi.
Reservasi tetap ini akan menjadi acuan tentang
waktu reservasi awal.
Penerima tamu juga dapat membuat reservasi untuk tamu potensial
yang langsung tiba di tempat tanpa
reservasi. Pembayaran deposit harus dibuat pada saat reservasi
awal. Perlu dicatat waktu tamu check in dan
waktu tamu check out. Telepon ruangan dapat
diaktifkan/dinonaktifkan pada saat check in/check out dengan
menggunakan monitor logging panggilan telepon.
1.3.4.2 Use Case Diagram
Gambar 3 Use Case Diagram Sistem Hotel
1.3.4.3 Use Case Form
-
Table 1 Use Case Form Input Reservasi
-
1.3.4.4 Model Dinamis Tahap Analisis
Gambar 4 Activity Diagram Tahap Analisis
Gambar 4 mengambarkan contoh activity diagram pada tahap
analisis dengan mengambil salah satu use
case yaitu input reservasi. Dalam tahap ini juga harus
digambarkan sequence diagram dengan alur sesuai
dengan activity diagram pada gambar 4.
-
1.3.4.5 Model Dinamis Tahap Perancangan
Gambar 5 Sequence Diagram Tahap Perancangan
Gambar 5 merupakan contoh sequence diagram pada tahap
perancangan dengan mengambil salah satu use
case yaitu input reservasi. Ditahap perancangan lebih condong
pada alur kodingan sistem yang akan dibuat
berbeda dengan sequence pada tahap analisis yang menggambarkan
alur sistem. di tahap ini seharusnya dibuat
activity diagram seperti alur sequence pada gambar 5.
1.3.5 Langkah-langkah Pembuatan sequence diagram
1. Buka Power Designer 12.
2. Klik File New.
3. Pilih Object Oriented Model.
4. Pilih “Sequence Diagram”.
new reservation
reservationNumber
setReservationNumber()
executequery()
getCustomerData()
submitcustomerdata
price
setPrice()
executequery()
getReservationData()
submitReservation
roomType
setRoomType()
ExecuteQuery()
getRoomType()
submitRoomType
reseptionist
:GUI :ActionListener :DBAccess:RoomType :Price
:NoReservation
reservationNumber
setReservationNumber()
executequery()
getCustomerData()
submitcustomerdata
price
setPrice()
executequery()
getReservationData()
submitReservation
roomType
setRoomType()
ExecuteQuery()
getRoomType()
submitRoomType
-
5. Pada Palette, pilih actor, untuk membuat actor dari sistem
yang dibuat. Kemudian klik 2 kali pada icon
aktor untuk mengganti nama aktor.
-
6. Pilih Object pada palette, kemudian klik 2 kali pada objek
untuk mengganti nama objek.
7. Klik Message pada palette, kemudian klik 2x pada panah
Message, untukmemberi nama objek.
-
8. Pilih activation pada palette.
9. Kemudian pilih return Message pada palette, kemudian klik 2x
pada Panah Return Message untuk
mengganti nama dari Return Message.
10. Ulangi langkah 7,8, dan 9 untuk interaksi selanjutnya.
-
1.3.6 Langkah-langkah Pembuatan activity diagram
1. Buka Power Designer 12.
2. Klik File New.
3. Pilih Object Oriented Model.
4. Pilih “Activity Diagram”.
5. Pada Palette pilih Organization unit Swimlane, kemudian Klik
2 kali Pada kolom Organization unit,
kemudian ubah nama Organization Unit.
-
6. Pada palette, pilih Node Start, letakkan node start pada
organization unit awal alur sistem dimulai.
7. Klik node Activity pada palette, letakkan setelah node start.
Klik 2x pada node activity kemudian ganti nama
node tersebut.
-
8. Setelah itu, hubungkan antar activity menggunakan panah
“flow”.
9. Setelah seluruh aktivitas dibuat dan flow dibuat, akhiri
dengan node “end”.
1.4 Praktikum Kasus :
TOSERBA CAHAYA KARTIKAH SEJATI adalah salah satu TOSERBA
terbesar yang ada di
Republik Indonesia tercinta. TOSERBA ini sangat menjunjung
tinggi rasa nasionalisme, sehingga hampir 90%
karyawan mereka adalah orang-orang pribumi. TOSERBA CAHAYA
KARTIKAH SEJATI sudah melayani
pelaggan-pelanggannya sejak tahun 1991 dan sudah mendirikan
cabang di 3 kota besar di Pulau Jawa, yakni :
Jakarta (terletak di Jakarta Timur), Surabaya, dan Bandung.
Pendapatan TOSERBA ini terus meningkat dari
tahun ke tahun, hingga pada akhir tahun 2011, pendapatan TOSERBA
mengalami penurunan secara signifikan.
Selidik punya selidik, ternyata salah satu faktor penyebab
turunnya pendapatan TOSERBA ini adalah
menurunnya tingkat kepuasan pelanggan terhadap pelayanan
(khususnya sistem pembayaran) yang diberikan
-
oleh karyawan TOSERBA ini. Sistem yang ada dirasa kurang tanggap
dan cepat dalam mengidentifikasi
keinginan pelanggan yang selalu ingin dilayani secara cepat dan
tepat. Selain itu, struk pembayaran yang ada
kadang-kadang tidak sesuai dengan jumlah pembelian yang
dilakukan oleh pelanggan. Dampaknya, pelanggan
mulai meninggalkan TOSERBA ini dan memilih TOSERBA lain dengan
sistem pelayanan yang lebih nyaman
bagi mereka.
Temuan tersebut membuat Noor Kartikah Sejati, CEO sekaligus
pendiri TOSERBA ini berpikir untuk
mendesain ulang proses bisnis yang ada, khususnya pada sistem
pembayaran atau POS (Point of Sales). Pada
akhirnya, setelah berpetualang mencari ide dan ilham dari Yang
Maha Kuasa, akhirrnya Jeng Noor (Sapaan
akrab CEO) beserta tim, berhasil membuat proses bisnis baru pada
sistem POS yang ada.
TOSERBA CAHAYA KARTIKAH SEJATI secara bertahap membuat perubahan
pada bisnisnya.
Perbaikan proses bisnis yang ia inginkan dengan penambahan
sistem pembayaran atau POS (Point of Sales)
telah ia dilakukan dengan analisis sistem berupa use case.
Proses bisnis dimulai saat pelanggan menghampiri
kasir untuk melakukan transaksi pembayaran. Kasir kemudian
menggunakan sistem POS untuk mencatat detail
barang-barang yang dibeli oleh pelanggan. Selanjutnya, sistem
akan menampilkan detail list barang yang
dibeli beserta total harga yang harus dibayar pelanggan. Pada
tahap berikutnya, pelanggan memasukkan
informasi pembayaran (bisa cash, debit, atau credit card) dimana
informasi pembayaran ini akan divalidasi
dan disimpan oleh sistem. Proses bisnis berakhir saat sistem
meng-update inventori barang terkait dan
pelanggan menerima bukti pembayaran beserta barang-barang yang
mereka beli.
Buatlah activity diagram dan sequence diagram di tahap analisis
dan perancangan untuk use case input
barang!
-
Use case diagram Toserba:
Gambar 6 Use Case Diagram Toserba
Untuk membantu pembuatan activity dan sequence diagram ditahap
perancangan, berikut merupakan
kodingan untuk input barang menggunakan MVC.
1. inputBarang.jsp MODUL IV
SELAMAT DATANG DI PRAKTIKUM WEB BASED 2012 ENJOY YOUR LESSON
:D
Home
Input Barang About Us Contact Us Tutorial Download
-
ID Barang*
Nama Barang*
Jumlah*
Harga*
Design by PRODASE - © Copyright 2012 - prodaslab.com 2.
Controller – ActionControl.java package controller; import
java.io.IOException; import javax.servlet.RequestDispatcher; import
javax.servlet.ServletException; import
javax.servlet.http.HttpServlet;
-
import javax.servlet.http.HttpServletRequest; import
javax.servlet.http.HttpServletResponse; import
service.Databaseakses; import service.ManageAction; /** * Servlet
implementation class ActionControl */ public class ActionControl
extends HttpServlet { private static final long serialVersionUID =
1L; public ActionControl(){ super(); } private Databaseakses
database=null; private static final byte input_barang = 0; private
static final byte view_barang = 0; private String[] COMMAND =
{"input_barang","view_barang"}; private int identifyAction(String
action){ for (int i=0; i
-
String harga_brg = request.getParameter("harga_brg"); try {
nextPage = ManageAction.getInstance(database, request,
response).inputDataBarang(id_brg, nama_brg, jml_brg,
harga_brg);
} catch (Exception e) { e.printStackTrace(); } return nextPage;
} private String viewBarang(HttpServletRequest request,
HttpServletResponse response){ String nextPage=""; try {
nextPage = ManageAction.getInstance(database, request,
response).viewDataBarang(); } catch (Exception e) {
e.printStackTrace(); } return nextPage; } } 3.
Service-ManageAction.java package service; import
java.sql.ResultSet; import java.sql.SQLException; import
java.util.ArrayList; import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse; import
model.BarangBean; public class ManageAction { private Databaseakses
database; private static ManageAction instance; private
HttpServletResponse response; private HttpServletRequest
request;
private ManageAction(Databaseakses database, HttpServletRequest
request, HttpServletResponse response){ this.database = database;
this.request = request; this.response = response; }
public static ManageAction getInstance(Databaseakses database,
HttpServletRequest request, HttpServletResponse response){
if(instance == null){ instance = new ManageAction(database,
request, response); } return instance; } public String
inputDataBarang(String id_brg, String nama_brg, String jml_brg,
String harga_brg){ String address=""; try { BarangBean bean = new
BarangBean(); bean.setId_brg(id_brg);
bean.setNama_brg(nama_brg);
-
bean.setJml_brg(jml_brg); bean.setHarga_brg(harga_brg);
String[] query = {"insert into barang (id_brg, nama_brg,
jml_brg, harga_brg)
values('"+id_brg+"','"+nama_brg+"','"+jml_brg+"','"+harga_brg+"')"};
database.getInstance().executeUpdateQuery(query);
System.out.println(query[0]); address =
"/ActionControl?action=view_barang"; } catch (Exception e) {
e.printStackTrace(); } return address; } public String
viewDataBarang() throws SQLException{ String address=""; String
query = "select*from barang"; ResultSet rs =
database.getInstance().executeSelectQuery(query); ArrayList
DataList = new ArrayList(); BarangBean barang; while(rs.next()){
barang = new BarangBean(); barang.setId_brg(rs.getString(1));
barang.setNama_brg(rs.getString(2));
barang.setJml_brg(rs.getString(3));
barang.setHarga_brg(rs.getString(4)); DataList.add(barang); }
request.setAttribute("viewBarang", DataList); address =
"Results/success.jsp"; return address; } } 4. Model-BarangBean.java
package model; import java.io.*; import java.util.*; public class
BarangBean { private String id_brg; private String nama_brg;
private String jml_brg; private String harga_brg; public
BarangBean() { id_brg=""; nama_brg=""; jml_brg=""; harga_brg=""; }
public String getId_brg() { return id_brg; } public String
getNama_brg() { return nama_brg; } public String getJml_brg() {
return jml_brg; } public String getHarga_brg() { return
harga_brg;
-
} public void setId_brg(String id_brg) { this.id_brg =id_brg; }
public void setNama_brg(String nama_brg) { this.nama_brg =nama_brg;
} public void setJml_brg(String jml_brg) { this.jml_brg=jml_brg; }
public void setHarga_brg(String harga_brg) {
this.harga_brg=harga_brg; } 5. View Barang-success.jsp MODUL IV
SELAMAT DATANG DI PRAKTIKUM APSI 2012 ENJOY YOUR LESSON :D
Home
li>Input Barang About Us Contact Us Tutorial Download
ID Barang Nama Barang Jumlah Barang Harga Barang
${view.id_brg} ${view.nama_brg} ${view.jml_brg}
${view.harga_brg}
-
Design by PRODASE - © Copyright 2012 - prodaslab.com