Anda di halaman 1dari 58

INTEGRASI DAN MIGRASI SISTEM

LANGKAH LANGKAH MENGGUNAKAN STARUML


STUDI KASUS SISTEM PENJUALAN BANTEN ONLINE

Tanggal Pemberian Tugas

: 20 April 2016

Tanggal Pengumpulan Tugas : 10 Mei 2016

Oleh:
Chatarina Indah Kristina Dewi
Putri Isma Oktawiani
Lydia Emeralda Simatupang
Viona Dewi Ayunitami

1404505042
1404505043
1404505062
1404505063

JURUSAN TEKNOLOGI INFORMASI


FAKULTAS TEKNIK UNIVERSITAS UDAYANA
2016

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

adalah sebagai berikut.


1.

Apakah yang dimaksud dengan Model Driven Architecture?

2.

Apakah yang dimaksud dengan Pemodelan atau Modelling?

3.

Apakah yang dimaksud dengan Unified Modeling Language?

4.

Apakah yang dimaksud dengan StarUML?

5.

Apakah yang dimaksud dengan Physical Data Model Manual?

1.3

Tujuan dan Manfaat


Tujuan dan manfaat yang dapat dijabarkan berdasarkan rumusan masalah

diatas adalah sebagai berikut.

1.

Mengetahui dan memahami pengertian Model Driven Architecture.

2.

Mengetahui dan memahami pengertian Pemodelan atau Modelling.

3.

Mengetahui dan memahami pengertian Unified Modeling Language.

4.

Mengetahui dan memahami pengertian StarUML.

5.

Mengetahui dan memahami pengertian Physical Data Model Manual.

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

Model Driven Architecture (MDA)


Model Driven Architecture (MDA) tidak sekedar merupakan arsitektur,

MDA lebih merupakan strategi untuk mengimplementasikan services. Ide tentang


MDA ini adalah bagaimana menyediakan suatu pendekatan yang terbuka dalam
menghadapi tantangan perubahan teknologi dan bisnis [2]. Sesuai dengan
namanya strategi ini memberikan perhatian utama pada model. Model dalam
konteks MDA didefinisikan sebagai Platform Independent Model (PIM) yang
digunakan untuk menciptakan fungsionalitas sistem. PIM dibangun menggunakan
Unified Modeling Language (UML) atau standar pemodelan Object Management
Group (OMG).
Model MDA diawali dari PIM yang dinyatakan dalam bahasa pemodelan
platform independent seperti UML. Model PIM selanjutnya diterjemahkan ke
Platform Spesifik Model (PSM). Inti dari konsep MDA adalah penggunaan standar
OMG: Unified Modeling Language (UML), Meta Object Facility (MOF), XML
Meta Data Interchange (XMI), dan Common Warehouse Meramodel (CWM).
Standar ini mendefinisikan infrastruktur inti dari MDA dan telah menyumbang
state of the art pada pemodelan sistem.
2.2

Pemodelan/Modelling
Pemodelan merupakan suatu hal yang tidak bisa dilepaskan dari

pembangunan aplikasi. Pemodelan merupakan proses awal perancangan suatu


aplikasi, proses memodelkan tentu bukan hal yang mudah. Namun seiring
berkembangnya teknologi, pemodelan yang memakan banyak waktu bisa
diselesaikan lebih cepat dan terorganisasi. Hal tersebut bisa terjadi dengan
bantuan aplikasi pemodelan. [1]
2.3

UML (Unified Modeling Language)


UML (Unified Modeling Language) adalah sebuah bahasa untuk

