BAB II LANDASAN TEORI 2.1 Konsep Dasar Sistem 2.1.1 Definisi Sistem Pengertian sistem secara sederhana dapat dijelaskan sebagai suatu kesatuan yang terdiri dari dua atau lebih komponen atau subsistem yang berinteraksi untuk mencapai tujuan (McLeod dan Schell, 2008). Menurut Gupta (2011), system is a set of interrelated elements that collectively work together to achieve some common goal or objective, yang berarti sekumpulan elemen yang saling terkait bekerja sama untuk mencapai beberapa tujuan tertentu. Stair dan Reynold (2011), mendefinisikan sistem sebagai suatu jaringan kerja dan prosedur-prosedur yang saling berhubungan, berkumpul bersama-sama untuk melakukan suatu kegiatan atau untuk menyelesaikan suatu sasaran tertentu. Dengan demikian pengertian sistem ini akan mempunyai peranan yang sangat penting dalam melakukan pendekatan sistem yang akan di analisis, pendekatan sistem dilakukan agar lebih menekankan pada komponen sistem. Berdasarkan definisi diatas, dapat dikatakan bahwa suatu sistem dapat terdiri dari sistem-sistem bagian atau subsistem, sedangkan masing-masing subsistem dapat terdiri dari subsistem yang lebih kecil lagi atau terdiri dari komponen-komponen. Subsistem ini saling berinteraksi dan saling berhubungan membentuk suatu kesatuan sehingga tujuan atau sasaran dari sistem itu dapat dicapai. 10 11 2.1.2 Karakteristik Sistem Menurut Jogiyanto (2008), suatu sistem memiliki karakteristik atau sifatsifat tertentu, yaitu mempunyai komponen-komponen, batas sistem, lingkungan luar sistem, masukan, keluaran, pengolahan dan sasaran atau tujuan. 1. Komponen sistem (component) Suatu sistem terdiri dari sejumlah komponen yang saling berinteraksi, artinya saling bekerjasama membentuk satu kesatuan. Komponen-komponen sistem atau elemen-elemen sistem dapat berupa suatu subsistem dari sistem. 2. Batasan Sistem (Boundary) Batasan sistem merupakan daerah yang membatasi antara sistem dengan sistem yang lainnya atau dengan lingkungan luarnya. Batas sistem ini memungkinkan suatu sistem dipandang sebagai sesuatu kesatuan dan menunjukkan ruang lingkup dari sistem tersebut. 3. Lingkungan luar sistem (Environtment) Apapun di luar batas dari sistem yang mempengaruhi operasi sistem. Lingkungan luar sistem dapat bersifat menguntungkan dan juga merugikan, karena lingkungan luar yang menguntungkan merupakan energi dari sistem dan dengan demikian harus dan dipeliharan. 4. Penghubung sistem (interface) Media yang menghubungkan antara subsistem dengan subsistem yang lainnya. Melalui penghubung ini kemungkinan sumber-sumber daya mengalir 12 dari satu subsistem ke subsistem lainnya. Keluaran suatu subsistem akan menjadi masukan untuk subsistem lainnya melalui penghubung. 5. Masukan sistem (Input) Energi yang dimasukan ke dalam sistem disebut masukan sistem, masukan dapat berupa masukan perawatan dan masukan sinyal maintenance input adalah energy yang dimasukan supaya sistem tersebut dapat berjalan dan merupakan suatu proses untuk mendapatkan hasil keluaran dari sistem. 6. Keluaran sistem (Output) Hasil energi yang diolah dan diklasifikasikan menjadi output yang berguna. 7. Pengolahan sistem (Process) Suatu dapat mempunyai suatu bagian pengolah atau sistem itu sendiri sebagai pengolahnya. Pengolah yang akan merubah masukan menjadi keluaran. 8. Sasaran sistem (objective) Suatu sistem yang mempunyai tujuan atau sasaran sistem tidak mempunyai sasaran maka sistem tidak akan ada, suatu sistem dapat dikatakan berhasil bila mengenai sasaran atau tujuannya. Interface Lingkungan Luar Sub sistem Boundary Sub sistem Sub sistem Sub sistem Boundary input pengelola output Gambar 2.1 Karakteristik Sistem Sumber: Jogiyanto (2008) Boundary 13 2.2 Sistem Pendukung Keputusan Konsep sistem pendukung keputusan (Decision Support Systems), DSS pertama kali diperkenalkan pada awal tahun 1970-an oleh Michael Scott Morton, yang selanjutnya dikenal dengan istilah “Management Decision System”. Konsep DSS merupakan sebuah sistem interaktif berbasis komputer yang membantu pembuatan keputusan memanfaatkan data dan model untuk menyelesaikan masalah-masalah yang bersifat tidak terstruktur dan semi terstruktur (Turban, et al., 2010). DSS dirancang untuk menunjang seluruh tahapan pembuatan keputusan, yang dimulai dari tahapan mengidentifikasi masalah, memilih data yang relevan, menentukan pendekatan yang digunakan dalam proses pembuatan keputusan sampai pada kegiatan mengevaluasi pemilihan alternatif. 2.2.1 Definisi Sistem Pendukung Keputusan Sistem pendukung keputusan (DSS) memadukan sumber daya intelektual dari individu dengan kapabilitas komputer untuk meningkatkan kualitas keputusan. DSS adalah system pendukung keputusan berbasis komputer bagi para pengambil keputusan manajemen yang menangani masalah-masalah tidak tersetruktur (Turban, et al., 2010). Menurut Alter (1990, dalam Kusrini, 2009), DSS merupakan sistem informasi interaktif yang menyediakan informasi, pemodelan, dan pemanipulasian data. Sistem itu digunakan untuk membantu pengambilan keputusan dalam situsi 14 yang semiterstruktur dan situasi yang tidak terstruktur, di mana tak seorang pun tahu secara pasti bagaimana keputusan seharusnya dibuat. Menurut Kusrini (2009), DSS adalah sistem informasi yang membantu untuk mengidentifikasi kesempatan pengambilan keputusan atau menyediakan informasi untuk membantu pengambilan keputusan. Pada dasarnya DSS hampir sama dengan SIM karena menggunakan basis data sebagai sumber data. DSS bermula dari SIM karena menekankan pada fungsi mendukung pembuat keputusan diseluruh tahap-tahapnya, meskipun keputusan aktual tetap wewenang eksklusif pembuat keputusan. 2.2.2 Tujuan Sistem Pendukung Keputusan Menurut Turban et al., (2010), tujuan dari sistem pendukung keputusan (Decision Support Systems) adalah sebagai berikut: 1. Membantu manajer dalam pengambilan keputusan atas masalah semiterstruktur. 2. Memberikan dukungan atas pertimbangan manajer dan bukannya dimaksudkan untuk menggantikan fungsi manajer. 3. Meningkatkan efektivitas keputusan yang diambil manajer lebih daripada perbaikan efisiensinya. 4. Kecepatan komputasi. Komputer memungkinkan para pengambil keputusan untuk melakukan banyak komputasi secara cepat dengan biaya rendah. 5. Peningkatan produktivitas. 15 6. Dukungan kualitas. 7. Berdaya saing. 8. Mengatasi keterbatasan kognitif dalam pemrosesan dan penyimpanan. 2.2.3 Tahapan Pemodelan dalam DSS Menurut Herbert A. Simon, tahap-tahap yang harus dilalui dalam proses pengambilan keputusan adalah fase kecerdasan, fase perancangan dan fase pemilihan, dan implementasi (Turban, et al., 2010). Gambar 2.2. Proses Pemodelan Pengambilan Keputusan Sumber: Turban, et al., (2010) 16 a. Fase Kecerdasan Membuat keputusan biasanya sulit karena problem itu sendiri sangat sulit diindentifikasi. Agar dapat terindentifikasi maka harus dicari informasi tambahan yang dapat mendukung identifikasi tersebut. Setelah teridentifikasi, lakukan langkah untuk menetapkan prioritas masalah. Tahap ini merupakan proses penelusuran dan pendeteksian lingkup masalah serta proses pengenalan masalah. Data masukan diperoleh, diproses dan diuji dalam rangka mengidentifikasikan masalah. b. Fase Perancangan Dalam hubungan parallel antara satu masalah dengan masalah lain, perlu diidentifikasikan alternative-alternatif penyelesaian masalah. Selanjutnya alternatif tersebut perlu dikualifikasikan dan kemudian ditetapkan kriteria kinerja. Pada tahap ini pembuatan keputusan bias menetapkan nilai, bobot, resiko dan peringkat untuk masing-masing alternatif tersebut. Tahap ini merupakan proses pengembangan dan pencarian alternatif tindakan/solusi yang dapat diambil. Tersebut merupakan representasi kejadian nyata yang disederhanakan, sehingga diperlukan proses validasi dan vertifikasi untuk mengetahui keakuratan model dalam meneliti masalah yang ada. c. Fase Pemilihan SPK bisa berupa bantuan dengan mengingatkan pembuat keputusan metode pemilihan apa yang tepat untuk masalah tersebut. SPK bisa mencakup saran-saran untuk teknik analitis. SPK juga membantu para pembuat keputusan mengatur dan menampilkan informasi. 17 Tahap ini dilakukan pemilihan terhadap diantaraberbagai alternatif solusi yang dimunculkan pada tahap perencanaan agar ditentukan/dengan memperhatikan kriteria-kriteria berdasarkan tujuan yang akan dicapai. d. Impelementasi (Implementation) Tahap ini dilakukan penerapan terhadap rancangan sistem yang telah dibuat pada tahap perancanagan serta pelaksanaan alternatif tindakan yang telah dipilih pada tahap pemilihan. 2.2.4 Karakteristik dan Kemampuan Sistem Pendukung Keputusan Menurut Turban, et al., (2010), ada beberapa karakteristik dari SPK, diantaranya adalah sebagai berikut: 1. Mendukung seluruh kegiatan organisasi 2. Mendukung beberapa keputusan yang saling berinteraksi 3. Dapat digunakan berulang kali dan bersifat konstan 4. Terdapat dua komponen utama, yaitu data dan model 5. Menggunakan baik data ekternal maupun internal 6. Memiliki kemampuan what-if analysis dan goal seeking analysis 7. Menggunakan beberapa model kuantitatif Selain itu, Turban, et al., (2010) menyatakan bahwa kemampuan yang harus dimiliki oleh sebuah sistem pendukung keputusan, diantaranya adalah sebagai berikut: 1. Menunjang pembuatan keputusan manajemen dalam menangani masalah semi terstruktur dan tidak terstruktur. 18 2. Membantu manajer pada berbagai tingkatan manajemen, mulai dari manajemen tingkat atas sampai manajemen tingkat bawah. 3. Menunjang pembuatan keputusan secara kelompok dan perorangan. 4. Menunjang pembuatan keputusan yang saling bergantungan dan berurutan. 5. Menunjang tahap-tahap pembuatan keputusan antara lain intelligence, design, choice dan implementation. 6. Menunjang berbagai bentuk proses pembuatan keputusan dan jenis keputusan. 7. Kemampuan untuk melakukan adaptasi setiap saat dan bersifat fleksibel. 8. Kemudahan melakukan interaksi sistem. 9. Meningkatkan efektivitas dalam pembuatan keputusan daripada efisiensi. 10. Mudah dikembangkan oleh pemakai akhir. 11. Kemampuan pemodelan dan analisis dalam pembuatan keputusan. 12. Kemudahan melakukan pengaksesan berbagai sumber dan format data. Disamping berbagai kemampuan dan karakteristik seperti dikemukakan di atas, sistem pendukung keputusan memiliki juga keterbatasan, antara lain: 1. Ada beberapa kemampuan manajemen dan bakat manusia yang tidak dapat dimodelkan, sehingga model yang ada dalam sistem tidak semuanya mencerminkan persoalan yang sebenarnya. 2. Kemampuan suatu sistem pendukung keputusan terbatas pada pengetahuan dasar serta model dasar yang dimilikinya. 19 3. Proses-proses yang dapat dilakukan oleh sistem pendukung keputusan biasanya tergantung juga pada kemampuan perangkat lunak yang digunakannya. 4. Sistem pendukung keputusan tidak memiliki intuisi seperti yang dimiliki oleh manusia. Karena sistem pendukung keputusan hanya suatu kumpulan perangkat keras, perangkat lunak dan sistem operasi yang tidak dilengkapi oleh kemampuan berpikir. Secara implisit, sistem pendukung keputusan berlandaskan pada kemampuan dari sebuah sistem berbasis komputer dan dapat melayani penyelesaian masalah. 2.2.5 Keuntungan Sistem Pendukung Keputusan Beberapa keuntungan penggunaan SPK antara lain adalah sebagai berikut (Kusrini, 2009): 1. Mampu mendukung pencarian solusi dari berbagai permasalahan yang kompleks 2. Dapat merespon dengan cepat pada situasi yang tidak diharapkan dalam kondisi yang berubah-ubah 3. Mampu untuk menerapkan berbagai strategi yang berbeda pada konfigurasi berbeda secara cepat dan tepat 4. Pandangan dan pembelajaran baru 5. Sebagai fasilitator dalam komunikasi 6. Meningkatkan kontrol manajemen dan kinerja 20 7. Menghemat biaya dan sumber daya manusia (SDM) 8. Menghemat waktu karena keputusan dapat diambil dengan cepat 9. Meningkatkan efektivitas manajerial, menjadikan manajer dapat bekerja lebih singkat dan dengan sedikit usaha 10. Meningkatkan produktivitas analisis 2.2.6 Komponen Sistem Pendukung Keputusan Menurut Turban, et al., (2010), komponen-komponen dari SPK adalah sebagai berikut.: 1. Data Management Termasuk database, yang mengandung data yang relevan untuk berbagai situasi dan diatur oleh software yang disebut Database Management System (DBMS). 2. Model Management Melibatkan model finansial, statistikal, management science, atau berbagai model kualitatif lainnya, sehingga dapat memberikan ke sistem suatu kemampuan analitis, dan manajemen software yang dibutuhkan. 3. Communication User dapat berkomunikasi dan memberikan perintah pada DSS melalui subsistem ini. Ini berarti menyediakan antarmuka. 4. Knowledge Management Subsistem optional ini dapat mendukung subsistem lain atau bertindak atau bertindak sebagai komponen yang berdiri sendiri. 21 Untuk dapat lebih jelas memahami model konseptual SPK, perhatikan gambar berikut. Gambar 2.3. Arsitektur SPK Sumber: (Turban, et al., 2010) 2.3 PROMETHEE Preference ranking organization method for enrichment evaluation (Promethee) adalah suatu metode penentuan urutan (prioritas) dalam analisis multikriteria. Masalah pokoknya adalah kesederhanaan, kejelasan, kestabilan. Dugaan dan dominasi kriteria yang digunakan dalam Promethee adalah penggunaan nilai hubungan outranking (Brans, 1982, dalam Mateo, 2012). Prinsip yang digunakan adalah penetapan prioritas alternatif yang telah ditetapkan berdasarkan pertimbangan artinya, Jika A adalah 22 set dari alternatif pilihan yang mungkin terjadi, f1, f2, ..., fk adalah kriteria yang mana telah dievaluasi sebelumnya. Apabila semua kriteria memiliki tingkat kepentingan yang tidak sama, pembobotannya dapat ditandai dengan w1,w2, ..., wk. dengan kaidah dasar: dimana K adalah sejumlah kumpulan alternatif, dan fi (i = 1, 2, 3, …, K) merupakan nilai/ukuran relaltif kriteria untuk masing-masing alternatif. Dalam aplikasinya sejumlah kriteria telah ditetapkan untuk menjelaskan K yang merupakan penilaian dari ℜ (Real). Promethee termasuk dalam keluarga metode outranking yang dikembangkan oleh B. Roy dan meliputi dua fase (Mateo, 2012): 1. Membangun hubungan outranking dari K. 2. Eksploitasi dari hubungan ini memberikan jawaban optimasi kriteria dalam paradigma permasalahan multikriteria. Dalam fase pertama, nilai hubungan outranking berdasarkan pertimbangan dominasi masing-masing kriteria indeks preferensi ditentukan dan nilai outranking secara grafis disajikan berdasarkan preferensi dari pembuat keputusan. Data dasar untuk evaluasi dengan metode Promethee disajikan sebagai berikut (Mateo, 2012): 23 Tabel 2.1 Data Evaluasi Metode Promethee Sumber: Mateo (2012) Keterangan: 1. a1, a2, …, ai, an: n alternatif potensial 2. f1, f2, …, fj, fk: k kriteria evaluasi. 2.3.1 Dominasi Kriteria Nilai f merupakan nilai nyata dari suatu kriteria dan tujuan berupa prosedur optimasi: f : K→ℜ Untuk setiap alternatif a ∈ K, f (a) merupakan evaluasi dari alternatif tersebut untuk suatu kriteria. Pada saat alternatif dibandingkan, a1, a2 ∈ K, harus dapat ditentukan perbandingan preferensinya. Menurut Brans penyampaian intensitas (P) dari preferensi alternatif a1 terhadap alternatif a2 sedemikian rupa sehingga: a. P (a1, a2) = 0, berarti tidak ada beda antara a1 dan a2, atau tidak ada preferensi dari a1 lebih baik dari a2 b. P (a1, a2) ~ 0, berarti lemah, preferensi dari a1 lebih 24 baik dari a2. c. P (a1, a2) ~ 1, berarti kuat, preferensi dari a1 lebih baik dari a2. d. P (a1, a2) = 1, berarti mutlak, preferensi dari a1 lebih baik dari a2. Dalam metode ini, fungsi preferensi seringkali menghasilkan nilai fungsi yang berbeda antara dua evaluasi, sehingga: P (a1, a2) = P{f(a1) – f (a2)} Untuk semua kriteria, suatu alternatif akan dipertimbangkan memiliki nilai kriteria yanglebih baik ditentukan oleh nilai f dan akumulasi dari nilai ini menentukan nilai preferensi atas masingmasing alternatif yang akan dipilih (Mateo, 2012). 2.3.2 Rekomendasi Fungsi Preferensi Pada metode Promethee terdapat enam bentuk fungsi preferensi kriteria antara lain kriteria biasa (usual criterion), kriteria quasi (quasi criterion), kriteria dengan preferensi linier (U-shape criterion), kriteria level (level criterion), kriteria dengan preferensi linier dan area yang tidak berbeda (V-shapecriterion), kriteria gaussian (Gaussian criterion). Hal ini tentu saja tidak mutlak, tetapi bentuk ini cukup baik untuk beberapa kasus. Untuk memberikan gambaran yang lebih baik terhadap area yang tidak sama, digunakan fungsi selisih nilai kriteria antar alternatif H(d) dimana hal ini mempunyai hubungan langsung pada fungsi preferensi (Brans, 1982, dalam Mateo, 2012). 2.3.3 Indeks Preferensi Multikriteria Tujuan pembuat keputusan adalah menetapkan fungsi preferensi P, dan πi untuk semua kriteria fi (i = 1, 2, 3, …, K) dari masalah optimasi kriteria majemuk. Bobot (wigth) πi merupakan ukuran relatif untuk kepentingan kriteria fi, jika 25 semua kriteria memiliki kepentignan yang sama dalam pangambilan keputusan maka semua nilai bobot adalah sama. Indeks preferensi multikriteria ditentukan berdasarkan rata-rata bobot dari fungsi preferensi Pi. merupakan intensitas preferensi pembuat keputusan yang menyatakan bahwa alternatif a1 lebih baik dari alternatif a2 dengan pertimbangan secara simultan dari seluruh kriteria. Hal ini dapat disajikan dengan nilai antara nilai 0 dan 1, dengan ketentuan sebagai berikut: = 0 menunjukkan preferensi yang lemah untuk alternatif a1 > 1. alternatif a2 berdasarkan semua kriteria. 2. = 1 menunjukkan preferensi yang lemah untuk alternatif a1 > alternatif a2 berdasarkan semua kriteria. 2.3.4 Promethee Ranking Perhitungan arah preferensi dipertimbangkan berdasarkan nilai indeks (Brans, 1982, dalam Mateo, 2012): 1. Leaving Flow 2. Entering flow 26 3. Net flow Keterangan: 1. φ(a,x) = menunjukkan preferensi bahwa alternatif lebih baik dari alternatif x 2. φ(x, a) = menunjukkan preferensi bahwa alternatif x lebih baik dari alternatif 3. Φ!( a) = Leaving flow, digunakan untuk menentukan urutan prioritas pada proses Promethee I yang menggunakan urutan parsial. 4. Φ!(a) = Entering flow, digunakan untuk menentukan urutan prioritas pada proses Promethee I yang menggunakan urutan parsial. 5. Φ(a) = Net flow, digunakan untuk menghasilkan keputusan akhir penentuan urutan dalam menyelesaikan masalah sehingga menghasilkan urutan lengkap. 2.4 Analisa dan Perancangan Sistem 2.4.1 Analisa dan Perancangan Sistem Berbasis Objek Menurut Satzinger (2012) object oriented analysis (OOA) mendefinisikan semua jenis object yang melakukan pekerjaan dalam sistem dan menunjukan interaksi pengguna yang diperlukan untuk menyelesaikan tugas. Sebaliknya, object oriented design (OOD) mendefinisikan semua jenis object yang diperlukan untuk melakukan komunikasi dengan manusia dan piranti dalam sistem dan bagaimana objek berinteraksi untuk menyelesaikan tugas. 27 Kunci utama perancangan sistem tradisional terdiri dari metode, fungsi, data dan aliran data, namun di dalam penerapan sistem analisa dan perancangan berbasis objek kunci utama untuk analisis dan perancangan sistem adalah objek dan class. Beberapa keuntungan utama lewat penggunaan metode Analisa dan perancangan berbasis objek adalah: 1. Object Oriented Analysis and Design menyediakan informasi yang jelas mengenai konteks dari sistem. Metode Object Oriented Analysis and Design memiliki fokus baik pada sistem maupun konteks dari sistem tersebut. 2. Metode Object Oriented Analysis and Design memberikan hubungan yang dekat antara analisis, perancangan, dan user interface. 2.4.2 Unified Modelling Language Pemodelan adalah proses merancang piranti lunak sebelum melakukan pengkodean. Model piranti lunak dapat dianalogikan seperti pembuatan blueprint oleh arsitek pada pembangunan gedung. Semakin komplek sebuah sistem, semakin penting pula penggunaan teknik pemodelan yang baik. Unified Modelling Language (UML) adalah sebuah "bahasa" yg telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut 28 dapat dikombinasikan. Notasi UML terutama diturunkan dari 3 notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering). 1. Use Case Diagram Use case diagram menggambarkan fungsionalitas yang diharapkan dari sebuah sistem. Yang ditekankan adalah “apa” yang diperbuat sistem, dan bukan “bagaimana”. Sebuah use case merepresentasikan sebuah interaksi antara aktor dengan system (Satzinger, 2012). Use case merupakan sebuah pekerjaan tertentu, misalnya login ke sistem, meng-create sebuah daftar belanja, dan sebagainya. Tabel 2.2. Simbol Usecase Diagram Simbol Nama Simbol Keterangan Aktor Seseorang atau sesuatu yang berinteraksi dengan sistem. Use Case Menggambarkan bagaimana seseorang akan menggunakan sistem. Aliran Event Untuk mendokumentasikan aliran-aliran logika dalam setiap Use Case. Include dan Extends Include memungkinkan Use Case untuk menggunakan fungsional yang di sediakan oleh Use Case lainnya. Extends memungkinkan suatu Use Case memiliki kemungkinan memperluas fungsionalitas yang di sediakan oleh Use Case lainnya. Generalisasi Digunakan untuk memperlihatkan bahwa beberapa aktor atau usecase memiliki sesuatu yang bersifat umum. Sumber: Satzinger (2012) 29 Berikut digambarkan contoh use case diagram, add fasilitas view fasilitas booking fasilitas customer admin edit fasilitas Gambar 2.4 Contoh Use Case Diagram Seorang/sebuah aktor adalah sebuah entitas manusia atau mesin yang berinteraksi dengan sistem untuk melakukan pekerjaan-pekerjaan tertentu. Sebuah use case dapat meng-include fungsionalitas use case lain sebagai bagian dari proses dalam dirinya. Secara umum diasumsikan bahwa use case yang di-include akan dipanggil setiap kali use case yang meng-include dieksekusi secara normal. Sebuah use case dapat di-include oleh lebih dari satu use case lain, sehingga duplikasi fungsionalitas dapat dihindari dengan cara menarik keluar fungsionalitas yang common. Sebuah use case juga dapat meng-extend use case lain dengan behaviour-nya sendiri. Sementara hubungan generalisasi antar use case menunjukkan bahwa use case yang satu merupakan spesialisasi dari yang lain. 30 2. Activity Diagram Data Flow Diagram umumnya melakukan menggambarkan suatu proses dengan baik mengenai aliran data dalam alur kerja, namun diagram ini tidak dirancang untuk mewakili arus control. Flowchart secara khusus dirancang untuk mewakili aliran control di antara langkah-langkah pengolahan, tetapi tidak mewakili aliran data (Satzinger, 2012) Activity diagrams menggambarkan berbagai alir aktivitas dalam sistem yang sedang dirancang, bagaimana masing-masing alir berawal, decision yang mungkin terjadi, dan bagaimana mereka berakhir. Activity diagram juga dapat menggambarkan proses paralel yang mungkin terjadi pada beberapa eksekusi (Satzinger, 2012). Activity diagram merupakan state diagram khusus, di mana sebagian besar state adalah action dan sebagian besar transisi di-trigger oleh selesainya state sebelumnya (internal processing). Oleh karena itu activity diagram tidak menggambarkan behaviour internal sebuah sistem (dan interaksi antar subsistem) secara eksak, tetapi lebih menggambarkan proses-proses dan jalur-jalur aktivitas dari level atas secara umum. Sebuah aktivitas dapat direalisasikan oleh satu use case atau lebih. Aktivitas menggambarkan proses yang berjalan, sementara use case menggambarkan bagaimana aktor menggunakan sistem untuk melakukan aktivitas. 31 Tabel 2.3 Simbol Activity Diagram Simbol Nama Simbol Keterangan Initial State Titik awal Final State Titik akhir Action State Aktifitas Sistem Decision pilihan untuk pengambilan keputusan digunakan untuk menunjukan kegiatan yang fork dilakukan secara parallel atau untuk menggabungkan dua kegiatan parallel menjadi satu <no send action> <no receive action> Signal Send tanda pengiriman Signal Receipt tanda penerimaan Sumber: Satzinger (2012) Berikut digambarkan activity diagram pada sebuah sistem informasi. 32 User Sistem Informasi Delivery Membuka Aplikasi Sistem Informasi Menampilkan halaman login Input User dan Password Mencocokan Username dan Password Alert Salah Benar Tampil Menu User Gambar 2.5 Contoh Activity Diagram 3. Sequence Diagram Diagram class dan diagram object merupakan suatu gambaran model statis. Namun ada juga yang bersifat dinamis, seperti Diagram Interaction. Diagram sequence merupakan salah satu diagram interaction yang menjelaskan bagaimana suatu operasi dilakukan, pesan apa yang dikirim dan kapan pelaksanaannya. Diagram ini diatur berdasarkan waktu. Obyek-obyek yang berkaitan dengan proses berjalannya operasi diurutkan dari kiri ke kanan berdasarkan waktu terjadinya dalam pesan yang terurut. 33 Menurut Satzinger (2012), sequence diagram ekuivalen secara sematik dengan diagram komunikasi untuk interaksi yang sederhana. Sebuah sequence diagram menunjukkan interaksi antara objek yang disusun dalam satu sequence. Dalam sequence diagram yang diadaptasi dari Bennet et al, terdapat satu buah notasi yang disebut fragment yang biasa digunakan dalam tujuan untuk memperjelas bagaimana sequence ini saling dikombinasikan. Fragment terdiri dari beberapa jenis interaction operation yang mengspesifikasi tipe dari kombinasi fragment. Tabel 2.4 Simbol Sequence Diagram Simbol Nama Simbol Keterangan Object LifeLine Partisipan Form Activation merupakan sebuah focus dari control pada suatu waktu. Message Pesan yang mengambarkan komunikasi yang terjadi antar objek. Message (Call) Pesan yang mengambarkan Pemanggilan yang terjadi antar objek. Message (return) Message (return) Lifetime Sumber: Satzinger (2012) Pesan yang dikirim untuk diri sendiri. Pesan yang dikirim untuk diri sendiri. Menambahkan pemulaan dan menghentikan titik dari suatu object 34 Contoh dari sequence diagram dapat dilihat pada gambar dibawah ini Halaman_Login User database user input_user_password(); read_username_password(); validasi(); login_fail(); login_success(); Gambar 2.6 Contoh Sequence Diagram 4. Class Diagram Class Diagram adalah sebuah diagram yang digunakan untuk memodelkan kebutuhan sistem (Satzinger, 2012) menjelaskan kumpulan dari class dan hubungan di antaranya yang struktural. Ada empat jenis desain class yaitu entity class, control class, boundary class atau view class (Satzinger, 2012). dan data access class. 35 Tabel 2.5 Simbol Class Diagram Simbol Nama Simbol Keterangan mengambarkan sesuatu yang meng- Class kapsulkan informasi di class menampung nama class, atribut dan method Package 1, 1…*, 0…1 Asosiasi Digunakan untuk mengelompokan kelaskelas yang mempunyai persamaan. Asosiasi yang menghubungkan class dengan class Multiplycity. Boundary class, mengambarkan class Boundary class yang menjadi antar muka actors dengan system. Control Class, mengabarkan class yang Control Class menjadi control atau perantara antar class dengan database. Aggregation mengambarkan suatu class Aggregation terdiri dari class lain atau suatu class adalah bagian dari class lain. Generalization merupakan sebuah taxonomic relationship antara class yang lebih umum dengan class yang lebih khusus. Sumber: Satzinger (2012) 36 antarmuka «interface» Koleksi +equals() +add() class abstrak Abstarct List «interface» Daftar +get() Pesanan ketergantungan (meminta antarmuka) +equals() +get() +add() metode abstrak penerapan (menyediakan antarmuka) Array List Class1 +get() +add() dikesampingkan Gambar 2.7 Contoh Class Diagram 2.5 Basis Data Menurut McLeod dan Schell (2008), basisdata adalah suatu koleksi data computer yang terintegrasi, diorganisasikan, dan disimpan dengan suatu cara yang memudahkan pengambilan kembali. Menurut Turban, et al., (2010), basisdata merupakan kumpulan file atau record yang terorganisir yang menyimpan data berserta hubungan diantara data tersebut. Jadi, basisdata adalah kumpulan data atau koleksi file dan record yang menyimpan data yang berhubungan dan terstruktur sehingga mudah untuk 37 disimpan, diperoleh kembali, dimanipulasi dan dapat memenuhi kebutuhan informasi dari suatu organisasi. 2.6 Perancangan Basis Data Sebuah metodologi perancangan adalah suatu pendekatan terstruktur yang menggunakan prosedur, teknik, alat, dan bantuan dokumentasi untuk mendukung dan memfasilitasi proses perancangan. Pada tahap metodologi perancangan basis data, proses perancangan terbagi menjadi 3 tahap utama, yaitu konseptual, logical, dan fisikal). 1. Perancangan Konseptual Menurut Connoly dan Begg (2009) perancangan basis data konseptual adalah proses membangun sebuah model informasi yang digunakan dalam sebuah perusahaan, bebas dari segala pertimbangan fisik. Pada tahap ini melibatkan pembuatan dari konseptual data model dari perusahaan. Data model ini dibuat dengan menggunakan informasi yang di dokumentasikan dari spesifikasi kebutuhan user. Rancangan basis data konseptual ini bebas atau tidak terikat dengan detai-detail seperti target perangkat lunak DBMS, program aplikasi, bahasa pemrograman, platform perangkat keras atau dari perangkat fisik lainnya 2. Perancangan Logical Menurut Connoly dan Begg (2009) “perancangan basis data logikal adalah proses membangun suatu model informasi yang digunakan dalam suatu perusahaan berdasarkan suatu model data khusus, tapi tidak tergantung kepada suatu DBMS tertentu dengan pertimbangan fisik lain”. Konseptual data model 38 yang dihasilkan dari tahap sebelumnya diubah ke dalam logical data model. Logical data model dibuat berdasarkan target data model untuk basis data (sebagai contoh, relational data model). Melalui tahap rancangan basis data logikal ini, model dites dan divalidasikan sesuai dengan kebutuhan user. Teknik normalisasi digunakan untuk melakukan tes terhadap kebenaran logikal data model. Normalisasi memastikan bahwa tabel yang dihasilkan dari data model tidak menampilkan redudansi data yang akan mengakibatkan kerancuan atau keanehan (anomaly) update pada saat diimplementasikan. 3. Perancangan Fisikal Perancangan fisikal basis data adalah proses produksi sebuah deskripsi implementasi dari basis data pada tempat penyimpanan kedua; menggambarkan relasi dasar, organisasi file, dan indeks yang digunakan untuk mencapai akses yang efisien terhadap data, dan batasan integritas yang diasosiasikan dan ukuran keamanan (Connolly dan Begg, 2009). Rancangan dari relasi dasar dapat dikerjakan hanya jika perancang benarbenar mengetahui fasilitas-fasilitas yang ditawarkan dengan DBMS target. 2.7 Kamus Data Kamus data ikut berperan dalam perancangan dan pembangunan sistem informasi karena berfungsi untuk : 1. Menjelaskan arti aliran data dan penyimpanan dalam penggambaran dalam data flow diagram. 39 2. Mendeskripsikan komposisi paket data yang bergerak melalui aliran, misalnya data alamat menjadi nama jalan, nomor, kota, Negara dan kode pos. 3. Menjelaskan spesifikasi nilai dan satuan yang relevan terhadap data yang mengalir dalam sistem tersebut. Berikut ini adalah sejumlah simbol yang digunakan dalam kamus data: Tabel 2.6 Simbol pada kamus data Simbol = Uraian Terdiri atas, mendefinisikan, diuraikan menjadi, artinya Contoh: nama=sebutan+nama1+nama2+gelar1+gelar2 + Dan () Optional (pilihan boleh ada atau boleh tidak) Contoh: alamat=alamat rumah + (alamat surat) {} Pengulangan, contoh: nama1={karakter_valid} [] Memilih salah satu dari sejumlah alternatif, seleksi Contoh: sebutan=[Bapak|Ibu|Yang Mulia] ** Komentar, Contoh: “seminar yang akan diikuti” | Pemisah sejumlah alternatif pilihan antara symbol[ ] Sumber: Kusrini (2009) 2.8 Aplikasi Yang Digunakan 2.8.1 MySQL Ada sejumlah paket RDBMS yang tersedia. Program tersebut bervariasi dalam kemampuan, fleksibilitas dan harga. Namun pada dasarnya, semua bekerja 40 dengan cara yang sama. MySQL merupakan produk dari MySQL AB yang merupakan database dengan server yang cepat, multi-threaded, multi-user dan robust. MySQL dapat diunduh bebas dengan sekitar 6 juta instalasi diseluruh dunia dibawah lisensi GNU General Public License (GPL), tetapi juga dijual dibawah lisensi komersial untuk kasus-kasus dimana penggunaannya tidak cocok untuk penggunaan GPL. Tidak sama dengan open source lainnya dimana perangkat lunak dikembangkan oleh komunitas umum, dan hak cipta untuk kode sumber dimiliki oleh masing-masing penulisnya, MYSQL dimiliki penuh dan disponsori oleh perusahaan komersial swedia. Hak cipta dipegang hamper seluruh kode sumbernya. MySQL merupakan platform database yang dipakai untuk mengelolah database client-server. MySQL menyediakan fasilitas-fasilitas untuk mengatur dan mengolah database, serta menyediakan bahasa pemrograman SQL (Structured Query Language, biasa dibaca sebagai ”sequel’) untuk mengelola database client-server (Fehily, 2008). 2.8.2 PHP PHP yang dikenal sebagai Hypertext Preprocessor adalah sebuah bahasa pemrograman yang digunakan untuk pengolahan data-data berbasis web. Semula PHP digunakan oleh penciptanya yaitu Rasmus Lerdoft untuk menghitung jumlah pengunjung dalam webnya. Tujuan utama bahasa ini adalah untuk mempermudah pembuatan halaman web yang dinamik atau mudah diupdate dan cepat dalam pengolahan datanya. Dalam aplikasinya php dapat digabungkan dengan sintak 41 HTML. Sintaks PHP mirip dengan bahasa C dan memiliki beberapa fungsi PHP tersendiri. Ketika web dinamik konten/isi semakin berkembang dan membutuhkan update yang cepat, situs-situs yang statispun semakin ditinggalkan karena dianggap sudah tidak memenuhi keinginan pasar karena situs tersebut harus tetap dinamis setiap hari. Pada saat ini bahasa PERL dan CGI sudah jauh ditinggalkan sehingga sebagian besar programmer web banyak beralih ke bahasa server-side scripting yang lebih dinamis seperti PHP. Sistem database yang didukung oleh PHP antara lain MySQL, Oracle, Sybase, PostgreSQL, SQLite. 2.9 Pengujian Perangkat Lunak Pengujian adalah sebuah proses terhadap aplikasi atau program untuk menemukan segala kesalahanm dan segala kemungkinan yang akan menimbulkan kesalahan sesuai dengan spesifikasi perangkat lunak yang telah ditentukan sebelum aplikasi itu diserahkan kepada pelanggan (Simarmata, 2010). Pengujian yang baik adalah pengujian yang dilakukan dengan probabilitas penemuan kesalahan yang tidak disengaja, sedangkan pengujian yang sukses adalah pengujian yang berhasil mengatasi penyelesaian penemuan kesalahan yang tidak diduga (Simarmata, 2010). 2.9.1 Black Box Testing Test case ini bertujuan untuk menunjukkan fungsi perangkat lunak tentang cara beroperasinya, apakah pemasukan data keluaran telah berjalan sebagaimana 42 yang diharapkan dan apakah infomrasi yang disimpan secara eksternal selalu dijaga kemutakhirannya. Menurut Simarmata (2010), klasifikasi black box testing mencakup beberapa pengujian, yaitu: 1. Pengujian Fungsional (functional testing) Pengujian dilakukan dalam bentuk tertulis untuk memeriksa apakah aplikasi berjalan seperti yang diharapkan. Pengujian fungsional meliputi seberapa baik sistem melaksanakan fungsinya, termasuk perintah-perintah pengguna, manipulasi data, pencarian dan proses bisnis, pengguna layar, dan integrasi. 2. Pengujian Tegangan (stress testing) Pengujian tegangan berkaitan dengan kualitas aplikasi didalam lingkungan. 3. Pengujian Beban (load testing) Pada pengujian beban, aplikasi akan diuji dengan beban berat atau masukan, seperti yang terjadi pada pengujian situs web, untuk mengetahui apakah aplikasi/situs gagal atau kinerjanya menurun. 4. Pengujian Khusus (ad-hoc testing) Jenis pengujian ini dilakukan tanpa penciptaan rencana pengujian atau kasus pengujian. Salah satu penggunaan terbaik dari pengujian khusus adalah untuk penemuan. Pengujian ini membaca persyaratan atau spesifikasi (jika ada ) jarang memberikan panduan yang jelas mengenai bagaimana sebuah program benar-benar bertindak, bahkan dokumentasi pengguna tidak menangkap “look and feel” dari sebuah program. 5. Pengujian Penyelidikan (exploratory testing) 43 Pengujian penyelidikan mirip dengan pengujian khusus dan dilakukan untuk mempelajari/mencari aplikasi. 6. Pengujian usability (usability testing) Pengujian usabilitas adalah proses yang bekerja dengan pengguna akhir secara langsung maupun tidak langsung untuk menilai bagaimana pengguna merasakan paket perangkat lunak dan bagaimana mereka berinteraksi dengannya. 7. Pengujian Asap (smoke testing) Pengujian ini dilakukan untuk memeriksa apakah aplikasi tersebut sudah siap untuk pengujian yang lebih besar dan bekerja dengan baik tanpa cela sampai tingkat yang paling diharapkan. 8. Pengujian Pemulihan (recovery testing) pada dasarnya dilakukan untuk memeriksa seberapa cepat dan baiknya aplikasi bisa pulih terhadap semua jenis crash atau kegagalan hardware, masalah bencana, dan lain-lain. 9. Pengujian Volume (volume testing) Pengujian volume adalah pengujian sebuah sistem (baik perangkat keras dan perangkat lunak) untuk serangkaian pengujian dengan volume data yang diproses adalah sebjek dari pengujian. 10. Pengujian Domain (domain testing) Pengujian domain merupakan penjelasan yang paling sering menjelaskan teknik pengujian. 11. Pengujian Skenario (scenario testing) 44 Pengujian skenario adalah pengujian yang realistis, kredibel dan memotivasi stakeholder, tantangan untuk program dan mempermudah penguji untuk melakukan evaluasi. 12. Pengujian Regresi (regression testing) Pengujian regresi adalah gaya pengujian yang berfokus pada pengujian ulang setelah ada perubahan. Pada pengujian regresi berorientasi risiko. 13. Penerimaan Pengguna (user acceptance) Pada jenis pengujian ini, perangkat lunak akan diserahkan kepada pengguna untuk mengetahui apakah perangkat lunak memenuhi harapan pengguna dan bekerja seperti yang diharapkan. 14. Pengujian Alfa (alpha testing) Pada jenis pengujian ini, pengguna akan diundang ke pusat pengembangan. Pengguna akan menggunakan aplikasi dan pengembang mencatat setiap masukan atau tindakan yang dilakukan oleh pengguna. 15. Pengujian Beta (beta testing) Pada jenis pengujian ini, perangkat lunak didistribusikan sebagai sebuah versi beta dengan pengguna yang menguji aplikasi disitus mereka. Pengecualian/cacat yang terjadi akan dilaporkan kepada pengembang.