: 20 April 2016
Oleh:
Chatarina Indah Kristina Dewi
Putri Isma Oktawiani
Lydia Emeralda Simatupang
Viona Dewi Ayunitami
1404505042
1404505043
1404505062
1404505063
BAB I
PENDAHULUAN
1.1
Latar Belakang
Era globalisasi saat ini memberikan banyak perubahan, salah satunya pada
teknologi. Teknologi telah berkembang sangat pesat dan memegang peran yang
sangat penting. Perkembangan teknologi kini telah merambah di berbagai bidang
atau aspek salah satunya yaitu ekonomi dan bisnis. Jaman sekarang, bisnis secara
online diminati oleh banyak orang karena bisnis secara online ini dapat dilakukan
dimana saja dan kapan saja, sehingga lebih mudah untuk dilakukan. E-Commerce
merupakan sebuah sistem jual-beli yang bersifat online, dimana seorang pembeli
tidak perlu datang ke sebuah toko untuk melakukan proses transaksi pembelian.
Teknologi memberikan kemudahan kepada pelaku bisnis dalam memasarkan
produknya.
Inovasi dalam bisnis online sangatlah banyak dan bervariasi, salah satunya
adalah dagang banten online. Dagang banten online ini adalah inovasi dalam
bisnis penjualan banten yang dilakukan secara online sehingga pemesanan dan
transaksi dapat dilakukan dengan lebih mudah dan cepat. Dagang banten online
diharapkan dapat memberi kemudahan dan kenyamanan bagi user atau pembeli
dalam melakukan transaksi pembelian banten ataupun canang.
1.2
Rumusan Masalah
Rumusan masalah yang dapat dijabarkan berdasarkan latar belakang diatas
2.
3.
4.
5.
1.3
1.
2.
3.
4.
5.
1.4
Metode Penulisan
Paper ini menggunakan metode penulisan analisis pustaka. Dalam metode
ini penulis membaca materi di internet tentang Model Driven Architecture dan
StarUML. Pembahasan mengenai Model Driven Architecture dan StarUML ini
dibagi dalam tiga bagian, Bagian pertama, yaitu pendahuluan, berisi tentang latar
belakang, rumusan masalah, tujuan dan manfaat serta metodelogi penulisan.
Bagian kedua, yaitu pembahasan berisi tentang landasan teori. Bagian ketiga yaitu
langkah langkah menggunakan StarUML. Bagian keempat yaitu berupa
simpulan dan saran.
BAB II
PEMBAHASAN
2.1
Pemodelan/Modelling
Pemodelan merupakan suatu hal yang tidak bisa dilepaskan dari
proses pembuatan perangkat lunak. Artifact dapat berupa model, deskripsi atau
perangkat lunak) dari sistem perangkat lunak, seperti pada pemodelan bisnis dan
sistem non perangkat lunak lainnya. [4]
UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses
dalam memodelkan sistem yang besar dan kompleks. UML tidak hanya digunakan
dalam proses pemodelan perangkat lunak, namun hampir dalam semua bidang
yang membutuhkan pemodelan. [4]
2.3.1
yang
terjadi
ketika object mengirim pesan ke object lain dalam suatu fungsi tertentu.
Logical view digambarkan dalam class diagram untuk struktur statis dan
dalam state, sequence, collaboration, dan activity diagram untuk model
dinamisnya. View ini digunakan untuk perancang (designer) dan pengembang
(developer).
3.
Component view
Mendeskripsikan implementasi dan ketergantungan modul. Komponen
yang merupakan tipe lainnya dari code module diperlihatkan dengan struktur dan
ketergantungannya juga alokasi sumber daya komponen dan informasi
administrative lainnya.
Diagram
Diagram berbentuk grafik yang menunjukkan simbol elemen model yang
disusun untuk mengilustrasikan bagian atau aspek tertentu dari sistem. Sebuah
diagram merupakan bagian dari suatu view tertentu dan ketika digambarkan
biasanya dialokasikan untuk view tertentu. Jenis-jenis diagram antara lain:
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 sebuah cerita bagaimana sebuah sistem dipakai.
2.
Class Diagram
Class adalah dekripsi kelompok obyek-obyek dengan property, perilaku
(operasi) dan relasi yang sama. Sehingga dengan adanya class diagram dapat
memberikan pandangan global atas sebuah sistem. Hal tersebut tercermin dari
class-class yang ada dan relasinya satu dengan yang lainnya. Sebuah sistem
biasanya mempunyai beberapa class diagram. Class diagram sangat membantu
dalam visualisasi struktur kelas dari suatu system.
3.
Component Diagram
Component diagram merupakan bagian fisik dari sebuah system, karena
menetap di komputer tidak berada di benak para analis. Komponen merupakan
implementasi software dari sebuah atau lebih class. Komponen dapat
berupa source code, komponen biner, atau executable component.
4.
Deployment Diagram
Menggambarkan tata letak sebuah sistem secara fisik, menunjukkan
bagian-bagian software yang berjalan pada bagian-bagian hardware, menunjukkan
hubungan komputer dengan perangkat (nodes) satu sama lain dan jenis
hubungannya.
5.
State Diagram
Menggambarkan semua state (kondisi) yang dimiliki oleh suatu object dari
suatu class dan keadaan yang menyebabkan state berubah. Kejadian dapat
berupa object lain yang mengirim pesan. State class tidak digambarkan untuk
semua class, hanya yang mempunyai sejumlah state yang terdefinisi dengan baik
dan kondisi class berubah oleh state yang berbeda.
6.
Sequence Diagram
Sequence Diagram digunakan untuk menggambarkan perilaku pada
sebuah scenario. Kegunaannya untuk menunjukkan rangkaian pesan yang dikirim
antara object juga interaksi antara object, sesuatu yang terjadi pada titik tertentu
dalam eksekusi sistem.
7.
Collaboration Diagram
Menggambarkan kolaborasi dinamis seperti sequence diagram. Dalam
menunjukkan pertukaran pesan, collaboration diagram menggambarkan object.
8.
Activity Diagram
Menggambarkan rangkaian aliran dari aktivitas, digunakan untuk
mendeskripsikan aktifitas yang dibentuk dalam suatu operasi sehingga dapat juga
digunakan untuk aktifitas lainnya seperti use case atau interaksi.
2.4
StarUML
StarUML merupakan software permodelan yang mendukung UML
(Unified Modeling Language). Berdasarkan pada UML version 1.4 dan dilengkapi
11 macam diagram yang berbeda, mendukung notasi UML 2.0 dan juga
mendukung pendekatan MDA (Model Driven Architecture) dengan dukungan
konsep UML. StarUML dapat memaksimalkan pruduktivitas dan kualitas dari
suatu software project. [1]
StarUML adalah sebuah proyek open source untuk mengembangkan cepat,
fleksibel, extensible, featureful, dan bebas tersedia UML / platform MDA berjalan
pada platform Win32. Tujuan dari proyek StarUML adalah untuk membangun
sebuah alat pemodelan perangkat lunak dan juga platform yang menarik adalah
pengganti alat UML komersial seperti Rational Rose, Bersama dan sebagainya.
[3]
2.4.1
views and diagrams. Model adalah elemen yang memuat informasi untuk model
software. View adalah suatu ekspresi visual dari informasi di dalam model dan
diagram adalah suatu koleksi dari elemen yang memberikan pemikiran user di
dalam mendesain secara spesifik.
2)
dapat mengatur satu atau lebih model software. Project merupakan top-level
package yang selalu ada di dalam beberapa model software. Secara umum, satu
project disimpan dalam satu file.
1.
Struktur Project
Struktur projek terdiri dari beberapa sub-elements dan memiliki deskripsi
Project Sub-Element
Model
Subsystem
Package
2.
Deskripsi
Elemen yang mengatur suatu model software.
Elemen yang mengatur model-model yang tercangkup
dalam
satu sub sistem.
Elemen yang paling umum untuk mengatur elemen.
File Project
File project disimpan ke dalam format XML dengan extension UML.
Semua model, views dan diagrams yang dibuat dengan StarUML disimpan dalam
satu file project. File project berisikan informasi sebagai berikut.
a.
b.
c.
d.
3)
Informasi untuk semua diagram dan views yang ada di dalam project.
Units
Terdapat beberapa kasus dimana satu project perlu disimpan di dalam
beberapa file-file kecil sehingga para pengembang dapat bekerja di dalam satu
project secara bersamaan. Di dalam kasus ini suatu project dapat mengatur
bermacam - macam unit. Suatu unit mempunyai struktur hirarki dan berisikan
beberapa sub-unit. Unit disimpan sebagai UML file dan beberapa mengacu pada
file project (UML) atau unit file lainnya (UNT).
1.
Komposisi Unit
Hanya package, subsystem dan elemen model yang dapat membentuk satu
unit. Semua elemen di bawah jenis elemen package ini disimpan di dalam masing
- masing file unit (UNT).
2.
Module
Module adalah suatu package yang menyediakan fungsi - fungsi baru dan
feature sebagai perluasan dari StarUML. Modul dapat dibuat sebagai kombinasi
dari beberapa elemen - elemen extension dan juga membuat beberapa jenis elemen
di dalam suatu modul.
2.4.2
StarUML 2.0
UML (Unified Modeling Language) terus memperluas standar dikelola
oleh OMG (Object Management Group). Baru-baru ini, UML 2.0 dirilis dan
dukungan StarUML 2.0 dan akan mendukung UML standar terbaru. StarUML 2
mendukung kurang lebih 11 Diagram UML, diantaranya: Class, Object, Use
Case, Component, Deployment, Composite Structure, Sequence, Communication,
Statechart, Activity dan Profile Diagram. [3].
2.5
Database aplikasi isyarat memiliki model fisik yang terdiri dari tiga tabel.
PDM juga memiliki isi yang menyerupai dengan bentuk normal ketiga dari tahap
normalisasi. Berikut rancangan PDM pada database dagang banten online.
Gambar 2.1 adalah rancangan PDM dari database web dagang banten
online yang terdiri dari sembilan tabel yang saling berkaitan.
2.5.1
Kamus Data
Kamus data adalah suatu penjelasan tertulis tentang suatu data yang berada
di dalam database. Dalam kamus data terdapat beberapa kolom yang berisi nama
kolom, tipe data, key, dan keterangan.
Kamus data yang dimiliki oleh database web dagang banten online
berdasarkan pada-atribut dan tipe data yang terdapat dalam PDM. Setiap atribut
dalam database web dagang banten online akan dijelaskan secara rinci mengenai
tipe data, key, serta keterangannya yang akan dijelaskan seperti berikut.
Tabel 2.1 Tabel admin
No
Nama Kolom
Tipe Data
Key
Id
int(2)
PK
Username
Varchar(30)
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
admin
dengan jangkauan 2
karakter.
Digunakan untuk
digunakan untuk
Password
Varchar(200)
memasukkan
username admin
dapat menyimpan
sebanyak 30 karkater.
Digunakan untuk
digunakan untuk
memasukkan
password admin
dapat menyimpan
sebanyak 200 karkater.
Tabel admin pada database berfungsi untuk menyimpan data admin. Table
admin terdapat 3 field yaitu id dengan tipe int dan size 2. Username dengan tipe
varchar dan size 30. Password dengan tipe varchar dan size 200. Pada table ini
kode_petugas sebagai primary key.
Tabel 2.2 Tabel konfirmasi
No
Nama Kolom
Tipe Data
Key
Id
int(4)
PK
No_pemesanan
nm_pelanggan
jml_transfer
Keterangan
Tanggal
char(8)
Varchar(100)
Int(12)
Text
Date
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
konfirmasi
dengan jangkauan 4
karakter.
Digunakan untuk
digunakan untuk
mendeskripsikan
dengan jangkauan 8
no pemesanan
Nama kolom yang
karakter
Digunakan untuk
digunakan untuk
mendeskripsikan
ukuran dinamis.
nama pelanggan.
Nama kolom yang
Digunakan untuk
digunakan untuk
mendeskripsikan
dengan jangkauan 12
jumlah transfer.
Nama kolom yang
karakter
Digunakan untuk
digunakan untuk
memasukkan
ukuran dinamis..
keterangan.
Nama kolom yang
Digunakan untuk
digunakan untuk
menyimpan data
memasukkan
tanggal.
tanggal.
Ke
y
PK
Kd_pelanggan
Tgl_pemesana
Char(6)
Date
Field
Keterangan
Tipe Data
Kode yang
Digunakan untuk
digunakan
menyimpan data
pada
char dengan
no_pemesanan
jangkauan 8
Kode yang
karakter.
Digunakan untuk
digunakan
menyimpan data
pada
char dengan
kd_pelanggan
jangkauan 6
Nama kolom
karakter.
Digunakan untuk
yang
menyimpan data
digunakan
tanggal..
untuk
mendeskripsika
n tanggal
4
Nama_peneri
Varchar(60)
ma
Alamat_lengka
Varchar(200)
Kd_provinsi
char(3)
pemesanan.
Nama kolom
Digunakan untuk
yang
menyimpan data
digunakan
string ukuran
untuk
mendeskripsika
menyimpan
n nama
sebanyak 60
penerima
Nama kolom
karkater.
Digunakan untuk
yang
menyimpan data
digunakan
string ukuran
untuk
memasukkan
menyimpan
alamat
sebanyak 200
lengkap.
Kode yang
karkater.
Digunakan untuk
10
Kota
Kode_pos
No_telepon
Status_bayar
digunakan
menyimpan data
pada kode
char dengan
provinsi.
Nama kolom
jangkauan 3 karakter
Digunakan untuk
yang
menyimpan data
digunakan
string ukuran
untuk
memasukkan
menyimpan
nama kota.
sebanyak 100
Nama kolom
karkater.
Digunakan untuk
yang
menyimpan data
digunakan
string ukuran
untuk
memasukkan
menyimpan
kode pos.
Nama kolom
sebanyak 6 karkater.
Digunakan untuk
yang
menyimpan data
digunakan
string ukuran
untuk
memasukkan
menyimpan
no telepon.
sebanyak 20
Enum('Pesan','Lunas','Bat
Nama kolom
karkater.
Data yang
al')
yang
diinputkan berupa
digunakan
status yaitu
untuk
pesan,lunas,bata
memasukkan
l.
varchar(100)
Varchar(6)
Varchar(20)
status bayar.
Alamat_lengkap
dengan
tipe
Nama Kolom
Tipe Data
Key
Id
Int(4)
PK
No_pemesanan
Kd_barang
Harga
Jumlah
Char(8)
Char(5)
Int(12)
Int (3)
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
pemesanan item
dengan jangkauan 4
Kode yang
karakter.
Digunakan untuk
digunakan pada
no_pemesanan
dengan jangkauan 8
Kode yang
karakter.
Digunakan untuk
digunakan pada
kd_barang
dengan jangkauan 5
karakter.
Digunakan untuk
digunakan untuk
memasukkan
dengan jangkauan 12
harga.
Nama kolom yang
karakter.
Digunakan untuk
digunakan untuk
mendeskripsikan
dengan jangkauan 3
jumlah
karakter.
pembayaran
Nama Kolom
Tipe Data
Key
Kd_pelanggan
Char(6)
PK
Nm_pelanggan
Varchar(100)
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
kode pelanggan
dengan jangkauan 6
karakter.
Digunakan untuk
digunakan untuk
memasukkan
nm_pelanggan
dapat menyimpan
Kelamin
No_telepon
Username
Password
Tgl_daftar
laki,
digunakan untuk
perempuan)
memasukkan jenis
laki-laki,
kelamin.
Nama kolom yang
perempuan
Digunakan untuk
digunakan untuk
memasukkan
email.
dapat menyimpan
digunakan untuk
mendeskripsikan
no telepon.
dapat menyimpan
sebanyak 20 karkater.
Digunakan untuk
digunakan untuk
memasukkan
username
dapat menyimpan
pelanggan
Nama kolom yang
sebanyak 20 karkater.
Digunakan untuk
digunakan untuk
memasukkan
password
dapat menyimpan
pelanggan
Nama kolom yang
digunakan untuk
menyimpan data
memasukkan
tanggal.
Enum(laki-
Varchar(100)
Varchar(20)
Varchar(20)
Varchar(100)
Date
tanggal.
Nama Kolom
Tipe Data
Key
Kd_provinsi
Char(3)
PK
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
Nm_provinsi
Biaya_kirim
Varchar(100)
Int(12)
digunakan pada
kode provinsi
dengan jangkauan 3
karakter.
Digunakan untuk
digunakan untuk
memasukkan
nm_provinsi.
dapat menyimpan
digunakan untuk
memasukkan
dengan jangkauan 12
jumlah
karakter.
biaya_kirim.
Nama Kolom
Tipe Data
Key
Kd_barang
Char(5)
PK
Nm_barang
Harga_modal
Harga_jual
Stock
Varchar(100)
Int (12)
Int (12)
Int (4)
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
kode barang
dengan jangkauan 5
karakter.
Digunakan untuk
digunakan untuk
memasukkan nama
barang
dapat menyimpan
digunakan untuk
memasukkan harga
dengan jangkauan 12
karakter.
Digunakan untuk
digunakan untuk
memasukkan harga
dengan jangkauan 12
karakter.
Digunakan untuk
digunakan untuk
mendeskripsikan
dengan jangkauan 4
Keterangan
Text
stock
Nama kolom yang
karakter.
Digunakan untuk
digunakan untuk
memasukkan
7
File_gambar
Kd_kategori
Varchar(100)
Char (4)
keterangan.
Nama kolom yang
Digunakan untuk
digunakan untuk
memasukkan file
gambar.
dapat menyimpan
digunakan untuk
menyimpan data
memasukkan kode
chardengan jangkauan
kategori.
4 karakter.
Nama Kolom
Tipe Data
Key
Id
Int(5)
PK
Kd_barang
Harga
Jumlah
Char(5)
Int (12)
Int (3)
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
tabel tmp
dengan jangkauan 5
keranjang.
Nama kolom yang
karakter.
Digunakan untuk
digunakan untuk
memasukkan
5 dengan jangkauan 5
kd_barang
Nama kolom yang
karakter.
Digunakan untuk
digunakan untuk
memasukkan
dengan jangkauan 12
harga.
Nama kolom yang
karakter.
Digunakan untuk
digunakan untuk
memasukkan
dengan jangkauan 3
jumlah barang
karakter.
yang masuk ke
5
Tanggal
Kd_pelanggan
Date
Char (6)
tmp_kerajnjang.
Nama kolom yang
Digunakan untuk
digunakan untuk
menyimpan data
menyimpan
tanggal.
tanggal.
Nama kolom yang
Digunakan untuk
digunakan untuk
menyimpan
dengan jangkauan 6
kd_pelanggan.
karakter.
Nama Kolom
Tipe Data
Key
Kd_kategori
Char(4)
PK
Nm_kategori
Varchar(100)
Field
Kode yang
Keterangan
Tipe Data
Digunakan untuk
digunakan pada
kode kategori
dengan jangkauan 4
karakter.
Digunakan untuk
digunakan untuk
memasukkan nama
kategori
dapat menyimpan
sebanyak 100 karkater.
BAB III
PEMBAHASAN
3.1
pada sistem penjualan barang online. Sistem penjualan barang online memiliki 9
class yang terdiri dari admin, barang, kategori, konfirmasi, pelanggan,
pemesanan, pemesanan_detail, provinsi, dan tmp_keranjang.
Metode yang ada pada class admin terdiri dari username dan password,
operasi yang digunakan adalah insert. Metode pada class barang terdiri dari kode
barang, nama barang, harga modal, harga jual, stok, keterangan, file gambar, dan
kode kategori, operasi yang digunakan adalah insert, edit, dan delete. Metode
pada class kategori terdiri dari kode kategori dan nama kategori, operasi yang
digunakan adalah insert, edit, dan delete. Metode pada class tmp_keranjang terdiri
dari id, kode barang, harga, jumlah, tanggal, dan kode pelanggan, operasi yang
digunakan adalah insert. Metode pada class pemesanan_detail terdiri dari id, no
pemesanan, kode barang, harga, dan jumlah, operasi yang digunakan adalah
insert. Metode pada class pelanggan terdiri dari kode pelanggan, nama pelanggan,
kelamin, e-mail, no telepon, username, password, dan tanggal daftar, operasi yang
digunakan adalah insert dan delete. Metode yang ada pada class pemesanan terdiri
dari no pemesanan, kode pelanggan, tanggal pemesanan, nama penerima, alamat
lengkap, kode provinsi, kota, kode pos, no telepon, dan status bayar, operasi yang
digunakan adalah insert. Metode pada class konfirmasi terdiri dari id, no
pemesanan, nama pelanggan, jumlah transfer, keterangan, dan tanggal, operasi
yang digunakan adalah insert. Metode pada class provinsi terdiri dari kode
provinsi, nama provinsi, dan biaya kirim, operasi yang digunakan adalah insert
dan edit.
3.
Proses yang dilakukan pertama adalah pilih menu Tools kemudian pilih
pada bagian submenu Java dan pilih Generate Code untuk menghasilkan kode
Java yang diinginkan sesuai dengan class yang telah dibuat.
Gambar 3.6 merupakan tampilan file-file Java dari hasil pengubahan class
UML menjadi kode Java pada sistem penjualan barang online.
4.
Proses yang dilakukan pertama adalah pilih menu Tools kemudian pilih
pada bagian submenu PHP dan pilih Generate Code untuk menghasilkan kode
PHP yang diinginkan sesuai dengan class yang telah dibuat.
melakukan perubahan pada hasil generate code PHP yang dihasilkan. Hasil
generate code PHP tersebut akan dilakukan modifikasi sebagai contoh digunakan
tabel kategori.
<?php
$my['host']
$my['user']
$my['pass']
$my['dbs']
=
=
=
=
"localhost";
"root";
"";
"dagang_banten";
$koneksidb =
mysql_connect($my['host'],
$my['pass']);
if (! $koneksidb) {
echo "Failed Connection !";
}
// memilih database pda server
mysql_select_db($my['dbs'])
$my['user'],
Gambar 3.11 merupakan tampilan dari data kategori yang terdiri dari no,
nama kategori, dan tools. Nama kategori yang tersimpan adalah Banten A, Banten
B, dan Banten C.
<?php
// Validasi : Halaman ini hanya untuk yang sudah login
include_once "../library/inc.sesadmin.php";
# Tombol Simpan diklik
if(isset($_POST['btnSimpan'])){
// Baca form
$txtNama
= $_POST['txtNama'];
$txtNama
= str_replace("'","´",$txtNama);
karakter petik (')
// Validasi form
$pesanError = array();
if (trim($txtNama)=="") {
$pesanError[] = "Data
boleh kosong !";
}
<b>Nama
//
Membuang
Kategori</b>
tidak
$noPesan++;
echo
"
$noPesan.
$pesan_tampil<br>";
}
echo "</div> <br>";
}
else {
# SIMPAN DATA KE DATABASE. Jika tidak menemukan pesan
error, simpan data ke database
$kodeBaru= buatKode("kategori", "K");
$mySql
=
"INSERT
INTO
kategori
SET
kd_kategori='$kodeBaru', nm_kategori='$txtNama'";
$myQry
= mysql_query($mySql) or die ("Query
salah : ".mysql_error());
if($myQry){
echo "<meta http-equiv='refresh' content='0;
url=?open=Kategori-Add'>";
}
}
}
# Membuat nilai data pada form input
$dataKode
= buatKode("kategori", "K");
$dataKategori
= isset($_POST['txtNama']) ? $_POST['txtNama']
: '';
?>
<form
action="<?php
$_SERVER['PHP_SELF'];
?>"
method="post"
target="_self">
<table
class="table-list"
width="650"
border="0"
cellspacing="1" cellpadding="3">
<tr>
<th colspan="3"><strong>TAMBAH DATA KATEGORI</strong></th>
</tr>
<tr>
<td width="29%"><strong>Kode</strong></td>
<td width="2%"><strong>:</strong></td>
<td width="69%"><input name="textfield" value="<?php echo
$dataKode;
?>"
size="10"
maxlength="10"
readonly="readonly"/></td>
</tr>
<tr>
<td><strong>Nama Kategori</strong></td>
<td><strong>:</strong></td>
<td><input
name="txtNama"
value="<?php
echo
$dataKategori; ?>" size="70" maxlength="100" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="btnSimpan" value=" SIMPAN "
style="cursor:pointer;"></td>
</tr>
</table>
</form>
Kode Program 3.3 Menambah Data Kategori
<b>Nama
//
Membuang
Kategori</b>
tidak
$noPesan++;
echo
"
$noPesan.
$pesan_tampil<br>";
}
echo "</div> <br>";
}
else {
# SIMPAN DATA KE DATABASE. Jika tidak menemukan pesan
error, simpan data ke database
$Kode = $_POST['txtKode'];
$mySql
=
"UPDATE
kategori
SET
nm_kategori
='$txtNama' WHERE kd_kategori ='$Kode'";
$myQry
= mysql_query($mySql) or die ("Query
salah : ".mysql_error());
if($myQry){
echo "<meta http-equiv='refresh' content='0;
url=?open=Kategori-Data'>";
}
}
}
# MEMBACA DATA DARI FORM / DATABASE, UNTUK DITAMPILKAN KEMBALI
PADA FORM
$Kode
=
isset($_GET['Kode'])
?
$_GET['Kode']
:
$_POST['txtKode'];
$mySql = "SELECT * FROM kategori WHERE kd_kategori='$Kode'";
$myQry = mysql_query($mySql, $koneksidb)
or die ("Query ambil
data salah : ".mysql_error());
$myData= mysql_fetch_array($myQry);
// Masukkan data ke variabel, untuk dibaca di form input
$dataKode
= $myData['kd_kategori'];
$dataKategori
=
isset($_POST['txtNama'])
?
$_POST['txtNama'] : $myData['nm_kategori'];
?>
<form
action="<?php
$_SERVER['PHP_SELF'];
?>"
method="post"
target="_self">
<table
class="table-list"
width="650"
border="0"
cellspacing="1" cellpadding="3">
<tr>
<th colspan="3"><strong>UBAH DATA KATEGORI</strong></th>
</tr>
<tr>
<td width="29%"><strong>Kode</strong></td>
<td width="2%"><strong>:</strong></td>
<td width="69%"><input name="textfield" value="<?php echo
$dataKode; ?>" size="10" maxlength="10" readonly="readonly"/>
<input name="txtKode" type="hidden" value="<?php echo
$dataKode; ?>" /></td>
</tr>
<tr>
<td><strong>Nama Kategori</strong></td>
<td><strong>:</strong></td>
<td><input
name="txtNama"
value="<?php
echo
$dataKategori; ?>" size="70" maxlength="100" />
<input name="txtNamaLama" type="hidden" value="<?php echo
$myData['nm_kategori']; ?>" /></td>
</tr>
<tr>
<td> </td>
<td> </td>
<td><input type="submit" name="btnSimpan" value=" SIMPAN "
style="cursor:pointer;"></td>
</tr>
</table>
</form>
Kode Program 3.4 Ubah Data Kategori
melakukan perubahan pada hasil generate code Java yang dihasilkan. Hasil
generate code Java tersebut akan dilakukan modifikasi sebagai contoh digunakan
tabel kategori.
/*
* To change this license header, choose License Headers in
Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package aplikasipenjualan;
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;
/**
*
* @author Putri
*/
public class FrmKategori extends javax.swing.JFrame {
Database dbsetting;
String driver,database,user,pass;
private Object tabel;
/**
* Creates new form FrmKategori
*/
public FrmKategori() {
initComponents();
Dimension
screenSize=Toolkit.getDefaultToolkit().getScreenSize();
Dimension frameSize=this.getSize();
if(frameSize.height > screenSize.height){
frameSize.height=screenSize.height;
}
if(frameSize.width > screenSize.width){
frameSize.width=screenSize.width;
}
this.setLocation((screenSize.width - frameSize.width) /
2,
(screenSize.height = screenSize.height) / 4);
dbsetting = new Database();
driver = dbsetting.SettingPanel("DBDriver");
database = dbsetting.SettingPanel("DBDatabase");
user = dbsetting.SettingPanel("DBUsername");
pass = dbsetting.SettingPanel("DBPassword");
table.setModel(tableModel);
Tabel(table, new int[]{90,370});
setDefaultTable();
SetEditOff();
}
/**
evt) {
tableMouseClicked(evt);
}
});
jScrollPane1.setViewportView(table);
AddNew.setText("Add New");
AddNew.addActionListener(new
java.awt.event.ActionListener() {
public
void
actionPerformed(java.awt.event.ActionEvent evt) {
AddNewActionPerformed(evt);
}
});
Save.setText("Save");
java.awt.event.ActionListener() {
Save.addActionListener(new
actionPerformed(java.awt.event.ActionEvent evt) {
SaveActionPerformed(evt);
}
});
Update.setText("Update");
public
void
Update.addActionListener(new
java.awt.event.ActionListener() {
actionPerformed(java.awt.event.ActionEvent evt) {
UpdateActionPerformed(evt);
}
});
Delete.setText("Delete");
public
void
Delete.addActionListener(new
java.awt.event.ActionListener() {
public
void
actionPerformed(java.awt.event.ActionEvent evt) {
DeleteActionPerformed(evt);
}
});
Cancel.setText("Cancel");
java.awt.event.ActionListener() {
Cancel.addActionListener(new
actionPerformed(java.awt.event.ActionEvent evt) {
CancelActionPerformed(evt);
}
});
Close.setText("Close");
public
void
Close.addActionListener(new
java.awt.event.ActionListener() {
public
void
actionPerformed(java.awt.event.ActionEvent evt) {
CloseActionPerformed(evt);
}
});
javax.swing.GroupLayout
layout
=
new
javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.LEADING, false)
.addGroup(layout.createSequentialGroup()
.addGap(19, 19, 19)
.addGroup(layout.createParallelGroup(java
x.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel1)
.addComponent(jLabel2))
.addGap(34, 34, 34)
.addGroup(layout.createParallelGroup(java
x.swing.GroupLayout.Alignment.LEADING)
.addComponent(KodeJenis,
javax.swing.GroupLayout.PREFERRED_SIZE,
116,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(Jenis,
javax.swing.GroupLayout.PREFERRED_SIZE,
198,
javax.swing.GroupLayout.PREFERRED_SIZE)))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(AddNew)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(Save)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(Update)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(Delete)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.UNRELATED)
.addComponent(Cancel)
.addPreferredGap(javax.swing.LayoutStyle.
ComponentPlacement.RELATED)
.addComponent(Close))
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_
SIZE, Short.MAX_VALUE))
);
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Al
ignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.BASELINE)
.addComponent(jLabel1)
.addComponent(KodeJenis,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Componen
tPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.BASELINE)
.addComponent(jLabel2)
.addComponent(Jenis,
javax.swing.GroupLayout.PREFERRED_SIZE,
javax.swing.GroupLayout.DEFAULT_SIZE,
javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.Componen
tPlacement.RELATED)
.addComponent(jScrollPane1,
javax.swing.GroupLayout.PREFERRED_SIZE,
158,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.Componen
tPlacement.UNRELATED)
.addGroup(layout.createParallelGroup(javax.swing.
GroupLayout.Alignment.BASELINE)
.addComponent(AddNew)
.addComponent(Save)
.addComponent(Update)
.addComponent(Delete)
.addComponent(Cancel)
);
.addComponent(Close))
.addContainerGap(56, Short.MAX_VALUE))
pack();
}// </editor-fold>
private void AddNewActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
BersihData();
KodeJenis.requestFocus();
Save.setEnabled(true);
Update.setEnabled(false);
Delete.setEnabled(false);
SetEditOn();
}
private void SaveActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
String KJ=KodeJenis.getText();
String J=Jenis.getText();
if ((KJ.isEmpty()) | (J.isEmpty()))
{
JOptionPane.showMessageDialog(null,"data tidak boleh
kosong, silahkan dilengkapi");
KodeJenis.requestFocus();
}
else
{
try {
Class.forName(driver);
Connection
kon
=
DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "insert into kategori (kd_kategori,
nm_kategori) values(' "+KodeJenis.getText()+" ' , ' "+
Jenis.getText()+"')";
stt.executeUpdate(SQL);
data[0] = KodeJenis.getText();
data[1] = Jenis.getText();
tableModel.insertRow(0,data);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
private void UpdateActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
String KJ=KodeJenis.getText();
String J=Jenis.getText();
if ((KJ.isEmpty()) | (J.isEmpty()))
{JOptionPane.showMessageDialog(null,"data tidak boleh
kosong, silahkan dilengkapi");
KodeJenis.requestFocus();
}else {
try {
Class.forName(driver);
Connection
kon
=
DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "Update kategori set nm_kategori='
"+Jenis.getText()+" ' "+
"Where kd_kategori=' "+KodeJenis.getText()+" ' ";
stt.executeUpdate(SQL);
data[0] = KodeJenis.getText();
data[1] = Jenis.getText();
tableModel.removeRow(row);
tableModel.insertRow(row,data);
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
private void tableMouseClicked(java.awt.event.MouseEvent evt)
{
stt.close();
kon.close();
BersihData();
Save.setEnabled(false);
SetEditOff();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
}
private void CloseActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
if(JOptionPane.showConfirmDialog(null,"This application
will be close \n if you press button OK",
"Information",JOptionPane.OK_CANCEL_OPTION,
JOptionPane.INFORMATION_MESSAGE)==JOptionPane.OK_OPTION)
this.dispose();
}
private void CancelActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
BersihData();
SetEditOff();
}
int row = 0;
public void Tampil(){
row = table.getSelectedRow();
KodeJenis.setText(tableModel.getValueAt(row, 0).toString());
Jenis.setText(tableModel.getValueAt(row, 1).toString());
Save.setEnabled(false);
Update.setEnabled(true);
Delete.setEnabled(true);
SetEditOn();
}
public void BersihData(){
KodeJenis.setText("");
Jenis.setText("");
}
public void SetEditOff(){
KodeJenis.setEnabled(false);
Jenis.setEnabled(false);
}
public void SetEditOn(){
KodeJenis.setEnabled(true);
Jenis.setEnabled(true);
}
private
javax.swing.table.DefaultTableModel
tableModel=getDefaultTabelModel();
private void Tabel(javax.swing.JTable tb, int lebar[] ) {
tb.setAutoResizeMode(JTable.AUTO_RESIZE_OFF);
int kolom=tb.getColumnCount();
for(int i=0;i < kolom;i++) {
javax.swing.table.TableColumn
tbc=tb.getColumnModel().getColumn(i);
tbc.setPreferredWidth(lebar[i]);
tb.setRowHeight(17);
}
}
private
javax.swing.table.DefaultTableModel
getDefaultTabelModel() {
return new javax.swing.table.DefaultTableModel(
new Object[][] {},
new String [] {"Kode Jenis","Jenis Barang"}
){
boolean[] canEdit = new boolean[]{
false, false, false, false
};
public boolean isCellEditable(int rowIndex, int columnIndex){
return canEdit[columnIndex];
}
};
}
String data[]=new String[2];
private void setDefaultTable() {
String stat ="";
try {
Class.forName(driver);
Connection
DriverManager.getConnection(database,user,pass);
Statement stt = kon.createStatement();
String SQL = "SELECT * FROM kategori";
ResultSet res = stt.executeQuery(SQL);
while(res.next()){
data[0] = res.getString(1);
data[1] = res.getString(2);
tableModel.addRow(data);
}
res.close();
stt.close();
kon.close();
} catch (Exception ex) {
System.err.println(ex.getMessage());
}
}
// Variables declaration - do not modify
private javax.swing.JButton AddNew;
private javax.swing.JButton Cancel;
private javax.swing.JButton Close;
private javax.swing.JButton Delete;
private javax.swing.JTextField Jenis;
private javax.swing.JTextField KodeJenis;
private javax.swing.JButton Save;
private javax.swing.JButton Update;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JTable table;
// End of variables declaration
kon
}
Kode Program 3.6 Program Java Untuk Bagian Kategori
Gambar 3.20 merupakan tampilan saat ingin mengubah data, data yang
akan diubah dengan Kode = 004 dan Jenis = Banten D - update, kemudian
klik button Update.
Gambar 3.24 merupakan tampilan saat memasukkan data, alert atau pesan
tersebut akan muncul saat data tidak diisi dengan benar.
BAB IV
SIMPULAN
3.1
Simpulan
Simpulan yang dapat diambil dalam pembuatan makalah ini adalah
sebagai berikut.
UML merupakan suatu kumpulan teknik terbaik yang telah terbukti sukses
dalam memodelkan sistem yang besar dan kompleks. UML tidak hanya digunakan
dalam proses pemodelan perangkat lunak, namun hampir dalam semua bidang
yang membutuhkan pemodelan. Salah satu aplikasi menggunakan UML yaitu
StarUML.
StarUML merupakan software permodelan yang mendukung UML
(Unified Modeling Language). StarUML mendukung notasi UML 2.0 dan juga
mendukung pendekatan MDA (Model Driven Architecture) dengan dukungan
konsep UML.
StarUML ini diharapkan dapat memberi kemudahan dan kenyamanan bagi
programmer dalam membuat aplikasi penjualan dagang banten online.
3.2
Saran
Saran yang dapat diberikan dalam pembuatan makalah ini adalah
StarUML dapat diterapkan dengan diagram lain, seperti ERD atau Use Case
Diagram. Selain itu, dapat dikembangkan dengan menggunakan Bahasa
pemrograman lain, seperti C++ atau Phyton.
DAFTAR PUSTAKA
[1]
[2]
[3]
[4]
LAMPIRAN
Berikut merupakan File java yang di generate menggunakan aplikasi
StarUML.
1. Barang
import java.util.*;
/**
*
*/
public class Barang {
/**
* Default constructor
*/
public Barang() {
}
/**
*
*/
public void kd_barang;
/**
*
*/
public void nama_barang;
/**
*
*/
public void stok;
/**
*
*/
public void harga;
/**
*
*/
public void set_nama_barang() {
// TODO implement here
}
/**
*
*/
public void set_stok() {
// TODO implement here
}
/**
*
*/
public void set_harga() {
// TODO implement here
}
/**
*
*/
public void get_nama_barang() {
// TODO implement here
}
/**
*
*/
public void getstok() {
// TODO implement here
}
/**
*
*/
public void get_harga() {
// TODO implement here
}
/**
*
*/
public void update() {
// TODO implement here
}
/**
*
*/
public void delete() {
// TODO implement here
}
}
2.
Detail Penjualan
import java.util.*;
/**
*
*/
public class detail_penjualan {
/**
* Default constructor
*/
public detail_penjualan() {
}
/**
*
*/
public void kd_detail_jual;
/**
*
*/
public void kd_penjualan;
/**
*
*/
public void kd_barang;
/**
*
*/
public void quantity;
/**
*
*/
public void set_penjualan() {
// TODO implement here
}
/**
*
*/
public void set_barang() {
// TODO implement here
}
/**
*
*/
public void set_quantity() {
// TODO implement here
}
/**
*
*/
public void get_penjualan() {
// TODO implement here
}
/**
*
*/
public void get_barang() {
// TODO implement here
}
/**
*
*/
public void get_quantity() {
// TODO implement here
}
/**
*
*/
public void update() {
// TODO implement here
}
/**
*
*/
public void delete() {
// TODO implement here
}
}
3.
Pegawai
import java.util.*;
/**
*
*/
public class Pegawai {
/**
* Default constructor
*/
public Pegawai() {
}
/**
*
*/
public void kd_pegawai;
/**
*
*/
public void username;
/**
*
*/
public void password;
/**
*
*/
public void nama;
/**
*
*/
public void level;
/**
*
*/
public void setusername() {
// TODO implement here
}
/**
*
*/
public void setpassword() {
// TODO implement here
}
/**
*
*/
public void setnama() {
// TODO implement here
}
/**
*
*/
public void setlevel() {
// TODO implement here
}
/**
*
*/
public void getusername() {
// TODO implement here
}
/**
*
*/
public void getpassword() {
// TODO implement here
}
/**
*
*/
public void getnama() {
// TODO implement here
}
/**
*
*/
public void getlevel() {
// TODO implement here
}
/**
*
*/
public void update() {
// TODO implement here
}
/**
*
*/
public void level() {
// TODO implement here
}
/**
*
*/
public class AssociationClass1 {
/**
* Default constructor
*/
public AssociationClass1() {
}
}
/**
*
*/
public class AssociationClass2 {
/**
* Default constructor
*/
public AssociationClass2() {
}
}
}
4.
Pelanggan
import java.util.*;
/**
*
*/
public class Pelanggan {
/**
* Default constructor
*/
public Pelanggan() {
}
/**
*
*/
public void kd_pelanggan;
/**
*
*/
public void nama_pelanggan;
/**
*
*/
public void email;
/**
*
*/
public void alamat;
/**
*
*/
public void set_nama_pelanggan() {
// TODO implement here
}
/**
*
*/
public void set_email() {
// TODO implement here
}
/**
*
*/
public void set_alamat() {
// TODO implement here
}
/**
*
*/
public void get_nama_pelanggan() {
// TODO implement here
}
/**
*
*/
public void get_email() {
// TODO implement here
}
/**
*
*/
public void get_alamat() {
// TODO implement here
}
/**
*
*/
public void update() {
// TODO implement here
}
/**
*
*/
public void delete() {
// TODO implement here
}
}
5.
Penjualan
import java.util.*;
/**
*
*/
public class Penjualan {
/**
* Default constructor
*/
public Penjualan() {
}
/**
*
*/
public void kd_penjualan;
/**
*
*/
public void kd_pelanggan;
/**
*
*/
public void total_harga;
/**
*
*/
public void tanggal_penjualan;
/**
*
*/
public void kd_pegawai;
/**
*
*/
public void set_totalharga() {
// TODO implement here
}
/**
*
*/
public void set_pelanggan() {
// TODO implement here
}
/**
*
*/
public void set_tanggal_penjualan() {
// TODO implement here
}
/**
*
*/
public void set_pegawai() {
// TODO implement here
}
/**
*
*/
public void get_totalharga() {
// TODO implement here
}
/**
*
*/
public void get_pelanggan() {
// TODO implement here
}
/**
*
*/
public void get_tanggal_penjualan() {
// TODO implement here
}
/**
*
*/