menentukan, visualisasi, kontruksi, dan mendokumentasikan artifact (Artifact


merupakan bagian dari informasi yang digunakan atau dihasilkan dalam suatu

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

Bagian bagian UML


Bagian-bagian utama dari UML terdiri dari view, diagram, model element,

dan general mechanism. [4]


1)
View
View digunakan untuk melihat sistem yang dimodelkan dari beberapa
aspek yang berbeda. View bukan melihat grafik, tapi merupakan suatu abstraksi
yang berisi sejumlah diagram.
Beberapa jenis view dalam UML antara lain: use case view, logical view,
component view, concurrency view, dan deployment view.
1.
Use case view
Mendeskripsikan fungsionalitas sistem yang seharusnya dilakukan sesuai
yang diinginkan external actors. Actor yang berinteraksi dengan sistem dapat
berupa user atau sistem lainnya.
Use case view digambarkan dalam use case diagrams dan dengan activity
diagrams. View ini digunakan terutama untuk pelanggan, perancang (designer),
pengembang (developer), dan penguji sistem (tester).
2.
Logical view
Mendeskripsikan bagaimana fungsionalitas dari sistem, struktur statis
(class, object, dan

relationship) dan kolaborasi dinamis

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.

View ini digambarkan dalam component view dan digunakan untuk


pengembang (developer).
4.
Concurrency view
Membagi sistem ke dalam proses dan prosesor. View ini digambarkan
dalam diagram dinamis (state, sequence, collaboration, dan activity diagram) dan
diagram implementasi (component dan deployment diagram) serta digunakan
untuk pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
5.
Deployment view
Mendeskripsikan fisik dari sistem seperti komputer dan perangkat (nodes)
dan bagaimana hubungannya dengan lainnya.
View ini digambarkan dalam deployment diagram dan digunakan untuk
pengembang (developer), pengintegrasi (integrator), dan penguji (tester).
2)

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

Konsep Dasar StarUML


Konsep dasar dari StarUML terdiri dari Model, View and Diagram,

Project dan Unit Module. [1]


1)

Model, View and Diagram


StarUML membuat perbedaan konseptual yang lebih jelas antara models,

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)

Project dan Unit Project


Project adalah unit manajemen dasar di dalam StarUML. Suatu project

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

masing-masing seperti yang dijelaskan pada tabel berikut ini.


Tabel 2.1 Struktur Project

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.

UML profile yang digunakan dalam projek.

b.

Unit file yang direferensi oleh projek.

c.

Informasi untuk semua model yang ada di dalam project.

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

Physical Data Model Manual

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 Rancangan PDM

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

menyimpan data int

admin

dengan jangkauan 2

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data string

Password

Varchar(200)

memasukkan

ukuran dinamis yang

username admin

dapat menyimpan

Nama kolom yang

sebanyak 30 karkater.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan

ukuran dinamis yang

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

menyimpan data int

konfirmasi

dengan jangkauan 4

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data char

mendeskripsikan

dengan jangkauan 8

no pemesanan
Nama kolom yang

karakter
Digunakan untuk

digunakan untuk

menyimpan data string

mendeskripsikan

ukuran dinamis.

nama pelanggan.
Nama kolom yang

Digunakan untuk

digunakan untuk

menyimpan data int

mendeskripsikan

dengan jangkauan 12

jumlah transfer.
Nama kolom yang

karakter
Digunakan untuk

digunakan untuk

menyimpan data teks

memasukkan

ukuran dinamis..

keterangan.
Nama kolom yang

Digunakan untuk

digunakan untuk

menyimpan data

memasukkan

tanggal.

tanggal.

Tabel konfirmasi pada database berfungsi untuk menyimpan data


konfirmasi. Table konfirmasi terdapat 6 field yaitu Id dengan tipe int size 4.
No_pemesanan dengan tipe char size 8. Nm_pelanggan dengan tipe varchar size
100. Jml_transfer dengan tipe int size 12. Keterangan dengan tipe text. Tanggal
dengan tipe date. Table ini id sebagai primary key.
Tabel 2.3 Tabel pemesanan
N
Nama Kolom
Tipe Data
o
1
No_pemesana
Char(8)

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

dinamis yang dapat

mendeskripsika

menyimpan

n nama

sebanyak 60

penerima
Nama kolom

karkater.
Digunakan untuk

yang

menyimpan data

digunakan

string ukuran

untuk

dinamis yang dapat

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

dinamis yang dapat

