BAB II LANDASAN TEORI 2.1 Data Mining Data mining merupakan serangkaian proses untuk menggali nilai tambah berupa informasi yang selama ini tidak diketahui secara manual dari suatu basisdata dengan melakukan penggalian pola-pola dari data dengan tujuan untuk memanipulasi data menjadi informasi yang lebih berharga yang diperoleh dengan cara mengekstraksi dan mengenali pola yang penting atau menarik dari data yang berukuran besar (Han & Kamber, 2006). Data mining biasa juga dikenal dengan nama lain seperti : Knowledge discovery (mining) in databases (KDD), ekstraksi pengetahuan (knowledge extraction) (Fayyad, 1996) , analisa data/pola dan kecerdasan bisnis (business intelligence) dan merupakan alat yang penting untuk memanipulasi data untuk penyajian informasi sesuai kebutuhan pengguna dengan tujuan untuk membantu dalam analisis koleksi pengamatan perilaku, secara umum definisi data-mining dapat diartikan sebagai berikut Proses penemuan pola yang menarik dari data yang tersimpan dalam jumlah besar. Ekstraksi dari suatu informasi yang berguna atau menarik (non-trivial, implisit, sebelumnya belum diketahui potensial kegunaannya) pola atau pengetahuan dari data yang disimpan dalam jumlah besar. Ekplorasi dari analisa secara otomatis atau semiotomatis terhadap datadata dalam jumlah besar untuk mencari pola dan aturan yang berarti. Alasan utama mengapa data mining sangat menarik perhatian industri informasi dalam beberapa tahun belakangan ini adalah karena tersedianya data dalam jumlah yang besar dan semakin besarnya kebutuhan untuk mengubah data 5 6 tersebut menjadi informasi dan pengetahuan yang berguna (David, 2000). Dimana langkah-langkah untuk melakukan data mining adalah sebagai berikut : Gambar 1 Tahapan Data Mining (Han & Kamber, 2006) Data cleaning (untuk menghilangkan noise data yang tidak konsisten) Data integration (di mana sumber data yang terpecah dapat disatukan) Data selection (di mana data yang relevan dengan tugas analisis dikembalikan ke dalam basisdata) Data transformation (di mana data berubah atau bersatu menjadi bentuk yang tepat untuk menambang dengan ringkasan performa atau operasi agresi) Data mining (proses esensial di mana metode yang intelejen digunakan untuk mengekstrak pola data) Pattern evaluation (untuk mengidentifikasi pola yang benar-benar menarik yang mewakili pengetahuan berdasarkan atas beberapa tindakan yang menarik) Knowledge presentation (di mana gambaran teknik visualisasi dan pengetahuan digunakan untuk memberikan pengetahuan yang telah ditambang kpada user). 7 Arsitektur dari data mining yang khas memiliki beberapa komponen utama yaitu ( Han & Kamber, 2006 ) : Database, data warehouse, atau tempat penyimpanan informasi lainnya. Server database atau data warehouse. Knowledge base Data mining engine. Pattern evolution module. Graphical user interface. Ada beberapa jenis data dalam data mining yaitu ( Han & Kamber, 2006 ) : Relation Database : Sebuah sistem basisdata, atau disebut juga database management system (DBMS), mengandung sekumpulan data yang saling berhubungan, dikenal sebagai sebuah database, dan satu set program perangkat lunak untuk mengatur dan mengakses data tersebut. Data Warehouse : Sebuah data warehouse merupakan sebuah ruang penyimpaan informasi yang terkumpul dari beraneka macam sumber, disimpan dalam skema yang menyatu, dan biasanya terletak pada sebuah site atau tempat. Kegunaan data mining adalah untuk menspesifikasikan pola yang harus ditemukan dalam tugas data mining. Secara umum tugas data mining dapat diklasifikasikan ke dalam dua kategori yaitu deskriptif dan prediktif. Tugas menambang secara deskriptif adalah untuk mengklasifikasikan sifat umum suatu data di dalam basisdata. Tugas data mining secara prediktif adalah untuk mengambil kesimpulan terhadap data terakhir untuk membuat prediksi. Berikut beberapa fungsionalitas dari data mining ( Han & Kamber, 2006 ). a) Konsep/Class Description Data dapat diasosiasikan dengan pembagian class atau konsep. Untuk contohnya, ditoko All Electronics, pembagian class untuk barang yang akan dijual termasuk komputer dan printer, dan konsep untuk konsumen 8 adalah big Spenders dan budget Spender. Hal tersebut sangat berguna untuk menggambarkan pembagian class secara individual dan konsep secara ringkas, laporan ringkas, dan juga pengaturan harga. Deskripsi suatu class atau konsep seperti itu disebut class/concept descripition. b) Association Analysis Association analysis adalah penemuan association rules yang menunjukkan nilai kondisi suatu attribute yang terjadi bersama-sama secara terus-menerus dalam memberikan set data. Association analysis secara luas dipakai untuk market basket atau analisa data transaksi. c) Klasifikasi dan Predikasi Klasifikasi dan prediksi mungkin perlu diproses oleh analisis relevan, yang berusaha untuk mengidentifikasi atribut-atribut yang tidak ditambahkan pada proses klasifikasi dan prediksi. Atribut-atribut ini kemudian dapat di keluarkan. d) Cluster Analysis Tidak seperti klasifikasi dan prediksi, yang menganalisis objek data dengan kelas yang terlabeli, clustering menganalisis objek data tanpa mencari keterangan pada label kelas yang diketahui. Pada umumnya, label kelas tidak ditampilkan di dalam data sample, karena mereka tidak tahu bagaimana memulainya. Clustering dapat digunakan untuk menghasilkan label-label. e) Outlier Analysis Outlier dapat dideteksi menggunakan tes yang bersifat statistik yang mengambil sebuah distribusi atau probabilitas model untuk data, atau menggunakan langkah-langkah jarak jauh di mana objek yang penting jauh dari cluster lainnya dianggap outlier. Sebuah database mungkin mengandung objek data yang tidak mengikuti tingkah laku yang umum atau model dari data. data ini disebut outlier. 9 f) Evolution Analysis Data analisa evolusi menggambarkan ketetapan model atau kecenderungan objek yang memiliki kebiasaan berubah setiap waktu. Meskipun ini mungkin termasuk karakteristik, diskriminasi, asosiasi, klasifikasi, atau clustering data berdasarkan waktu, kelebihan yang jelas seperti analisa termasuk analisa data time-series, urutan atau pencocockkan pola secara berkala, dan kesamaan berdasarkan analisa data. Untuk melakukan data mining yang baik ada beberapa persoalan utama yaitu menyangkut metodologi mining dan interaksi pengguna, performance dan perbedaan tipe database ( Han & Kamber, 2006 ).. Hal inilah yang sering kali dihadapi disaat kita ingin melakukan data mining. Spasio-temporal clustering data mining merupakan bentuk data mining yang melakukan analisis terhadap data spasial dan temporal. Data spasial dan temporal diambil dari tempat tertentu (spasial) secara periodik dalam rentang waktu tertentu (temporal). 2.2 Clustering Clustering adalah suatu metode yang mengelompokkan sejumlah besar data menjadi suatu bagian-bagian kecil data yang mempunyai kemiripan letak, sifat, ciri, atau filter lain yang telah ditentukan ( Han & Kamber, 2006 ). Dalam mengelompokkan suatu data menjadi suatu bagian-bagian kecil diperlukan suatu centroid of a group of data sets atau sebuah titik yang akan dijadikan nilai parameter utama dari keseluruhan titik data yang terdapat pada kelompok. Banyak manfaat dari algoritma clusterisasi yang dapat kita terapkan dalam kehidupan sehari-hari seperti pengenalan bentuk (pattern recognition), kecerdasan buatan (artificial intelligence) (AI), data mining, dan lain-lain. Tipe-tipe algoritma clusterisasi dapat di kelompokkan menjadi dua kategori besar yaitu : Hierarchical methods (misal : Single Linkage dan Centroid Linkage) dan Partitionong methods (misal : K-Means dan residual analysis). 10 Metode clusterisasi yang baik akan menghasilkan cluster yang berkualitas tinggi yang bersifat : a) Memiliki tingkat kemiripan yang tinggi dalam satu-class similarity b) Memiliki tingkat kemiripan yang rendah pada antar-class dissimilarity Kualitas clusterisasi tergantung pada ukuran kemiripan yang digunakan oleh metode dan implementasinya. Kualitas clusterisasi juga diukur oleh kemampuannya untuk menemukan beberapa atau semua pola-pola yang tersembunyi. Kelompok baru yang terbentuk dipengaruhi oleh ukuran keserupaan yang digunakan. Ukuran keserupaan itu biasanya adalah jarak. Sehingga objek yang jaraknya berdekatan, memiliki peluang yang besar untuk menjadi anggota kelompok yang sama. Demikian juga objek yang berjauhan akan menjadi anggota pada kelompok yang berbeda. 2.2.1 Kategori Metode Clustering Menurut ( Han & Kamber, 2006 ) kategori metode clustering dibagi menjadi 4, yaitu : 1. Clusterisasi partitioning Clusterisasi Partitioning disebut juga clusterisasi exclusive, dimana setiap data harus termasuk ke cluster tertentu. Karakteristik tipe ini juga memungkinkan bagi setiap data yang termasuk cluster tertentu pada suatu tahapan proses, pada tahapan berikutnya berpindah ke cluster yang lain. Contoh : K-Medoids, K-Means. 2. Clusterisasi hierarchical Pada clusterisasi hierarchical, Setiap data harus termasuk ke cluster tertentu. Dan suatu data yang termasuk ke cluster tertentu pada suatu tahapan proses, tidak dapat berpindah ke cluster lain pada tahapan berikutnya. 11 Contoh: Single Linkage, Centroid Linkage,Complete Linkage, Average Linkage. 3. Density – based method Density - based clustering menghitung jarak antar cluster berdasar kepadatan. Metode ini mencari kumpulan data dengan kepadatan yang tinggi untuk dijadikan sebagai cluster. Bentuk cluster yang dihasilkan oleh metode ini tergantung kepada kepadatan tersebut. Sehingga dengan dimungkinkan untuk menghasilkan bentuk cluster yang sembarang. Contohnya adalah: DBSCAN dan OPTICS. 4. Grid – based method Operasi clustering dengan metode ini berdasar kepada struktur grid. Keuntungan utama menggunakan teknik ini adalah kecepatan waktu pemrosesan karena tidak bergantung kepada jumlah obyek data dan hanya bergantung jumlah sel pada masing-masing dimensi. Contohnya adalah: STING dan Wavecluster. 2.2.2 Algoritma Clusterisasi Ada beberapa algoritma yang sering digunakan dalam proses clusterisasi, yaitu : 1. Fuzzy C-Means Fuzzy C-Means (FCM) merupakan suatu teknik pengcluster-an data dimana tiap-tiap data dalam suatu cluster ditentukan oleh derajat keanggotaannya. Teknik ini pertama kali diperkenalkan oleh Jim Bezdek pada tahun 1981. Terdapat beberapa perbedaan yang mendasar antara teknik peng-cluster-an klasik dengan teknik 12 peng-cluster-an fuzzy yaitu pada partition clustering yang bersifat klasik, suatu data hanya menjadi anggota pada satu cluster saja, sedangkan pada partisi fuzzy suatu data bisa menjadi anggota pada dua cluster yang berbeda. Hal ini disebabkan karena nilai keanggotaan suatu data pada partisi fuzzy terletak pada interval 0 sampai dengan 1. Konsep fuzzy c-means antara lain: Penentuan pusat cluster yang menandai lokasi rata-rata untuk tiap cluster, dengan kondisi awal tidak akurat. Tiap data memiliki derajat keanggotaan untuk masingmasing cluster. Dengan perulangan yang didasarkan pada minimisasi fungsi obyektif, pusat cluster dan nilai kenaggotaan diperbaiki. Sehingga lokasi cluster bisa berada pada posisi yang benar. Algoritma Fuzzy C-Means adalah sebagai berikut: 1. Input data yang akan dicluster X, berupa matriks berukuran n x m (n=jumlah sample data, m=atribut setiap data). Xij=data sample ke- i(i=1,2,…,n), atribut ke-j(j=1,2,…,m). 2. Tentukan: o Jumlah cluster = c; o Pangkat = w; o Maksimum iterasi = MaxIter; o Error terkecil yang diharapkan = ζ; o Fungsi obyektif awal = P0 =0; o Iterasi awal = t=1; 13 3. Bangkitkan nilai acak µ ik, i=1,2,…,n; k=1,2,…,c; sebagai elemen-elemen matriks partisi awal u. µ ik adalah derajat keanggotaan yang merujuk pada seberapa besar kemungkinan suatu data bisa menjadi anggota ke dalam suatu cluster. Posisi dan nilai matriks dibangun secara random. Dimana nilai keangotaan terletak pada interval 0 sampai dengan 1. Pada posisi awal matriks partisi U masih belum akurat begitu juga pusat clusternya. Sehingga kecendrungan data untuk masuk suatu cluster juga belum akurat. Hitung jumlah setiap kolom (atribut) Qj adalah jumlah nilai derajat keanggotaan perkolom = 1 dengan j=1,2,…m Hitung 4. Hitung pusat Cluster ke-k: Vkj ,dengan k=1,2,…c; dan j=1,2,…m. 14 5. Hitung fungsi obyektif pada iterasi ke-t, Pt. Fungsi obyektif digunakan sebagai syarat perulangan untuk mendapatkan pusat cluster yang tepat. Sehingga diperoleh kecenderungan data untuk masuk ke cluster mana pada step akhir. 6. Hitung perubahan matriks partisi: dengan: i=1,2,…n;dan k=1,2,..c. 7. cek kondisi berhenti: o jika:( |Pt - Pt-1 |<ζ ) atau (t>maxIter) maka berhenti; o jika tidak: t=t+1, ulangi langkah ke-4. 15 2. Clusterisasi Hierarchical Dengan metode ini, data tidak langsung dikelompokkan kedalam beberapa cluster dalam 1 tahap, tetapi dimulai dari 1 cluster yang mempunyai kesamaan, dan selama beberapa iterasi, hingga berjalan terbentuk seterusnya beberapa cluster tertentu. Arah clusterisasi hierarchical dibagi 2, yaitu : a) Divisive • Dari 1 cluster ke k cluster • Pembagian dari atas ke bawah (top to down division) b) Agglomerative • Dari N cluster ke k cluster • Penggabungan dari bawah ke atas (down to top merge). Algoritma hierarchical clustering : 1. Menentukan k sebagai jumlah cluster yang ingin dibentuk 2. Setiap data dianggap sebagai cluster. Kalau N = jumlah data dan c=jumlah cluster, berarti ada c=N. 3. Menghitung jarak antar cluster 4. Cari 2 cluster yang mempunyai jarak antar cluster yang paling minimal dan gabungkan (berarti c=c-1). 5. Jika c>k, kembali ke langkah 3. Gambar 2 Ilustrasi algoritma clusterisasi hierarchical (Han & Kamber, 2006) 16 3. Density Based Cluster (DBSCAN) Density Based Cluster ( Density-based Spatial Clustering of Aplication with Noise ) termasuk algoritma clustering berbasis kepadatan. DBSCAN mencari kumpulan data dengan kepadatan yang tinggi untuk dijadikan sebagai cluster. Bentuk cluster yang dihasilkan oleh DBSCAN tergantung kepada kepadatan tersebut. Sehingga dengan algoritma ini dimungkinkan untuk menghasilkan bentuk cluster yang sembarang. Suatu cluster dalam DBSCAN didefinisikan sebagai sekumpulan maksimum data yang terhubung didalam kepadatan tersebut (density connected). Keanggotaan dari setiap anggota cluster dihitung berdasar rumus jarak. Berbeda dengan k-means, DBSCAN termasuk unsupervised clustering karena jumlah cluster yang dihasilkan ditentukan oleh persebaran data itu sendiri, bukan diinisialisasi awal. Gambar 3 Density Based Cluster (Ester,Kriegel, Sander, 1996) Alasan utama mengapa cluster - cluster pada Gambar 4 dapat dibentuk adalah karena kepadatan point - point data pada sebuah cluster relatif lebih padat bila dibandingkan dengan point - point data diluar cluster (Ester, 1996). Komponen-komponen yang ada dalam proses 17 analisis clustering dengan DBSCAN adalah a. Epsilon Epsilon merupakan nilai threshold untuk jarak antar-items yang menjadi dasar pembentukan neighborhood dari suatu titik item. Neps (P), didefinisikan sebagai Neps (p)={ q ∈D ┤|(p,q)≤Eps} Dimana D adalah basisdata yang dianalisis, q adalah data lain. Eps adalah nilai ambang jarak antar data untuk dapat dimasukkan ke dalam cluster yang sama. Dari definisi tersebut data p dapat berkerabat dengan data q jika jarak dari p ke q tidak lebih dari Eps. b. Minimum Points Meskipun p berada dalam Eps-neighborhood dari q, akan tetapi jika hanya dua data tersebut yang berkerabat maka akan terjadi kasus dimana terdapat banyak cluster dengan anggota sedikit. Untuk mencegah hal tersebut diperkenalkan istilah minimum points atau MinPts. MinPts merupakan nilai ambang yang merepresentasikan jumlah nilai minimal data yang berada dalam Eps-neighborhood data p agar dapat terbentuk cluster. Dengan nilai ambang ini, maka ada tiga klasifikasi jenis profil DBSCAN yaitu profil yang berada di luar daerah padat disebut outlier, data yang berada di pangkal daerah padat disebut border point, dan data yang berada di dalam daerah padat disebut core point. c. Directly Density- reachable Sebuah data p dikatakan Directly Density- reachable terhadap data q jika p ∈ Neps (q) dan | Neps (q) ≥ MinPts ( q merupakan core point ). Dari definisi tersebut dapat diketahui bahwa agar data p Directly Density- reachable terhadap data q, maka harus memenuhi dua syarat yaitu data p berada Eps-neighborhod data q dan data q merupakan core point. Artinya, jika p Directly Density- reachable terhadap q, maka q Directly Density- reachable terhadap p. 18 d. Density-reachable Sebuah data p dikatakan density-reachable terhadap data q, jika terdapat rantai p1,…pn, dengan p1=p dan pn=q, sedemikian sehingga pi+1 bersifat directly density-reachable terhadap pi. Dari definisi tersebut dapat diketahui bahwa dua data dikatakan densityreachable jika ada satu rantai data sedemikian sehigga dari satu data ke data lain di dalam rantai tersebut bersifat directly densityreachable. Sifat directly density-reachable tidak menjamin dua border point density-reachable. e. Density-connected Sebuah data p dikatakan density-connected terhadap data q jika terdapat data o sedemikian sehingga data p dan data q bersifat density-reachable terhadap data o. Dengan demikian, setidaknya dua data dalam satu cluster bersifat density-connected. Densityconnected bersifat simetris dan refleksif. Artinya, jika data p bersifat density-connected terhadap data q, maka data q bersifat density-connected terhadap data p. Nilai Eps dan MinPts harus diketahui untuk dapat menjalankan algoritma DBSCAN. Algoritma ini dimulai dengan memilih satu data p secara acak, kemudian mencari data-data lain yang density-reachable terhadap data p. Jika p merupakan core point, maka terbentuk suatu cluster. Akan tetapi jika merupakan core point maka DBSCAN akan mencari data lain dari basisdata. Dalam proses tersebut, terdapat kemungkinan dua cluster bergabung jika kedua cluster tersebut dekat. 19 2.3 Matlab Matlab adalah singkatan dari MATrix LABoratory, merupakan bahasa pemrograman yang dikembangkan oleh The Mathwork Inc. yang hadir dengan fungsi dan karakteristik yang berbeda dengan bahasa pemrograman lain yang sudah ada lebih dahulu seperti Delphi, Basic maupun C++. Matlab merupakan bahasa pemrograman level tinggi yang dikhususkan untuk kebutuhan komputasi teknis, visualisasi dan pemrograman seperti komputasi matematik, analisis data, pengembangan algoritma, simulasi dan pemodelan dan grafik-grafik perhitungan (Hunt, 2001). Pada awalnya Matlab dibuat untuk memberikan kemudahan mengakses data matrik pada proyek LINPACK dan EISPACK. Saat ini matlab memiliki ratusan fungsi yang dapat digunakan sebagai problem solver mulai dari simple sampai masalah-masalah yang kompleks dari berbagai disiplin ilmu. Dalam lingkungan perguruan tinggi teknik, Matlab merupakan perangkat standar untuk memperkenalkan dan mengembangkan penyajian materi matematika, rekayasa dan kelimuan. Di industri, MATLAB merupakan perangkat pilihan untuk penelitian dengan produktifitas yang tinggi, pengembangan dan analisanya. Kegunaan MatLab secara umum adalah sebagai berikut: a) Matematika dan komputasi, b) Perkembangan algoritma, c) Pemodelan, simulasi, dan pembuatan prototype, d) Analisa data, eksplorasi dan visualisasim e) Pembuatan aplikasi, termasuk pembuatan antaramuka grafis. Karakteristik MATLAB : Bahasa pemrogramannya didasarkan pada matriks (baris dan kolom). Lambat (dibandingkan dengan Fortran atau C) karena bahasanya langsung diartikan. Automatic memory management, misalnya kita tidak harus 20 mendeklarasikan arrays terlebih dahulu. Tersusun rapi. Waktu pengembangannya lebih cepat dibandingkan dengan Fortran atau C. Dapat diubah ke bahasa C lewat MATLAB Compiler. Tersedia banyak toolbox untuk aplikasi-aplikasi khusus. Beberapa kelebihan Matlab jika dibandingkan dengan program lain seperti Fortran, dan Basic adalah : 1. Mudah dalam memanipulasi struktur matriks dan perhitungan berbagai operasi matriks yang meliputi penjumlahan, pengurangan, perkalian, invers dan fungsi matriks lainnya. 2. Menyediakan fasilitas untuk memplot struktur gambar (kekuatan fasilitas grafik tiga dimensi yang sangat memadai). 3. Script program yang dapat diubah sesuai dengan keinginan user. 4. Jumlah routine-routine powerful yang berlimpah yang terus berkembang. Kemampuan interface (misal dengan bahasa C, word dan mathematica). 5. Dilengkapi dengan toolbox, simulink, stateflow dan sebagainya, serta mulai melimpahnya source code di internet yang dibuat dalam matlab( contoh toolbox misalnya : signal processing, control system, neural networks dan sebagainya). 2.4 Klorofil a Klorofil lebih atau zat hijau daun merupakan pigmen yang terdapat pada organisme produsen yang berfungsi sebagai pengubah karbondioksida menjadi karbohidrat, melalui proses fotosintesis. Klorofil mempunyai rumus kimia C55H72O5N4Mg dengan atom Mg sebagai merupakan salah satu parameter yang sangat pusatnya. Klorofil a menentukan produktivitas 21 primer di laut. Sebaran sangat terkait dengan dan kondisi tinggi rendahnya konsentrasi oseanografis suatu klorofil a perairan. Beberapa parameter fisik-kimia yang mengontrol dan mempengaruhi sebaran klorofil a, adalah intensitas cahaya, nutrien (terutama nitrat, fosfat dan silikat). Umumnya sebaran konsentrasi klorofil a tinggi di perairan pantai sebagai akibat dari tingginya pasokan nutrien yang berasal dari daratan melalui limpasan air sungai, dan sebaliknya cenderung rendah di daerah lepas pantai. Meskipun demikian pada beberapa tempat masih ditemukan konsentrasi klorofil a yang cukup tinggi, meskipun jauh dari daratan. Keadaan tersebut disebabkan oleh adanya proses sirkulasi massa air yang memungkinkan terangkutnya sejumlah nutrien dari tempat lain, seperti yang terjadi pada daerah upwelling (Hatta, 2002). Sejauh ini klorofil a telah diketahui eratnya kaitan antara konsentrasi dan produktivitas primer dengan kondisi oseanografi. Di antara beberapa parameter fisika- kimia tersebut ada yang belum diketahui secara pasti parameter oseanografi mana yang memiliki pengaruh yang cukup besar terhadap distribusi klorofil a. Tiga macam klorofil yang umum terdapat dalam tumbuhan adalah klorofil a, klorofil-b dan klorofil-c. Dari ketiga jenis klorofil, klorofil a merupakan klorofil yang paling banyak terdapat pada fitoplankton. Klorofil a terdapat sebagai butir-butir hijau daun didalam kloroplas. Klorofil a berpartisipasi secara langsung dalam reaksi konveksi energi radiasi matahari menjadi energi kimia. Sedangkan jenis yang lain termasuk pigmen lain mentransfer energi eksitasinya ke klorofil a (Jeffrey, 1980). Klorofil a sangat mempengaruhi produktivitas primer di perairan. Produktivitas primer dalam arti umum adalah laju produksi zat organik melalui proses fotosintesis. Produktivitas primer adalah jumlah karbon (C) yang diikat oleh fitoplankton permeter persegi atau permeter kubik dalam satu satuan waktu. Lebih lanjut dijelaskan bahwa produktivitas primer dari tumbuhan hijau adalah sebagai jumlah energi yang disimpan per unit waktu per unit area. Proses ini hanya terjadi pada tumbuh- tumbuhan yang mengandung zat hijau daun atau klorofil (Odum, 1971 dalam Fahrudin,2003). 22 Semua fitoplankton yang hidup pada suatu perairan merupakan penyokong produktivitas primer. Pengukuran tingkat produktivitas primer suatu perairan alami harus berdasarkan besarnya aktivitas fotosintesis yang terutama dilakukan oleh algae. 2.5 Metodologi Rekayasa Perangkat Lunak Pemodelan dalam perangkat lunak merupakan suatu yang harus dikerjakan di bagian awal dari rekayasa, dan pemodelan ini akan mempengaruhi pekerjaanpekerjaan dalam rekayasa perangkat lunak tersebut. Model proses perangkat lunak merupakan deskripsi yang disederhanakan dari proses perangkat lunak yang dipresentasikan dengan sudut pandang tertentu. Namun model proses perangkat lunak masih menjadi objek penelitian, namun pada saat ini terdapat banyak model umum atau paradigma yang berbeda dari pengembangan perangkat lunak. Salah satu model proses yang secara umum digunakan dalam pengembangan rekayasa lunak adalah model Waterfall. Waterfall mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak yang sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Berikut di bawah ini rangkaian aktivitas proses dalam model Waterfall (Pressman, 1997:25) : 1. Tahap Rekayasa Sistem Tahapan ini sangat menekan pada masalah pengumpulan kebutuhan pengguna pada tingkatan sistem dengan menentukan konsep sistem beserta anatarmuka yang menghubungkannya dengan lingkungan sekitar. Hasilnya berupa spesifikasi sistem. 23 2. Tahapan Analisis Pada tahap ini dilakukan pengumpulan kebutuhan elemen-elemen di tingkat perangkat lunak. Dengan analisis harus dapat ditentukan domaindomain data atau informasi, fungsi, proses, atau prosedur yang diperlukan beserta untuk kerjanya dan antarmuka. Hasilnya berupa spesifikasi kebutuhan perangkat lunak. 3. Tahap Perancangan Pada tahap perancangan, kebutuhan-kebutuhan perangkat lunak, yang dihasilkan pada tahap analisis, ditransformasikan ke dalam bentuk arsitektur perangkat lunak yang memiliki karakteristik mudah dimengerti dan tidak sulit untuk diterapkan. 4. Tahapan Pemrograman Tahap ini melakukan penerapan hasil rancangan ke dalam baris-baris kode program yang dapat dimengerti oleh komputer. 5. Tahapan Pengujian Setelah perangkat lunak selesai diterapkan, pengujian dapat segera dimulai. Pengujian terlebih dahulu dilakukan pada setiap modul. Jika tidak ada masalah, modul tersebut akan diintegrasikan hingga membentuk perangkat lunak secara utuh. Kemudian dilakukan pengujian di tingkat perangkat lunak yang memfokuskan pada masalah-masalah logika internal, fungsi internal dan potensi masalah yang mungkin terjadi dan pemeriksaan hasil apakah sudah sesuai dengan permintaan. 6. Tahapan Pengoperasian dan Pemeliharaan Dalam masa operasional sehari-hari, suatu perangkat lunak mungkin saja mengalami kesalahan atau kegagalan dalam menjalankan fungsifungsinya. Atau, pemilik bisa saja memintya peningkatan kemampuan 24 perangkat lunak pada pengembangannya. Dengan demikian, kedua faktor ini menyebabkan perlunya perangkat lunak dipelihara dari waktu ke waktu. Biasanya ini merupakan tahapan yang panjang dari perangkat lunak.