2.2 Economic Dispatch pada Unit Pembangkit Thermal dengan

advertisement
BAB 2
LANDASAN TEORI
2.1 Operasi Sistem Tenaga Listrik dan Optimasi Listrik
2.1.1
Pengertian Sistem Tenaga Listrik
Pada umumnya, sistem tenaga listrik dibagi menjadi tiga bagian utama,
yaitu pembangkit tenaga listrik, penyaluran tenaga listrik, dan distribusi
tenaga listrik. Ketiga bagian ini tidak dapat dipisahkan karena merupakan
suatu sistem yang kompleks yang bekerja untuk menyalurkan daya dari pusat
pembangkit ke pusat-pusat beban. Lebih jelasnya dapat dilihat pada gambar
berikut :
Gambar 0.1 Rangkaian Sistem Tenaga Listrik
7
8
Energi listrik yang dihasilkan pusat pembangkit listrik akan disalurkan
melalui saluran transmisi kemudian melalui saluran distribusi akan sampai ke
konsumen.
1. Pusat Pembangkit Listrik (Power Plant)
Pusat pembangkit listrik merupakan tempat pertama kali energi
listrik dibangkitkan atau dihasilkan. Di sini terdapat turbin penggerak
awal dan juga generator yang mengubah tenaga turbin menjadi energi
listrik. Terdapat beberapa jenis pusat pembangkit listrik yang biasanya
dibagi kedalam dua bagian besar yaitu pembangkit hidro (PLTA) dan
pembangkit thermal (PLTU, PLTG, PLTGU, PLTD, PLTP).
2. Transmisi Tenaga Listrik
Transmisi tenaga listrik merupakan proses penyaluran tenaga
listrik dari pusat pembangkitan listrik hingga saluran distribusi listrik
sehingga nantinya sampai pada konsumen/pengguna listrik.
3. Sistem Distribusi
Sistem distribusi ini merupakan sub sistem tenaga listrik yang
langsung berhubungan dengan pelanggan/konsumen dan berfungsi
dalam hal pembagian atau penyaluran tenaga listrik ke beberapa
tempat. Sub sistem ini terdiri dari : pusat pengatur / gardu induk,
gardu hubung, saluran tegangan menengah/jaringan primer (6 kV dan
20 kV) yang berupa saluran udara atau kabel bawah tanah, saluran
tegangan rendah / jaringan sekunder (380 V dan 220 V), gardu
distribusi tegangan yang terdiri dari panel-panel pengatur tegangan
baik tegangan menengah ataupun tegangan rendah, dan trafo.
(Joko et al, 2010:1-3)
2.1.2 Operasi Sistem Tenaga Listrik
Telah dijelaskan sebelumnya bagaimana sistem dari tenaga listrik tersebut
yang juga dapat dilihat dari gambar di atas sebagai gambaran singkat dari
hubungan masing-masing sistem listrik. Pembangkit-pembangkit listrik
memiliki lokasi yang saling berjauhan satu sama lain dan terhubung satu
sama lain melalui sistem transmisi yang luas. Ini dapat disebut sebagai sistem
interkoneksi. Adanya sistem interkoneksi tersebut menyebabkan :
1.
Keandalan sistem yang semakin tinggi
9
2.
Efisiensi pembangkitan tenaga listrik dalam sistem meningkat
3.
Mempermudah penjadwalan pembangkit
Sebuah sistem tenaga listrik merupakan sebuah unit usaha dimana selain
faktor teknis, juga harus diperhatikan faktor ekonomisnya. Kondisi
kesetimbangan antara pendapatan dan pengeluaran harus dijaga agar didapat
keuntungan yang layak.
Penjualan listrik dalam bentuk pemakaian energi (kWh) oleh konsumen
harganya diatur dalam sistem tarif tertentu (di Indonesia menggunakan
Keppres). Pengeluaran dalam mengoperasikan sistem tenaga listrik meliputi :
1) Belanja pegawai, 2) Belanja barang dan jasa, 3) Pemeliharaan dan
penyusutan, 4) Penelitian/pengembangan, 5) Pajak, 6) Bahan baku energi
(BBM, Batubara, Nuklir, Air, dsb), 7) Losses, dan lain-lain. Secara umum
hal-hal tersebut terbagi dalam empat komponen yang disebut komponen
biaya pembangkit, yaitu :
1.
Komponen A berupa depresiasi dan interest (penyusutan). Merupakan
biaya tetap.
2.
Komponen B berupa biaya pegawai dan pemeliharaan. Merupakan
biaya tetap.
3.
Komponen C berupa biaya bahan bakar. Merupakan biaya yang dapat
berubah-ubah.
4.
Komponen D berupa pelumas dan biaya lainnya. Merupakan biaya
yang dapat berubah-ubah.
Bagian terbesar dari pembiayaan adalah komponen C atau biaya bahan
bakar yang mencakup hampir 80% dari total pembiayaan. Pembiayaan
terbesar yang terletak di pembangkit-pembangkit tersebut juga terkait erat
dengan penggunaan listrik oleh konsumen. Oleh karena itu diperlukan sebuah
cara dalam mengoptimasi sistem listrik agar berjalan dengan efisien.
Tujuan utama dari operasi sistem tenaga listrik ini adalah untuk memenuhi
kebutuhan beban listrik secara efisien (beban terpenuhi dengan biaya yang
minimum), dengan mempertimbangkan sasaran operasi tenaga listrik (sistem
harus dapat memenuhi standar dalam keamanan lingkungan, memiliki
keandalan yang baik, dan dapat melayani permintaan secara continue dari
waktu ke waktu) (Nadjamuddin, 2011:141-142).
10
Sebagai gambaran dari tujuan operasi sistem tenaga listrik dapat dilihat
pada diagram lingkar sasaran operasi tenaga listrik di bawah ini.
Ekonomi
Keandalan
(Sekuriti)
Mutu
Gambar 0.2 Tujuan Sistem Operasi Listrik
Ekonomi (economy) berarti listrik harus dioperasikan secara ekonomis,
tanpa melanggar batasan keandalan dan mutunya.
Keandalan (security) merupakan kemampuan sistem dalam menghadapi
kejadian yang tidak direncanakan (gangguan). Apabila terjadi gangguan di
pembangkit ataupun pada saluran transmisi diusahakan sebisa mungkin agar
tidak terjadi pemadaman di sisi konsumen.
Mutu (quality) merupakan kemampuan sistem untuk mengukur agar
kualitas tegangan dan frekuensi dari tenaga listrik dapat dijaga agar tetap
berada pada kisaran yang ditetapkan.
Pada pelaksanaan pengendalian operasi sistem tenaga listrik, urutan
prioritas dari sasaran di atas bisa berubah-ubah tergantung pada kondisi real
time. Pada saat terjadi gangguan, maka keandalan/sekuriti merupakan
prioritas utama sedangkan mutu dan ekonomi bukanlah yang utama.
Kemudian apabila keamanan dan mutu sudah bagus, maka selanjutnya
ekonomi yang harus diprioritaskan (Wikarsa, 2010:4).
2.1.3 Karakteristik Pembangkit Listrik
Mengenal karakteristik pembangkit listrik sangatlah penting guna
menekan pembiayaan bahan baku energi. Dengan mengenal karakteristik
pembangkit listrik maka pengaturan output pembangkit dapat diatur dengan
baik sehingga biaya bahan baku energi dapat diminimalisir. Berdasarkan
karakteristik pembangkit listrik, dapat dibuat model matematis untuk proses
optimasi agar dihasilkan biaya pembangkitan yang ekonomis.
11
Ada berbagai macam jenis pembangkit listrik. Pembangkit listrik tenaga
air (PLTA), pembangkit listrik tenaga uap (PLTU), pembangkit listrik tenaga
gas alam (PLTG), pembangkit listrik tenaga panas bumi (PLTP), pembangkit
listrik tenaga diesel (PLTD), dan pembangkit listrik tenaga gas dan uap
(PLTGU).
Pembangkit listrik tersebut dapat diklasifikasikan menjadi dua bagian
besar berdasarkan karakteristiknya yaitu pembangkit hidro (PLTA) dan
pembangkit thermal (PLTU, PLTG, PLTP, PLTD, PLTGU). Pengoptimasian
pada kedua klasifikasi pembangkit tersebut sangatlah penting guna
terpenuhinya kebutuhan beban dengan biaya yang minimum. Namun, di
antara dua karakteristik pembangkit tersebut, pembangkit thermal cukup
menjadi perhatian dikarenakan biaya bahan bakar/baku-nya yang tinggi dan
cukup sering berubah. Oleh karena itu, untuk lebih lanjutnya akan banyak
dibahas mengenai pembangkit thermal ini.
2.1.4
Optimasi Pembangkit Listrik
Pembagian beban pembangkit dalam suatu operasi sistem tenaga listrik
merupakan hal yang penting untuk mencapai suatu operasi yang optimal.
Diperlukan koordinasi dalam penjadwalan pembebanan besar daya listrik
yang dibangkitkan masing-masing pusat pembangkit listrik, sehingga
diperoleh biaya pembangkit yang minimum.
Terdapat dua pokok permasalahan yang harus dipecahkan dalam operasi
ekonomis pembangkitan pada sistem tenaga listrik yaitu :
1. Pengaturan Unit Pembangkit (Unit Commitment)
Penanganan biaya
operasi
pembangkit
tenaga listrik
bisa
diminimalkan dengan cara mencari kombinasi yang tepat dari unit
pembangkit yang ada. Hal ini dikenal dengan pengaturan unit
pembangkit. Pada pengaturan unit akan dibuat skema urutan prioritas,
yaitu metode pengoperasian unit pembangkit berdasarkan total biaya
rata-rata bahan bakar yang paling murah.
Pengaturan pembangkit menentukan unit mana yang aktif dan
unit mana yang tidak aktif dalam melayani beban sistem selama siklus
waktu tertentu. Dalam membuat pengaturan jadwal tersebut digunakan
pertimbangan teknis dan ekonomis. Dari sejumlah unit pembangkit
12
yang ada akan ditentukan unit mana saja yang beroperasi dan tidak
beroperasi pada jam tertentu sehingga dapat dibuat kombinasi operasi
dari unit-unit yang ada.
2. Penjadwalan Ekonomis (Economic Dispatch)
Penjadwalan ekonomis merupakan suatu usaha untuk menentukan
besar daya yang harus disuplai dari tiap unit generator untuk
memenuhi beban tertentu dengan cara membagi beban tersebut pada
unit-unit pembangkit yang ada dalam sistem secara optimal ekonomis
dengan tujuan meminimumkan biaya operasi pembangkitan.
Penjadwalan ekonomis yang merupakan salah satu pokok permasalahan
dalam operasi ekonomis sistem tenaga listrik ini akan dibahas lebih detail
khususnya
dalam
kasus
pembangkit
thermal
pada
penulisan
ini
(Nadjamuddin, 2011:186-187).
2.1.5 Unit Pembangkit Thermal
Gambar 0.3 Sistem Pembangkit Thermal (Penangsang, 2011)
Gambar di atas merupakan suatu gambaran unit pembangkit thermal
bekerja. Terdapat boiler, turbin uap, dan generator sebagai alat-alat yang
mengubah bahan bakar menjadi energi listrik.
1. Karakteristik Input Output Pembangkit Thermal
Karakteristik
ini
memperlihatkan
hubungan
antara
input
pembangkit sebagai fungsi dari output pembangkit. Persamaan
karakteristik input-output pembangkit menyatakan hubungan antara
jumlah bahan bakar yang dibutuhkan untuk menghasilkan daya
tertentu pada pembangkit listrik yang didekati dengan fungsi
binomial, yaitu :
13
Keterangan :
atau
= input bahan bakar (Btu/jam)
= biaya bahan bakar per jam (Rp/jam)
= output daya pembangkit (MW)
Input, H (Mbtu/jam) atau F (Rpjam)
= konstanta persamaan
ΔH / ΔF
ΔP
H
P
Pmin
Pmax
Output, P (MW)
Gambar 0.4 Kurva Karakteristik Input-Output Unit Thermal
Gambar diatas menunjukkan karakteristik input-output unit thermal
dalam bentuk yang ideal, digambarkan sebagai kurva non-linier yang
kontinu. Input dari pembangkit ditunjukkan pada sumbu tegak yaitu
energi panas yang dibutuhkan dalam bentuk Mbtu/h (million of btu
per hour) karena digunakan satuan British Temperatur Unit (apabila
menggunakan SI menjadi MJ/h atau Kcal/H) yang dapat dinyatakan
juga sebagai biaya total per jam (Rp/jam). Output dari pembangkit
ditunjukkan pada sumbu mendatar yaitu daya listrik yang memiliki
batas-batas berupa daya maksimum dan daya minimum pembangkit.
(Saadat, 1999:267)
2. Karakteristik Kenaikan Biaya/Panas Pembangkit Thermal
Karakteristik lain yang perlu untuk diketahui pada suatu
pembangkit thermal adalah karakteristik laju panas atau incremental
heat yang dapat juga dikatakan sebagai karakteristik kenaikan biaya.
Karakteristik
ini
merupakan
suatu
kemiringan
(slope)
dari
14
karakteristik input-output (
atau
) atau turunan pertama
dari karakteristik input-output.
Gambar 0.5 Kurva Karakteristik Kenaikan Biaya/Panas Unit Thermal
Pada karakteristik ini ditunjukkan nilai Btu per kWh atau Rp/kWh
terhadap daya keluaran dalam satuan MW. Lebih lanjutnya,
karakteristik ini digunakan untuk perhitungan pembebanan ekonomis
dari unit pembangkit. Jika persamaan input-ouput unit pembangkit
dinyatakan dalam pendekatan dengan menggunakan persamaan
kuadrat, maka karakteristik kenaikan biaya akan mempunyai bentuk
garis lurus.
(Saadat, 1999:267)
3. Karakteristik Efisiensi Terhadap Output
Karakteristik laju panas juga salah satu karakteristik yang perlu
diketahui. Pada karakteristik ini, input merupakan jumlah panas per
kilowattjam (Btu/kWh) dan output merupakan daya listrik dalam
satuan MW.
H/P (Btu/kWh)
15
Pmin
Prate
Pmax
Output, P (MW)
Gambar 0.6 Kurva Karakteristik Efisiensi terhadap Output
Karakteristik laju panas ini menunjukan kerja sistem dari sistem
pembangkit thermal seperti kondisi uap, temperatur panas, tekanan
kondensor, dan siklus aliran air secara keseluruhan. Pada kurva
terlihat bahwa efisiensi yang baik terletak pada limit maksimalnya.
(Adrianti, 2010)
2.2 Economic Dispatch pada Unit Pembangkit Thermal dengan Mengabaikan
Rugi-rugi Transmisi Karakteristik Pembangkit Listrik
Pada subbab 2.1.5 telah dibahas mengenai operasi pada unit pembangkit
thermal dimana terdapat berbagai kurva karakteristik. Di sini, perlu diperhatikan
mengenai kurva karakteristik input output yang nantinya akan menjadi dasar
permodelan fungsi biaya dalam Economic Dispatch, selain itu kurva incremental
heat juga penting untuk mengukur berapa besar biaya yang akan dikeluarkan
apabila jumlah daya ditambahkan.
Operasi sistem tenaga listrik pada frekuensi konstan dapat disebut juga
power balance, yaitu pembangkitan daya real sama dengan total beban ditambah
rugi-rugi transmisi, yang dituliskan sebagai berikut :
Namun, permasalahan Economic Dispatch pada penulisan ini akan dibatasi
yaitu tidak memperhitungkan adanya rugi-rugi transmisi pada rangkaian
pembangkit. Model permasalahan ini mengasumsikan bahwa hanya ada satu bus
16
dalam sistem yang menghubungkan beberapa generator/pembangkit yang ada
seperti pada gambar berikut :
Gambar 0.7 Pembangkit Terhubung Pada 1 Bus (Wood & Wollenberg,
1996:30)
Oleh karena itu persamaan di atas menjadi :
Dimana,
=
= total daya dari pembangkit ke-
= total daya yang dibutuhkan
= total pembangkit
Permodelan biaya bahan bakar berkaitan dengan daya aktif yang diproduksi
pembangkit. Telah dibahas sebelumnya mengenai input pembangkit thermal
yang merupakan bahan bakar dan outputnya berupa daya aktif. Untuk
menghitung biaya pembangkitannya maka dari persamaan fungsi heatrate pada
subbab 2.1.5 akan dikalikan dengan harga kalor (didapat dari harga bahan bakar
dalam hal ini batubara dibagi dengan nilai kalornya). Oleh karena itu model
matematis fungsi biaya dapat ditulis sebagai berikut :
Keterangan :
= total biaya pembangkitan (Rp)
= fungsi biaya input-output dari pembangkit (Rp/jam)
17
= koefisien biaya dari pembangkit
= output pembangkit (MW)
= jumlah unit pembangkit
= indeks dari dispatchable unit
Jadi, seperti persamaan di atas, terlihat bahwa total biaya pembangkitan
merupakan jumlah dari fungsi biaya tiap pembangkit.
Masing-masing pembangkit memiliki batasan yang dirumuskan sebagai
berikut :
Batas atas suatu pembangkit berhubungan dengan rating thermal stator
generator. Sedangkan batas minimal suatu generator berhubungan dengan
operasi boiler yang menghasilkan uap untuk menggerakan turbin.
(Wood & Wollenberg, 1996:29-32)
2.3 Metode Bacterial Foraging Optimization Algorithm
Metode Bacterial Foraging Optimization Algorithm ini merupakan salah
satu metode yang mungkin masih asing terdengar karena merupakan suatu
evolusi baru dari algoritma komputasi yang penerapannya pada masalah
optimisasi. Metode ini termasuk dalam lingkup Bacteria Optimization
Algorithms and Swarm Optimization dan lebih luasnya lagi termasuk dalam
lingkup Computational Intelligence and Metaheuristics.
Metode ini terinspirasi dari pola hidup bakteri E. Coli yang hidup pada usus
besar manusia dan M.xanthus. Lebih spesifiknya lagi metode ini terinspirasi dari
pola chemotaxis yang akan mempersepsikan secara kimiawi adanya suatu nutrisi
dalam lingkungannya dan bergerak menuju atau menjauh sesuai dengan sinyalsinyal yang diterima bakteri tersebut.
Bakteri akan bergerak mencari makanannya dengan memperhatikan
konsentrasi nutrisi di sekitarnya. Bakteri akan mengeluarkan sinyal berupa suatu
bahan kimia yang bisa menarik atau menjauhkan dirinya dengan bakteri lainnya.
Bakteri bergerak menggunakan flagella-nya untuk menuju makanannya,
terkadang juga bergerak tidak beraturan yang disebut tumbling dan spinning dan
juga dapat bergerak beraturan yang disebut swimming.
18
Gambar 0.8 Fenomena Penggabungan Flagella Diperlihatkan pada Gambar
(a), Swimming dan Tumbling dari Bakteri E. Coli Diperlihatkan pada
Gambar (b) di medium netral, dan pada Gambar (c) Dimana Ada Perubahan
Konsentrasi Nutrisi, Pada Gambar Terlilhat dari Gradiasi dimana Bagian
Lebih Gelap Memiliki Konsentrasi Nutrisi Lebih Padat (Gazi & Passino,
2010:234)
2.3.1 Pola Hidup Bakteri
Pola hidup bakteri akan dijelaskan melalui empat langkah tingkah laku
bakteri yang diimplementasikan dalam Bacterial Foraging Optimization
Algorithm ini yaitu :
1. Chemotaxis :
Pada tahap ini, bakteri mencari konsentrasi nutrisi yang dibutuhkan
dan menghindari substansi yang berbahaya. Proses ini dilakukan dengan
pergerakan bakteri dari berguling, berlari hingga berenang. Pada langkah
inilah akan dicari biaya yang paling optimum. Langkah ini merupakan
bagian paling berpengaruh dalam keseluruhan algoritma metode ini.
Pertama-tama dilakukan inisialisasi posisi bakteri yaitu :
Langkah-langkah chemotaxis didefinisikan menjadi tumble yang diikuti
tumble atau tumble yang diikuti oleh run.
yang ada dalam populasi,
merupakan jumlah bakteri
merupakan langkah chemotaxis,
merupakan
langkah reproduction dan merupakan langkah elimination dan dispersal.
Setelah mengatur inisialisasi posisi bakteri maka kemudian dihitung biaya
masing-masing bakteri yaitu
.
19
Bakteri akan mulai bergerak mencari makanannya. Pergerakan bakteri
disetiap langkah chemotaxis-nya dapat dirumuskan sebagai berikut :
Dimana :
= posisi vektor dari bakteria ke- , pada step chemotaxis ke- ,
pada step reproduction ke-k, dan pada step elimination dan
dispersal ke- .
= besar step yang didapat pada saat bakteri bergerak random.
= vektor arah pada step chemotaxis ke- , ketika bakteri berenang atau
berlari,
sama dengan sebelumnya, selain itu
adalah vektor
yang nilainya random antara [-1,1]
2. Swarming :
Bakteri yang lolos di tahap chemotaxis merupakan bakteri yang sehat
yang akan berenang menuju suatu tujuan hingga kondisinya tidak
memungkinkan lagi. Bakteri yang sehat cenderung akan berkumpul
bersama sehingga mereka akan mencapai tujuannya (solusi yang
diinginkan) dengan lebih cepat. Permodelan matematika dari pola
swarming ini dirumuskan sebagai berikut :
Dimana :
= ukuran dari banyaknya bakteri yang bergerombol
= suatu titik pada lingkup ruang
= dimensi ruang
= kedalaman dari materi penarik (attractant) atau penolak (repellant)
dimana bakteri berkomunikasi
20
= lebar dari materi penarik (attractant) atau penolak (repellant) dimana
bakteri berkomunikasi
dan
merupakan dua koefisien yang berbeda yang
nilainya masing-masing ditentukan.
3. Reproduction :
Kesehatan dari bakteri dirumuskan sebagai berikut :
Dimana :
= step maksimal pada step chemotaxis
Pada
tahap
reproduction
ini,
bakteri
diurutkan
berdasarkan
kesehatannya, mulai dari yang paling bagus hingga yang tidak. Bakteri
yang paling buruk kesehatannya akan mati dan sisanya yang sehat akan
membelah diri menjadi dua dan ditempatkan di lokasi yang sama di
lingkup pencarian sehingga populasi bakteri tetap sama. Hal ini
dirumuskan dengan
, dimana diasumsikan bahwa
merupakan
bilangan positif yang genap. Proses reproduction ini mempercepat
kekonvergensian pada problem statik tapi tidak pada lingkungan yang
dinamis.
4. Elimination and Dispersal :
Di tahap ini, hasil chemotaxis akan terlihat dengan ditempatkannya
bakteri-bakteri pada nilai terdekat yang dibutuhkan. Proses dispersal akan
terjadi pada angka tertentu yang dihasilkan oleh proses reproduction.
Setiap bakteri, berdasarkan probabilitas yang ditentukan, akan terceraiberai dari posisi sebelumnya dan pindah ke posisi yang paling bagus dalam
lingkup pencarian. Elimination dan dispersal ini berguna untuk
menghindari konvergensi dini/tidak sempurna atau terjebak dalam local
optima.
(Gazi & Passino, 2011:238-241)
21
2.3.2
Algoritma Metode Bacterial Foraging Optimization Algorithm
Inisialisasi
semua
parameter
yaitu
dan
. Jika menggunakan swarming maka juga harus
menginisialisasi parameter cell-to-cell attractant (
).
Selain itu juga harus menginisialisasi posisi bakteri
.
Berikut langkah-langkahnya :
1. Looping Elimination-Dispersal
2. Looping Reproduction :
3. Looping Chemotaxis :
a.
ikuti langkah chemotaxis untuk setiap bakteri ke-i
sebagai berikut :
b. Hitung
. Kemudian tambahkan cell-to-cell attraction.
c.
kemudian simpan nilai ini.
d. Tumble : buatlah vektor random
dengan setiap elemen
merupakan nomor random dari [-1,1]
e. Pindah : Hitunglah
f. Hitung
,
lalu
.
g. Swim (perlu diketahui bahwa digunakan aproksimasi karena swimming
setiap bakteri diasumsikan bahwa bakteri pertama bergerak terlebih
dahulu dan bakteri selanjutnya belum bergerak):
i. Buat counter swimming,
ii. Selama
, maka
- Jika
hitung
, maka
dan
22
unakan
untuk menghitung
yang baru
seperti yang telah dilakukan di langkah f.
- Jika tidak maka
. Ini merupakan akhir looping.
h. Lanjutkan ke bakteri selanjutnya
4. Jika
jika
kembali ke langkah ke-tiga. Chemotaxis masih berlanjut karena
hidup bakteri belum berakhir.
5. Reproduction :
a. Untuk
dan dan setiap
:
Merupakan kesehatan bakteri ke- . Urutkan bakteri berdasarkan health-nya
secara ascending.
b. Bakteri
dengan
yang tinggi akan mati, sedangkan bakteri
yang lain, yang memiliki nilai minimum akan membagi diri menjadi dua.
6. Jika
maka kembali ke langkah ke-dua. Jumlah langkah
reproduction masih belum selesai sehingga dimulai lagi kembali masuk ke
langkah chemotaxis.
7. Elimination-Dispersal:
dengan
probabilitas
elimination dan dispersi setiap bakteri (hal ini membuat jumlah bakteri dalam
populasi tetap konstan). Dalam pelaksanaanya, jika mengelimination salah
satu bakteri, maka letakan lagi satu bakteri ke dalam ruang lingkup pencarian.
8. Jika
maka kembali ke langkah pertama. Jika tidak maka selesai.
(Gazi & Passino, 2011:242-243)
2.3.3 Panduan Memilih Inisialisasi Parameter
Inisialisasi parameter cukup berpengaruh dalam keseluruhan kinerja
metode Bacterial Foraging Optimization Algorithm ini. Pertama-tama adalah
inisialisasi jumlah bakteri yaitu
. Semakin besar jumlah
tentunya akan
menambah kompleksitas algoritma ini. Namun, hasil yang didapat bisa lebih
akurat karena ada banyaknya jumlah bakteri, ada kemungkinan terdapat
bakteri dalam lingkup yang dekat dengan titik optimum.
23
Selanjutnya menentukan nilai step bakteri pada proses tumble, yaitu
. Jika
terlalu besar, ada kemungkinan bakteri akan
melewati begitu saja titik optimumnya. Namun jika
terlalu kecil maka
konvergensi algoritma akan berjalan lambat, meskipun hasilnya bisa lebih
memuaskan.
Nilai-nilai
parameter
dari
cell-to-cell
attractant
seperti
juga harus diperhatikan karena mendefinisikan
karakteristik swarming-nya. Jika kedalaman attractant besar dan cukup
dalam, maka bakteri akan memiliki kecenderungan untuk swarming, sehingga
melupakan tugasnya
untuk
mencari titik-titik minimum lain
yang
memungkinkan. Sedangkan jika kedalaman attractant kecil dan dangkal
maka yang akan terjadi adalah sebaliknya.
Parameter yang penting lainnya adalah langkah chemotaxis yaitu
Semakin besar
.
maka semakin banyak proses optimisasi namun program
pun akan menjadi lebih kompleks. Semakin kecil
, membuat hasil yang
didapatkan belum tentu yang paling optimum. Di dalam
juga terdapat
yaitu banyaknya langkah bakteri berenang. Parameter
ini sangat
menunjang langkah chemotaxis-nya, karena semakin banyak bakteri berenang
maka hasil yang didapatkan bisa lebih optimal.
Jika
cukup besar, maka nilai
akan mempengaruhi jalannya
algoritma untuk tidak mempedulikan daerah yang buruk dan hanya fokus
pada daerah yang bagus nutrisinya. Jika
terlalu kecil maka pada
algoritma akan tejadi konvergensi prematur. Namun,
yang besar tentu
akan menambah kompleksitas perhitungannya.
Nilai
yang rendah berarti algoritma tersebut tidak terlalu bergantung
pada pencarian nilai random pada kejadian elimination-dispersal untuk
mencari daerah yang paling baik. Nilai
yang tinggi tentu meningkatkan
kompleksitas perhitungan, namun membuat bakteri dapat mencari lebih jauh
lingkungan yang nutrisinya lebih baik lagi.
yang terlalu besar dapat
membuat pencarian nilai random yang terlalu banyak sehingga proses pun
24
semakin kompleks. Namun, jika nilai
ini dipilih dengan benar maka
proses algoritma ini dapat terhindar dari local optima atau global optimum.
(Gazi & Passino, 2011:244)
2.4 Interaksi Manusia dan Komputer (IMK)
Dalam bukunya, Shneiderman & Plaisant (2010:4-5), menuliskan bahwa
interaksi antara manusia dan komputer dimulai dari menggabungkan suatu
metode pengumpulan data dan susunan pengalaman intelektual dengan suatu
tools yang dikembangkan dari computer science. Komputer dan user interface
menjadi suatu dasar dari perkembangan pesat berbagai bidang profesi. Dari sini
terlihat bahwa interaksi manusia dan komputer menjadi sangat penting karena
merupakan suatu dasar pembelajaran mengenai hubungan antara manusia dan
komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka
pengguna komputer (user interface) agar mudah digunakan oleh manusia
tersebut.
Dalam mendesain sistem terdapat aturan yang terkenal dan menjadi dasar
dari perancangan sebuah interface sistem. Aturan tersebut dikenal dengan
sebutan delapan aturan emas (8 Golden Rules) yaitu (Shneiderman & Plaisant,
2010: 88-89) :
1. Berusaha untuk konsisten
Diperlukan suatu urutan aksi yang konsisten pada situasi yang sama.
Konsistensi ini diperlukan pada promps, menus, dan layar bantu. Hal-hal
yang perlu diperhatikan untuk dijaga tetap konsisten adalah warna, layout,
huruf kapital, jenis huruf, dan sebagainya.
2. Memungkinkan penggunaan secara universal
Masing-masing pengguna memiliki perbedaan misalnya saja usia dan
kemampuan. Ada pengguna yang pemula (novice) dan ada pula pengguna
yang ahli (expert). Oleh karena itu dibutuhkan rancangan yang dapat
memfasilitasi perubahan konten sesuai dengan kemampuan pengguna.
Misalnya saja penambahan fitur penjelasan untuk pemula atau fitur shortcut
untuk yang ahli.
3. Memberikan umpan balik yang informatif
Diharapkan adanya suatu umpan balik atau tanggapan dari sistem atas
setiap tindakan yang dilakukan pengguna. Untuk tindakan yang sering
25
dilakukan dan tidak membutuhkan banyak aksi maka umpan balik dapat
dibuat
sederhana.
Sedangan
tindakan
yang
jarang
dilakukan
dan
membutuhkan banyak asli sebaiknya dibuat umpan balik yang lebih banyak,
lengkap dan jelas.
4. Merancang dialog yang memberikan penutupan (keadaan akhir)
Sebuah aksi hendaknya dilakukan secara terurut yang dikelompokan
mulai dari awal, tengah, dan akhir. Umpan balik yang informatif akan
memberikan tanda yang jelas pada akhir suatu aksi yang mengindikasikan
bahwa itu merupakan akhir dari aksi tersebut dan siap untuk melanjutkan ke
proses selanjutnya.
5. Memberikan pencegahan kesalahan dan penanganan kesalahan sederhana
Sebisa mungkin rancangan suatu sistem dibuat agar pengguna tidak dapat
membuat suatu kesalahan yang serius. Apabila pengguna membuat suatu
kesalahan maka sistem dapat mendeteksi error tersebut dan menawarkan
penanganan
error
yang
mudah,
konstruktif
dan
spesifik
untuk
memperbaikinya.
6. Memungkinkan untuk kembali ke aksi sebelumnya
Sebuah aksi seharusnya dapat dikembalikan ke kondisi sebelum aksi
tersebut berjalan. Adanya fitur ini akan membuat pengguna merasa lega
karena bisa membatalkan suatu aksi yang dapat membuat terjadinya suatu
error.
7. Mendukung pusat kendali internal
Pengguna seharusnya menjadi orang yang mengendalikan sistem dimana
sistem akan selalu merespon setiap aksi yang dijalankan, bukan menjadi
orang yang dikendalikan oleh sistem tersebut.
8. Mengurangi beban ingatan jangka pendek
Manusia memiliki keterbatasan memori jangka pendek sehingga
diharapkan sebuah sistem memiliki tampilan yang sesederhana mungkin,
beberapa halaman dapat disatukan, frekuensi pergerakan window dikurangi,
dan harus ada waktu yang cukup bagi pengguna untuk mempelajari kodekode, singkatan, serta urutan aksi. Selain itu juga akses online untuk perintah
dan sintaks, kode, dan informasi lainnya sebaiknya tersedia.
Setelah mengetahui aturan-aturan yang penting dalam merancang sebuah
sistem antarmuka, perlu juga mengetahui suatu ukuran yang digunakan dalam
26
mengevaluasinya. Faktor manusia sangat berperan dalam hal ini karena tujuan
dibuatnya sistem antarmuka ini agar pengguna dapat berinteraksi dengan mudah.
Terdapat lima kategori yang dijadikan ukuran evaluasi antarmuka ini yaitu
(Shneiderman & Plaisant, 2010: 32)
1. Waktu pembelajaran (time to learn)
Berapa lama waktu yang dibutuhkan oleh anggota dari komunitas pengguna
untuk mempelajari cara menggunakan perintah-perintah yang digunakan
untuk menyelesaikan suatu tugas.
2. Kecepatan kinerja (speed of performance)
Berapa lama waktu yang diperlukan untuk menyelesaikan sebuah tugas.
3. Tingkat kesalahan pengguna (rate of errors by users)
Berapa banyak dan apa saja jenis kesalahan yang terjadi saat pengguna
mengerjakan tugasnya. Meskipun waktu untuk membuat dan memperbaiki
kesalahan dapat dimasukkan ke dalam kecepatan kinerja, namun penanganan
kesalahan merupakan hal yang sangat penting dalam penggunaan antarmuka
dan membutuhkan pembelajaran yang lebih mendalam.
4. Daya ingat jangka panjang (retention over time)
Seberapa baik pengguna mempertahankan pengetahuannya dan tetap
mengingatnya setelah sejam, sehari atau bahkan seminggu. Daya ingat sering
dikaitkan dengan waktu pembelajaran dan biasanya frekuensi penggunaan
memainkan peranan yang penting.
5. Kepuasan subjektif (subjective satisfication)
Seberapa besar rasa suka pengguna terhadap berbagai aspek interface. Hal ini
dapat diketahui dengan melakukan wawancara atau survey kepada pengguna.
2.5 Flowchart
2.5.1 Pengertian dan Jenis Flowchart
Flowchart merupakan gambar atau bagan yang memperlihatkan suatu
algoritma, urutan dan hubungan antar proses beserta instruksinya, yang
menjelaskan urutan proses tersebut dalam berbagai jenis simbol dan
menghubungkannya dengan garis penghubung. Flowchart merupakan
langkah awal pembuatan program yang membuat urutan proses lebih jelas
sehingga membantu analis dan programmer lebih mudah berkomunikasi,
27
menganalisis dan memecahkan permasalahan, menambahkan suatu proses,
atau memproses dokumentasi.
Ada beberapa jenis flowchart, diantaranya adalah :
1.
Bagan alir sistem (systems flowchart)
Bagan alir sistem dapat didefinisikan sebagai bagan yang
menunjukan alur kerja atau apa yang sedang dikerjakan di dalam sistem
secara keseluruhan dan menjelaskan urutan dari prosedur-prosedur yang
ada di dalam sistem.
2.
Bagan alir program (program flowchart)
Bagan alir program ini dihasilkan dari bagan alir sistem yang
merupakan keterangan yang lebih rinci tentang bagaimana setiap langkah
program atau prosedur sesungguhnya dilaksanakan dalam urutan yang
tepat saat terjadi. Bagan alir program terdiri dari dua macam, yaitu bagan
alir logika program (program logic flowchart) dan bagan alir program
komputer terinci (detailed computer program flowchart).
(Nilawati, 2009)
2.5.2
Simbol dan Notasi Flowchart
Simbol dan notasi flowchart merupakan alat bantu yang menggambarkan
proses dalam program. Simbol-simbol yang biasa dipakai adalah simbol
standar yang dikeluarkan oleh ANSI dan ISO. Simbol ini dibagi menjadi tiga
kelompok yaitu (Nilawati, 2009):
1.
Flow direction symbols
Simbol ini digunakan untuk menghubungkan antara simbol yang satu
dengan simbol lainnya.
28
Tabel 0.1 Flow Direction Symbols
Simbol
Keterangan
Simbol arus/flow : menyatakan jalannya arus suatu proses
Simbol communication link : menyatakan transmisi data
dari suatu lokasi ke lokasi lain
Simbol connector : menyatakan sambungan dari proses ke
proses lainnya dalam halaman yang sama
Simbol offline connector : menyatakan sambungan dari
proses ke proses lainnya dalam halaman yang berbeda
2.
Processing Symbols
Simbol ini menunjukkan jenis operasi pengolahan dalam suatu prosedur.
Tabel 0.2 Processing Symbols
Simbol
Keterangan
Simbol process : menyatakan suatu tindakan/proses yang
dilakukan oleh komputer
Simbol decision : menunjukkan suatu kondisi tertentu yang
akan menghasilkan dua kemungkinan (ya/tidak)
Simbol terminal : menyatakan permulaan atau akhir suatu
program
Simbol predefined process : menyatakan penyediaan
tempat penyimpanan suatu pengolaha untuk memberi
harga awal
Simbol manual : menyatakan suatu tindakan/proses yang
tidak dilakukan oleh komputer
29
3.
Input/Output Symbols
Simbol ini menunjukkan jenis peralatan yang digunakan sebagai media
input atau output.
Tabel 0.3 Input/Output Symbols
Simbol
Keterangan
Simbol input/output : menyatakan proses input atau
output tanpa tergantung jenis peralatannya
Simbol manual input : memasukkan data secara manual
dengan menggunakan online keyboard
Simbol punched card : menyatakan input yang berasal
dari kartu atau output ditulis ke kartu
Simbol disk storage : menyatakan input berasal dari disk
atau output disimpan ke disk
Simbol magnetic tape : menyatakan input berasal dari
pita magnetis atau output disimpan ke dalam pita
magnetis
Simbol display : mencetak keluaran dalam layar monitor
Simbol document : mencetak keluaran dalam bentuk
dokumen (melalui printer)
2.6 Perangkat Lunak Berbasis Web dan Bahasa Pemrograman
2.6.1
Perangkat Lunak
Definisi software adalah :
a. Sebuah instruksi yang ketika dieksekusi akan menampilkan fitur-fitur,
fungsi, dan sebuah tampilan yang diinginkan
b. Struktur data yang dapat membuat sebuah program memanipulasi
informasi
30
c. Deskripsi informasi baik dalam bentuk nyata ataupun semu yang
menjelaskan tentang operasi dan kegunaan program.
(Pressman, 2010:4)
2.6.2 Web Application
Terdapat tujuh cakupan perangkat lunak komputer yang sampai saat ini
masih terus dikembangkan, di antaranya adalah aplikasi web. Aplikasi web
yang biasa disebut WebApps merupakan kategori perangkat lunak yang
berpusat pada jaringan yang dapat menjangkau susunan aplikasi secara luas.
Secara sederhana, WebApps merupakan kumpulan dari berkas-berkas
hypertext yang menampilkan informasi menggunakan tulisan dan gambar
yang terbatas. Saat web terus dikembangkan dan muncul Web 2.0 yang
merupakan perkembangan dari Web 1.0, web dapat berinteraksi lebih baik
dengan pengguna. WebApps telah berevolusi menjadi suatu lingkungan
komputerisasi yang menarik yang tidak hanya menyediakan fitur-fitur
mandiri, fungsi komputer, dan isi kepada pengguna, namun juga dapat
terhubung dengan database dan dapat digunakan sebagai aplikasi bisnis, yang
artinya lebih interaktif terhadap pengguna.
WebApps yang telah berevolusi dan berkembang hingga kini, memang
merupakan salah satu kategori software. Namun, Powell mengatakan bahwa
WebApps berbeda karena WebApps merupakan campuran antara publikasi
tercetak dan pengembangan perangkat lunak, antara pemasaran dan
komputerisasi, antara komunikasi internal dan hubungan external, dan antara
seni dan teknologi. Atribut-atribut di bawah ini merupakan hal-hal yang
berpengaruh dalam keseluruhan WebApps, yaitu (Pressman, 2010:11-12) :
1.
Network Intensiveness
WebApps tak dapat dipisahkan dari jaringan karena berada dalam
jaringan itu sendiri, dimana banyak kebutuhan yang harus dilayani.
Jaringan tersebut tentunya harus dapat melayani pengguna darimana saja
dan kapan saja, sehingga harus dapat diakses secara mendunia ataupun
diakses secara terbatas.
2.
Concurrency
31
Banyak pengguna yang dapat mengakses WebApps secara bersamaan
pada suatu waktu.
3.
Unpredictable Load
Banyaknya pengguna tidak dapat diprediksi karena bisa saja hari ini
hanya 1000 pengguna dan besok bisa terdapat lebih dari 10.000
pengguna.
4.
Performance
Performa dari WebApps perlu diperhatikan misalnya saja dalam hal
mengakses sebuah situs apakah pengguna harus menunggu loading yang
lama atau tidak. Tentunya pengguna tidak akan mau berlama-lama
menunggu loading.
5.
Availability
Ketersediaan di sini maksudnya adalah bahwa pengguna menginginkan
akses 24/7/365 atau dengan kata lain 100 persen situs yang diakses selalu
tersedia. Padahal, bisa saja situs tersebut sedang dalam masa
pemeliharaan / maintenance.
6.
Data Driven
Fungsi utama sebuah WebApps adalah untuk menampilkan pesan berupa
tulisan, gambar, suara atau video kepada pengguna. Dimana perlu sebuah
tempat penyimpanan yang cukup besar yang bisa menampungnya seperti
database yang letaknya terpisah dari pemrograman web.
7.
Content Sensitive
Perlu diperhatikan kualitas dan keindahan konten yang akan ditampilkan
dalam sebuah WebApps.
8.
Continuous Evolution
Perubahan yang terjadi dalam WebApps bisa terjadi setiap detiknya guna
memenuhi kebutuhan pengguna.
9.
Immediacy
WebApps dapat dibuat dan diluncurkan dalam waktu yang relatif lebih
cepat dibandingkan aplikasi software lainnya.
10. Security
Pengguna WebApps sangatlah banyak dan tak terbatas, oleh karena itu
dibutuhkan sistem keamanan yang kuat untuk mencegah terjadinya halhal yang tidak diinginkan.
32
11. Aesthetics
Keindahan tampilan merupakan hal utama yang akan langsung terlihat
oleh pengguna, yang membuatnya menarik untuk digunakan. Oleh
karena itu, hal keindahan dan kemudahan interaksinya dengan pengguna
menjadi salah satu hal penting yang tak boleh diabaikan.
2.6.3 Pemrograman Web dengan PHP
Dalam pembuatan sebuah aplikasi berbasis web, tentu HTML tidak dapat
dikesampingkan. Sebuah halaman web yang hanya dibuat dari HTML bersifat
statis. Semua pengguna melihat halaman yang sama. Tentu hal ini akan
bertolak belakang dengan prinsip-prinsip web application. Oleh karena itu
diperlukan halaman web yang bersifat dinamis dimana pengguna yang
berbeda dapat melihat halaman web yang berbeda. Contohnya saja pengguna
A yang melihat halaman sebuah web dan memilih kategori makanan,
sedangkan pengguna A melihat halaman web yang sama dan memilih
kategori pakaian. Kedua pengguna tersebut mengakses halaman web pada
waktu yang bersamaan tapi dapat melihat halaman kategori yang berbeda.
Untuk membuat hal ini menjadi mungkin, maka diperlukan bahasa lain
sebagai tambahan dari HTML.
Salah satu bahasa untuk membuat web menjadi dinamis adalah
JavaScript. JavaScript sangat berguna untuk berbagai kepentingan seperti
fungsi mouse-overs atau memvalidasi informasi yang pengguna masukkan ke
dalam formulir pada web. JavaScript lebih banyak digunakan untuk interaksi
dengan user. Namun, JavaScript kurang interaktif dengan database.
PHP merupakan salah satu bahasa yang sangat cocok dengan keperluan
database. PHP dapat menerima dan memvalidasi informasi yang user
masukkan dalam formulir web dan juga memasukkannya ke database. PHP
erat kaitannya dengan MySQL sebagai database.
PHP merupakan bahasa scripting yang didesain khusus untuk
menciptakan web yang dinamis. PHP memiliki banyak fitur yang membuat
desain sebuah web menjadi lebih indah dan lebih mudah dibuat.
PHP merupakan singkatan dari HyperText Preprocessor. Pada awal
pengembangannya oleh Rasmus Lerdorf, PHP ini dikenal dengan nama
Personal Home Page tools. Saat PHP menjadi lebih terkenal, namanya
33
kemudian disesuaikan. PHP memiliki sintaks yang mirip dengan bahasa C.
Oleh karena itu, bagi pengguna yang pernah belajar bahasa C, tidak akan
merasa kesulitan untuk memulai belajar PHP.
Kepopuleran PHP berkembang dikarenakan banyaknya keuntungan yang
didapat pengguna. Beberapa di antaranya adalah :
1.
Performance : PHP ini sangat cepat. Karena di-embedd pada koding
HTML, maka waktu responnya cenderung cepat.
2.
Scalability : Rasmus Lerdorf sering menyebut bahwa PHP adalah
“shared-nothing” architecture. Artinya adalah, pengguna PHP dapat
mengimplementasikan PHP dengan efektif dan murah untuk skala yang
besar.
3.
Database Integration : PHP memiliki kemampuan koneksi langsung ke
berbagai sistem database. Seslain MySQL, PHP juga bisa dikoneksikan
ke PostgreSQL, Oracle, dbm, FilePro, DB2, Hyperwave, Informix,
InterBase, dan Sybase.
4.
Built-in Libraries : PHP didesain untuk merancang web, sehingga
memiliki banyak fungsi untuk membuat web yang baik.
5.
Cost : PHP dapat diunduh gratis dan langsung digunakan untuk
keperluan pembuatan web (open source).
6.
Ease of Learning PHP : Sintaks pada PHP merupakan sintaks dasar yang
dapat dijumpai pada bahasa C atau Perl.
7.
Object-Oriented Support : PHP versi 5 memiliki fitur object-oriented
yang baik dan lengkap.
8.
Portability : PHP tersedia untuk berbagai sistem operasi.
9.
Flexibility of Development Approach : PHP akan mempermudah
pengerjaan tugas yang pada dasarnya mudah dan beradaptasi untuk
mengerjakan tugas yang rumit menggunakan framework seperti Model
View Controller.
10. Source Code : PHP berbasis open source sehingga penggunanya tidak
perlu menunggu hadirnya patch terbaru PHP untuk dapat memodifikasi
source code sesuai dengan keinginan pengguna.
11. Availability of Support and Documentation : Dokumentasi PHP dan
komunitas penggunanya memiliki banyak informasi yang dapat dilihat
oleh pengguna.
34
(Welling & Thomson, 2009:4-6)
2.6.4 Object-Oriented PHP
Dalam pembahasan perangkat lunak berorientasi objek, objek merupakan
sebuah benda ataupun konsep, sesuatu yang terlihat secara fisik seperti meja
atau pelanggan, atau suatu objek konseptual yang ada di dalam sebuah
perangkat lunak, seperti area input tulisan atau dokumen yang tersimpan.
Umumnya, orang akan lebih tertarik pada objek yang nantinya akan
diperlihatkan dalam sebuah perangkat lunak.
Sebuah perangkat lunak berorientasi objek memiliki attributes dan
operations. Attributes adalah properti atau variabel yang berhubungan dengan
objek, sedangkan operations adalah method, aksi atau fungsi dimana objek
dapat memodifikasi dirinya atau menjalankan fungsi tertentu.
Objek-objek dapat dikelompokkan ke dalam suatu class. Class
merepresentasikan kumpulan objek yang berbeda satu sama lain namun
memiliki satu kesamaan. Sebuah class berisi objek-objek yang memiliki
operasi yang sama, memiliki tingkah laku yang sama dan juga attribut yang
mempresentasikan hal yang sama, meskipun nilai dari attribut-attribut
berbeda antar objeknya.
Salah satu keuntungan terbesar perangkat lunak berorientasi objek adalah
kemampuan untuk mendukung adanya encapsulation atau dikenal juga
dengan penyembunyian data. Akses data di dalam objek hanya tersedia
melalui operasi objek, atau interface dari objek. Selain itu, pemrograman
berorientasi objek ini juga dapat membantu mengatur kompleksitas suatu
proyek, meningkatkan kegunaan kembali code yang ada, dan meminimalisir
biaya pemeliharaan.
(Welling & Thomson, 2009:160-161)
2.6.5 Waterfall Model
Proses merupakan kumpulan dari aktivitas, aksi dan tugas yang
dilaksanakan untuk membuat suatu produk. Aktivitas akan langsung
mencapai tujuannya dan digunakan untuk aplikasi, besarnya sebuah proyek,
kompleksitas usaha, dan rekaya perangkat lunak apa yang akan digunakan.
Aksi meliputi kumpulan tugas-tugas untuk membuat suatu produk. Tugas
35
memfokuskan diri pada detail sasaran yang sudah terbentuk untuk
menghasilkan hasil yang nyata.
Proses itu sendiri hanyalah sebuah definisi yang mendeskripsikan
bagaimana pembuatan sebuah produk (misalnya software) dilakukan. Untuk
menjalankan proses tersebut maka dibuatlah suatu kerangka proses (process
framework).
Kerangka
proses
ini
merupakan
fondasi
dasar
untuk
menghasilkan suatu rekayasa piranti lunak yang lengkap dengan cara
mengindentifikasi sejumlah aktivitas yang dapat digunakan untuk seluruh
proyek perangkat lunak, tidak peduli ukuran dan kompleksitasnya.
Pada umumnya, kerangka proses terdiri dari 5 aktivitas yaitu :
1.
Communication
Sebelum projek dapat mulai dikerjakan, penting untuk mengetahui
kebutuhan yang menjadi tujuan dibuatnya projek tersebut. Oleh karena
itu, komunikasi dan kolaborasi sangatlah penting untuk mengetahui halhal apa saja yang dibutuhkan untuk memenuhi tujuan software seperti
misalnya fungsi dan fitur yang diinginkan ada pada software.
2.
Planning
Untuk membangun sebuah projek software yang merupakan hal yang
kompleks, diperlukan suatu peta atau panduan sehingga tugas-tugas yang
ada dapat dikerjakan secara tersusun dan terpadu. Panduan yang disebut
software project plan tersebut akan mendeskripsikan tugas-tugas teknikal
yang harus dilakukan, resikonya, sumber-sumber yang dibutuhkan,
bagian-bagian produk yang harus dihasilkan, dan jadwal pekerjaan.
3.
Modelling
Pekerjaan apapun membutuhkan suatu model agar lebih mudah melihat
bentuk nyata dari produk yang akan dihasilkan. Model tersebut misalnya
saja berupa gambar sketsa perkiraan bentuk produk tersebut akan seperti
apa. Dalam pembuatan software, model akan membuat pemahaman akan
kebutuhan software menjadi lebih dalam dan desainnya juga membantu
dalam mencapai tujuan tersebut.
4.
Construction
Pada bagian ini akan dibuat suatu code atau biasa disebut coding yang
merupakan bantuan secara komputasi. Setelah itu hasil coding-an
36
tersebut akan diuji apakah ada kesalahan yang harus diperbaiki atau
tidak.
5.
Deployment
Produk software yang telah jadi akan dipublikasikan untuk dicoba oleh
konsumen yang akan membantu mengevaluasi hasil produk tersebut
untuk dijadikan feedback demi perkembangan produk selanjutnya.
Terkadang ada kalanya saat kebutuhan yang diperlukan dalam sebuah
penyelesaian permasalahan dapat dimengerti dengan mudah, saat pekerjaan
mengalir begitu saja dari communication hingga deployment dalam garis
lurus. Situasi ini dapat terjadi ketika membuat sebuah sistem yang diadaptasi
dengan baik atau penambahan pada sistem yang telah ada. Hal ini juga dapat
terjadi pada usaha pembuatan sebuah program baru namun hanya jika
kebutuhan permasalahan jelas dan stabil.
Waterfall model yang terkadang disebut classic life style, menyarankan
pendekatan sistematis dan berurutan dalam membuat sebuah software.
Pembuatan software tersebut dimulai dari spesifikasi dan kebutuhan user dan
diproses lebih lanjut melalui planning, modeling, construction, dan
deployment, kemudian diakhiri dengan dukungan yang akan selalu diberikan
setelah software tersebut jadi. Berikut merupakan gambaran waterfall model.
(Pressman, 2010: 39)
Gambar 0.9 Waterfall Model Process (Pressman, 2010:39)
2.7 Unified Modelling Language (UML)
Dalam bukunya, Whitten & Bentley (2007: 371) mengatakan bahwa UML
versi 2.0 sekumpulan konvensi pemodelan yang digunakan untuk menentukan
atau menggambarkan sebuah sistem piranti lunak yang terkait dengan objek.
UML dapat diibaratkan sebagai blueprints sebuah perangkat lunak. UML
digunakan untuk memvisualisasikan, menspesifikasikan, mengkonstruksi dan
mendokumentasi sebuah perancangan perangkat lunak. Dengan kata lain, seperti
37
halnya para arsitek yang membuat rancangan blueprints dalam membangung
proyeknya, ‘arsitek’ perangkat lunak juga membuat diagram UML untuk
membantu perancang perangkat lunak membuat perangkat lunaknya.
Terdapat 13 macam diagram UML yang masing-masing memiliki fungsi
dan tujuan berbeda dalam perancangan suatu perangkat lunak. Dalam
pengembangan perangkat lunak, tidak selalu harus ke-13 diagram tersebut
digunakan. Cukup digunakan sesuai yang dibutuhkan dengan syarat sudah dapat
menggambarkan proses pengembangan sistem dengan jelas sesuai dengan
tujuannya.
Pada penulisan ini, penulis menggunakan 4 diagram UML yang dibutuhkan
yaitu use case diagram, activity diagram, class diagram, dan sequence diagram.
2.7.1
Use Case Modelling
Use
case
modelling
mendeskripsikan
bagaimana
seorang
user
berinteraksi dengan sistem dengan cara mendefinisikan langkah-langkah yang
dibutuhkan untuk mencapai tujuan. Misalnya saja burning suatu list lagu ke
dalam sebuah CD. Use case modelling terbagi menjadi 2 bagian yang saling
berkaitan yaitu use case diagram dan use case narrative.
2.7.1.1 Use Case Diagram
Use case diagram merupakan suatu diagram yang menggambarkan
interaksi antara sebuah sistem internal, eksternal dan penggunanya.
Dengan kata lain, diagram ini menggambarkan siapa yang akan
menggunakan sistem dan dengan cara yang seperti apa pengguna akan
berinteraksi dengan sistem (Whitten & Bentley, 2007:246)
Gambar 0.10 Use Case Diagram (Whitten & Bentley, 2007:246)
38
Terdapat 3 komponen utama dalam use case modelling yaitu:
1. Use case (Skenario)
Use case mendeskripsikan fungsi dari sebuah sistem dari perspektif
pengguna dalam kondisi yang dimengerti oleh pengguna. Use case
digambarkan dalam bentuk horizontal elips dengan nama use case
di bagian dalam, atas atau bawah horizontal elips tersebut.
Use case 1
Gambar 0.11 Simbol Use Case
2. Actor
Use case akan bekerja jika dijalankan oleh pengguna yang disebut
actor. Aktor merupakan pengguna yang akan berinteraksi dengan
sistem untuk saling bertukar informasi. Aktor digambarkan berupa
stick figure, dengan label peran actor/user dalam sistem.
Actor
Gambar 0.12 Simbol Actor
3. Relationship
Relationship merupakan hubungan dari actor dan use case yang
digambarkan dalam bentuk garis. Arti dari hubungan ini bisa
berbeda tergantung dari bentuk garis dan tipe simbol yang
dihubungkan. Berikut beberapa tipe hubungan dalam use case
diagram.
a.
Associations
Hubungan antara use case dan aktor terjadi ketika use case
menjelaskan
interaksi
antara
Associations
digambarkan
kedua
berupa
simbol
garis
tersebut.
solid
yang
39
menghubungkan use case dengan aktor. Garis yang memiliki
anak panah berarti aktor berperan sebagai pelaku dari use case,
sedangkan garis tanpa anak panah berarti aktor berperan
sebagai external database atau penerima use case tersebut.
Gambar 0.13 Contoh Associations (Whitten & Bentley, 2007:248)
b.
Extends
Use case dapat berisikan sebuah fungsi yang kompleks yang
dapat membuatnya susah dimengerti. Oleh karena itu, dengan
tujuan mempermudah use case tersebut, dibuatlah extension
use case yaitu hubungan extends antara use case awal yang
rumit dengan use case baru yang mewakili fungsi tertentu use
case awal.
Gambar 0.14 Contoh Extends (Whitten & Bentley, 2007:249)
c.
Uses/Includes
Apabila terdapat 2 atau lebih use case yang memiliki langkah
yang hampir sama, maka akan lebih baik jika langkah-langkah
yang sama tersebut dibagi menjadi use case terpisah yang
disebut abstract use case. Abstract use case ini menampilkan
suatu
bentuk
dari
“penggunaan
mengurangi redundansi use case.
kembali”
dan
dapat
40
Gambar 0.15 Contoh Uses/Includes (Whitten & Bentley, 2007:249)
d.
Depends On
Depends on menunjukan hubungan keterkaitan antara use case
dimana sebuah use case tidak dapat dijalankan jika use case
yang lain belum dijalankan.
Gambar 0.16 Contoh Depends On (Whitten & Bentley, 2007:250)
e.
Inheritance
Apabila dua atau lebih aktor menggunakan use case yang
sama, maka diperlukan abstract actor untuk mengurangi
redudansi komunikasi dengan sistem. Hubungan antara
abstract actor dengan aktor-aktor sebenarnya dalam use case
diagram inilah yang disebut inheritance.
41
Gambar 0.17 Contoh Inheritance (Whitten & Bentley, 2007:250)
2.7.1.2 Use Case Narrative
Use case narrative merupakan bentuk tertulis dari sebuah deskripsi
mengenai bagaimana pengguna berinteraksi dengan sistem untuk
menyelesaikan sebuah tugas. Dengan kata lain, merupakan deskripsi
secara tertulis dari use case diagram. Use case narrative ini berguna
terutama untuk menjelaskan use case yang cukup rumit.
42
Gambar 0.18 Use Case Narrative (Whitten & Bentley, 2007:259)
Gambar 0.19 Use Case Narrative (Whitten & Bentley, 2007:260)
43
2.7.2
Activity Diagram
Activity diagram merupakan diagram yang secara grafik digunakan untuk
menggambarkan aliran dari suatu rangkaian aktifitas baik proses bisnis,
langkah-langkah use case, dan logika perilaku dari objek (method). Diagram
ini digunakan untuk memodelkan action yang akan dilakukan ketika operasi
dieksekusi dan memodelkan hasil dari action tersebut. Penggambaran
diagram ini mirip dengan flowchart namun, activity diagram ini juga dapat
menunjukan proses yang berjalan bersamaan (Whitten & Bentley, 2007:391393).
Gambar 0.20 Contoh Activity Diagram (Whitten & Bentley, 2007:392)
Terdapat beberapa notasi yang digunakan dalam pembuatan activity
diagram yang ditunjukan pada tabel di bawah ini.
44
Tabel 0.4 Notasi Activity Diagram
Notasi
Initial Node
Keterangan
Menggambarkan awal dari
proses
Menggambarkan aktivitas
Actions
Flow
dalam sistem
Menggambarkan jalannya
suatu aktivitas
Menggambarkan suatu kondisi
Decision
dimana suatu keputusan harus
diambil
Menggabungkan kembali
Merge
proses yang sebelumnya
dipisahkan oleh Decision
Fork
Menunjukkan kegiatan yang
dilakukan secara bersamaan
Menggabungkan 2 kegiatan
Join
atau lebih yang dilakukan
bersamaan menjadi satu
Subactivity
Menunjukkan adanya
Indicator/Rake dekomposisi
Activity Final
Menggambarkan akhir dari
proses
Simbol
45
2.7.3
Class Diagram
Class diagram menggambarkan gambaran grafik dari sebuah struktur
objek pada suatu sistem statis dan juga menunjukkan class-class objek yang
terdapat pada sistem serta hubungan antara class tersebut. Pada diagram ini
terdapat multiplicity, generalization/specialization dan aggregation (Whitten
& Bentley, 2007:400)
Gambar 0.21 Contoh Class Diagram (Whitten & Bentley, 2007:406)
Notasi-notasi yang tedapat pada class diagram, yaitu
1. Class
Merupakan elemen utama dari class diagram. Class ini akan
membentuk suatu objek yang akan memiliki semua elemen class
tersebut. Class digambarkan sebagai sebuah kotak yang terdiri dari 3
bagian yaitu :
a. Bagian atas : class name
46
b. Bagian tengah : attribute
c. Bagian bawah : operational
2. Relationship
a. Association
Merupakan
salah
satu
jenis
hubungan
antar
class
yang
memungkinkan suatu class untuk menggunakan atau mengetahui
attribute atau operation yang dimiliki oleh class lain. Association
juga menggambarkan interaksi yang mungkin terjadi antara satu
class dengan class yang lain. Hubungan ini digambarkan dengan
sebuah garis tanpa tanda panah.
Gambar 0.22 Notasi Association dan Multiplicity (Whitten & Bentley, 2007:377)
b. Aggregation
Merupakan hubungan antar class yang jauh lebih kuat dari
association. Hubungan ini dapat diartikan bahwa suatu class
merupakan bagian dari class lain namum bersifat tidak wajib.
47
Hubungan ini digambarkan sebagai sebuah garis yang memiliki
bentuk diamond kosong di salah satu ujungnya.
Gambar 0.23 Notasi Aggregation (Whitten & Bentley, 2007:379)
c. Composition
Hubungan ini merupakan yang paling kuat dibandingkan
association atau aggregation. Hubungan ini berarti suatu class
merupakan bagian wajib dari class lain. Hubungan ini digambarkan
dengan sebuah garis yang memiliki bentuk diamond utuh di salah
satu ujung garisnya.
Gambar 0.24 Notasi Composition (Whitten & Bentley, 2007:379)
48
d. Generalization
Generalization memungkinkan suatu class mewarisi attribute dan
operation yang dimiliki oleh base class. Attribute dan operation
yang dapat diwarisi adalah yang memiliki access modifier public,
protected, dan default. Hubungan ini digambarkan dengan garis
yang memiliki tanda panah tertutup kosong pada salah satu
ujungnya yang mengarah ke base class.
Gambar 0.25 Notasi Generalization (Whitten & Bentley, 2007:376)
e. Dependency
Melambangkan suatu koneksi antar class yang disimbolkan dengan
garis putus-putus. Sebuah class bergantung pada class lain apabila
perubahan pada sebuah class akan membuat class lain ikut
berubah.
3. Multipilicity
Pada akhir sebuah relationship biasanya terdapat angka pada salah
satu ujung garis relationship yang melambangkan jumlah objek dari
class tersebut yang berasosiasi dengan class lain. Multiplicity
dilambangkan dengan angka sebagai berikut :
a. Angka “0..1” yang berarti ada 0 atau 1 objek pada akhir
association.
b. Angka “1..*” yang berarti ada 1 atau lebih objek.
49
c. Angka “0..*” atau biasa dituliskan “*” berarti ada 0 atau lebih
objek.
4. Sifat Attribute dan Method
Attribute dan method dalam class memiliki salah satu sifat berikut :
a. Private (-) : tidak dapat dipanggil di luar class yang bersangkutan
b. Protected (#) : hanya dapat dipanggil oleh class yang bersangkutan
dan anak-anak yang mewarisinya
c. Public (+) : dapat dipanggil oleh semua class lain
(Whitten & Bentley, 2007:373-380)
2.7.4
Sequence Diagram
Sequence diagram membangun logika dari use case yang tergambarkan
dari interaksi antar objek dalam suatu urutan waktu. Logika use case akan
terbentuk dengan menggambarkan interaksi pesan antar objek pada suatu
waktu (Whitten & Bentley, 2007:659).
Gambar 0.26 Contoh Sequence Diagram (Whitten & Bentley, 2007:659)
Terdapat beberapa notasi yang digunakan dalam pembuatan sequence
diagram yang ditunjukan pada tabel di bawah ini.
50
Tabel 0.5 Notasi Sequence Diagram
Notasi
Keterangan
Simbol
Menggambarkan user
Actor
yang berinteraksi dengan
sistem
Menggambarkan instance
:System
System
dari sebuah class pada
class diagram
Menggambarkan
Lifelines
keberadaan sebuah objek
dalam suatu waktu atau
waktu dari sequence
Menggambarkan waktu
Activation Bars
dimana user sedang aktif
berinteraksi dengan sistem
Menggambarkan pesan
Input Messages
masuk yang dikirimkan
Message1
berupa behavior
Menggambarkan balasan
Output Messages
dari pesan masuk yang
Message2
berupa attribute
Aktor lainnya atau sistem
Receiver Actor
external yang menerima
pesan dari sistem
Menggambarkan area
pada sistem yang
Frame
mengalami perulangan
(loop), seleksi (alternate
fragments), atau kondisi
opsional (optional)
Loop
Download