memasukkan

menyimpan

nama kota.

sebanyak 100

Nama kolom

karkater.
Digunakan untuk

yang

menyimpan data

digunakan

string ukuran

untuk

dinamis yang dapat

memasukkan

menyimpan

kode pos.
Nama kolom

sebanyak 6 karkater.
Digunakan untuk

yang

menyimpan data

digunakan

string ukuran

untuk

dinamis yang dapat

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.

Tabel konfirmasi pada database berfungsi untuk menyimpan data


konfirmasi. Table konfirmasi terdapat 10 field yaitu No_pemesanan dengan tipe
char(8). Kd_pelanggan dengan tipe char (6). Tgl_pemesanan dengan tipe date.
Nama_penerima dengan tipe varchar(60).

Alamat_lengkap

dengan

tipe

varchar(200). Kd_provinsi dengan tipe char(3). Kota dengan tipe varchar(100) .


Kode_pos dengan tipe varchar(6). No_telepon dengan tipe varchar(20).
Status_bayar dengan tipe Enum ('Pesan','Lunas','Batal'). Table ini no_pemesanan
sebagai primary key.

Tabel 2.4 Tabel pemesanan_item


No

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

menyimpan data int

pemesanan item

dengan jangkauan 4

Kode yang

karakter.
Digunakan untuk

digunakan pada

menyimpan data char

no_pemesanan

dengan jangkauan 8

Kode yang

karakter.
Digunakan untuk

digunakan pada

menyimpan data char

kd_barang

dengan jangkauan 5

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data int

memasukkan

dengan jangkauan 12

harga.
Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data int

mendeskripsikan

dengan jangkauan 3

jumlah

karakter.

pembayaran

Tabel pemesanan_item pada database berfungsi untuk menyimpan data


dari setail penyimpanan per item. Table pemesanan item terdapat 4 field yaitu Id
dengan tipe int(4). No_pemesanan dengan tipe char(8). Kd_barang dengan tipe
char (5). Harga dengan tipe int (12). Jumlah dengan tipe int (3). Table ini id
sebagai primary key.
Tabel 2.5 Tabel pelanggan
No

Nama Kolom

Tipe Data

Key

Kd_pelanggan

Char(6)

PK

Nm_pelanggan

Varchar(100)

Field
Kode yang

Keterangan
Tipe Data
Digunakan untuk

digunakan pada

menyimpan data char

kode pelanggan

dengan jangkauan 6

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan

ukuran dinamis yang

nm_pelanggan

dapat menyimpan

Kelamin

Email

No_telepon

Username

Password

Tgl_daftar

Nama kolom yang

sebanyak 100 karkater.


Data yang diinputkan

laki,

digunakan untuk

berupa status yaitu

perempuan)

memasukkan jenis

laki-laki,

kelamin.
Nama kolom yang

perempuan
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan

ukuran dinamis yang

email.

dapat menyimpan

Nama kolom yang

sebanyak 100 karkater.


Digunakan untuk

digunakan untuk

menyimpan data string

mendeskripsikan

ukuran dinamis yang

no telepon.

dapat menyimpan

Nama kolom yang

sebanyak 20 karkater.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan

ukuran dinamis yang

username

dapat menyimpan

pelanggan
Nama kolom yang

sebanyak 20 karkater.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan

ukuran dinamis yang

password

dapat menyimpan

pelanggan
Nama kolom yang

sebanyak 100 karkater.


Digunakan untuk

digunakan untuk

menyimpan data

memasukkan

tanggal.

