BAB 2 LANDASAN TEORI 2.1 Sistem Tenaga Listrik 2.1.1 Pengertian Sistem Tenaga Listrik Secara umum sistem tenaga listrik terdiri atas komponen tenaga listrik yaitu pembangkit tenaga listrik, sistem transmisi dan sistem distribusi. Ketiga bagian ini merupakan bagian utama pada suatu rangkaian sistem tenaga listrik yang bekerja untuk menyalurkan daya listrik dari pusat pembangkit ke pusatpusat beban. Rangkaian sistem tenaga listrik dapat dilihat pada gambar 2.1 dibawah berikut : Gambar 2.1 Rangkaian Sistem Tenaga Listrik Energi listrik yang dihasilkan di pusat pembangkit listrik akan disalurkan melalui saluran transmisi kemudian melalui saluran distribusi akan sampai ke konsumen. Berikut ini penjelasan mengenai bagian utama pada sistem tenaga listrik pada umumnya, yaitu : 1. Pusat Pembangkit Listrik (Power Plant) Pusat pembangkit listrik merupakan tempat energi listrik pertama kali dibangkitkan, dimana terdapat turbin sebagai penggerak awal (PrimeMover) dan generator yang membangkitkan listrik dengan mengubah tenaga turbin menjadi energi listrik. Biasanya dipusat pembangkit listrik juga terdapat gardu induk. Peralatan utama pada gardu induk antara lain : transformer, yang berfungsi untuk menaikkan tegangan generator (11,5kV) menjadi tegangan transmisi atau tegangan tinggi (150kV) dan juga peralatan pengaman dan pengatur. Secara umum, jenis pusat pembangkit dibagi kedalam dua bagian besar yaitu pembangkit hidro yaitu PLTA (Pembangkit Listrik Tenaga Air) dan pembangkit thermal diantaranya yaitu PLTU (Pusat Listrik Tenaga Uap), PLTG (Pusat Listrik Tenaga Gas), PLTN (Pusat Listrik Tenaga Nuklir), dan PLTGU (Pusat Listrik Tenaga Gas Uap). 2. Transmisi Tenaga Listrik Transmisi tenaga listrik merupakan proses penyaluran tenaga listrik dari pusat pembangkitan listrik hingga saluran distribusi listrik sehingga nantinya dapat tersalurkan pada pengguna listrik. 3. Sistem Distribusi Sistem distribusi ini adalah sub sistem tenaga listrik yang langsung berhubungan dengan pengguna listrik dan pada umumnya berfungsi dalam hal penyaluran tenaga listrik ke beberapa tempat. Sub sistem ini terdiri dari : pusat pengatur atau gardu induk, gardu hubung, saluran tegangan menengah atau jaringan primer (6 kV dan 20 kV) yang berupa saluran udara atau kabel bawah tanah, saluran tegangan rendah atau 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 Pada bagian sebelumya bisa dilihat pada gambar bagaimana sistem tenaga listrik yang mendeskripsikan hubungan antara 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 untuk mendistribusikan tenaga listrik pada beban yang tersebar. Ini bisa dapat dikatakan sebagai sistem interkoneksi. Melalui adanya sistem interkoneksi tersebut menyebabkan : 1. Keandalan sistem yang semakin tinggi 2. Efisiensi pembangkitan tenaga listrik dalam sistem meningkat 3. Mempermudah penjadwalan pembangkit Sebuah sistem tenaga listrik merupakan sebuah unit usaha dimana selain faktor teknis, faktor ekonomis juga diperhatikan karena pengaruhnya sangat domiman. Dalam pengeoperasian sistem tenaga listrik ini, pendapatan dan pengeluaran harus dijaga agar tercipta kondisi yang seimbang sehingga dapat mencapai keuntungan yang layak. Pendapatan dalam sistem tenaga listik ini berdasarkan jumlah penjualan listrik ke konsumen dan biasanya dalam bentuk pemakaian energi (kWh) serta harganya yang diatur dalam sistem tariftertentu (di Indonesia menggunakan Keppres). Sedangkan pengeluaran dalam mengoperasikan sistem tenaga listrik ini meliputi : belanja pegawai, belanja barang dan jasa, pemeliharaan dan penyusutan, penelitian atau pengembangan, pajak, bahan baku energi (BBM, Batubara, Nuklir, Air, dsb), Losses, dan lain-lain. Dalam pembangkitan tenaga listrik ada empat komponen biaya yang biasanya harus diperhitungkan, yaitu: 1. Komponen A merupakan fixed cost, yakni biaya yang harus tetap dikeluarkan terlepas dari pembangkit listrik tersebut dioperasikan atau tidak, misalnya:pekerjaan sipil, biaya pembelian turbin, generator, dan lain-lain. 2. Komponen B merupakan fixed cost, yakni biaya yang tetap dikeluarkan untuk operasi dan pemeliharaan pembangkit, seperti gaji pegawai, biaya pemeliharaan, dan lain-lain. 3. Komponen C merupakan fuel cost atau biaya bahan bakar yakni biaya bahan bakar yang berubah-ubah tergantung dari beberapa faktor. Beberapa faktor yang mempengaruhi harga komponen ini misalnya banyaknya konsumsi bahan bakar yang diperlukan, jenis bahan bakarnya, lama waktu penyalaan pembangkit, dan beberapa hal lainnya. 4. Komponen D merupakan variable cost yakni biaya dapat berubah-ubah. Misalnya, biaya untuk pelumas. Semakin sering dan berat kerja suatu pembangkit, semakin juga dibutuhkan banyak pelumas. Maka, biaya komponen D ini akan meningkat. Bagian terbesar dari pembiayaan dalam pembangkitan tenaga listrik adalah komponen C atau biaya bahan bakar yang mencakup hampir 70% dari total pembiayaan. Naik atau turunnya biaya bahan bakar tergantung pada penggunaan listrik oleh konsumen. Oleh karena itu, sangat diperlukan cara pengoperasian yang optimal. (Nadjamuddin, 2011:141) 2.1.3 Tujuan Operasi Sistem Tenaga Listrik 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 yaitu sistem harus dapat memenuhi standar dalam keamanan lingkungan, memiliki keandalan yang baik, dan dapat melayani permintaan secara berkala dari waktu ke waktu (Nadjamuddin, 2011:142). Dalam mencapai tujuan dari operasi sistem tenaga listrik maka perlu diperhatikan tiga hal berikut ini, yaitu : 1. Ekonomi (economy) berarti listrik harus dioperasikan secara ekonomis, tetapi dengan tetap memperhatikan keandalan dan kualitasnya. 2. Keandalan (security) merupakan tingkat keamanan sistem terhadap kemungkinan terjadinya gangguan. Jika terjadi gangguan pada pembangkit maupun transmisi dapat diatasi tanpa mengakibatkan pemadaman di sisi konsumen. 3. Kualitas (quality) tenaga listrik yang diukur dengan kualitas tegangan dan frekuensi yang dijaga sedemikian rupa sehingga tetap pada kisaran yang ditetapkan (Wikarsa, 2010:4). Sebagai gambaran dari tujuan operasi sistem tenaga listrik dapat dilihat seperti pada gambar 2.2 dibawah ini. Ekonomi Keandalan (Sekuriti) Mutu Gambar 2.2 Tujuan Operasi Sistem Tenaga Listrik 2.1.4 Kondisi Operasi Sistem Tenaga Listrik Kondisi-kondisi yang mungkin terjadi dalam menjalankan sistem tenaga listrik adalah sebagai berikut : 1. Normal adalah seluruh konsumen dapat dilayani, kendala operasi teratasi dan keamanan sistem dapat dipenuhi 2. Siaga adalah seluruh konsumen dapat dilayani, kendala operasi dapat dipenuhi, tetapi keamanan sistem tidak dapat dipenuhi. 3. Darurat adalah konsumen tidak dapat dilayani, kendala operasi tidak dapat dipenuhi. 4. Pemulihan adalah adalah peralihan kondisi darurat tenaga listrik yang diukur dengan kualitas tegangan dan frekuensi yang dijaga sedemikian rupa sehingga tetap pada kisaran yang ditetapkan. (Wikarsa,2010:6) 2.1.5 Karakteristik Pembangkit Listrik Sangat penting untuk mengenal karakteristik pembangkit listrik yang berguna untuk meminimalisir pembiayaan bahan baku energi. Ketika sudah mengenal karakteristik pembangkit listrik maka pengaturan output pembangkit dapat diatur dengan baik. Berdasarkan karakteristik pembangkit listrik, dapat dibuat model secara matematis untuk proses optimasi agar dihasilkan biaya pembangkitan yang ekonomis. Ada berbagai macam jenis pembangkit listrik yaitu 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 untuk memenuhi kebutuhan beban dengan biaya minimum. Namun, di antara dua karakteristik pembangkit tersebut, pembangkit thermal cukup menjadi perhatian dikarenakan biaya bahan bakar dan sering berubah. Oleh karena itu, untuk lebih lanjutnya akan banyak dibahas mengenai pembangkit thermal ini. 2.1.6 Pembangkit Listrik Mengoperasikan suatu sistem tenaga listrik yang tediri dari beberapa pusat pembangkit listrik memerlukan suatu koordinasi yang tepat dalam melakukan penjadwalan pembebanan besarnya daya listrik yang dibangkitkan oleh masing-masing 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 unit ini dilakukan untuk menentukan unit mana saja yang beroperasi dan tidak beroperasi pada jam tertentu sehingga dapat dibuat kombinasi operasi dari unit-unit yang ada. Dalam mengatur unit-unit tersebut digunakan pertimbangan teknis dan ekonomis. 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. (Nadjamuddin, 2011:186-187) Penjadwalan ekonomis (Economic Dispatch) merupakan salah satu pokok permasalahan dalam operasi ekonomis sistem tenaga listrik yang akan dibahas lebih detail khususnya dalam kasus pembangkit thermal pada penulisan ini. 2.1.7 Unit Pembangkit Thermal Secara umum, unit pembangkit thermal terdiri dari boiler, turbin, dan generator yang digunakan untuk mengubah bahan bakar menjadi energi listrik. Unit pembangkit thermal bisa dilihat seperti pada gambar 2.3 berikut ini: Gambar 2.3 Sistem Pembangkit Thermal (Penangsang, 2011) Dari gambar diatas, maka dapat diketahui beberapa karakteristik dari unit pembangkit thermal yaitu : 1 Karakteristik Input Output Pembangkit Thermal Karakteristik input-output pembangkit menggambarkan hubungan antara input bahan bakar (Rp/jam) dan output yang dihasilkan oleh pembangkit (MW). Dengan mengetahui perbedaan karakteristik di antara semua pembangkit yang ada, optimasi pengoperasian pembangkit dapat dilakukan. Secara umum, karakteristik input-output pembangkit didekati dengan fungsi polinomial yaitu : F(P) = ai + bi+ ci Dimana: atau = input bahan bakar (Btu/jam) F = biaya bahan bakar pembangkit thermalke- i (Rp/jam) Pi = output pembangkit termal ke- I (MW) ai ,bi,ci = konstanta input-output pembangkitthermal ke- i ( Rp/MW.jam) Input, H (Mbtu/jam) atau F (Rpjam) i : indeks pembangkit ke i (i =1,2,3,.....N) ΔH / ΔF ΔP H P Pmin Pmax Output, P (MW) Gambar 2.4 Kurva Karakteristik Input-Output Unit Thermal Gambar 2.4 ini menunjukkan karakteristik input dan output dari unit thermal dalam bentuk yang ideal. 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) atau biaya total per jam (Rp/jam). Output dari pembangkit ditunjukkan pada sumbu mendatar yaitu daya listrik, yang memiliki batas-batas kritis operasi yaitu daya maksimum dan minimum dari pembangkit. Kurva ini didapat dari hasil tes panas pada pembangkit uap. Gambar ini juga digambarkan sebagai kurva non-linier yang kontinu. (Saadat,2004:270) 2. Karakteristik Kenaikan Biaya atau Panas Pembangkit Thermal Karakteristik lain yang perlu untuk diketahui dari suatu unit pembangkit thermal adalah karakteristik laju kenaikan panas yang dapat juga dikatakan sebagai karakteristik kenaikan biaya. Bentuk karakteristik laju kenaikan panas ini dapat dilihat pada gambar dibawah ini. Karakteristik ini merupakan suatu kemiringan (slope) dari karakteristik input dan output. Pada karakteristik ini ditunjukkan nilai Btu per kWh atau Rp/kWh terhadap daya keluaran dalam satuan MW. Karakteristik ini lebih lanjut digunakan untuk perhitungan pembebanan ekonomis dari unit pembangkit. Jika persamaan input-output unit pembangkit dinyatakan dalam pendekatan (aproksimasi) dengan menggunakan persamaan kuadrat, maka karakteristik kenaikan biaya akan mempunyai bentuk garis lurus(Saadat,2004:271). Kurva Karakteristik Kenaikan Biaya atau Panas Pembangkit Thermal dapat dilihat pada gambar 2.5 Kenaikan biaya bahan bakar (ΔF/ΔP) Kenaikan rating panas (ΔH/ΔP) dibawah ini: Perkiraan Pmin Pmax keluaran, P (MW) Gambar 2.5 Kurva Karakteristik Kenaikan Biaya atau Panas Unit Thermal 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. Kurva Karakteristik Efisiensi Terhadap Output dapat dilihat pada H/P (Btu/kWh) gambar 2.6 di bawah berikut: Pmin Prate Pmax Output, P (MW) Gambar 2.6 Kurva Karakteristik Efisiensi terhadap Output Karakteristik laju panas ini menunjukkan kerja sistem dari sistem pembangkit thermal seperti kondisi uap, temperatur panas, tekanan kondensor dan siklus aliran air secara keseluruhan. Pada karakteristik terlihat bahwa efisiensi yang baik sebuah pembangkit termal terletak pada daerah limit maksimalnya (Adrianti,2010). 2.2 Economic Dispatch pada Unit Pembangkit Thermal dengan Memperhitungkan Rugi-rugi Transmisi Pada subbab 2.1.7 telah dibahas mengenai operasi pada unit pembangkit thermal dimana terdapat berbagai kurva karakteristik. Di sini, perlu diperhatikan mengenai kurva karakteristik input output yang selanjutnya akan menjadi dasar permodelan fungsi biaya dalam Economic Dispatch, selain itu kurva incremental heat (kenaikan panas) juga penting untuk mengukur berapa besar biaya yang akan dikeluarkan apabila jumlah daya ditambahkan. Pengoperasian ekonomis pembangkit tenaga listrik harus memenuhi batasan-batasan atau constraints tertentu. Dua constraints yang digunakan dalam penelitian ini adalah equality constraints dan inequality constraints. Equality constraint merupakan batasan kesetimbangan daya, yang mengharuskan total daya yang dibangkitkan oleh masing-masing pembangkit harus sama dengan jumlah total kebutuhan beban dan rugi-rugi transmisi, yang dapat dinyatakan dengan persamaan berikut: = + Dengan : Pg = i Dimana: Pgi = Output masing-masing Pembangkit n = Total Pembangkit PD = Total Daya Yang Dibutuhkan PL = Total Rugi-rugi Transmisi Sebuah sistem tenaga listrik yang terdiri dari beberapa unit pembangkit yang terhubung pada rel tunggal untuk melayani beban Pload seperti pada gambar 2.7. Pi merupakan daya keluaran unit ke i dengan biaya (cost rate) Fi, total biaya sistem adalah jumlah dari biaya masing masing unit. Kendala yang mendasar dari pengoperasian sistem tenaga listrik adalah bahwa total keluaran dari pembangkit harus sama dengan dengan kebutuhan beban ditambah dengan Transmission Losses. Gambar 2.7 N Buah Unit Thermal Yang Melayani Beban Pload (Wood & Wollenberg, 1996:36) Telah dibahas sebelumnya mengenai input pembangkit thermal yang merupakan bahan bakar dan outputnya berupa daya aktif. Untuk menghitung biaya pembangkitannya maka dari persamaan fungsi kenaikan panas pada subbab 2.1.7 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) = koefisien biaya dari pembangkit = output pembangkit (MW) = jumlah unit pembangkit = indeks dari dispatchable unit = harga batubara (Rp/kg) nilai kalor (kcal/kg) Masing-masing pembangkit memiliki batasan yang dirumuskan sebagai berikut : Inequality constraint mengharuskan daya outputdari tiap unit lebih besar dari atau sama dengan dayaminimum yang diperbolehkan serta lebih kecil dari atau sama dengan daya maksimum yang diperbolehkan (Wood & Wollenberg, 1996:29-32). Seperti yang dijelaskan sebelumnya bahwa untuk mendapatkan nilai output pembangkit maka perlu menghitung nilai total Trasmission Losses. Transmission Losses pada setiap saluran antar bus dapat berubah-ubah nilainya, tergantung dari besarnya daya yang disalurkan. Untuk mengakomodasikan Transmission Losses saat menentukan pembebanan pembangkit, maka rugi-rugi transmisi harus dinyatakan sebagai fungsi dari pembebanan (output) pusat pembangkit. Untuk itu dapat digunakan rumus umum yang terdiri dari persamaan linier dan persamaan konstan, yang dikenal sebagai rumus losses Kron (Saadat,2004:279) : PL = giBijPij+ i0Pgi+ B00 dengan : PL = Rugi-rugi transmisi(Transmission Losses) Bij = Koefisien kerugian transmisi atau Loss coefficients. Pgi = Output masing-masing Pembangki Pi,Pj = Ouput pembangkit ke-i,j. Bi0,B00 = Konstanta rugi-rugi daya. Loss coefficients dapat dianggap konstan untuk perubahan daya output setiap pembangkit didalam sistem. 2.3 Metode Firefly Algorithm Metode Firefly 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 Computational Intelligence and Metaheuristics. Metode ini terinspirasi oleh perilaku kunang-kunang, menarik satu sama lain dengan lampu berkedip. Hal ini sangat berguna untuk optimasi multimodal.Firefly Algorithm sendiri dibentuk dan dikembangkan oleh Dr.Xin She Yang di Cambridge University pada tahun 2007. Firefly Algorithm merupakan algoritma yang didasarkan pada kebiasaan dari kunang-kunang. Kunang-kunang pada umumnya menghasilkan sinar dalam durasi yang pendek dan memiliki ritme tertentu. Sinar dari kunang-kunang dihasilkan dari proses bioluminescence. Terdapat dua fungsi penting pada sinar kunang-kunang yaitu untuk menarik perhatian kunang-kunang yang lain untuk berkomunikasi dan untuk bertahan dari serangan pemangsa. Beberapa aturan yang diadopsi dan disintetis dari kebiasaan kunang-kunang untuk membentuk Firefly Algorithm: 1. Semua kunang-kunang bersifat unisex, kunang-kunang akan tertarik satu dengan yang lain tanpa menghiraukan jenis kelamin. 2. Daya pikat (Attractiveness) dari kunang-kunang bersifat proporsional, bergantung pada tingkat intensitas sinar yang dipancarkan. Daya pikat kunang-kunang akan semakin berkurang pada saat jarak semakin bertambah. Jika diantara kunang-kunang tidak ada yang bersinar lebih terang, kunang-kunang akan bergerak dengan random. 3. Terang (Brightness) yang ditimbulkan kunang-kunang ditentukan oleh nilai fitness dari objective function. Dari sini kemudian dapat diketahui bahwa Firefly Algorithm memiliki beberapa strategi yaitu diantaranya : 1. Acctractiveness Ada dua hal yang berkaitan dan sangat penting dalam firefly algorithm yaitu itensitas cahaya dan fungsi keatraktifan (Acctractiveness). Dalam hal ini kebanyakan yang berasumsi bahwa Acctractiveness dipengaruhi oleh tingkat itensitas cahaya. Untuk kasus yang paling sederhana contohnya masalah optimisasi minimum, tingkat itensitas cahaya pada sebuah kunang-kunang x dapat dilihat sebagai I (x) = 1/f (x) Dengan nilai I merupakan tingkat itensitas cahaya pada x kunang-kunang yang sebanding terhadap solusi fungsi tujuan permasalahan yang akan dicari f(x). Acctractiveness β yang bernilai relative sebab itensitas cahaya harus dilihat dan dinilai oleh kunang-kunang lain. Dengan demikian, hasil penilaian akan berbeda tergantung dari jarak antara kunang-kunang yang satu dengan yang lainnya yaitu rij yang merupakan jarak varaiasi antara kunang-kunang i dengan kunang-kunang j. Selain itu, itensitas cahaya akan menurun dilihat dari sumbernya dikarenakan terserap oleh media contohnya udara γ .Dalam bentuk yang paling sederhana, intensitas cahaya I(r) bervariasi sesuai dengan invers dari hukum kuadrat : I(r)= . Dimana Is adalah intensitas pada sumber. Untuk media tertentu dengan light absorption coefficient tyang tetap yaitu γ, Intensitas cahaya yang bervariasi dengan jarak r. Maka persamaannya adalah I = I0 . Dimana I0 intensitas cahaya yang asli. Untuk mengurangi nilai r=0 pada persamaan , kombinasi antara invers dari hukum kuadrat dengan absorpsi dapat dilakukan pendekatan sebagai persamaan Gaussian berikut: I(r) = I0 Maka, Fungsi Acctractiveness ialah sebagai berikut: β(r) = β0 2. Distance Between Fireflies Jarak antara kunang-kunang i dan j pada lokasi x, xi dan xj dapat ditentukan ketika dilakukannya peletakan titik dimana firefly tersebut disebar secara random dalam diagram kartesius dengan fungsi sebagai berikut: rij = || xi - xj|| = atau rij = Dimana selisih dari koordinat lokasi kunang-kunang i terhadap kunangkunang j merupakan jarak diantara keduanya (rij). 3. Movement of Firefly Pergerakan kunang-kunang i yang bergerak menuju tingkat itensitas cahaya yang terbaik dapat dilihat dari persamaan berikut: = + β0 +( ) + α ( rand - ) Dimana variable awal xi menunjukan posisi awal kunang-kunang yang berada pada lokasi x, kemudian persamaan kedua yang terdiri dari variable β0 = 1, variabel ini merupakan nilai keaktraktifan awal pada firefly, variabel (exp) bilangan eksponensial, variabel γ =1 merupakan nilai untuk tingkat penyerapan pada lingkungan sekitar firefly yaitu udara dan terakhir rij merupakan variabel selisih jarak awal antara firefly i dan j . Semua variabel pada persamaan kedua tersebut diberikan dari fungsi keatraktifan firefly yang mana menentukan tingkat kecerahan. Selanjutnya persamaan ketiga terdiri dari selisih nilai solusi pada firefly i terhadap firefly j. Kemudian fungsi persamaan pergerakan firefly secara random (rand) yang menunjukan adanya bilangan random yang kisarannya antara [0,1]. variabel α yang memiliki kisaran antara [0,2]. Semua variabel yang terbentuk pada persamaan pergerakan firefly menjamin cara kerja algoritma cepat menuju solusi yang optimal (Yang,2010:221-224). 2.3.1 Parameter Firefly Algorithm Tabel 2.1 Parameter Firefly Algorithm Parameter Notasi di dalam algoritma Tingkat kecerahan Objective Function Beta(β) Attractiveness parameter Alpha(α) Paramater acak Gamma(γ) Absorption coefficient Number of Generation Iterasi Jumlah kunang-kunang Populasi Dimension Problem dimension R Radius, interval waktu,dll Tabel 2.1 menunjukan parameter-parameter yang dipakai didalam firefly Algorithm. Dalam Firefly Algorithm, parameter alpha (α) merupakan kontrol eksplorasi dan parameter gamma (γ) merupakan kontrol eksploitasi. Parameter ini menggambarkan variasi fungsi keaktraktifan dan nilai untuk kecepatan konvergensi firefly algorithm. Untuk sebagian besar kasus, parameter acak (α) bernilai kisaran antara [0, 10] dan parameter keaktraktifan (ß) sama dengan 1. Koefisien absorbs (γ) bervariasi antara [0,1-1,0]. Nilai parameter dari algoritma yaitu fungsi keaktraktifan kunang-kunang, pengacakan dan koefisien absorbsi diatur sedemikian rupa bahwa adanya keseimbangan antara eksplorasi dan eksploitasi yang perlu dipetahankan dan solusi optimal yang dinginkan dapat diperoleh. Semakin banyak jumlah iterasi dan lebih banyak jumlah populasi sebenarnya memberikan hasil yang lebih baik dalam optimasi (Panigrahi et all,2015). 2.3.2 Algoritma Metode Firefly Berikut langkah-langkah algoritma dari metode Firefly sebagai berikut ini : 1. Membaca sistem data seperti koefisien persamaan biaya, batas daya minimum dan maksimum dari semua unit pembangkit, total dari Pdemand. 2. Menginisialisasi parameter dan syarat dari algoritma Firefly. Dalam hal ini melingkupi , , β0, jumlah dimensi, jumlah kunang-kunang dan itermax (jumlah maksimum pada iterasi). 3. Membangkitkan secara random populasi awal sebanyak m fireflies (berarti banyak kunang-kunang dan jumlah dimensi sebanyak pembangkit yang ada). 4. Hitung intensitas cahaya awal tiap fireflies yaitu πΌπ₯ berdasarkan nilai fungsi tujuan yaitu ππ₯. 5. Intensitas cahaya tiap firefly dibandingkan dengan firefly lainnya. Apabila terdapat firefly j yang intensitas cahayanya lebih besar dari firefly i, lakukan update pergerakan firefly menggunakan persamaan movement yaitu : π₯ππππ€ = π₯π+ π½0π−πΎπππ2( π₯π − π₯π) + πΌ( ππππ −1/2) Dimana rand adalah bilangan random berdistribusi uniform pada interval [0,1] dan πππ=|| π₯π− π₯π ||= 6. G-best adalah solusi terbaik yang pernah didapatkan. Untuk iterasi pertama, firefly terbaik (firefly dengan intensitas terbesar) adalah G-best. 7. Tentukan nilai alpha (α) dengan iterasi yang mengikuti persamaan berikut : α(iter) = αmaks –((αmaks-αmin) (jumlah iterasi saat ini)/itermax) 8. Melakukan proses movement kepada firefly terbaik dengan memasukkan nilai yang didapat dan menggabungkannya dengan firefly yang lain untuk menjadi populasi awal pada iterasi selanjutnya. 9. Jumlah iterasi selalu bertambah dan jika batas iterasi dipenuhi maka akan berhenti, sedangkan jika tidak terpenuhi maka kembali ke langkah 3. 10. G-best akan memberikan solusi yang optimal pada masalah economic dispatch (Subramanian &Thanushkodi,2013). 2.4 Interaksi Manusia dan Komputer (IMK) 2.4.1 Pengertian Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer (IMK) adalah suatu ilmu yang mempelajari hubungan antara manusia dan komputer yangmeliputi perancangan, evaluasi, dan implementasi antarmuka computer agar mudah digunakan oleh manusia, serta studi fenomena – fenomena besar yang berhubungan dengannya.User Interface atau antarmuka pengguna adalah bagian sistem komputer yang memungkinkan manusia berinteraksi dengan komputer. 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. (Meena &Sivakumar, 2015 :2) 2.4.2 Delapan Aturan Emas Design User Interface 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 kemampuan yang berbeda-beda.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, penambahan fitur penjelasan untuk pemula atau fitur shortcut untuk yang ahli. 3. Memberikan umpan balik yang informatif Untuk setiap tindakan yang dilakukan user, diharapkan adanya umpan balik dari sistem. Untuk tindakan yang sering terjadi dan tidak membutuhkan banyak aksi, umpan balik dapat dibuat sederhana, sedangkan tindakan yang jarang dilakukan dan memerlukan banyak aksi harus lebih ditonjolkan. 4. Merancang dialog yang memberikan penutupan (keadaan akhir) Sebuah aksi hendaknya dilakukan secara berurut dengan dikelompokkan seperti 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 Sistem yang dibuat diharapkan tidak memungkinkan user untuk membuat kesalahan serius. Jika terjadi kesalahan, sistem harus dapat mendeteksi kesalahan tersebut dan menawarkan penanganan kesalahan yang sederhana. 6. Memungkinkan untuk kembali ke aksi sebelumnya Suatu sistem dirancang sehingga jika pengguna mengalami kesalahan maka pengguna dapat kembali ke keadaan sebelumnya. Hal ini dapat mengurangi kecemasan pengguna karena pengguna mengetahui kesalahan yang dilakukan dapat dibatalkan, sehingga pengguna tidak takut untuk mengeksplorasi pilihan-pilihan lain yang belum biasa digunakan. 2. Mendukung pusat kendali internal Menjadikan user sebagai yang mengendalikan sistem, bukan yang dikendalikan oleh sistem. 3. Mengurangi beban ingatan jangka pendek Mengingat keterbatasan manusia untuk memproses informasi dalam jangka pendek, sebuah sistem diharapkan dibuat dengan tampilan sesederhana mungkin, beberapa halaman dijadikan satu, frekuensi pergerakan window dikurangi dan harus ada waktu yang cukup bagi user untuk mempelajari kode-kode, singkatan, serta urutan aksi. Informasi seperti singkatan atau kode sebaliknya tersedia. 2.4.3 Evaluasi Interface Setelah mengetahui aturan-aturan yang penting dalam merancang sebuah sistem antarmuka, perlu juga mengetahui suatu ukuran yang digunakan dalam mengevaluasinya.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) Mengukur berapa banyak kesalahan yang terjadi saat aplikasi menyelesaikan suatu tugas. Penanganan kesalahan merupakan hal yang penting dalam penggunaan antarmuka karena membutuhkan pembelajaran yang luas. 4. Daya ingat jangka panjang (retention over time) Bagaimana pengguna menjaga pengetahuan mereka setelah beberapa jam, hari, atau minggu. Daya ingat sering dikaitkan dengan waktu pembelajaran dan biasanya frekuensi penggunaan juga memainkan peran penting. 5. Kepuasan subjektif (subjective satisfication) Seberapa besar ketertarikan pengguna terhadap berbagai aspek interface. Hal ini dapat diketahui dengan melakukan wawancara atau survey kepada pengguna. 2.4.4 Empat Pilar Desain User Interface Keempat pilar desain user interface dapat membantu user interface mengubah ide-ide yang baik dalam kesuksesan sistem. Keempat pilar desain user interface dapat dilihat pada gambar 2.8 ini. Gambar 2.8 Empat Pilar Desain User Interface (Shneiderman & Plaisant, 2010 : 121) Keempat pilar desain user interface, antara lain : 1. Persyaratan atau kebutuhan user interface (User Interface Requirements) yang menentukan kebutuhan pengguna yang jelas merupakan hal utama dalam keberhasilan setiap pengembangan sistem. Tujuan dari dibutuhkannya persyaratan user interface ini diperuntukkan untuk komunitas pengguna dan juga mengenai tugastugas atau tasks yang pengguna bisa lakukan. Meletakkan user interfacerequirement adalah bagian dari keseluruhan persyaratan dari proses pengembangan dan manajemen. 2. Pedoman dokumen dan proses (Guidelines Documents & Process) Pada awal proses desain, designer user interface harus menghasilkan sekumpulan pedoman kerja. Setiap proyek memiliki kebutuhan yang berbeda-beda, namun beberapa pedoman yang harus dipertimbangkan, antara lain : a. Word, icon, dan graphics. -Sekumpulan karakter, fonts, ukuran font, dan gaya penulisan (bold, italic, underline). - Icons, tombol, grafik, dan ketebalan garis. - Penggunaan warna, backgrounds, penyorotan /highlighting dan kedipan/blinking. b. Masalah tata letak layar (Screen layout issues) - Menu selection, form fill-in, format pada dialog-box. - Wording of prompts, feedback, dan pesan error. - Justifikasi, white space, dan margin. - Entri data dan menampilkan format untuk item dan daftar. - Penggunaan dan isi dari header dan footer. - Strategi untuk beradaptasi dengan tampilan yang besar dan kecil. c. Perangkat input dan output (Input and output devices). - Keyboard, display, cursor control, dan pointing device. - Audible sound, voice feedback, speech I/O, touch input, dan device spesial lainnya. - Alternatif bagi pengguna penyandang cacat d. Action Sequences - Direct manipulation clicking, dragging, dropping dan gestures. - Command syntax, semantics, dan sequences. - Shortcuts dan programmed function keys. - Navigasi layar sentuh untuk device. - Penanganan kesalahan dan prosedur perbaikan. e. Training - Online help, tutorials dan support group - Training dan referensi materi terkait 3. Peralatan perangkat lunak user interface (User Interface Software Tools) . Persoalan yang utama dalam merancang suatu sistem yang interaktif adalah customer dan user tidak mempunyai ide yang jelas bagaimana sistem tersebut akan terlihat pada akhir perancangan. Oleh karenanya,sistem interaktif adalah baru di berbagai situasi, maka user tidak menyadari implikasi dari berbagai keputusan desain. Sayangnya, itu menjadi hal yang sulit, memakan biaya yang besar, dan memerlukan waktu yang lama untuk melakukan perubahan yang besar ke sistem tersebut ketika sistem itu telah diimplementasikan. Sehingga, User Interface Software Tools dapat menangani masalah tersebut. 4. Review dari ahli dan pengujian kegunaan (Expert Reviews & Usability Testing). Beberapa metode dalam Expert Review misalnya dengan melakukan tes ke calon user yang akan menggunakan sistem tersebut, survei dan automated analysis tools. Prosedur yang digunakan dalam metode tersebut berbeda-beda tergantung dengan apa yang akan dicapai dari testing tersebut, berapa user yang diharapkan, dan seberapa tingkat bahaya dalam implementasi sistem baru itu, serta level investasi untuk sistem itu.(Shneiderman & Plaisant, 2010 : 120126) 2.5 Peranti Lunak Berbasis Web dan Bahasa Pemograman 2.5.1 Perangkat Lunak Menurut Pressman(2010:4) software adalah : a. Sebuah instruksi (program komputer) yang ketika dieksekusi akan menampilkan fitur-fitur, fungsi, dan sebuah tampilan yang diinginkan. b. Struktur data yang dapat membuat sebuah program memanipulasi informasi secara proporsional. c. Deskripsi informasi baik dalam bentuk nyata ataupun bentuk virtual yang menjelaskan tentang operasi dan kegunaan program. Selain itu, perangkat lunak (software) juga memiliki beberapa karakteristik yang berbeda dengan dari perangkat keras,yaitu : 1. Perangkat lunak dibangun dan dikembangkan tidak dibuat dalam bentuk klasik. 2. Perangkat lunak tidak pernah usang. 3. Meskipun industri bergerak menuju pembangunan berdasarkan kompenen yang ada, sebagian besar perangkat lunak dibuat secara custom-built. (Presmann,2010:4-7) Rekayasa piranti lunak dapat dikelompokkan dalam beberapa lapisan layers seperti pada gambar 2.9, yaitu: 1. A quality focus : landasan dari suatu piranti lunak di mana semua proses dalam rekayasa piranti lunak mengacu pada kualitas yang dihasilkan. 2. Process : pondasi dasar yang berfungsi sebagai penghubung lapisan teknologi, pengembangan rasional, dan pengembangan piranti lunak yang teratur. 3. Methods : menyediakan teknis bagaimana membangun sebuah piranti lunak yang mencakup array yang luas dari tugas-tugas yang terdiri atas analisis kebutuhan, desain, konstruksi program, pengujian, dan dukungan. 4. Tools : menyediakan dukungan otomatis atau semi otomatis untuk methods dan process . (Presmann,2010:14) Gambar 2.9 Software Engineering Layers 2.5.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 sampai 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 eksternal, 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 Sebuah WebApps tak dapat dipisahkan dari jaringan karena berada dalam jaringan itu sendiri dan harus melayani berbagai kebutuhan pengguna darimana saja dan kapan saja, sehingga harus dapat diakses secara mendunia ataupun diakses secara terbatas. 2. Concurrency Banyak pengguna yang dapat mengakses WebApps secara bersamaan pada suatu waktu. Dalam banyak kasus, pola penggunaan di kalangan pengguna akhir akan bervariasi. 3. Unpredictable load Banyaknya pengguna bervariasi dari hari ke hari karena tidak bisa diprediksi mungkin hari ini hanya 1000 pengguna dan besok bisa saja terdapat 10.000 pengguna. 4. Performance Performa dari WebApps perlu diperhatikan misalnya jika pengguna harus menunggu terlalu lama untuk mengakses maka pengguna dapat berpindah ke tempat lain yang lebih cepat 5. Availability Meskipun harapan ketersediaan 100 persen adalah tidak masuk akal, tetapi 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.Webapps biasanya digunakan untuk mengakses informasi yang ada pada database yang bukan merupakan bagian integral dari lingkungan berbasis web (misalnya, e-commerce atau aplikasi keuangan) sehingga membutuhkan tempat penyimpan yang cukup besar untuk menampungnya. 7. Content sensitive Kualitas dan keindahan konten yang akan ditampilkan dalam sebuah WebApps perlu diperhatikan. 8. Continuous evolution Tidak seperti aplikasi perangkat lunak konvensional yang berkembang sesuai dengan rencana, WebApps justru bisa berubah terjadi setiap detiknya guna memenuhi permintaan kebutuhan pengguna. 9. Immediacy WebApps dapat dibuat dan diluncurkan dalam waktu yang relatif lebih cepat dibandingkan aplikasi software lainnya. 10. Security Karena WebApps tersedia di jaringan maka Pengguna WebApps sangatlah banyak dan tak terbatas sehingga dibutuhkan sistem keamanan yang kuat untuk melindungi konten-konten yang rahasia dan mencegah terjadinya hal-hal yang tidak diinginkan. 11. Aesthetics Keindahan tampilan merupakan hal utama yang akan langsung terlihat oleh pengguna yang akan membuatnya menarik untuk digunakan. Oleh karena itu, hal keindahan dan kemudahan interaksinya dengan pengguna menjadi salah satu hal penting yang tak boleh diabaikan. 2.5.3 Pemrograman Web dengan PHP Dalam pembuatan sebuah aplikasi berbasis web, tentu HTML tidak dapat diabaikan. 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 B melihat halaman web yang sama dan memilih kategori pakaian. Kedua pengguna tersebut mengakses halaman web pada waktu yang bersamaan tetapi 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 di mana pengguna memasukkan formulir ke dalamweb. 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 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 oleh 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. Selain 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. (Welling & Thomson, 2009:4-6) 2.5.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 atribut yang mempresentasikan hal yang sama, meskipun nilai dari atribut-atribut 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, pemprograman 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.5.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 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 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 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. (Presmann,2010:39) Gambar 2.10 Waterfall Model (Presmann,2010:39) 2.6 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 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.6.1 Use Case Modelling Use case diagram mendeskripsikan bagaimana seorang user berinteraksi dengan sistem dengan cara mendefinisikan langkah-langkah yang dibutuhkan untuk mencapai tujuan. Use case Diagram terbagi menjadi 2 bagian yang saling berkaitan yaitu use case diagram dan use case narrative. 2.6.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 2.11 Use Case Diagram (Whitten & Bentley, 2007:246) Pada gambar 2.11 menjelaskan tentang Use Case Diagram. Dari sana, 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 2.12 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 yang dapat dilihat pada gambar 2.13 dibawah ini. Actor Gambar 2.13 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 kedua simbol tersebut. Associations digambarkan berupa garis solid yang 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. Untuk lebih jelas gambarnya dapat dilihat seperti yang ditunjukkan pada gambar 2.14 ini. Gambar 2.14 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 untuk 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. Sebagai contoh dapat dilihat pada gambar 2.15 dibawah ini. Gambar 2.15 Contoh Extends (Whitten & Bentley, 2007:249) c. Uses/Includes Use case dapat berisikan sebuah fungsi yang kompleks yang dapat membuatnya susah dimengerti. Oleh karena itu, dengan tujuan mempermudah use case tersebut, dibuatlah Uses/Includes dimana pada kondisi ini sebuah use case adalah bagian dari use case lainnya. Sebagai contoh dapat dilihat pada gambar 2.16 ini. Gambar 2.16 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.Sebagai contoh dapat dilihat pada gambar 2.17 dibawah ini. Gambar 2.17 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. Sebagai contoh dapat dilihat pada gambar 2.18 ini. Gambar 2.18 Contoh Inheritance (Whitten & Bentley, 2007:250) 2.6.1.2 Use Case Narrative Use case narrative merupakan salah satu bagian dari use case modeling yang berisikan rincian dari setiap event dan menerangkan bagaimana user berinteraksi dengan sistem selama event terjadi. Menurut Whitten & Bentley (2007:256), penjelasan secara narasi akan membantu mempercepat pemahaman terhadap sistem. Use case narrative ini berguna terutama untuk menjelaskan use case yang cukup rumit. Gambar 2.19 dan gambar 2.20 menunjukkan contoh use case narrative. Gambar 2.19 Use Case Narrative (Whitten & Bentley, 2007:259) Gambar 2.20 Use Case Narrative (Whitten & Bentley, 2007:260) 2.6.2 Activity Diagram Activity diagram merupakan diagram yang secara grafik digunakan untuk menggambarkan aliran dari suatu rangkaian aktifitas baik proses bisnis, langkah-langkah usecase, 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). Sebagai contoh dapat dilihat pada gambar 2.21. Gambar 2.21 Contoh Activity Diagram (Whitten & Bentley, 2007:392) Terdapat beberapa notasi yang digunakan dalam pembuatan activity diagram yang ditunjukan pada tabel 2.2 di bawah ini. Tabel 2.2 Notasi Activity Diagram Notasi Initial Node Keterangan menggambarkan awal proses dari activity diagram Menggambarkan aktivitas Actions dalam sistem menggambarkan jalannya Flow aktivitas dalam activity diagram. 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 Simbol Activity Final 2.6.3 menggambarkan akhir proses dari activity diagram 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. Sebagai contoh dapat dilihat pada gambar 2.22 dibawah ini.(Whitten & Bentley, 2007:400) Gambar 2.22 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 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.Sebagai contoh dapat dilihat pada gambar 2.23 dibawah ini. Gambar 2.23 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. Hubungan ini digambarkan sebagai sebuah garis yang memiliki bentuk diamond kosong di salah satu ujungnya.Sebagai contoh dapat dilihat pada gambar 2.24 dibawah ini. Gambar 2.24 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.Sebagai contoh dapat dilihat pada gambar 2.25 ini. Gambar 2.25 Notasi Composition (Whitten & Bentley, 2007:379) 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. Sebagai contoh dapat dilihat pada gambar 2.26 ini. Gambar 2.26 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. 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.6.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 .Berikut ini contoh Sequence diagram yang dijelaskan opada gambar 2.27.(Whitten & Bentley, 20007:659) Gambar 2.27 Contoh Sequence Diagram (Whitten & Bentley, 2007:659) Terdapat beberapa notasi yang digunakan dalam pembuatan sequence diagram yang akan dijelaskan pada tabel 2.3 berikut ini Tabel 2.3 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 2.7 Flowchart Diagram 2.7.1 Pengertian Flowchart Flowchart adalah diagram alir yang baik untuk menggambarkan proses kerja karena dapat membantu mendefinisikan dokumen dan menganalisis proses. Flowchart dapat memberikan garis besar ringkasan dan deskripsi keseluruhan proses transaksi dalam suatu sistem. Tujuan dari flowchart adalah untuk menyajikan yang jelas, ringkas dan deskripsi dari sistem atau operasi, baik manual atau otomatis. (Vallabhaneni, 2015 : 189-190) Flowchart menjelaskan alur suatu algoritma dengan gambaran logis berupa simbol-simbol. Simbol-simbol tersebut dihubungkan dengan garisgaris dan biasanya flowchart dimulai dengan simbol start dan diakhiri dengan simbol finish. 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 (Kindersley, 2011 : 231-232) 2.7.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 (Kindersley, 2011 : 232-234). 1. Flow Direction Symbols Simbol ini digunakan untuk menghubungkan antara simbol yang satu dengan simbol lainnya. Simbol pada Flow Direction Symbols akan ditunjukkan pada tabel 2.4 dibawah ini: Tabel 2.4 Flow Direction Symbols Nama Simbol Simbol Keterangan Digunakan Simbol arus/flow lines untuk menghubungkan simbol. Garis-garis ini menunjukkan langkah-langkah dan arah alirnya. Simbolcommunication link Menyatakan transmisi data dari suatu lokasi ke lokasi lain Menyatakan sambungan dari proses ke Simbol connector proses lainnya dalam halaman yang sama Menyatakan sambungan dari proses ke Simbol offline connector proses lainnya dalam halaman yang berbeda Digunakan Simbol annotation untuk memberikan tambahan informasi tentang simbol flowchart yang lain. Isinya mungkin dalam bentuk komentar deskriptif, pernyataan, atau catatan penjelasan. 2. Processing Symbols Simbol ini menunjukkan jenis operasi pengolahan dalam suatu prosedur. Simbol pada Processing Symbol akan ditunjukkan pada tabel 2.5 berikut ini Tabel 2.5 Processing Symbols Nama Simbol Simbol Keterangan Menyatakan suatu tindakan/proses yang Simbol process dilakukan oleh komputer Menunjukkan suatu kondisi tertentu Simbol decision yang akan menghasilkan duakemungkinan (ya/tidak) Menyatakan permulaan atau akhir suatu Simbol terminal program Menyatakan Simbol predefined penyediaan tempat penyimpanan suatu pengolaha untuk memberi harga awal process Menyatakan suatu tindakan/proses yang Simbol manual Simbol predefined process 3. tidak dilakukan oleh komputer Merepresentasikan operasi atau proses yang sebelumnya telah ditentukan di tempat lain. Input/Output Symbols Simbol ini menunjukkan jenis peralatan yang digunakan sebagai media input atau output. Simbol pada Input/Output symbols akan ditunjukkan pada tabel 2.6 berikut ini. Tabel 2.6 Input/Output Symbols Nama Simbol Simbol Keterangan Menyatakan proses input atau output Simbol tanpa tergantung jenis peralatannya input/output Simbol manual input Memasukkan data secara manual dengan menggunakan online keyboard Menyatakan input yang berasal dari Simbol punched kartu atau output ditulis ke kartu card Simbol online storage Menyatakan input berasal dari disk atau output disimpan ke disk Menyatakan input berasal dari pita Simbol magnetic tape magnetis atau output disimpan ke dalam pita magnetis Mencetak Simbol display Simbol magnetic disk keluaran dalam layar monitor Merepresentasikan data input atau output dari dan ke magnetic disk. Mencetak keluaran dalam bentuk Simbol dokumen (melalui printer) document Simbol Digunakan untuk merepresentasikan multipage sebuah dokumen dengan berbagai document halaman Berikut ini adalah contoh flowchart secara utuh yang dapat dilihat pada gambar 2.28 di bawah ini : Start Input value of variables Processing Output Values Stop Gambar 2.28 Contoh Flowchart (Garrido, 2012 : 87)