22
BAB 2 LANDASAN TEORI
2.1.
Pengukuran Waktu Pengukuran waktu adalah pekerjaan mengamati dan mencatat waktu-waktu
kerjanya baik setiap elemen ataupun siklus dengan menggunakan alat-alat pengukuran waktu. Setelah melakukan pengukuran waktu maka hal berikutnya yang harus dilakukan adalah melakukan pengujian kenormalan data, keseragaman data, dan kecukupan data. (Sutalaksana, Anggawisastra, & Tjakraatmadja, 1979, p. 131) •
Uji Keseragaman Uji keseragaman data ini dibutuhkan untuk mengatasi perubahan yang terus terjadi dimana perubahan-perubahan yang terjadi tetap harus dalam batas kewajaran. (Sutalaksana, Anggawisastra, & Tjakraatmadja, 1979) -
Masukan data-data ke dalam subgrup-subgrup
-
Hitung nilai rata-rata masing-masin subgrup (x)
-
Hitung nilai rata-rata dari rata-rata subgrup ( )
-
Hitung nilai standar deviasi berdasarkan pada persamaan berikut ∑
-
(1)
Hitung standar deviasi dari distribusi harga rata-rata subgrup dengan: √
(2)
n adalah jumlah subgrup. -
Hitung batas kontrol atas (BKA) dan batas kontrol bawah (BKB)
23 BKA =
+ Zσ
(3)
BKB =
– Zσ
(4)
Untuk tingkat ketelitian 5% dan tingkat keyakinan 95 % maka nilai Z = 2 dan nilai S = 0.05. •
Uji Kecukupan Data Untuk melakukan penghitungan atas berapa banyak data yang diperlukan untuk pengukuran. Uji kecukupan data ini dapat dilakukan dengan rumus: N’ =
/
∑
∑
∑
(5)
N = Jumlah pengamatan aktual yang dilakukan N’ = Jumlah pengamatan teoritis yang diperlukan Xi = waktu penyelesaian Bila nilai N (data aktual) lebih besar daripada N’ (data teoritis) maka pengumpulan data dinilai cukup dan sudah dapat mewakili populasi. (Sutalaksana, Anggawisastra, & Tjakraatmadja, 1979) •
Uji Kenormalan data Untuk mengetahui apakah data-data yang dikumpulkan apakah mengikuti distribusi normal atau tidak maka dilakukan pengujian dengan metode Goodness of Fit (uji Kebaikan Suai). Langkah-langkah yang dilakukan dalam pengujian kenormalan data adalah: a. Mengelompokkan data-data yang didapat kedalam data kelompok dengan cara: Range = data terbesar – data terkecil
(6)
24 Kelas : k = 1 + 3.33 log n dimana n adalah banyaknya data pengamatan
(7)
Lebar kelas interval =
(8)
b. Menetapkan nilai rata-rata dan standar deviasi ∑
Nilai rata-rata : Standard deviasi = σ =
∑
(9) (10)
c. Mencari nilai Z untuk setiap kelas yang ada dengan cara: Z=
Batas Kelas atas interval-Nilai rata-rata
(11)
d. Menetapkan nilai luas kurva normal Luas = p(zi < Z < z2) = P(Z< z2) - P(Z< z1)
(12)
Nilai dari Z bisa dilihat pada tabel kurva normal pada lampiran. e. Menetapkan nilai frekuensi harapan (ei) ei = luas x N
(13)
Nilai dari ei tidak boleh lebih kecil dari 5 maka jika nilai ei masih lebih kecil dari 5 maka akan digabungkan dengan nilai ei lainnya hingga berjumlah lebih dari 5. f. Menghitung nilai khi-kuadrat ∑ Dimana k = jumlah interval kelas Oi = frekuensi pengamatan Ei = frekuensi harapan
(14)
25 Banyaknya derajat bebas yang berkaitan dengan sebaran khi-kuadrat yang ada berdasarkan pada dua faktor yakni banyaknya sel dalam percobaan yang bersangkutan dan banyaknya besaran yang diperoleh dari data pengamatan yang diperlukan dalam perhitungan frekuensi harapannya. Derajat kebebasan ini memiliki rumus ν = k – m – 1 dimana k adalah jumlah subgrup dan nilai m = 2 untuk data distribusi normal. Jika nilai dari Χ2hitung < Χ2tabel maka data tersebut terdistribusi normal. (Walpole, 1995, p. 326) Setelah melakukan uji keseragaman, kecukupan dan kenormalan data maka akan menghitung waktu baku, dimana waktu baku ini didapat dari perhitungan waktu siklus dan waktu normal. •
Hitung waktu siklus: Ws =
∑
(15)
Dimana Xi adalah data-data dari nilai pengukuran, sedangkan n adalah banyaknya
jumlah
data
pengukuran.
(Sutalaksana,
Anggawisastra,
&
Tjakraatmadja, 1979, p. 137) •
Hitung waktu normal: Waktu diperoleh dengan cara mengalikan waktu rata-rata (Ws) dengan performance rating. Rumus perhitungan waktu normal adalah: Waktu Normal = Waktu siklus x (1+ Rating Factor)
(16)
Rating Factor adalah faktor yang diperoleh dengan membandingkan kecepatan bekerja daripada seseorang(operator) dengan kecepatan normal menurut ukuran si peneliti. Performance rating (p) disebut juga faktor penyesuaian, faktor ini diperhitungkan jika pengukur berpendapat bahwa operator bekerja dengan
26 kecepatan tidak wajar, jika pekerja bekerjanya terlalu cepat >1, lambat <1, kalau normal =1. Untuk penyesuaian menggunakan sistem “Westinghouse System of Rating” yang dipengaruhi oleh 4 faktor yaitu skill (keterampilan), effort (usaha), conditions (kondisi kerja), consystency (konsistensi). Untuk lebih jelas mengenai tabel westinghouse dapat dilihat di lampiran. (Ginting, 2009, p. 257) •
Hitung Waktu Baku: Waktu baku adalah waktu yang dibutuhkan secara wajar oleh seorang pekerja normal untuk menyelesaikan suatu pekerjaan yang dijalankan dalam sistem kerja terbaik. Waktu standard di peroleh dengan perkalian antara waktu normal dengan persentase kelonggaran rumus perhitungan waktu standar yaitu: Waktu Baku = Waktu normal x
%
(17)
Menurut Ginting (2009) berdasarkan pada buku karangan Barnes (Motion and Time Study: Design and Measurement Work, 1968) Dalam menentukan waktu standar diperlukan suatu kelonggaran waktu, kelonggaran terbagi dalam 3 bagian yaitu: -
Personal Allowance, yaitu kelonggaran yang diberikan untuk memenuhi kebutuhan pribadi pekerja, seperti ke WC, ibadah, dan hal-hal lainnya.
-
Delay Allowance, yaitu waktu yang diberikan pada pekerja sebagai akibat dari keadaan yang tidak terduga yang dapat memperlambat jalannya pekerjaan.
-
Fatique Allowance, yaitu kelonggaran diberikan untuk memperpanjang datangnya keletihan (fatique).
27 2.2.
Peta Proses Operasi Peta proses operasi merupakan suatu diagram yang menggambarkan langkah-
langkah proses yang akan dialami bahan (bahan-bahan) baku mengenai urutan-urutan proses operasi dan pemeriksaan sejak dari awal sampai menjadi produk jadi utuh maupun sebagai komponen. (Sutalaksana, Anggawisastra, & Tjakraatmadja, 1979, p. 21) Menurut Sutalaksana et al, (1979, p. 21) adapun kegunaan dari peta proses operasi ini adalah untuk: 1. Untuk mengetahui kebutuhan akan mesin dalam proses perakitan komponen 2. Untuk memperkirakan kebutuhan akan bahan baku 3. Sebagai alat bantu untuk menentukan tata letak pabrik 4. Sebagai alat bantu untuk melakukan perbaikan cara kerja yang sedang dipakai. Menurut Sutalaksana et al, (1979, p. 21) dalam pembuatan peta proses operasi ini, ada beberapa aturan dasar yang perlu diikuti yakni: 1. Pada baris paling atas perlu dituliskan PETA PROSES OPERASI sebagai kepala gambar yang diikuti dengan identifikasi kerja lainnya seperti nama objek, nomor gambar kerja, dan lain- lain. 2. Material yang akan diproses diletakkan diatas garis horizontal, yang menunjukkan bahwa material tersebut masuk ke dalam proses. 3. Lambang-lambang ditempatkan dalam arah vertikal yang menunjukkan terjadinya perubahan proses. 4. Penomoran terhadap suatu kegiatan operasi diberikan secara berurutan sesuai degnan urutan operasi yang dibutuhkan untuk pembuatan produk tersebut atau sesuai dengan proses yang terjadi
28 5. Penomoran terhadap suatu kegiatan pemeriksaan diberikan secara tersendiri dan prinsipnya sama degan penomoran untuk kegiatan produksi
2.3.
Peramalan Untuk membuat peramalan permintaan, harus menggunakan suatu metode
tertentu. Pada dasarnya, semua metode peramalan memiliki ide yang sama, yaitu menggunakan data masa lalu untuk memperkirakan atau memproyeksikan data di masa yang akan datang. Berdasarkan tekniknya metode peramalan dapat dikategorikan ke dalam metode kualitatif dan metode kuantitatif. (Baroto, 2002, p. 27) Metode kualitataif biasanya digunakan bila tidak ada atau sedikit data masa lalu yang tersedia. Sedangkan metode kuantitaif, suatu set data historis (masa lalu) digunakan untuk mengekstrapolasi (meramalkan) permintaan masa depan. Ada dua kelompok besar metode kuantitatif yaitu metode “Time Series” dan metode “Non Time Series” Beberapa contoh metode yang digunakan untuk time series adalah metode free hand, metode moving average, metode exponential smoothing, metode regresi linear sederhana, metode winter, dan metode lainnya. (Baroto, 2002, p. 27) Terdapat empat jenis pola permintaan pada time series yaitu pola trend, pola musiman, pola siklikal, dan pola eratik/random. Pola trend memiliki pola data permintaan yang cenderung memiliki gerakan menurunan atau kenaikan jangka panjang. Pola Musiman memiliki data yang berfluktuasi, namun fluktuasi tersebut akan berulang dalam interval tertentu dan biasanya dipengaruhi oleh musim. Pola siklikal memiliki pola yang berfluktuasi yang membentuk pola siklus. Pola Random memiliki pola data yang tidak bisa digambarkan dengan pola lainnya. (Baroto, 2002, pp. 32-34)
29 Metode exponential smoothing adalah suatu metode populer untuk peramalan time series dengan pola data siklis. Formulasi single exponential smooting ini adalah: αf Dimana
1
α
(18)
= perkiraan permintaan pada periode t α = sesaut nilai > 0 dan < 1 yang ditentukan secara subjektif
ft = permintaan aktual pada periode t = perkiraan permintaan periode t - 1
2.4.
Penjadwalan
2.4.1. Konsep Dasar Penjadwalan Penjadwalan adalah pengurutan pembuatan / pengerjaan produk secara menyeluruh yang dikerjakan pada beberapa buah mesin. Dengan demikian masalah penjadwalan senantiasa melibatkan pengerjaan sejumlah komponen yang sering disebut dengan istilah ‘job’. Job sendiri merupakan komposisi dari sejumlah elemen-elemen dasar yang disebut dengan aktivitas atau operasi. (Ginting, 2009, p. 1) Dua elemen penting dalam penjadwalan adalah urutan (sequence) job yang memberikan solusi optimal dan pengalokasian sumber daya (resources). Karakteristik dari sumberdaya adalah kapasitas kualitatif dan kuantitatif. Pekerjaan (job order) yang diterima diuraikan dalam bentuk kebutuhan akan sumber daya, waktu proses, waktu dimulai dan waktu berakhirnya proses. (Ginting, 2009, p. 7) Menurut Ginting (2009, p. 2) berdasarkan pada Bedworth (1982), beberapa tujuan dari aktivitas penjadwalan adalah:
30 •
Meningkatkan penggunaan sumberdaya atau mengurangi waktu tunggunya, sehingga total waktu proses dapat berkurang dan produktivitas dapat meningkat.
•
Mengurangi persediaan barang setengah jadi atau mengurangi sejumlah pekerjaan yang menunggu dalam antrian ketika sumberdaya yang ada masih mengerjakan tuga yang lain.
•
Mengurangi beberapa kelambatan pada pekerjaan yang mempunyai batas waktu penyelesaian sehingga akan meminimasi penalty cost atau biaya keterlambatan
•
Membantu pengambilan keputusan mengenai perencanaan kapasitas pabrik dan jenis kapasitas yang dibutuhkan sehingga penambahan biaya yang mahal dapat dihindarkan
2.4.2. Definisi Dalam Penjadwalan Beberapa definisi yang digunakan dalam penjadwalan mesin 1. Processing time (ti) Adalah waktu yang dibutuhkan untuk mngerjakan suatu pekerjaan. Dalam waktu proses ini sudah termasuk waktu yang dibutuhkan untuk persiapan dan pengaturan (set-up) selama proses berlangsung. 2. Due-date (di) Adalah batas waktu dimana suatu operasi terakhir dari suatu pekerjaan harus selesai. 3. Slack time (SLi) Adalah waktu tersisa yang muncul akibat dari waktu prosesnya lebih kecil dari due-date-nya. SLi = di - ti 4. Flow time (Fi)
31 Adalah rentang waktu antara satu titik dimana tugas tersedia untuk diproses dengan suatu titik ketika tugas tersebut selesai. 5. Completion time (Ci) Adalah waktu yang dibutuhkan untuk menyelesaikan pekerjaan mulai dari saat terseduianya pekerjaan (t=0) sampai pada pekerjaan tersebut selesai dikerjakan. 6. Lateness (Li) Adalah selisih antara completion time (Ci) dengan due-date-nya (di). 7. Tardiness (Ti) Adalah ukuran waktu terlambat yang bernilai positif jika suatu pekerjaan dapat diselesaikan lebih cepat dari due-date-nya, pekerjaan tersebut akan memiliki keterlambatan yang negatif. 8. Makespan Adalah total waktu penyelesaian pekerjaan-pekerjaan mulai dari urutan pertama yang dikerjakan pada mesin atau work center pertama sampai kepada urutan pekerjaan terakhir pada mesin atau work center terakhir. 9. Heuristic Prosedur penyelesaian suatu masalah atau aturan ibu jari (rule of thumb) yang ditunjukkan untuk memproduksi hasil yang baik tetpai tidak menjamin hasil yang optimal.
2.4.3. Penjadwalan Flow Shop dan Hybrid Flow Shop Dalam bukunya Ginting (2009, p. 47), menurut Baker (1974) penjadwalan Flow Shop merupakan suatu pergerakan unit-unit yang terus-menerus melalui suatu rangkaian stasiun-stasiun kerja yang disusun berdasarkan produk.
32 Hybrid Flow Shop adalah generalisasi dari permasalahan flow shop klasik dengan adanya beberapa mesin paralel setiap stage atau tahap dari suatu proses. (Oguz, Janiak, & Lichtenstein, 2001, p. 477) Menurut Ruiz & Rodriguez (2010, p. 1) Hybrid flow shop merupakan lingkungan manufakturing secara umum dimana sejumlah n job akan diproses pada m stage/tahap secara berurutan. Ada beberapa karakteristik yang sama untuk hybrid flow shop yakni: -
Jumlah tahapan proses m minimal dua buah
-
Setiap tahapan memiliki M(k) ≥ 1 mesin dalam bentuk pararel dan paling tidak di salah satu stage M(k) > 1.
-
Semua job diproses mengikuti alur produksi yang sama seperti stage 1, stage 2, sampai dengan stage m. Sebuah job mungkin saja melewati beberapa stage dimana job ini tetap diproses paling tidak di salah satu stage tersebut.
2.4.4. Algoritma Nawaz, Enscore dan Ham (NEH) Algoritma Nawaz, Enscore, dan Ham (NEH) ini merupakan metode yang dikembangkan pada tahun 1983. Metode ini juga disebut metode Incremental Construction Algorithms,yang telah mendapatkan penghargaan sebagai metode heuristik terbaik dalam permutation Flow-Shop Sequencing Problem (PFSP). (Ginting, 2009, p. 96) Untuk penjadwalan NEH untuk n job terhadap m mesin dilakukan dengan langkah-langkah: A. Langkah 1 a. Jumlahkan waktu proses setiap job
33 b. Urutkan job-job menurut jumlah waktu prosesnya dimulai dari yang terbesar hingga yang terkecil c. Hasil dari urutan ini disebut juga dengan daftar pengurutan job-job B. Langkah 2 a. Set k = 2 b. Ambil job yang menempati urutan pertama dan kedua dari daftar pengurutan job-job. c. Buat dua buah alternatif calon urutan parsial baru d. Alokasikan pada mesin pertama dari waktu job terkecil dari kedua job yang telah dipilih. e. Apakah kedua job ini dilanjutkan ke job berikutnya? f. Lanjutkan perhitungan sampai mendapatkan nilai makespan dan mean flow time dan total flow time g. Pilih calon urtan parsial baru yang memiliki makespan parsial terkecil. Jika ada calon urutan parsial baru yang memiliki makespan parsial terkecil yang sama, pilihlah calon urutan parsial yang memiliki nilai total flow time terkecil. h. Calon urutan parsial baru yang terpilih menjadi urutan parsial baru i. Coret job yang telah dialokasikan dari daftar pegnurutan job C. Langkah 3 a. Apakah k = n? Jika tidak maka set k = k + 1 b. Ambil job yang menempati urutan pertama dari daftar pengurutan job. c. Hasilkan sebanyak k calon urutan parsial yang baru dengan memasukkan job yang diambil ke dalam setiap slot urutan parsial sebelumnya
34 d. Hitung setiap makespan parsial dan total flow time parsial dari calon urutan parsial yang baru e. Pilih calon urtan parsial baru yang memiliki makespan parsial terkecil. Jika ada calon urutan parsial baru yang memiliki makespan parsial terkecil yang sama, pilihlah calon urutan parsial yang memiliki nilai total flow time terkecil. f. Calon urutan parsial baru yang dipilih menjadi urutan parsial baru g. Coret job yang telah diambil dari daftar pengurutan job h. Periksa apakah k = n. jika ya lanjutkan ke langkah 4 jika tidak lanjutkan ke langkah 3 D. Langkah 4 a. Urutan parsial baru menjadi urutan final dan stop.
2.4.5. Ant Colony Optimization Algoritma semut pertama kali dikemukakan oleh Dorigo dan kawan-kawannya dalam penyelesaiian permasalah tugas ganda. Algoritma ini pada awalnya dibangun berdasarkan pada pengamatan terhadap koloni semut. Dimana para koloni semut ini dapat menemukan makanan sumber makanan yang paling dekat dengan sarang para semut. (Berlianty & Arifin, 2010, p. 61) Pada dasarnya, pada saat semut mencari makan maka para semut akan meninggalkan jejak pheromone sepanjang jalannya. Semakin tinggi konsentrasi pheromone itu maka akan semakin banyak semut yang melewati jalur tersebut. Dan karena mengikuti jalur pheromone ini dapat membuat para semut untuk menemukan
35 jalur paling singkat. Hal ini dapat terlihat pada gambar 2.1 (Berlianty & Arifin, 2010, p. 61)
Gambar 2. 1 Jalur Semut pada saat mencari lintasan terpendek Sumber: Berliaty & Arifin, 2010, p. 63
2.4.6. Proposed Ant Colony Optimization (PACO) Berdasarkan pada Rajendran & Ziegler (2004) salah pengembangan dari metode ant colony optimization yang memberikan hasil yang baik adalah proposed ant colony optimization (PACO) dimana metode ini menunjukkan hasil yang lebih optimal untuk job yang banyak dan juga dengan jumlah mesin yang lebih banyak. Pada saat penggunaannya, PACO ini menggunakan setiap semut untuk setiap iterasi. Dalam mengembangkan struktur dari ACO maka Rajendran & Ziegler (2004, p. 428) mengusulkan struktur umum daripada ACO adalah sebagai berikut: Step 1: Initialize the pheromone trails and parameters Step 2: While (termination condition not met) do the following Construct a solution
36 Improve the solution by local search Update the pheromone trail or trail intensities Step 3: Return the best solution found Dalam jurnal Rajendran & Ziegler (2004, p. 427) perhitungan algoritma semut, menggunakan beberapa notasi matematis seperi berikut: -
tij merupakan waktu proses job i di mesin j,
-
n merupakan jumlah job yang akan dijadwalkan,
-
m merupakan jumlah mesin yang digunakan,
-
σ merupakan urutan job yang sudah dijadwalkan dari n job; partial sequence,
-
q (σ , j ) merupakan waktu penyelesaian partial sequence σ di mesin j,
-
q(σ i , j ) merupakan waktu penyelesaian dari job i di mesin j, ketika job diaplikasikan ke partial sequence σ .
Untuk menghitung waktu mulai dan waktu selesai pengerjaan job pada mesinmesin, digunakan perhitungan sebagai berikut: Inisialisasi Nilai q(σ i ,0) = 0 For j=1 to m do
q(σ i , j ) = max {q (σ i −1 , j ); q (σ i , j − 1)} + t ij Ketika semua job sudah dijadwalkan, nilai makespan didapat dari: M= max {Cim , i = 1,2,..., n; m = 1,2,..., m} Tahap inisialisasi trails and parameters pertama kali dikerjakan dengan algoritma NEH. Setelah didapatkan sequence awal dari algoritma NEH, perhitungan dilanjutkan ke tahap inisialisasi parameter dengan menggunakan rumus PACO, sebagai berikut:
37
Set τik = (1/Zbest), jika (|position job i –k| +1) ≤
n 4
= (1/2* Zbest ), jika (|position job i –k| +1) ≤
n 2
= (1/4* Zbest ), jika (|position job i –k| +1) >
n 2
(19)
Set Tik = ∑ q =1τ ik k
Setelah langkah di atas dikerjakan, perhitungan dilanjutkan ke tahap penentuan ant
sequence. Pertama-tama tentukan bilangan acak (u) yang berada dalam range [0,1]: -
jika u ≤ 0.4, pilih job pertama yang belum dijadwalkan dalam sequence sebelumnya,
-
jika u ≤ 0.8, pilih 1 job dari 5 job pertama yang belum dijadwalkan yang memiliki nilai Tik paling besar,
-
selain itu, pilih job yang memiliki nilai Pik terbesar dengan rumus: Pik =
Tik , dimana l adalah job yang belum dijadwalkan. ∑ Tik
(20)
l
Ketiga poin di atas dilakukan berulang-ulang sampai semua job yang belum dijadwalkan selesai dijadwalkan. Setelah itu, dilakukan job index based local search untuk mendapatkan solusi yang paling optimal. Metode ini menggunakan prinsip
insertion dalam pelaksanaannya dengan mengubah urutan yang ada sekarang tanpa mengubah urutan relatif dari posisi job lainnya. Prosedurnya adalah sebagai berikut:
For i = 1 to n For k = 1 to n If k ≠ i
38
Then Masukkan job I pada posisi k dengan tidak merubah urutan relatif dari
job yang lain dan hitung nilai makespannya. Pilih urutan (sequence) yang memiliki nilai makespan terkecil dari (n-1) jumlah urutan yang didapat. Bila terdapat nilai makespan yang sama, maka hitung total
flowtime dan pilih total flowtime dengan nilai terkecil. Jika urutan yang baru berbeda dengan urutan sebelumnya maka urutan yang baru akan menggantikan urutan yang lama. Sampai tahap ini, iterasi pertama telah selesai. Sedangkan untuk iterasi kedua dilakukan tahap updating of trail intensities. Dalam PACO, memperbarui intensitas jejak tidak hanya berdasarkan urutan yang dihasilkan setelah penerapan ketiga dari index job berdasarkan prosedur local search pada ant-sequence, tetapi juga pada jarak relatif antara posisi yang diberikan dan posisi
job i dalam urutan yang dihasilkan. Intensitas jejak diperbarui sebagai berikut: -
Jika n ≤ 40, maka
τ iknew = ρ × τ ikold +
1 , if h − k ≤ 1 (diff × Z current )
(21)
1 , if h − k ≤ 2 (diff × Z current )
(22)
new old = ρ × τ ik Bila tidak, τ ik
-
Selain itu,
τ iknew = ρ × τ ikold + new old = ρ × τ ik Bila tidak, τ ik
Keterangan:
39 diff = (position of job i in the best sequence obtained so far − k + 1)
1/2
ρ = 0.75 h = posisi job i dalam sequence terakhir. new Setelah didapat nilai τ ik , kembali ke tahap ant sequence pada iterasi pertama dan
dilanjutkan ke job index based local search sebanyak tiga kali. Kemudian, untuk iterasi ketiga, lakukan cara yang sama seperti pada iterasi kedua.
2.5.
Pengertian Sistem Menurut O’Brien (2003, p. 8) sistem adalah sebuah kelompok yang saling
bekerja sama dan untuk mencapai satu tujuan yang sama dengan memiliki masukan
(inputs) dan memberikan hasil (outputs) dalam sebuah proses transformasi yang terorganisir dengan baik Menurut McLeod (2001, p. 11) sistem adalah sekelompok elemen yang saling terintegrasi dengan maksud yang sama untuk mencapai suatu tujuan yang sama. Contohnya adalah
suatu organisasi, dimana organisasi tersebut terdiri dari bidang-
bidang fungsional yang semuanya saling bekerja sama untuk tercapainya tujuan organisasi yang telah ditetapkan. . 2.6.
Pengertian Informasi McLeod (2001, p. 12) berpendapat informasi adalah data yang telah melalui
suatu proses atau data yang memiliki telah memiliki arti. Sedangkan menurut O’Brien (2003, p. 13) informasi adalah data yang telah mengalami proses konversi menjadi sebuah konteks yang berarti dan berguna bagi seseorang.
40 2.7.
Pengertian Sistem Informasi Menurut O’Brien (2003, p. 7) Sistem Informasi adalah kombinasi dari sumber
daya manusia, perangkat keras, perangkat lunak, jaringan komunikasi, dan sumber daya data yang mengubah, mengumpulkan, dan menyebarkan informasi dalam sebuah organisasi. Pengertian lainnya dari sistem informasi adalah sebagai suatu sistem yang menerima data sebagai input dan kemudian mengolahnya menjadi informasi sebagai
outputnya.
2.8.
Internet, Intranet dan Extranet Internet adalah koleksi global dari sebuah jaringan yang saling terhubung
menggunakan standar jaringan tingkat bawah secara umum atau yang biasa disebut juga dengan TCP/IP (Transmission Control Protocol/ Internet Protocol). World Wide Web (WWW) yang biasa disebut juga dengan web adalah sekumpulan sumber daya (program, file, dan servis) yang dapad diakses melalui internet. (Satzinger, Jackson, & Burd, 2005, p. 274) Intranet adalah jaringan pribadi yang menggunakan IP tapi hanya bisa diakses sejumlah pengguna internal (biasanya para pengguna yang sama-sama berada dalam satu organisasi atau satu kelompok kerja). (Satzinger, Jackson, & Burd, 2005, p. 274) Extranet adalah intranet yang telah dikembangkan yang menyertakan para pengguna yang berada diluar organisasi (seperti supplier, customer besar dan partner penting). Extranet membantu beberapa organisasi berbeda untuk saling bertukar informasi dan mengkoordinasikan aktivitas organisasi tersebut. (Satzinger, Jackson, & Burd, 2005, p. 274)
41 2.9.
Analysis and Design Objects Identitas dari analisis objek mengekspresikan bagaimana user membedakan
objek tersebut dengan objek lainnya di dalam konteks. Identitas dari desain objek mengekspresikan bagimana objek lain di dalam sistem dapat mengenali objek tersebut dan juga dapat mengaksesnya. Di dalam analisis, behavior objek dapat diekspresikan dengan event yang dilakukan ataupun pengalaman. Analisis dan desain objek mendeskripsikan dua hal yang yang benar-benar berbeda. Objek analisis mendeskripsikan fenomena diluar sistem seperti orang dan benda yang mana biasanya dapat berdiri sendiri (independen). Objek desain mendeskripsikan fenomena di dalam sistem yang dapat dikontrol. Behavior dari objek yang dideskripsikan sebagai operasi untuk dijalankan oleh komputer. (Mathiassen et al., 2000, p. 5)
2.10.
System Development Life Cycle Proyek adalah sebuah kegiatan yang direncanakan yang memiliki awal dan akhir
dan menghasilkan sebuah hasil atau produk yang diharapkan. Agar sebuah proyek pengembangan sistem dapat sukses, para pengembang sistem haruslah memiliki sebuah perencanaan untuk diikuti. Sebuah kunci, fundamental konsep dalam pengembangan sistem informasi adalah System Development Life Cycle (SDLC). (Satzinger et al, 2005, p. 38) Sepanjang siklus hidup dari sistem informasi, pertama-tama haruslah mengandung sebuah ide, lalu di disain, di bangun, dan di jalankan selama pengembangan proyek dan paling akhir dimasukkan ke dalam proses dan digunakan untuk mendukung proses bisnis. (Satzinger et al, 2005, p. 39)
42 Salah satu teknik yang berguna untuk mengklasifikasikan sistem secara komprehensif adalah dengan mengkategorikan pendekatan SDLC apakah lebih kearah prediktif atau adaptif. Pendekatan prediktif pada SDLC adalah sebuah pedekatan yang mengasumsikan bahwa pengembangan proyek dapat direncanakan dan di atur lebih lanjut dan bahwa sistem informasi yang baru ini dapat dikembangkan sejalan dengan rencana. Sedangkan pedekatan adaptif pada SDLC digunakan pada saat kebutuhan pasti dari sistem atau kebutuhan dari user tidak dapat dimengerti dengan baik. (Satzinger et al, 2005, p. 39) Dalam pengembangan SDLC, terdiri atas beberapa aktivitas yakni planning analysis,
analysis activities, design activities, implementation analysis dan support phase. Planning activitites adalah kegiatan merencanakan, mengatur dan menjadwalkan sebuah proyek. Analysis activities adalah sebuah aktivitas untuk memahami secara pasti bagaimana sistem harus bertindak untuk mendukung proses bisnis. Implementation activities adalah kegiatan yang penting dalam membangun sistem. Support phase adalah aktivitas yang diperlukan untuk mengembangkan dan menjaga sistem setelah sistem tersebut dijalankan. Untuk fase-fase dan tujuan dalam SDLC dapat dilihat pada tabel 2.1. Aktivitas SDLC ini dapat dilihat pada gambar 2.2. (Satzinger et al, 2005, p. 40)
Sumber: Satzinger et al, 2005, p. 40 Gambar 2. 2 Aktivitas dalam SDLC.
43 Tabel 2. 1 Fase dan tujuan dari SDLC.
SDLC Phase
Tujuan
Perencanaan proyek
Untuk mengidentifikasikan cakupan dari sistem yang baru, memastikan
bahwa
proyek
layak
untuk
dijalankan,
mengembangkan sebuah jadwal, perencanaan sumber daya, dan perencanaan budget untuk proyek. Analisis
Untuk memahami dan mendokumentasikan dengan detil kebutuhan bisnis dan kebutuhan proses dari sistem baru.
Desain
Untuk mendisain sistem solusi berdasarkan pada kebutuhan sistem informasi yang didefinisikan dan keputusan yang dibuat sepanjang analisis
Implementasi
Untuk membuat, menguji, dan memasang sebuah sistem informasi yang dapat terpecaya dengan melatih user menjadi siap untuk memberikan keuntungan seperti yang diharapkan berdasarkan pada kegunaan dari sistem.
Support
Untuk membuat sistem tetap berjalan produktif dari awal dan sepanjang usia dari sistem.
Sumber: Satzinger et al, 2005, p. 41
2.11.
The Unified Process Life Cycle
Berdasarkan pada kebutuhan atas pengulangan dalam pengembangan sistem (seperti aktivitas analisis, desain, dan implementasi), sebuah model SDLC baru telah digunakan untuk membuat perencanaan dan pengaturan menjadi lebih mudah. Pada Unified
Process Life Cycle terdapat satu atau lebih iterasi yang mengikutsertakan analisis, desain
44 dan implementasi dari sistem. Ke-empat fase dari UP life cycle dinamakan inception,
elaboration, construction dan transition seperti pada gambar 2.3. (Satzinger et al, 2005, p.45) System Development Life
Iteration
Inception
Elaboration
Phase Construction
Transition
PHASES ARE NOT ANALYSIS, DESIGN, AND IMPLEMENT; INSTEAD, EACH ITERATION INVOLVES A COMPLETE CYCLE OF REQUIREMENTS, DESIGN, IMPLEMENTATION, AND Sumber: Satzinger et al, 2005, p.45 Gambar 2. 3Unified Process SDLC
Inception phase Seperti pada fase perencanaan pada berbagai proyek, pada fase inception manajer proyek mengembangkan dan menyempurnakan cara pandang untuk sistem baru untuk melihat bagaimana dapat meningkatkan operasi dan menyelesaikan masalah yang ada. Pada fase inception, biasanya diselesaikan dalam satu iterasi, bagian dari sistem aslinya dapat didesain, implementasi dan di uji. (Satzinger et al, 2005, p.46)
Elaboration phase Fase elaborasi biasanya melibatkan beberapa iterasi, dan pada iterasi awal biasanya telah menyelesaikan identifikasi dan definisi dari semua kebutuhan sistem. Fase elaborasi juga menyelesaikan analisis, desain dan implementasi pusat arsitektur dari sistem. (Satzinger
et al, 2005, p.46)
45
Construction Phase Fase construction melibatkan beberapa iterasi yang melanjutkan desain dan implementasi dari sistem. Dalam pengerjaannya mungkin memasukkan pengendalian detil sistem seperti validasi data, meningkatkan user interface, memperbaiki fungsi dan menyelesaikan bantuan dan fungsi sistem.
Transition Phase Selama fase transisi satu atau beberapa iterasi akhir melibatkan pengguna akhir dan pengujian beda, dan sistem dibuat siap untuk operasi. Ketika sistem dalam operasi, maka sistem perlu untuk didukung dan diperbaiki. (Satzinger et al, 2005, p.47)
2.12. Unified Modeling Language (UML)
Unified Modeling Language adalah sebuah standar model yang bentuk dan notasinya dikembangkan untuk mengembangkan object-oriented. Pada umumnya, dalam penggambaran
diagram-diagram,
notasi
yang
digunakan
untuk
menunjukkan
menggambarkan model didefinisikan dengan UML. Dengan menggunakan UML, para analis dan pengguna mampu untuk mengerti berbagai variasi diagram digunakan untuk mengembangkan sistem proyek. (Satzinger et al, 2005, p.48)
2.13.
Disiplin dari Unified Process
Menurut Satzinger et al (2005, p.55) dalam pengembangannya, UP memiliki enam aktivitas utama yakni:
46 -
Pemodelan bisnis Tujuan
utama
dari
pemodelan
bisnis
adalah
untuk
memahami
dan
mengkomunikasikan lingkungan nyata dari bisnis yang akan menggunakan sistem. -
Kebutuhan Tujuan
utama
dari
kebutuhan
ini
adalah
untuk
memahami
dan
mendokumentasikan kebutuhan bisnis dan kebutuhan proses untuk sistem yang baru. -
Desain Tujuan utama dari desain ini adalah untuk menggambarkan sistem solusi berdasrkan pada kebutuhan sebelumnya yang telah didefinisikan.
-
Implementasi Dalam tahap implementasi, tahapan ini melibatkan pemenuhan atas komponen yang dibutuhkan oleh sistem.
-
Pengujian Tahapan ini berguna untuk melakukan pengujian terhadap sistem yang telah di bangun apakah dapat berfungsi dengan baik atau tidak.
-
Pemasangan dan penggunaan Tahapan ini memiliki aktivitas memastikan bahwa sistem yang dibangun dapat digunakan untuk kegiatan operasional. Untuk menyelesaikan pengembangan sebuah sistem, tim proyek haruslah
memahami lingkungan bisnis (pemodelan bisnis), mendefinisikan kebutuhan dari sistem (kebutuhan), mendesain solusi untuk sistem dalam memenuhi kebutuhan (desain), menulis dan mengintegrasikan kode dalam komputer yang akan membuat sistem dapat
47 berjalan dengan baik (implementasi), kemudian lakukan pengujian dari sistem (pengujian) dan setelah selesai maka sistem tersebut diuji-cobakan kepada pengguna untuk melakukan kegiatan operasionalnya (pemasangan dan penggunaan). (Satzinger et
al, 2005, p.55)
2.14.
Konsep Object-Oriented Pedekatan berbasis objek adalah sebuah penekatan pengembangan sistem yang
melihat sistem informasi sebagai sekelompopk objek yang saling berinteraksi yang bekerja sama untuk menyelesaikan suatu kegiatan. Objek itu sendiri berarti sebuah benda dalam sistem komputer yang merespon terhadap sebuah pesan. (Satzinger et al, 2005, p.60) Oleh karena pendekatan berbasi objek melihat sistem informasi sebagai sekumpulan
objek
yang
saling
berinteraksi,
object-oriented
analysis (OOA)
medefinisikan semua tipe objek yang dibutuhkan oleh pengguna untuk bekerja dan menunjukkan bahwa interaksi dengan pengguna dibutuhkan untuk menyelesaikan suatu pekerjaan. Object-oriented design (OOD) mendefinisikan semua tipe dari objek penting untuk mengkomunikasikan orang dengan sistem yang menunjukkan bagaimana objek berinteraksi untuk menyelesaikan suatu masalah. Object-oriented programming (OOP) terdiri atas pernyataan tertulis dalam bahasa pemrograman untuk mendefinisikan setiap tipe dari objek. (Satzinger et al, 2005, p.60)
2.15.
Prinsip-prinsip Dalam Analisis dan Perancangan Dalam pengembangan OOA&D (Object Oriented Analysis and Design) terdapat
empat buah dasar yang menjadi prinsip umum untuk analisis dan desain yaitu:
48
•
Model The Context Kesuksesan dalam pengembangan sistem biasanya bergantung pada pemahaman
dari pengembang mengenai aplikasi praktis sistem. Seperti yang tergambar dalam gambar 2.4, konteks sistem dapat dilihat dari dua buah sudut pandang: sistem yang memodelkan sesuatu (the problem domain) an hal ini dioperasikan oleh user (the
application domain). (Mathiassen et al., 2000, p. 6)
Sumber: Mathiassen et al., 2000, p. 7 Gambar 2. 4 Sistem Konteks
•
Emphasize the architecture Memahami konteks yang ada memang penting, namun hal lainnya yang tidak
kalah penting adalah untuk memahami sistem itu sendiri. Sistem itu sendiri memiliki pengertian: sekumpulan komponen yang menerapkan model requirements, functions, dan interfaces. (Mathiassen et al., 2000, p. 9) Selama proses analisis dan desain, adalah hal yang penting untuk mengembangkan pemahaman umum mengenai sistem yang ada. Sistem arsitektur seharusnya mudah untuk dimengerti karena arsitektur sistem ini berfungsi sebagai dasar
49 untuk pengambilan keputusan dan sebagai alat komunikasi dan alat kerja dalam pengembangan kerja kedepannya. Arsitektur sistem ini juga perlu untuk fleksibel karena pengembangan sistem mengambil tempat di dalam lingkungan kerja. Dan arsitektur sistem juga sebaiknya berguna karena kesuksesan sistem bergantung pada peran yang dimainkan di dalam organisasi. (Mathiassen et al., 2000, p. 9)
•
Reuse patterns Sebuah landasan awal untuk memastikan kualitas dan efisiensi dalam analisis
dan desain adalah untuk menggunakan kembali ide yang telah di uji dan menggunakannya kembali pada situasi lainnya. OOA&D memiliki dua langkah dalam penggunaan kembali: dengan menggunakan objek dan komponen, dan lebih umum dengan menggunakan pola analisis dan desain. Pola ini sendiri adalah deskripsi umum dari sebuah masalah dan solusi yang terkait. Sebagai contoh kita dapat menggunakan pola peran selama proses analisis untuk memodelkan berbagai peran yang orang perankan berulang kali. Pada gambar 2.03 menunjukkan contoh pembuatan model person yang bisa diperankan oleh employee dan customer. (Mathiassen et al., 2000, p. 11)
Sumber: Mathiassen et al., 2000, p. 12 Gambar 2. 5 Sebuah Contoh role pattern
50
•
Tailor The Method OOA&D adalah sekumpulan dari panduan umum untuk membuat analisis dan
desain. Oleh karena itulah metode-metode tersebut harus diimplementasikan ke dalam organisasi dan proyek. Untuk membuat metode yang dibuat menjadi lebih berguna, dilakukan perancangan metode tersebut agar dapat beradaptasi, berkembang dan bagiannya akan mudah untuk diimplementasikan. (Mathiassen et al., 2000, p. 12)
2.16.
Aktivitas Utama dalam OOA&D
OOA&D memiliki empat buah aktivitas utama yang dapat di lihat dalam gambar 2.04.
Sumber: Mathiassen et al., 2000, p. 15 Gambar 2. 6 Aktivitas utama dalam OOA&D Keempat aktivitas utama relatif penting dan urutan perubahan dari projek ke projek. Dalam beberapa projek, analisis application domain memiliki karakteristik yaitu
51 ketidakpastian yang besar. Keempat aktivitas utama dari OOA&D ini kegiatan abstrak yang dapat dilakukan bersamaan dengan kegiatan lainnya dalam projek pengembangan sistem secara praktis. Keempat aktivitas ini adalah analisis problem domain, analisis
application domain, architectual design, dan componen design. (Mathiassen et al., 2000, p. 15)
2.16.1.
Analisis Problem Domain Dalam perancangan problem domain, terkandung di dalamnya apa yang dihadapi
oleh pengguna dan kapan mereka melakukan pekerjaan (produk, order, invoice, dan pelanggan) mereka yang dibutuhkan sebagai bagian dari sistem. Sebagai contoh, seorang pelanggan (external agent) melakukan pemesanan, akan tetapi selain pesanan yang di simpan itu, sistem juga membutuhkan untuk menyimpan data-data pelanggan. (Satzinger
et al, 2005, p.178) Tipe data yang dibutuhkan untuk disimpan merupakan aspek penting yang dibutuhkan dalam pemenuhan kebutuhan dari sistem informasi. Dalam pendekatan berorientasi-objek,
hal
ini
menjadi
objek
yang
berinteraksi
dengan
sistem.
Mengidentifikasi dan memahami tipe data dalam problem domain merupakan kunci awal ketika mendefinisikan kebutuhan. (Satzinger et al, 2005, p.178) Analisis problem domain berfokus pada informasi apa yang harus disediakan dalam sistem. Penyediaan informasi ini sangat penting dalam aktifitas analisis karena model problem domain menyediakan sebuah bahasa untuk mengekspresikan kebutuhan sistem. Dalam pengembangan problem domain, prinsip pertama yang harus dikembangkan adalah memodelkan dunia nyata sesuai dengan cara pandang dari calon pengguna. (Mathiassen et al., 2000, p. 45)
52 Tujuan utama daripada analisis problem domain adalah untuk mengembangkan sebuah model. Dengan adanya sebuah model yang baik, maka model tersebut dapat mendesain
dan
mengimplementasikan
sistem
yang
dapat
memproses,
mengkomunikasikan, dan menampilkan informasi mengenai problem domain. (Mathiassen et al., 2000, p. 46) Seperti pada gambar 2.7 analisis problem domain terbagi atas tiga aktivitas. Pertama, melakukan penentuan objek, classes, dan events yang akan menjadi elemen dari model problem domain. Kedua, membuat model berfokus pada struktur hubungan antara objek dan classes yang terpilih. Hal ini merepresentasikan sebuah pergerakan dari objek ke tingkatan model. Ketiga, berfokus pada properti objek dynamic, merepresentasikan sebuah pergerakan kembali ke tingkatan objek. (Mathiassen et al., 2000, p. 40)
Sumber: Mathiassen et al., 2000, p. 46 Gambar 2. 7 Model dari aktivitas dalam problem domain
2.16.1.1.
System Definition
System definition adalah sebuah deskripsi singkat dari sistem komputer yang diekspresikan dalam bahasa natural. System definition mengekspresikan properti dasar
53 untuk pengembangan dan penggunaan dari sistem. Hal ini menjelaskan mengenai sistem di dalam konteks, informasi apa yang seharusnya terkandung didalamnya, fungsi apa yang seharusnya disediakan, dimana harusnya digunakan dan kondisi pengembangan seperti apa yang harus diterapkan. Sebuah system definition seharusnya singkat dan tepat dan mengandung sebagian besar dasar keputusan mengenai sistem yang ada. Membuat sebuah formulasi yang singkat dan tepat menyediakan gambaran umum dan membuat hal ini mudah untuk membandingkan berbagai alternatif yang ada. (Mathiassen et al., 2000, p. 24)
2.16.1.1.1.
Rich Picture
Rich picture adalah sebuah gambaran tidak formal yang menampilkan pemahaman sebuah situasi oleh ilustrator. Sebuah rich picture berfokus pada seberapa penting suatu aspek pada suatu situasi yang mana hal ini ditentukan oleh ilustrator. Bagaimanapun juga, sebuah rich picture seharusnya memberikan deskripsi secara luas dari situasi yang memungkinkan beberapan interpretasi alternatif. (Mathiassen et al., 2000, p. 26)
2.16.1.1.2.
Sistem Definisi
Menurut Mathiassen et al. (2000, p. 39), kriteria FACTOR terdiri atas enam elemen:
•
Functionality: fungsi sistem yang mendukung tugas application domain.
•
Application Domain: bagian dari organisasi yang melakukan kegiatan administrasi, memonitor, atau menggendalikan problem domain.
54
•
Conditions: kondisi yang dibutuhkan untuk mengembangkan dan menggunakan sistem.
•
Technology: kedua teknologi yang digunakan untuk mengembangkan sistem dan teknologi dimana sistem itu akan dijalankan.
•
Objects: Objek utama dalam problem domain.
•
Responsibility: Tanggung jawab sistem secara umum dalam hubungannya dengan konteks sistem tersebut. Kriteria FACTOR dapat digunakan dalam dua cara. Pertama-tama, dapat
digunakan untuk mendukung pengembangan system-definition, tetapi harus tetap berhati-hati dalam mempertimbangkan bagaimana setiap elemen dari sistem diformulasikan. Kedua, untuk memulai sebuah definisi dapat dilakukan dengan mendeskripsikan sistem dan menggunakan kriteria untuk melihat bagaimana sistemdefinition yang ada memuaskan keenam faktor yang ada. (Mathiassen et al., 2000, p. 40)
2.16.1.1.3.
Activity Diagram
Setelah mendapatkan informasi mengenai proses bisnis dengan melakukan interview dengan pengguna dan melakukan observasi proses yang ada, maka perlu dilakukan proses dokumentasi. Salah satu teknik untuk menangkap informasi yang ada digunakan sebuah diagram. Dimana diagram ini digunakan untuk mendeskripsikan alur kerja (workflow) dari sistem yang baru. (Satzinger, Jackson, & Burd, 2005, p. 144)
Workflow adalah urutan langkah proses untuk menyelesaikan sebuah transaksi bisnis. Sebuah workflow bisa berupa sederhana ataupun kompleks. Sebuah workflow yang kompleks bisa terdiri atas puluhan atau ratusan proses dan mungkin
55 mengikutsertakan partisipan dari berbagai bagian dalam organisasi. Jika workflow yang sederhana dapat dibuat dan di lihat lebih mudah dan juga mudah untuk memeriksanya kembali dengan para pengguna. Salah satu keuntungan dalam menggunakan diagram dan model adalah diagram tersebut menjadi sebuah alat komunikasi yang sangat berguna diantara tim proyek dan para pengguna. (Satzinger et al, 2005, p.144) Metodologi yang digunakan untuk melakukan penggambaran proses bisnis ini biasanya adalah flowchart ataupun activity diagram. Activity diagram adalah sebuah diagram workflow yang sederhana yang mendeskripsikan berbagai kegiatan pengguna, siapa yang melakukan aktivitas tersebut dan urutan dari kegiatan tersebut. (Satzinger et
al, 2005, p.144) Gambar 2.8 merupakan simbol dasar yang digunakan pada activity diagram. Bentuk oval merepresentasikan aktivitas individual dalam workflow. Gambar panah menunjukkan urutan antar kegiatan. Bulatan hitan digunakan untuk notasi awal dan akhir dari sebuah workflow. Bentuk diamond berarti sebuah keputusan dimana proses itu akan berlanjut apakah ke satu aktivitas atau ke aktivitas lainnya. Garis lain yang tebal disebut juga synchronization bar dimana apakah akan memecah kegiatan atau menggabungkan beberapa kegiatan. Swinlane menunjukkan siapa yang malakukan aktivitas tersebut. (Satzinger et al, 2005, p.145)
56
Sumber: Satzinger et al, 2005, p.145 Gambar 2. 8 Simbol dalam activity diagram Dapat dilihat bahwa activity diagram berfokus pada urutan dari aktivitas. Diagram ini jelas dan cukup mudah untuk dimengerti. Pada kenyataannya salath satu kekuatan dari menggunakan activity diagram adalah untuk mendokumenasikan
workflow yang mudah dimengerti oleh para pengguna. Dalam pembuatan activity diagram, pertama-tama haruslah mengidentifikasikan agent untuk membuat swimlane yang sesuai. Kemudian ikuti langkah-langkah dan buatlah bentuk oval untuk setiap aktivitasnya. Lalu hubungkan oval tersebut dengan tanda panah untuk menunjukkan arah dari workflow. (Satzinger et al, 2005, p.146)
2.16.1.2.
Event dan use cases
Use case adalah sebuah aktivitas yabg dikakukan sistem, pada umumnya merupakan respon atas permintaaan dari pengguna. Berbagai teknik direkomendasikan untuk mengidentifikasi use case. Salah satu pendekatan adalah dengan membuat catatan
57 semua pengguna dan memikirkan apa yang mereka butuhkan dari sistem untuk membantu pekerjaan mereka. Cara lainnya adalah dengan memulai dari sistem yang ada dan membuat catatan kebutuhan semua sistem yang telah dimasukkan dan menambahkan beberapa fungsi yang diminta oleh pengguna. Salah satu cara atau panduan yang paling mendalam untuk mengientifikasi use case disebut dengan event
decomposition technique. (Satzinger et al, 2005, p.166) Event decomposition Dalam penentuan use case apa yang digunakan untuk sistem, haruslah berfokus pada event decomposition yaitu sebuah teknik yang pertama-tama berfokus pada event yang dibutuhkan oleh sistem untuk merespon dan lalu melihat bagaimana sistem dapat memberikan respon (use case sistem). (Satzinger et al, 2005, p.167) Pentingnya konsep dari event untuk mendefinisikan kebutuhan sistem dikenalkan untuk analisis struktur modern ketika konsep ini diadaptasikan pada waktu nyata pada tahun 1980an. Sistem ini dibutuhkan untuk beraksi secepatnya untuk event yang ada pada lingkungan. Pada dasarnya terdapat tiga buah tipe event yakni external event,
temporal event, dan state event. External event adalah event yang terjadi diluar sistem, biasanya dilakukan oleh external agent. External agent adalah seseorang atau bagian dari organisasi yang memberikan atau menerima data dari sistem akan tetapi bukan pengguna sistem langsung. Temporal event adalah sebuah event yang terjadi sebagai hasil telah sampainya waktu yang telah ditentukan. State event adalah sebuah event yang terjadi ketika sesuatu terjadi didalam sistem yang memicu untuk sebuah proses. (Satzinger et al, 2005, p.168)
58 2.16.1.3.
Classes
Secara khusus kita dapat mendeskripsikan objek sebagai sebuah class dibandingkan sebuah individual. Class sangat berguna untuk memahami objek dan sangat penting untuk mendeskripsikan objek. Dibandingkan dengan menjelaskan setiap objek masing-masing, maka akan lebih baik jika mengembangkan sebuah objek bersama untuk semua objek yang ada dalam class yang sama. Class itu sendiri memiliki pengertian: sebuah deskripsi dari sekumpulan objek yang memiliki struktur yang sama, pola behavioral dan atribut. (Mathiassen et al., 2000, p. 4) Aktivitas class terdiri atas tiga buah kegiatan utama yaitu abstraksi, klasifikasi, dan pemilihan. Fenomena problem domain diabstraksikan dengan melihat problem
domain sebagai objek dan class. Lalu objek dan class diklasifikasikan dan memilih class dan event yang mana yang akan mempertahankan informasi pada sistem. Classes adalah hal pertama yang akan mendefinisikan dan membatasi problem domain. Setiap class dapat dikarakterisasikan berdasarkan sekumpulan event. (Mathiassen et al., 2000, p. 49)
2.16.1.3.1.
Klasifikasi dari objek dan events
Selama proses analisis, sebuah objek adalah abstraksi dari sebuah fenomena di dalam sistem konteks seperti pelanggan. Objek mengekspresikan sudut pandang user secara nyata. Orang tertentu adalah pelanggan dan orang tersebut akan diperlakukan sebagai sebuah entitas tunggal dengan identitas, state dan behavior yang spesifik. Seorang pelanggan juga bisa menjadi objek desain. Dalam desain, objek pelanggan akan merepresentasikan bagian dari sejarah orang ternteu dan state selama berada di dalam sistem dan membuat berbagai operasi dapat dilakukan oleh sistem objek lainnya.
59 Dengan menggunakan objek ini, sistem dapat mengatur dan menyimpan data pelanggan secara spesifik.(Mathiassen et al, 2000, p. 4) Dalam klasifikasi aktivitas, terfokus pada objek yang dikerjakan oleh user dengan tujuan untuk menciptakan dan memilih abstraksi yang bersangkutan. Dalam klasifikasi aktivitas ini memiliki tiga buah prinsip dasar. Pertama, klasifikasikan objek di dalam problem domain. Kedua, karaterisasikan objek berdasarkan event. Ketiga, memiliki pemikiran yang terbuka, tapi memilih dengan kritis. (Mathiassen et al., 2000, p. 50) Menurut Mathiassen et al. (2000, p. 4) dalam Object Oriented Analysis and
Design, yang menjadi dasar utama adalah sebuah objek. Selama proses analisis,untuk mengorgansisasikan pemahaman akan konteks dari sebuah sistem maka akan digunakan objek. Selama proses desain, objek digunakan untuk pemahaman dan mendeskripsikan sistem itu sendiri. Sedangkan objek itu sendiri berarti sebuah entitas dengan identitas,
state, dan behavior. (Mathiassen et al., 2000, p. 50) Sedangkan event itu menspesifikasikan kualitas dari objek dalam problem
domain. Event memiliki pengertian sebagai sebuah kejadian instant yang melibatkan satu atau lebih objek. Event juga merupakan sebuah abstraksi dari aktivitas problem-
domain atau proses yang dijalankan atau dirasakan oleh satu atau lebih objek. (Mathiassen et al., 2000, p. 51) Untuk mengidentifikasikan semua objek dan event yang ada agar dapat dimasukkan ke dalam sebuah model problem-domain yang relevan maka objek-objek tersebut dikelompokkan menjadi beberapa class.
Class memiliki pengertian sebagai
sebuah deskripsi dari sekumpulan objek yang berbagi struktur, behavioral pattern, dan atribut. (Mathiassen et al., 2000, p. 53)
60 2.16.1.3.2.
Menentukan Class
2.16.1.3.2.1.
Membuat daftar dari objek
Pemilihan class akan mendefinisikan hal yang paling pertama dan paling dasar dari sebuah blok bangunan untuk model problem-domain. Untuk mendapatkan sebuah deskripsi dari problem-domain maka harus bekerja sama dengan user. Dalam mendapatkan kandidat class, sebaiknya menggunakan nama yang simpel dan mudah dibaca, original di dalam problem domain, dan mewakili sebuah contoh. (Mathiassen et
al., 2000, p. 55) Terdapat beberapa panduan umum yang bisa digunakan untuk membantu analis dalam membuat daftar sumber informasi yang mana sistem perlu untuk menyimpannya. Beberapa prosedur yang berguna untuk diikuti adalah dengan mendaftar semua kata benda yang disebutkan oleh pengguna ketika membicarakan mengenai sistem. Untuk membuat daftarnya bisa dibuat dengan cara pertama yaitu menggunakan event table, dan informasi mengenai setiap event dan identifikasikan setiap kata benda, kedua menggunakan informasi lainnya yang berasal dari sistem yang sudah ada, prosedur yang ada ataupun laporan-laporan yang ada, dan ketiga adalah dengan menentukan apakah dari kata-kata benda tersebut memang perlu disimpan, hanya merupakan atribut dari kata benda yang lain, atau memang tidak perlu untuk disimpan. (Satzinger et al, 2005, p.179) Menurut Mathiassen et al. (2000, p. 61) untuk dapat memilih sebuah class, class tersebut harus dapat menjawab beberapa pertanyaan seperti: -
Apakah bisa mengidentifikasikan sebuah objek dari class tersebut?
-
Apakah class tersebut mengandung informasi yang unik?
-
Apakah class tersebut dapat mewakili beberapa objek?
61 -
Apakah class tersebut memiliki beberapa event yang sesuai dan dapat dijalankan?
2.16.1.3.2.2.
Asosiasi antar objek
Setelah menemukan dan menyimpan hal apa saja yang disimpan maka dibutuhkan untuk mencari informasi tambahan. Seperti hubungan antar objek merupakan hal yang penting untuk sistem. Hubungan tersebut berupa asosiasi yang muncul dalam hubungan antar objek tertentu sebagai contoh sebuah order diberikan oleh pelanggan dan pelanggan bekerja pada suatu bagian/divisi. (Satzinger et al, 2005, p.181)
2.16.1.3.2.3.
Atribut dari objek
Sebagian besar dari sistem informasi menyimpan dan menggunakan informasi spesifik mengenai setiap objek. Setiap informasi spesifik ini disebut dengan atribut. Dimana setiap objek bisa memiliki beberapa atribut. Atribut yang merupakan secara unik mendefinisikan objek disebut dengan identifier atau key.
2.16.1.4.
Event table
Informasi yang paling penting untuk mengidentifikasikan adalah use case yang dibutuhkan oleh sistem untuk merespon setiap event yang ada. Informasi ini dimasukkan kedalam event table. Event table termasuk di dalamnya baris dan kolom, merepresentasikan event dan detilnya. Setiap baris dalam event table menyimpan informasi mengenai satu event dan use case-nya. Setiap kolom dalam tabel merepresentasikan kunci informasi mengenai event dan use case-nya. Sebagai contoh dari event table dapat di lihat pada gambar 2.9. (Satzinger et al, 2005, p.174)
62
The event that causes the system
Source: For external event, the
Response: what output (if any) is
to do something
external agent is the source of
produce by the system?
Event
Trigger
Source
Customer wants to
Use Case
Response
Desination
Look up Item availability
chect item
Item inquiry
Customer
item
Customer details
availability
availability
Trigger: how does the system know the event
Use case: what does the system do
occurred? For external events, the trigger is data
when the event occurs? The use case
entering the system. Foret temporal events, it is Sumber: Satzinger al, 2005, p.175
is what is important to define for
Destination: what external agents gets the output
Gambar 2. 9 Contoh dari event table. Pertama-tama untuk setiap event, bagaimana sistem tau bahwa sebuah event terjadi? Sebuah signal yang memberi tahu sistem bahwa event terjadi disebut dengan trigger. Sumber datanya juga penting untuk diketahui. Kemudian apa yang dilakukan oleh sistem ketika suatu event terjadi dsebut sebagai use case. Hasil atau respon dari use case dalam sistem tersebut disebut juga response. Dan destination adalah temat dimana respon apapun dikirimkan, kepada external agent. Terkadang use case tidak menghasilkan respon apapun. (Satzinger et al, 2005, p.175)
2.16.1.5.
Structure
Aktivitas di dalam sebuah struktur berfokus pada hubungan antara classes dan objek. Pada aktivitas class, dilakukan pemilihan classes untuk pemodelan problem-domain dan mengkarakterisasikan setiap class dengan event-nya. Sedangkan pada aktivitas struktur, pengembangan dilakukan dengan menambahkan deskripsi dengan menambahkan
63 hubungan strutural antara classes dan objek. Hasil dari aktivitas struktur ini adalah class
diagram. (Mathiassen et al., 2000, p. 69) Pada class diagram, bentuk persegi merepresentasikan class, dan garis yang menghubungkan persegi menunjukkan asosiasi antar class. Gambar 2.10 menunjukkan contoh simbol untuk sebuah class customer. Dan gambar 2.11 menunjukkan contoh dari sebuah class diagram. (Satzinger et al, 2005, p.187)
Sumber: Satzinger et al, 2005, p.187 Gambar 2. 10 Simbol class diagram
Sumber: Mathiassen et al., 2000, p. 70 Gambar 2. 11 Contoh sebuah class diagram.
64 2.16.1.5.1.
Struktur Object-Oriented
Dalam pengembangannya, pemodelan problem-domain dengan struktur object-
oriented menggunakan perbedaan mendasar dari objek dan class. Untuk tingkatan objek yang lebih konkrit, dapat melihat fenomena dari sebuah problem domain sebagai sebuah objek dengan properti tertentu yang menunjukkan identitas, state dan behavior dari objek tersebut. Sebagai contoh, terkadang dapat melihat seseorang sebagai karyawan dari sebuah perusahaan akan tetapi tidak melihat orang tersebut sebagai seorang anggota keluarga yang memiliki anak, hobi, keluarga dan lainnya. Dari hal ini dapat dilihat bahwa dalam pembuatan objek terkadang hanya melihat properti tertentu yang memiliki hubungan dengan problem domain. Untuk menjelaskan hal ini, terdapat dua jenis struktur dari objek yaitu: pertama, struktur agregasi dimana menjelaskan hubungan antara objek dan komponen objek, dan kedua, struktur asosiasi dimana menjelaskan arti hubungan objek yang lain. (Mathiassen et al., 2000, p. 70) Dalam tingkatan class yang abstrak, lebih memperhatikan hubungan konseptual antara dua atau lebih class di dalam problem domain. Class adalah sebuah deskripsi dari properti dan behavioral pattern yang umum diantara semua objek yang ada di dalam grup tersebut. Untuk mendeskripsikan hubungan konseptual antar class, maka dibagi menjadi dua jenis struktur class yaitu: pertama, struktur generalisasi dimana menjelaskan sebuah class yang merupakan spesialisasi dari beberapa class yang lebih umum. Kedua, struktur cluster, dimana merupakan sebuah grup dari class yang saling berhubungan. (Mathiassen et al., 2000, p. 71) Aktivitas struktur di bagi menjadi tiga buah sub-aktivitas. Pada sub-aktivitas pertama, mengkombinasikan problem-domain dengan tipe struktur yang berbeda untuk menciptakan kandidat untuk hubungan struktural diantara class dan objek yang terpilih.
65 Pada sub-aktivitas kedua, mengekplorasi relevansi dari beberapa pola umum untuk memperluas model dari problem-domain. Di sub-aktivitas ketiga, mengevaluasi dan memilih hubungan struktural yang dibutuhkan dari beberapa kandidat. Ketiga subaktivitas ini dapat dilihat pada gambar 2.12. (Mathiassen et al., 2000, p. 71)
Sumber: Mathiassen et al., 2000, p. 72 Gambar 2. 12 Sub-aktivitas untuk memodelkan struktur problem-domain. 2.16.1.5.2.
Struktur antar class
Ada 2 cara untuk memahami struktur dari problem domain dalam dunia nyata yakni generalisasi/spesialisasi hirarki, dan whope-part hirarki. (Satzinger et al, 2005, p.189)
2.16.1.5.2.1.
Generalisasi/spesialisasi hirarki
Struktur generalisasi adalah sebuah relasi antara dua atau lebih class spesial dan satu atau lebih class umum. Dimana pengertian generalisasi itu sendiri adalah sebuah class general (super class) mendeskripsikan properti umum kepada sekelompok class spesial
66 (subclass). Sebagai contoh class dari “taxi” dan “private car” merupakan spesialisasi dari class general dari “Passenger Car” seperti pada gambar 2.13.(Mathiassen et al., 2000, p. 72)
Sumber: Mathiassen et al., 2000, p. 73 Gambar 2.13 Struktur generalisasi. Tipikal struktur generalisasi adalah hirarkikal oleh karena itu subclass apapun merupakan spesialiasasi dari tepat satu super class. Bagaimanapun juga, multiple
inheritance (turunan berganda) dimana sebuah class menuruni properti dari dua atau lebih super class yang dapat meningkatkan model dari beberapa kasus seperti pada gambar 2.14. .(Mathiassen et al., 2000, p. 74)
Sumber: Mathiassen et al., 2000, p. 74 Gambar 2. 13Beberapa contoh tipe Account dengan multiple inheritance.
67 2.16.1.5.2.2.
Whole-part hirarki
Cara lain untuk menstrukturisasi informasi adalah dengan mendefinisikan informasi tersebut menjadi bagian-bagian yang lebih kecil. Whole-part hirarki menggambarkan hubungan yang telah teridetifikasi dalam pembuatan asosiasi antar objek dan komponennya. Ada dua tipe whole-part hirarki yakni agregasi dan komposisi. Agregasi digunakan untuk mendeskripsikan asosiasi whole-part antara aggregate(whole) dan komponennya (parts).
Komposisi digunakan untuk menggambarkan asosiasi
whole-part secara lebih kuat, dimana ketika sebuah bagian sekali terasosiasi tidak bisa lagi dipisahkan. (Satzinger et al, 2005, p.191)
2.16.1.5.3.
Struktur antar objek
Terdapat dua buah tipe struktur objek yaitu agregasi dan asosiasi. Kedua struktur ini menangkap hubungan dinamis antar objek di dalam problem-domain. Struktur objek ini dideskripsikan di dalam class diagram sebagai hubungan struktural antara dua atau lebih class. Struktur ini dideskripsikan pada tingkatan class dengan menentukan properti
multiplicity yang menjelaskan beberapa objek dari class yang berhubungan dapat terkoneksi. (Mathiassen et al., 2000, p. 75)
2.16.1.5.3.1.
Struktur Agregasi
Struktur agregasi merupakan hubungan antara dua atau lebih objek. Struktur ini menunjukkan bahwa satu objek merupakan dasar dan menjelaskan bagian dari yang lain. Sebuah struktur agregasi menggambarkan sebuah garis antara class yang keseluruhan dengan bagiannya, dimana garis tersebut diakhiri dengan sebuah belahketupat pada class yang memodelkan keseluruhan, hal ini dapat dilihat pada gambar 2.14. Secara
68 pengucapan, agregasi dapat diekspresikan dengan formulasi “kepunyaan” atau “bagian dari”. (Mathiassen et al., 2000, p. 76)
Sumber: Mathiassen et al., 2000, p. 75 Gambar 2. 14 Struktur Agregasi.
2.16.1.5.3.2.
Struktur Asosiasi
Struktur asosiasi juga merupakan sebuah hubungan antara dua atau lebih objek, tapi berbeda dengan agregasi, dimana yang mengasosiasikan objek bukan menjelaskan properti dari sebuah objek. Asosiasi ini sendiri memiliki pengertian hubungan antara sejumlah objek. (Mathiassen et al., 2000, p. 75) Struktur asosiasi digambarkan dengan sebuah garis lurus antara class yang berhubungan. Mendeskripsikan multiplicity dari asosiasi sama dengan ketika mendeskripsikan
multiplicity
dari
agregasi.
Karena
struktur
asosiasi
tidak
mengutamakan urutan, dan penempatan class yang saling berhubungan dapat dimana saja di dalam class diagram. Asosiasi seringkali digunakan ketika agregasi menunjukkan
69 keterikatan yang terlalu kuat. Seperti pada gambar 2.15 dimana gambar ini menunjukkan hubungan antara manusia dengan mobil. Dimana dalam hal ini, tidak masuk di akal ketika mengatakan bahwa objek dari mobil atau manusia memiliki objek yang lain dari class yang berbeda sebagai bagiannya. Secara pengucapan, asosiasi dapat diekspresikan dengan formulasi “diketahui atau dimiliki” atau “memiliki hubungan dengan”. (Mathiassen et al., 2000, p. 77)
Sumber: Mathiassen et al., 2000, p. 77 Gambar 2. 15 Struktur Asosiasi.
2.16.1.5.4.
Menemukan Kadidat untuk Struktur
Memodelkan hubungan struktural sama seperti ketika melakukan pemilihan class dan event. Dimulai dari mengumpulkan kandidat untuk hubungan struktural diantara modelmodel class. Dimana pengumpulan kandidat ini berdasarkan pada prinsip: mempelajari abstrak, hubungan statis antar class dan mempelajari konkrit, hubungan dinasmis antar objek. Dalam mengumpulkan kandidat, didasarkan pada empat tipe struktur. (Mathiassen et al., 2000, p. 77)
2.16.1.5.4.1.
Identifikasi Generalisasi
Untuk menghasilkan kandidat untuk struktur generalisasi terdapat tiga macam pendekatan. Pertama, memilih dari semua class yang berpasangan dan tentukan apakah satu dari dua class tersebut merupakan generalisasi dari yang lainnya. Kedua, tentukan
70 apakah ada class generalisasi yang dapat terbentuk dari sepasang class yang dipilih. Ketiga, mengambil setiap class yang dipilih, mencoba untuk mendefinisikan sebuah generalisasi atau spesialisasi yang sesuai. (Mathiassen et al., 2000, p. 78)
2.16.1.5.4.2.
Identifikasi Agregasi
Untuk menemukan kandidat untuk struktur agregasi terdapat tiga macam pendekatan. Pertama, memeriksa setiap pasang class untuk melihat apakah mungkin objek dari suatu class merupakan bagian objek dari class yang lain. Kedua, menentukan apakah sesuai untuk mengagregasikan objek dari setiap pasang class kedalam objek dari sebuah class yang baru saja dibuat. Ketiga, menentukan apakah setiap class dapat dipecah menjadi beberapa class yang tidak terdapat dalam model yang sudah di buat. (Mathiassen et al., 2000, p. 78) Menurut Mathiassen et al., (2000, p. 79), dalam mendefinisikan hubungan dalam agregasi, terdapat tiga jenis aplikasi dari struktur agregasi:
•
Whole-part, dimana keseluruhan merupakan penjumlahan dari bagian-bagian; ketika menambahkan atau mengurangi bagian apapun, dapat merubah keseluruhan secara mendasar
•
Container-content, dimana keseluruhan merupakan tempat penampungan dari bagian-bagian; ketika menambahkan atau mengurangi bagian apapun, properti dasar dari keseluruhan tidak berubah.
•
Union-member, dimana keseluruhan merupakan keteraturan dari kesatuan anggota. Kesatuan ini tidak dirubah secara fundamental baik dengan menambahkan atau mengurangi beberapa anggota.
71 2.16.1.5.4.3.
Identifikasi Asosiasi
Untuk menghasilkan struktur asosiasi, perlu diperhatikan sisa dari class yang berpasangan untuk melihat apakah class-class tersebut dapat saling terhubung dengan sebuah arti. Sebuah asosiasi perlu untuk dideskripsikan kapanpun harus melakukan kegiatan administrasi, mengawasi, dan mengendalikan hubungan antar objek yang dengan kata lain tidak berhubungan dengan model. (Mathiassen et al., 2000, p. 79)
2.16.1.6.
Behavior
Oleh karena sistem biasanya berhadapan dengan kenyataan yang dinamis, maka diperlukan pemahaman terhadap apa yang terjadi di problem-domain secara berulangulang. Sebuah sistem memiliki tujuan mendasar yakni untuk mendaftar, menyimpan dan menghasilkan informasi mengenai kejadian dalam problem-domain. Agar sistem dapat mengendalikan suatu batasan dalam suatu event untuk dipatuhi atau dilanggar, pemodelan problem domain harus memasukkan deskripsi dari event trace yang mungkin dari setiap class. (Mathiassen et al., 2000, p. 89) Untuk aktivitas behavior, pengembangan definisi class di dalam class diagram diperlukan untuk menambahkan deskripsi mengenai behavioral pattern dan atribut dari setiap class. Hasil dari aktivitas behavior ini diekspresikan dalam gambar dalam sebuah
state chart diagram yang dapat dilihat pada gambar 2.16. (Mathiassen et al., 2000, p. 89)
72
Sumber: Mathiassen et al., 2000, p. 90 Gambar 2.16 Sebuah statechart diagram sederhana untuk class “Customer” di dalam bank.
2.16.1.6.1.
Behavioral pattern dan atribut
Sebuah objek adalah antitas dengan identitas, state dan behaviour. Di dalam aktivitas class dapat dilihat behavior sederhana sebagai suatu kumpulan event yang tidak teratur yang melibatkan sebuah objek. Di dalam aktivitas behavior, pendeskripsian
behavior menjadi lebih akurat dengan menambahkan waktu relatif dari suatu event. Sebuah behavior dari objek didefinisikan oleh sebuah event trace yang menunjukkan
event dalam suatu urutan dari waktu ke waktu. (Mathiassen et al., 2000, p. 90) Event trace ini memiliki arti yakni sebuah urutan event yang melibatkan objek tertentu. Sebuah event trace adalah unik untuk sebuah objek tertentu. Ini adalah sebuah urutan event secara tepat yang melibatkan objek dalan interval waktu tertentu. Sebagai contoh, objek dari class “Customer” memiliki event trace berikut sepanjang masa hidup objek ini:
Account opened – amount deposited – amount withdrawn – amount deposited – account closed. (Mathiassen et al., 2000, p. 90)
73 Fokus di dalam object oriented pada analisis problem-domain adalah pada objeknya, tapi untuk alasan tertentu, mendeskripsikan sekelompok objek dengan definisi class umum. Oleh sebab itu, perulangan untuk mendeskripsikan behavior dari setiap objek yang ada di dalam problem-domain dilakukan. Sebagai gantinya, behavioral
pattern untuk objek class dapat diartikan sebagai sebuah deskripsi atas event trace yang mungkin untuk semua objek di dalam class. (Mathiassen et al., 2000, p. 90)
Behavioral pattern mendeskripsikan behavior umum untuk semua objek dari class. Untuk menghasilkan patern, digunakan contoh dari event traces untuk objek individu di dalam class berdasarkan pada prinsip: membuat behavioral pattern dari
event trace. Event trace dan behavioral pattern sama-sama berhubungan dengan sebuah objek atau class. Untuk melangkah dari objek individu ke arah problem domain dinamis, dilakukan penekanan pada kolaborasi objek dan deskripsi event umum untuk dua atau lebih objek. Hal ini ditunjukkan pada prinsip: mempelajari event umum. Event umum dapat digunakan untuk mendeskripsikan interaksi antar class, karena semua event dinamakan secara umum disepanjang problem-domain. Ketika memodelkan problem-domain, dapat diformulasikan kebutuhan untuk data yang akan disimpan oleh sistem, dan oleh karena itu menjadikan data dapat diakses melalui fungsi dan interface. Untuk menspesifikasikan data digunakan atribut yang berarti sebuah properti deskriptif untuk sebuah class atau event. Aktivitas behavior termasuk di dalamnya empat buah sub-aktivitas, seperti digambarkan pada gambar 2.17. Dimana dimulai dari event table dan class diagram. Untuk memulai mendeskripsikan
behavioral pattern dari setiap class dalam class diagram menggunakan event yang berhubungan sebagai fondasi awal. (Mathiassen et al., 2000, p. 92)
74
Sumber: Mathiassen et al., 2000, p. 92 Gambar 2. 17 Sub-aktivitas dalam pemodelan behavior objek.
2.16.1.6.2.
Notasi untuk Behavioral Pattern
Sebuah behavioral pattern menggunakan event tunggal yang digunakan untuk pengendalian struktur dasar dari struktur pemrograman yakni:
•
Sequence: event dalam sekelompok yang terjadi satu demi satu.
•
Selection: Tepat satu dari sekelompok event yang terjadi.
•
Iteration: Suatu event terjadi nol sampai beberapa kali.
Behavioral pattern adalah deskripsi yang menangkap karakter dinamis dari problemdomain tanpa menspesifikasikan kenapa dan bagaimana suatu behavior tertentu dapat terjadi. (Mathiassen et al., 2000, p. 93)
75 Sebuah behavioral pattern dengan sequence, selection dan iteration dapat dideskripsikan menjadi yang paling komprehensif dibandingkan ekspresi biasanya. Menggunakan simbol “+” yang mewakili sequence, simbol “|” yang mewakili selection dan simbol “*” yang mewakili iteration, behavior dari customer dapat dideskripsikan menjadi: account opened + (amount deposited | amount withdrawn)* + account closed. (Mathiassen et al., 2000, p. 93) Behavioral pattern juga dapat dideskripsikan berupa gambar dengan menggunakan statechart diagram. Notasi klasik ini pada umumnya digunakan untuk mendeskripsikan adanya kedinamisan yang melibatkan sejumlah state dan sejumlah transisi. Seperti pada gambar 2.18, tiga buah struktur pengendalian klasik yang digunakan dalam ekspresi biasa dapat juga digunakan untuk diekspresikan dalam statechart diagram. (Mathiassen
et al., 2000, p. 94)
Sumber: Mathiassen et al., 2000, p. 95 Gambar 2.18 Struktur pengemdalian di dalam statechart diagram.
76
Sequence diekspresikan dengan menggunakan event yang menjalani melalui beberapa stte, dimana setiap state hanya memiliki satu buah event. Event tersebut harus terjadi agar urutannya dapat dijelaskan oleh anak panah. Selection diekspresikan dengan membuat semua kemungkinan event keluar dari state yang sama. Iteration diekspresikan dengan membuat event kembali ke state awalnya. (Mathiassen et al., 2000, p. 94)
2.16.2.
Analisis Application-Domain Analisis application-domain berfokus pada bagaimana sistem yang dituju dapat
digunakan. Fokus ini berguna unutk mendefinisikan kebutuhan untuk function dan
interface sistem. Analisis application-domain berinteraksi dengan analisis problemdomain. Menentukan urutan dalam pengerjaan kedua aktivitas Utama ini adalah sebuah strategi. Jika memulai dengan menganalisa application-domain maka untuk selanjutnya akan berfokus pada pekerjaan user dan mungkin menspesifikasikan berbagai kebutuhan detil. Namun jika memulai dengan menganalisa problem-domain maka untuk selanjutnya akan berfokus pada bisnis apa yang sebenarnya di jalankan, dibandingkan dengan interfaces dan function. (Mathiassen et al., 2000, p. 115) Stable properties
Model
Transient properties
Function
Interfaces
Sumber: Mathiassen et al., 2000, p. 116 Gambar 2. 19 Stabilitas relative dari property sistem yang berbeda
77 Pada gambar 2.19 menggambarkan sebuah model sistem yang lebih stabil, dan untuk function dan interface lebih bersifat sementara. Jadi ketika terjadi perubahan pada model, function dan interface juga berubah. Akan tetapi perubahan pada function tidak harus merubah model yang ada. Oleh karena itu, function dan interface kebutuhan untuk berubah lebih sering, namun model sistem jarang sekali berubah. (Mathiassen et al., 2000, p. 116)
Sumber: Mathiassen et al., 2000, p. 117 Gambar 2. 20 Analisis application domain Pengarahan kebutuhan berdasarkan pada dua prinsip dasar. Pertama, tentukan
application-domain dengan use case. Dimana use case menawarkan solusi elegan untuk masalah klasik di analisis application-domain dimana berfokus pada pekerjaan user dapat menghasilkan terlalu banyak informasi dengan terlalu banyak detil. Kedua, berkolaborasi dengan user. Spesifikasi kebutuhan tidak menjadi langkah satu arah. User mungkin tidak mengerti mengenai kebutuhan teknikal dengan baik untuk menulisakan
78 kebutuhan optimal. Oleh karena itu kerjasama antara user dengan pengembang sangat dibutuhkan. Kebutuhan akan usage, function dan interface perlu untuk dievaluasi seperti pada gambar 2.20. Dan aktivitas umum pada application domain analisis dapat dilihat pada tabel. 2.2. (Mathiassen et al., 2000, p. 117) Tabel 2. 2 Aktivitas pada analisis application-domain Activity
Usage
Content
Concepts
How does the system Uce Case and interact with people actor and sustems in the
Function
context? What are the sustem's Funtion information processing capabilities
Interfaces
What are the target Interface, user system's
interface interface,
requirements?
and
system interface
Sumber: Mathiassen et al., 2000, p. 117
2.16.2.1.
Usage
Untuk dapat digunakan sistem harus sesuai dengan application domain. Untuk melakukan penyesuaian ini dapat dilakukan dengan mendeskripsikan actor dan use case berdasarkan pada pemahaman atas aktivitas application domain. Use case menyediakan
79 gambaran umum dari kebutuhan sistem dari sudut pandang user dan menyediakan landasan untuk mendefinisikan dan mengevaluasi fungsi dasar yang lebih banyak dan kebutuhan interface. (Mathiassen et al., 2000, p. 119)
2.16.2.1.1.
Use Case
Menganalisis application domain yang sudah ada dapat menciptakan sejumlah besar informasi detil yang memiliki sedikit nilai untuk mengembangkan proses. Untuk kemudahan, diperlukan untuk mempertahankan tingkatan abstraksi yang relevan dan berfokus pada interaksi antara user dan sistem. Use case dapat membantu dalam mendapatkan tingkatan fokus dan abstraksi yang relevan. (Mathiassen et al., 2000, p. 119) Menurut Mathiassen et al.(2000, p. 119), actor adalah abstraksi dari user atau sistem lain yang berinteraksi dengan sistem tujuan. Dan use case adalah sebuah pola untuk interaksi antara sistem dan aktor di dalam application domain. Sebuah use case menentukan semua kegunaan dari sistem yang dituju dengan application domain. Prinsip utama dalam menentukan kegunaan sistem adalah menentukan application
domain dengan use case.
80
Sumber: Mathiassen et al., 2000, p. 117 Gambar 2. 21 sub-aktivitas dari usage.
Menentukan use case merupakan aktivitas multi aspek. Pertama, memerlukan kerjasama antara user dan pengembang. Kedua menentukan use case adalah proses analitikal seperti aktivitas kreatif. Ketiga, menentukan use case adalah aktivitas deskriptif dan eksperimental. Keempat, use case mendefinisikan target sistem dan
application domain-nya. Pada gambar 2.21 menunjukkan rangkuman aktivitas pada analisis usage dimana actor dan use case didefinisikan, dan sering menggunakan pola sebagai inspirasi. Pada tabel 2.3 menunjukkan actor table menunjukkan interaksi secara umum. Dan pada gambar 2.22 menunjukkan informasi yang sama pada tabel 2.3 akan tetapi menggunakan use case diagram. (Mathiassen et al., 2000, p. 120)
81 Tabel 2.3 Sebuah contoh actor table..
Actors
Account Use cases
Owner
Payment
√
Cash withdrawal
√
Money Transfer
√
Account
Liquidity Creditor Administrator Monitor √
√
√
Information
√ √
√
Credit Information
√
Registration
√
Monitoring
√
Error Correcting
√
√
Sumber: Mathiassen et al., 2000, p. 121
Sumber: Mathiassen et al., 2000, p. 122 Gambar 2. 22 Contoh use case diagram..
82 Dalam penggambaran use case, use case itu sendiri dilambangkan dengan bentuk oval dengan nama dari use case-nya berada di dalam. Garis yang menghubungkan actor dengan use case menunjukkan actor yang mana yang menjalankan use case yang mana. (Satzinger, Jackson, & Burd, 2005, p. 215)
2.16.2.1.2.
Use case descriptions
Diagram use case membantu dalam mengidentifikasi berbagai proses yang user lakukan dan hal yang harus didukung oleh sistem baru. Untuk membuat sebuah sistem secara mendalam, maka diperlukan pemahaman secara mendalam mengenai semua langkah yang harus dimengerti. Terdapat tiga tahapan dalam penulisan use case
description yaitu: brief description, intermediate description, dan fully developed description. Brief description digunakan untuk use case yang sangat sederhana, terutama ketika sistem akan dikembangkan adalah sistem yang kecil dan juga merupakan aplikasi yang mudah dimengerti. Intermediate description merupakan pengembangan dari brief
description dimana menyertakan alur dari aktivitas dari sebuah use case. Jika ada beberapa skenario maka setiap aktivitas dideskripsikan masing-masing. Kondisi pengecualian (exception conditions) juga di ikut sertakan jika memang diperlukan. (Satzinger, Jackson, & Burd, 2005, p. 220)
Fully developed descriptions merupakan metode dokumentasi use case yang paling formal. Dalam pembuatannya, terdapat beberapa bagian yakni bagian pertama dan kedua digunakan untuk mengidentifikasikan use case dan skenario untuk use casenya. Bagian ketiga digunakan untuk mengidentifikasikan pemicu untuk use acse tersebut. Bagian keempat merupakan brief description daru use case. Bagian kelima,
83 mengidentifikasikan aktornya. Bagian keenam digunakan untuk mengidentifikasi use
case lain dan bagaimana use case ini saling terhubung. Bagian keenam digunakan untuk mengidentifikasikan bagian lain yang terhubung selain dari aktor utama. Dua bagian berikutnya digunakan untuk menyediakan informasi penting mengenai kondisi use case sebelum dan sesudah use case tersebut dijalankan. Kedua bagian terakhir digunakan untuk mendeskripsikan alur aktivitas dari use case. Kondisi alternatif dan kondisi eksepsi dijelaskan pada bagian terakhir. (Satzinger, Jackson, & Burd, 2005, pp. 221-225)
2.16.2.1.3.
Function
Menurut Mathiassen, et al. (2000, pp137-138). Function berfokus pada bagaimana cara sebuah sistem dapat membantu aktor dalam melaksanakan pekerjaan mereka. Function memiliki empat tipe yang berbeda, yaitu:
•
Update Fungsi update diaktifkan oleh event problem domain dan menghasilkan perubahan status model.
•
Signal Fungsi signal diaktifkan oleh perubahan status model dan menghasilkan reaksi di dalam context.
•
Read Fungsi read diaktifkan oleh kebutuhan actor akan informasi dan menghasilkan tampilan model sistem yang relevan.
84
•
Compute Fungsi compute diaktifkan oleh kebutuhan actor akan informasi dan berisi perhitungan yang dilakukan baik oleh actor maupun oleh model. Hasilnya adalah tampilan dari hasil perhitungan yang dilakukan.
Tujuan dari kegiatan function adalah untuk menentukan kemampuan sistem memproses informasi. Hasil dari kegiatan ini adalah sebuah daftar function-function yang merinci function-function yang kompleks. Daftar function harus lengkap menyatakan secara keseluruhan kebutuhan kolektif dari pelanggan dan aktor sehingga harus konsisten dengan use case. (Mattiassen et al, 2000, p.139) Untuk beberapa fungsi, perlu untuk mendeskripsikan isinya dengan lebih mendetail untuk mengerti apa yang harus dilakukan. Deskripsi lebih mendetail ini hanya untuk fungsi yang paling kompleks. Fungsi-fungsi yang ada harus konsisten dengan hasil analisis lainnya. (Mattiassen et al, 2000, p.140-141)
2.16.2.1.4.
User Interface
Interface digunakan oleh seorang actor untuk melakukan interaksi dengan sistem. Interface juga menghubungkan sistem untuk semua actor yang saling terkait di dalam sistem. Sebuah user interface yang baik membantu user dalam melakukan pekerjaannya dan konsep mengenai sistem. (Mathiassen, Munk-Madsen, Nielsen, & Stage, 2000, p. 152) Menurut Satzinger et al (2005, p. 444) user interfae terdiri atas tiga aspek yaitu, pertama aspek fisik yang berupa semua alat yang digunakan atau disentuh oleh user dalam menggunakan user interface berupa keyboard, mouse, dan lainnya, kedua aspek persepsi yang berupa semua hal yang di dengar, dilihat oleh user, dan yang ketiga adalah
85 aspek konseptual, yakni semua yang diketahui oleh user mengenai penggunaan sistem, termasuk didalamnya hal-hal yang berkaitan dengan “problem-domain” yang dapat dimanipulasi atau operasi yang dapat digunakan oleh user.
2.16.2.2.
Sequence Diagram
Sequence Diagram digunakan untuk mendeskripsikan alur informasi dari sistem dan menuju ke sistem. Dalam pembuatan sequence diagram menggunakan sebuah gambar stik orang yang mewakili user yang menggunakan sistem. Dalam sequence diagram ini menunjukkan bagaimana user berinteraksi dengan sistem dengan melakukan pemasukkan data dan menghasilkan data. Dalam sequence diagram terdapat garis putus-putus yang disebut dengan lifelines. Sebuah lifelines merupakan pengembangan dari objek secara sederhana, Gambar anak panah menunjukkan pesan yang diterima atau yang dikirmkan oleh aktor kepada sistem. Sebuah pesan dituliskan untuk mendeskripsikan pesan yang diterima ataupun yang dikirimkan. Dan pesan yang dikembalikan oleh sistem diwakili oleh gambar garis panah yang terputus-putus. Garis panah putus-putus ini menandakan respon atau jawaban dan secara langsung mengikuti pesan yang dikirimkan sebelumnya. (Satzinger, Jackson, & Burd, 2005, pp. 226-228)
2.16.3.
Architectual Design
Architectural design berfungsi sebagai kerangka kerja dalam aktivitas pengembangan sistem dan menghasilkan struktur komponen dan proses sistem. Tujuannya adalah untuk menstrukturisasi sebuah sistem yang terkomputerisasi. Architectual design juga berguna untuk menjembatani kriteria-kriteria dengan platform
86 yang tersedia. Dalam pengembangannya, architectural design terdiri dari tiga aktivitas yaitu criteria, component architecture, dan process architecture seperti yang pada gambar 2.23.
Gambar 2. 23 Aktivitas Architectural Design Sumber: Mathiassen et al (2000, p176)
2.16.3.1.
Component Architecture
Menurut Satzinger et al (2005, p. 280) Component architecture adalah struktur sistem dari komponen-komponen yang berkaitan yang membantu dalam pembuatan sebuah
software. Beberapa contoh software architecture adalah: -
Client/server architecture Client dan server merupakan sebuah model umum dari software di dalam suatu organisasi yang dapat diterapkan dengan berbagai bentuk. Salah satunya adalah dimana proses pengaksesan menggunakan sebuah workstation dan database mengakses sistem yang lebih besar.
-
Three-layer client/server architecture Merupakan sebuah aplikasi software yang lebih besar lagi dimana membagi
layer-nya menjadi data layer yang digunakan untuk menyimpan database, business logic layer yang digunakan untuk menjalankan prosedur-prosedur dari
87 proses bisnis, dan view layer yang menerima masukkan dan format dari user juga menampilkan hasil-hasilnya. -
Middleware Merupakan software yang menjadi penengah dalam proses komunikasi antar layer. Middleware menghubungkan berbagai bagian dari aplikasi yang membantu dalam pengiriman data diantara layer.
-
Internet and web-based software architecture Web arsitektur digunakan untuk perancangan berbasis web dimana para user mengirimkan data melalui web yang melalui protocol.
2.16.3.2.
Process architecture
Menurut Mathiassen et al (2000, p. 211) process architecture adalah sebuah sistem eksekusi yang terdiri atas proses yang saling bergantung. Dalam buku Satzinger
et al (2005, p. 379), dalam penggambarannya, deployment diagram menggunakan dua buah simbol yakni component symbol dan node symbol. Component symbol adalah program yang dapat dijalankan dan terkandung didalamnya semua class yang dijalankan menjadi sebuah entitas tunggal. Node symbol adalah sebuah simbol yang merepresentasikan sebuah sumber daya komputer. Menutur Satzinger et al (2005, pp. 380-385)Dalam proses implementasi, deployment diagram dapat digunakan pada berbagai bentuk internet, seperti: -
Simple Internet Architecture
-
Two Layer Architecture
-
Three Layer Architecture
pada sistem berbasis