Enum(laki-

Varchar(100)

Varchar(20)

Varchar(20)

Varchar(100)

Date

tanggal.

Tabel pelanggan pada database berfungsi untuk menyimpan data


pelanggan. Table pelanggan terdapat 8 field yaitu Kd_pelanggan dengan tipe char
(6). Nm_pelanggan dengan tipe varchar (100). Kelamin dengan tipe enum (lakilaki, perempuan). Email dengan tipe varchar (100). No_telepon dengan tipe
varchar (20). Username dengan tipe varchar(20). Password dengan tipe varchar
(100). Tgl_daftar dengan tipe date. Table ini kd_pelanggan sebagai primary key.
Tabel 2.6 Tabel provinsi
No

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

menyimpan data char

kode provinsi

dengan jangkauan 3

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan

ukuran dinamis yang

nm_provinsi.

dapat menyimpan

Nama kolom yang

sebanyak 100 karkater.


Digunakan untuk

digunakan untuk

menyimpan data int

memasukkan

dengan jangkauan 12

jumlah

karakter.

biaya_kirim.

Tabel provinsi pada database berfungsi untuk menyimpan data pelanggan.


Table provinsi terdapat 3 field yaitu Kd_provinsi dengan tipe char(3).
Nm_provinsi dengan tipe varchar(100). Biaya_kirim dengan tipe int(12). Pada
table ini kd_provinsi sebagai primary key.
Tabel 2.7 Tabel barang
No

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

menyimpan data char

kode barang

dengan jangkauan 5

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan nama

ukuran dinamis yang

barang

dapat menyimpan

Nama kolom yang

sebanyak 100 karkater.


Digunakan untuk

digunakan untuk

menyimpan data int

memasukkan harga

dengan jangkauan 12

modal dari barang.


Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data int

memasukkan harga

dengan jangkauan 12

jual dari barang.


Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data int

mendeskripsikan

dengan jangkauan 4

Keterangan

Text

stock
Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data text.

memasukkan
7

File_gambar

Kd_kategori

Varchar(100)

Char (4)

keterangan.
Nama kolom yang

Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan file

ukuran dinamis yang

gambar.

dapat menyimpan

Nama kolom yang

sebanyak 100 karkater.


Digunakan untuk

digunakan untuk

menyimpan data

memasukkan kode

chardengan jangkauan

kategori.

4 karakter.

Tabel kd_barang pada database berfungsi untuk menyimpan data


pelanggan. Table kd_barang terdapat 8 field yaitu Kd_barang dengan tipe char
(5). Nm_barang dengan tipe varchar (100). Harga_modal dengan tipe int (12).
Harga_jual dengan tipe int (12). Stock dengan tipe int (4). Keterangan dengan tipe
text. File_gambar dengan tipe varchar (100). Kd_kategori dengan tipe char (4).
Pada table ini kd_barang sebagai primary key.
Tabel 2.8 Tabel tmp_keranjang
No

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

menyimpan data int 5

tabel tmp

dengan jangkauan 5

keranjang.
Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data char

memasukkan

5 dengan jangkauan 5

kd_barang
Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data int 12

memasukkan

dengan jangkauan 12

harga.
Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data int

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 data char

menyimpan

dengan jangkauan 6

kd_pelanggan.

karakter.

Tabel tmp_keranjang pada database berfungsi untuk menyimpan data


tmp_keranjang. Table tmp_keranjang terdapat 6 field yaitu Id dengan tipe int(5).
Kd_barang dengan tipe char(5). Harga dengan tipe int (12). Jumlah dengan tipe
int (3). Tanggal dengan tipe date . Kd_pelanggan dengan tipe char (6). Table ini id
sebagai primary key.
Tabel 2.9 Tabel kategori
No

Nama Kolom

Tipe Data

Key

Kd_kategori

Char(4)

PK

Nm_kategori

Varchar(100)

Field
Kode yang

Keterangan
Tipe Data
Digunakan untuk

digunakan pada

menyimpan data char

kode kategori

dengan jangkauan 4

Nama kolom yang

karakter.
Digunakan untuk

digunakan untuk

menyimpan data string

memasukkan nama

ukuran dinamis yang

kategori

dapat menyimpan
sebanyak 100 karkater.

Tabel kategori pada database berfungsi untuk menyimpan data kategori.


Table kategori terdapat 2 field yaitu Kd_kategori dengan tipe char (4).
Nm_kategori dengan tipe varchar (100). Table ini kd_kategori sebagai primary
key.

BAB III
PEMBAHASAN
3.1

Langkah-Langkah Menggunakan StarUML Studi Kasus Sistem


Penjualan Banten Online
Langkah-langkah menggunakan StarUML dalam pembuatan sistem

penjualan banten online akan dijabarkan sebagai berikut.


1.
Proses Pembuatan Class Baru
Gambar 3.1 merupakan tampilan awal dari aplikasi software StarUML dan
proses pertama yang dilakukan adalah membuat class baru.

Gambar 3.1 Membuat Class Baru

Gambar 3.1 merupakan tampilan untuk membuat class baru. Langkah


pertama yang dilakukan adalah membuka menu File dan klik pada bagian
submenu New maka setelah itu akan terbentuk class yang kita ingin buat.
2.

Proses Pembuatan Class pada Sistem Penjualan Barang Online


Gambar 3.2 merupakan tampilan pada proses kedua yaitu pembuatan class

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.

Gambar 3.2 Membuat Class pada Sistem Penjualan Barang Online

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 Pengubahan UML Menjadi Kode Java


Gambar 3.3 merupakan tampilan pada proses ketiga yaitu pengubahan

UML untuk menghasilkan kode Java.

Gambar 3.3 Melakukan Pengubahan UML Menjadi Kode Java

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.4 Memilih Model Yang Akan Dijadikan Kode Java

Gambar 3.4 merupakan tampilan untuk memilih model yang akan


digunakan atau dijadikan untuk menghasilkan kode Java yang diinginkan.
Langkah selanjutnya adalah memilih folder atau tempat penyimpanan file Java.

Gambar 3.5 Memilih Tempat Penyimpanan Kode Java

Gambar 3.5 merupakan tampilan untuk memilih tempat penyimpanan


kode Java dari hasil pengubahan class UML sistem penjualan barang online. Kode
Java hasil pengubahan UML akan disimpan pada folder Documents.

Gambar 3.6 File Java Sistem Penjualan Barang Online

Gambar 3.6 merupakan tampilan file-file Java dari hasil pengubahan class
UML menjadi kode Java pada sistem penjualan barang online.
4.

Proses Pengubahan UML Menjadi Kode PHP


Gambar 3.7 merupakan tampilan pada proses ketiga yaitu pengubahan

UML untuk menghasilkan kode PHP.

Gambar 3.7 Melakukan Pengubahan UML Menjadi Kode PHP

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.

Gambar 3.8 Memilih Model Yang Akan Dijadikan Kode PHP

Gambar 3.8 merupakan tampilan untuk memilih model yang akan


digunakan atau dijadikan untuk menghasilkan kode PHP yang diinginkan.
Langkah selanjutnya adalah memilih folder atau tempat penyimpanan file PHP.

Gambar 3.9 Memilih Tempat Penyimpanan Kode PHP

Gambar 3.9 merupakan tampilan untuk memilih tempat penyimpanan


kode PHP dari hasil pengubahan class UML sistem penjualan barang online. Kode
PHP hasil pengubahan UML akan disimpan pada folder Pictures.

Gambar 3.10 File PHP Sistem Penjualan Barang Online

Gambar 3.10 merupakan tampilan file-file PHP dari hasil pengubahan


class UML menjadi kode PHP pada sistem penjualan barang online.
3.2

Aplikasi Menggunakan Bahasa PHP


Langkah selanjutnya setelah melakukan generate code PHP adalah

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'],

or die ("Database not Found, please contact administrator


system!");
?>
Kode Program 3.1 Koneksi Database

Kode Program 3.1 merupakan kode program untuk melakukan koneksi


pada database dagang_banten.
<table width="700" border="0" cellspacing="1" cellpadding="3">
<tr>
<td align="right"><h1>DATA KATEGORI</h1></td>
</tr>
<tr>
<td>&nbsp;</td>
</tr>
<tr>
<td
align="right"><a
href="?open=Kategori-Add"
target="_self"><img
src="../images/btn_add_data.png"
border="0" /></a></td>
</tr>
<tr>
<td>
<table
class="table-list"
width="100%"
border="0"
cellspacing="1" cellpadding="3">
<tr>
<th width="5%" bgcolor="#CCCCCC" scope="col">No</th>
<th width="79%" bgcolor="#CCCCCC" scope="col">Nama
Kategori </th>
<th colspan="2" bgcolor="#CCCCCC" scope="col">Tools</th>
</tr>
<?php
$mySql = "SELECT * FROM kategori ORDER BY nm_kategori ASC";
$myQry = mysql_query($mySql, $koneksidb)
or die ("Query
salah : ".mysql_error());
$nomor = 0;
while ($myData = mysql_fetch_array($myQry)) {
$nomor++;
$Kode = $myData['kd_kategori'];
?>
<tr>
<td align="center"><?php echo $nomor; ?></td>
<td><?php echo $myData['nm_kategori']; ?></td>
<td width="8%" align="center"><a href="?open=KategoriEdit&Kode=<?php
echo
$Kode;
?>"
target="_self"
alt="Edit
Data">Edit</a></td>
<td width="8%" align="center"><a href="?open=KategoriDelete&Kode=<?php echo $Kode; ?>" target="_self" alt="Delete
Data" onclick="return confirm('ANDA YAKIN INGIN MENGHAPUS DATA
KATEGORI INI ... ?')">Delete</a></td>
</tr>
<?php } ?>
</table></td>
</tr>
</table>
Kode Program 3.2 Data Kategori

Kode Program 3.2 merupakan kode program untuk menampilkan data


kategori yang tersimpan pada database dagang_banten.

Gambar 3. 11 Tampilan Data Kategori

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("'","&acute;",$txtNama);
karakter petik (')
// Validasi form
$pesanError = array();
if (trim($txtNama)=="") {
$pesanError[] = "Data
boleh kosong !";
}

<b>Nama

//

Membuang

Kategori</b>

tidak

// Validasi Nama Kategori, tidak boleh ada yang kembar


(namanya sama)
$cekSql
="SELECT
*
FROM
kategori
WHERE
nm_kategori='$txtNama'";
$cekQry
=mysql_query($cekSql, $koneksidb) or die ("Eror
Query".mysql_error());
if(mysql_num_rows($cekQry)>=1){
$pesanError[] = "Maaf, Kategori <b> $txtNama </b>
sudah ada, ganti dengan yang nama berbeda";
}
# JIKA ADA PESAN ERROR DARI VALIDASI
if (count($pesanError)>=1 ){
echo "<div class='mssgBox'>";
echo "<img src='../images/attention.png'> <br><hr>";
$noPesan=0;

foreach ($pesanError as $indeks=>$pesan_tampil)


{

$noPesan++;
echo
"&nbsp;&nbsp;
$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>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="btnSimpan" value=" SIMPAN "
style="cursor:pointer;"></td>
</tr>
</table>
</form>
Kode Program 3.3 Menambah Data Kategori

Kode Program 3.3 merupakan kode program untuk melakukan


penambahan data pada data kategori.

Gambar 3.12 Tampilan Tambah Data Kategori

Gambar 3.12 merupakan tampilan untuk melakukan penambahan data


pada bagian kategori. Terdapat 2 field yaitu kode dan nama kategori. Contohnya
yaitu dengan memasukkan nama kategori dengan nama BANTEN D, setelah itu
klik pada tombol SIMPAN untuk menyimpan data.

Gambar 3.13 Tampilan Hasil Tambah Data Kategori

Gambar 3.13 merupakan tampilan dari hasil penambahan data kategori.


Terdapat 4 record dari hasil penambahan data kategori yaitu BANTEN A,
BANTEN B, BANTEN C, dan BANTEN D.
<?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("'","&acute;",$txtNama);
karakter petik (')
// Validasi form
$pesanError = array();
if (trim($txtNama)=="") {
$pesanError[] = "Data
boleh kosong !";
}

<b>Nama

//

Membuang

Kategori</b>

tidak

// Validasi Nama Kategori, tidak boleh ada yang kembar


(namanya sama)
$txtNamaLama
= $_POST['txtNamaLama'];
$cekSql
="SELECT
*
FROM
kategori
WHERE
nm_kategori='$txtNama' AND NOT(nm_kategori='$txtNamaLama')";
$cekQry
=mysql_query($cekSql, $koneksidb) or die ("Eror
Query".mysql_error());
if(mysql_num_rows($cekQry)>=1){
$pesanError[] = "Maaf, Kategori <b> $txtNama </b>
sudah ada, ganti dengan yang nama berbeda";
}

# JIKA ADA PESAN ERROR DARI VALIDASI


if (count($pesanError)>=1 ){
echo "<div class='mssgBox'>";
echo "<img src='../images/attention.png'> <br><hr>";
$noPesan=0;
foreach ($pesanError as $indeks=>$pesan_tampil)

$noPesan++;
echo
"&nbsp;&nbsp;
$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>&nbsp;</td>
<td>&nbsp;</td>
<td><input type="submit" name="btnSimpan" value=" SIMPAN "
style="cursor:pointer;"></td>
</tr>
</table>
</form>
Kode Program 3.4 Ubah Data Kategori

Kode Program 3.4 merupakan kode program yang digunakan untuk


melakukan pengubahan data kategori pada sistem penjualan banten online.

Gambar 3.14 Tampilan Ubah Data Kategori

Gambar 3.14 merupakan tampilan untuk melakukan pengubahan data pada


bagian kategori. Terdapat 2 field yaitu kode dan nama kategori. Contohnya yaitu
dengan mengubah nama kategori dengan nama BANTEN DA, setelah itu klik
pada tombol SIMPAN untuk menyimpan data.

Gambar 3.15 Hasil Ubah Data Kategori

Gambar 3.15 merupakan tampilan dari hasil pengubahan data kategori.


Terdapat 4 record dari data kategori yaitu BANTEN A, BANTEN B, BANTEN C,
dan BANTEN DA. Perubahan terjadi pada nama kategori yang sebelumnya
bernama BANTEN D menjadi BANTEN DA.
<?php
include_once "../library/inc.sesadmin.php";
// Periksa data Kode pada URL
if(empty($_GET['Kode'])){
echo "<b>Data yang dihapus tidak ada</b>";
}
else {
// Hapus data sesuai Kode yang dikirim di URL
$Kode = $_GET['Kode'];
$mySql
=
"DELETE
FROM
kategori
WHERE
kd_kategori='$Kode'";
$myQry
= mysql_query($mySql, $koneksidb) or die ("Eror
hapus data".mysql_error());
if($myQry){
echo "<meta http-equiv='refresh' content='0; url=?
open=Kategori-Data'>";
}
}
?>
Kode Program 3.5 Menghapus Data Kategori

Kode Program 3.5 merupakan kode program yang digunakan untuk


melakukan penghapusan data kategori pada sistem penjualan banten online.

Gambar 3.16 Peringatan Untuk Menghapus Data Kategori

Gambar 3.16 merupakan tampilan peringatan pada saat melakukan klik


pada tombol DELETE pada bagian data kategori. Tampilan peringatan terdapat
pertanyaan ANDA YAKIN INGIN MENGHAPUS DATA KATEGORI INI?,
jika yakin untuk menghapus lakukan klik pada tombol OKE, jika tidak yakin
untuk menghapus lakukan klik pada tombol BATAL.

Gambar 3.17 Tampilan Hasil Hapus Data Kategori

Gambar 3.17 merupakan tampilan dari hasil penghapusan data kategori.


Terdapat 3 record yang tersisa dari data kategori yaitu BANTEN A, BANTEN B,
BANTEN C.
3.3

Aplikasi Menggunakan Bahasa Java


Langkah selanjutnya setelah melakukan generate code Java adalah

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();
}
/**

* This method is called from within the constructor to


initialize the form.
* WARNING: Do NOT modify this code. The content of this
method is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated
Code">
private void initComponents() {
jLabel1 = new javax.swing.JLabel();
KodeJenis = new javax.swing.JTextField();

jLabel2 = new javax.swing.JLabel();


Jenis = new javax.swing.JTextField();
jScrollPane1 = new javax.swing.JScrollPane();
table = new javax.swing.JTable();
AddNew = new javax.swing.JButton();
Save = new javax.swing.JButton();
Update = new javax.swing.JButton();
Delete = new javax.swing.JButton();
Cancel = new javax.swing.JButton();
Close = new javax.swing.JButton();
setDefaultCloseOperation(javax.swing.WindowConstants.EXIT
_ON_CLOSE);
jLabel1.setText("Kode Jenis");
jLabel1.setToolTipText("");
jLabel2.setText("Jenis Barang");
table.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
{null, null, null, null},
{null, null, null, null},
{null, null, null, null},
{null, null, null, null}
},
new String [] {
"Title 1", "Title 2", "Title 3", "Title 4"
}
));
table.addMouseListener(new java.awt.event.MouseAdapter()
{

public void mouseClicked(java.awt.event.MouseEvent

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)
{

// TODO add your handling code here:


if (evt.getClickCount()==1) {
Tampil();
}

private void DeleteActionPerformed(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 = "Delete From kategori Where
kd_kategori='"+KodeJenis.getText().toString()+"'";
stt.executeUpdate(SQL);
data[0] = KodeJenis.getText();
data[1] = Jenis.getText();
tableModel.removeRow(row);

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

Kode Program 3.6 merupakan kode program untuk menampilkan form


bagian kategori. Terdapat 2 label dan edit text, 1 tabel, dan 6 button. Label terdiri
dari 2 bagian yang masing-masing bernama Kode Jenis dan Jenis Barang.
Button terdiri dari 6 bagian yang masing-masing bernama Add New, Save,
Update, Delete, Cancel, dan Close.

Gambar 3.18 Tampilan Add New

Gambar 3.18 merupakan tampilan saat memasukkan data, dimana contoh


data yang dimasukkan dengan Kode = 005 dan Jenis Barang = Banten E,
kemudian klik button Save.

Gambar 3.19 Tampilan Untuk Menyimpan Data

Gambar 3.19 merupakan tampilan setelah data yang telah ditambahkan


sebelumnya masuk ke dalam database.

Gambar 3.20 Tampilan Update

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.21 Tampilan Melakukan Update Data

Gambar 3.21 merupakan tampilan setelah data yang telah diubah


sebelumnya masuk ke dalam database.

Gambar 3.22 Tampilan Untuk Hapus Data

Gambar 3.22 merupakan tampilan setelah menekan tombol Button pada


data dengan Kode = 005 dan Jenis = Banten E.

Gambar 3.23 Tampilan Untuk Close

Gambar 3.23 merupakan tampilan saat akan menutup program aplikasi


penjualan.

Gambar 3.24 Tampilan Insert Data Kosong

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]

Septiadi, Asep. 2013. StarUML Modeling Tools StarUML Pengenalan


https://www.academia.edu/12518065/StarUML_Modeling_Tools_StarUM
L_Pengenalan [Online]. Diakses tanggal 25 April 2016.

[2]

Almeida, J. P. dkk.. (2009). Model-Driven Service-Oriented Architectures.


International Journal Business Process Integration and Management, Vol.4,
No.1, 2-4.

[3]

StarUML2. http://staruml.io/ [Online]. Diakses tanggal 25 April 2016.

[4]

Ikhwan, Arief. UML. http://ariefikhwan.web.ugm.ac.id/?tag=pengertianuml [Online]. Diakses tanggal 25 April 2016.

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
}
/**
*
*/

public void get_pegawai() {


// TODO implement here
}
/**
*
*/
public void update() {
// TODO implement here
}
/**
*
*/
public void delete() {
// TODO implement here
}
}

Anda mungkin juga menyukai