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) = konstanta persamaan 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. 15 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 dan yaitu . 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 terlalu kecil maka pada pada daerah yang bagus nutrisinya. Jika 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. 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 Menggambarkan user Actor yang berinteraksi dengan sistem Menggambarkan instance 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 berupa behavior Menggambarkan balasan Output Messages dari pesan masuk yang 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) Simbol