Calendar

September 2016
M T W T F S S
« Mar    
 1234
567891011
12131415161718
19202122232425
2627282930  

Categories

Penyusunan Prioritas Kebutuhan Perangkat Lunak dengan Pendekatan Machine Learning

PENDAHULUAN

1.1.  Latar Belakang

Sebuah perangkat lunak memiliki siklus hidup. Terdapat dua siklus hidup perangkat lunak yaitu siklus hidup pengembangan perangkat lunak (Software Development Life Cycle) yang kemudian dikenal dengan SDLC dan siklus pengoperasian perangkat lunak (Siahaan, 2012). Dalam SDLC terdapat tahapan-tahapan yang harus dilakukan dengan tujuan agar perangkat lunak yang dihasilkan memiliki kualitas yang baik. Terdapat beberapa model SDLC yang dapat diterapkan, salah satu yang paling sering digunakan adalah model Water Fall.  Model Water Fall merupakan model pengembangan perangkat lunak yang terdiri dari beberapa tahapan yang dilakukan secara berurutan. Tahapan-tahapan tersebut antara lain adalah spesifikasi kebutuhan, analisa dan perancangan, implementasi (coding/programming), delployment (penempatan/pendistribusian), operasi, dan perawatan. Setiap tahapan dilakukan secara berurutan dan berkesinambungan. Tahapan yang mendahului menjadi bahan untuk melaksanakan tahapan berikutnya.

Proses pengembangan perangkat lunak diawali dengan melaksanakan tahapan yang pertama, yaitu spesifikasi kebutuhan perangkat lunak. Selanjutnya hasil proses melaksanakan spesifikasi kebutuhan perangkat lunak akan menjadi bahan untuk melakukan tahapan berikutnya yaitu analisa dan perancangan, begitu seterusnya hingga seluruh tahapan selesai dilakukan. Dengan kata lain, setiap tahapan tergantung pada tahapan sebelumnya, kecuali pada tahapan yang paling awal. Pernyataan tersebut merangsang munculnya pemikiran bahwa tahapan pertama (spesifikasi kebutuhan) adalah tahapan yang memainkan peran yang sangat penting (crucial) (Perini et al., 2012), karena tahapan tersebut merupakan starting-poin dari seluruh tahapan. Spesifikasi kebutuhan merupakan dasar dari seluruh tahapan yang mengikutinya. Kesalahan yang terjadi dalam proses spesifikasi akan berdampak pada proses selanjutnya. Oleh karena itu tahapan ini harus dilakukan dengan penuh ketelitian dan kecermatan agar perangkat lunak yang dihasilkan mempunyai kualitas yang baik.

Tahap spesifikasi kebutuhan perangkat lunak adalah tahap dimana pengembang perangkat lunak mengumpulkan daftar kebutuhan dari calon pengguna sistem. Pada kenyataannya, dari kebutuhan-kebutuhan yang sudah berhasil didapat, hanya beberapa saja yang akan diimplementasikan dalam proses pengembengan perangkat lunak (Perini et al., 2007). Oleh karena itu, untuk mendapatkan sebuah subset data kebutuhan yang memiliki tingkat pemenuhan kebutuhan yang maksimal perlu dilakukan proses penentuan prioritas pada daftar kebutuhan. Proses penentuan prioritas dilakukan dengan mempertimbangkan beberapa ketentuan. Ketentuan yang mempengaruhi proses penentuan prioritas kebutuhan seperti waktu pengerjaan, keterbatasan sumber daya, aspek bisnis dan kebutuhan dari pemangku kebutuhan perangkat lunak.

Proses penentuan prioritas membutuhkan waktu yang lama. Diharapkan proses penentuan prioritas dapat dilaksanakan dengan tidak mempengaruhi keseluruhan waktu pengembangan perangkat lunak. Oleh karena itu butuh adanya sebuah metode pembantu atau otomatisasi dalam menjalankan proses penentuan prioritas kebutuhan perangkat lunak. Otomatisasi dilakukan dengan pendekatan Machine Learning. Machine Learning, sesuai dengan namanya, merupakan sebuah metode dimana suatu penerapan algoritma yang memungkinkan sebuah komputer dapat belajar (Jones, 2008). Dari pernyataan tersebut disimpulkan bahwa porses otomatisasi dilakukan dengan komputer yang mengimplementasikan sebuah algoritma sehingga komputer tersebut dapat melakukan pembelajaran pada suatu hal. Pembelajaran yang dilakukan oleh seperangkat mesin (komputer) ini difokuskan pada kasus proses penentuan prioritas data spesifikasi kebutuhan perangkat lunak, sehingga proses tersebut dapat dilakukan dengan cepat dan tidak mempengaruhi waktu pengembangan perangkat lunak. Beberapa peneliti telah melakukan penelitian terkait dengan penggunaan algoritma untuk proses penentuan prioritas kebutuhan perangkat lunak (Software Requirement Prioritization).

 

1.2. Rumusan Masalah

  1. Bagaimana pendekatan Machine Learning dapat membantu proses penentuan prioritas kebutuhan perangkat lunak?
  2. Apakah terdapat algoritma yang dapat digunakan untuk proses penentuan prioritas pada spesifikasi kebutuhan perangkat lunak?
  3. Apakah terdapat sebuah algoritma yang efektif untuk diterapkan pada proses penentuan prioritas pada spesifikasi kebutuhan perangkat lunak?

TINJAUAN PUSTAKA

 

2.1.  Rekayasa Kebutuhan

2.1.1.    Definisi Rekayasa Kebutuhan

Seorang pengembang perangkat lunak sering kali mendapatkan masalah yang sangat sulit dalam memahami sifat dan permasalahan yang ada pada sistem yang akan dikembangkan. Keterbatasan informasi tentang sistem menjadi akar permasalahan yang sering dihadapi oleh pengembang dalam mengenali kebutuhan sistem (Siahaan, 2012). Kebutuhan merupakan dasar dari setiap proyek (pengembangan sistem) (Hull, 2011). Diskripsi dari service (layanan) dan constraint (batasan) dapat disebut sebagai kebutuhan sistem, sedangkan proses menemukan, menganalisa, mendokumentasikan dan memeriksa service dan constraint disebut sebagai rekayasa kebutuhan (Sommerville, 2011). Dimana, rekayasa kebutuhan dilakukan dengan target adalah mewujudkan sebuah sistem yang dapat memuaskan kebutuhan stakeholder (pengguna, pelanggan, suplier, pengembang, dan pemangku kepentingan lainnya) (Hull, 2011).

 

2.1.2.    Alasan Rekayasa Kebutuhan

Tujuan dari pengembangan sistem adalah untuk memuaskan para stakeholder (pemangku kepentingan). Untuk mencapai kepuasan dari stakeholder diperlukan adanya persetujuan dari stakeholder. Dimana, persetujuan dari stakeholder akan menjadi dasar dari perencanaan pengembangan sistem (Hull, 2011). Oleh karena itu, Yen et al (1998) dalam Siahaan (2012) menyatakan bahwa proses rekayasa kebutuhan merupakan aktifitas kritis (penting) dalam keseluruhan tahapan dalam pengembangan sistem (software).

Siahaan (2012), berpendapat bahwa alasan mengapa rekayasa kebutuhan perlu dilakukan berawal dari pernyataan:

  • “Semua perangkat lunak memiliki spesifikasi”

Sebuah perangkat lunak adalah sebuah sistem. Sistem merupakan kumpulan dari komponen-komponen yang saling berinteraksi untuk satu tujuan. Dimana komponen-komponen tersebut memiliki fungsi masing-masing dan setiap fungsi memiliki definisi service (layanan) dan constraint (batasan).

  • “Permasalahan berawal dari spesifikasi kebutuhan”

Sebuah proses pengembangan sistem atau perangkat lunak memiliki beberapa tahapan yang harus dilakukan. Tahapan tersebut saling terkait satu dengan yang lain, tersusun secara terurut yang kemudian disebut sebagai SDLC (Software Development Life Cycle). Davis (1993) dan Leffingwell (1997) dalam Siahaan (2012) menyatakan bahwa 40% – 60% kesalahan dalam proyek pengembangan perangkat lunak yang muncul di tahapan berikutnya, berawal dari kesalahan pada tahapan rekayasa kebutuhan. Hal ini diperkuat oleh data statistik yang diungkapkan oleh Hull (2011) berdasarkan data survei yang dilakukan oleh Standish Group pada 1995 dan 1996, menyatakan bahwa alasan umum kegagalan sebuah proyek bukanlah karena hal teknis tapi terletak pada aspek non-teknis yaitu tahapan rekayasa kebutuhan, yang digambarkan pada gambar 2.1.

 hull1

Gambar 2.1. Alasan kegagalan proyek (Hull, 2011)

Dari beberapa pernyataan dan fakta diatas maka dapat disimpulkan bahwa proses rekayasa kebutuhan menduduki posisi yang sangat penting. Kesalahan pada rekayasa kebutuhan akan berpengaruh pada tahapan selanjutnya dalam SDLC (Software Development Life Cycle), yang kemudian akan mempengaruhi seluruh pengerjaan dalam sebuah proyek perangkat lunak. Dapat disimpulkan juga, bahwa kesalahan pada tahap rekayasa kebutuhan akan berpengaruh pada kualitas perangkat lunak yang dihasilkan.

 

2.1.3.    Proses Rekayasa Kebutuhan

RE

Gambar 2.2. Proses rekayasa kebutuhan (Sommerville, 2011)

Dari gambar 2.2 dijelaskan proses atau tahapan yang harus dilalui dalam melaksanakan rekayasa kebutuhan perangkat lunak. Gambar tersebut disuguhkan dengan bentuk spriral, yang dimulai dari posisi tengah dan berjalan searah dengan jarum jam. Apabila diperhatikan, akan tampak 4 bagian besar yaitu Requirement Elicitation, Requirement Specification, Requirement Validation dan System Requirements Document. Requirement Elicitation, Requirement Specification dan Requirement Validation adalah tahapan yang dilakukan beberapa kali secara berurutan. System Requirements Document menduduki posisi paling akhir dalam serentetan proses rekayasa kebutuhan. System Requirements Document (Dokumen Kebutuhan Sistem) direalisasikan dalam bentuk sebuah dokumen yang berisikan daftar kebutuhan sistem, yang pada akhirnya akan didistribusikan untuk pengerjaan tahap selanjutnya pada SDLC (Software Development Life Cycle).

 

2.2.  Elisitasi dan Analisa Kebutuhan

2.2.1.    Definisi Elisitasi Kebutuhan

Elisitasi kebutuhan termasuk dalam kegiatan penemuan kebutuhan sistem. Elisitasi berkaitan dengan dari mana kebutuhan perangkat lunak berasal dan bagaimana metode pengumpulan atau mendapatkannya. Menurut Barenbach (2009), beberapa metode yang dapat digunakan dalam proses elisitasi kebutuhan antara lain brainstorming, teknik etnografi, dan penentuan prioritas/ pemeringkatan kebutuhan.

2.2.2.    Definisi Analisa Kebutuhan

Analisa kebutuhan merupakan salah satu dari tahapan para proses rekayasa kebutuhan sistem atau perangkat lunak. Sesuai dengan pernyataan dari Sommerville (2011), proses menemukan, menganalisa, mendokumentasikan dan memeriksa service dan constraint disebut sebagai rekayasa kebutuhan.

Menurut Weiger (2003), analisa kebutuhan merupakan sebuah kegiatan yang bertujuan untuk menyempurnakan kebutuhan yang berhasil didapatkan (ditemukan), untuk memastikan stateholder memahami apa kebutuhan dari perangkat lunak yang sedang dikembangkan. Selain itu, analisa kebutuhan juga bertujuan untuk menemukan kesalahan-kesalahan, kelalaian dan kekurangan dari kebutuhan yang sudah didapatkan.

 

2.2.3.    Proses Elisitasi dan Analisa Kebutuhan

Gambar 2.3 menunjukkan proses dari elisitasi dan analisa kebutuhan menurut Sommerville (2011).

 elisitasi

Gambar 2.3. Proses elisitasi dan analisa kebutuhan (Sommerville, 2011)

 

Proses elisitasi dan analisa kebutuhan terdiri dari empat tahapan, yaitu Requirements Discovery (Penemuan Kebutuhan) , Requirements Classification and Organization (Klasifikasi dan Organisasi Kebutuhan), Requirements Prioritization and Negotiation (Prioritisasi dan Negosiasi Kebutuhan) dan Requirements Specification (Spesifikasi Kebutuhan). Berikut adalah penjelasannya:

  1. Requirements Discovery (Penemuan Kebutuhan), proses ini dilakukan dengan melakukan interaksi dengan pihak stakeholder untuk menemukan apa kebutuhan mereka.
  2. Requirements Classification and Organization (Pengorganisasian dan Klasifikasi Kebutuhan, aktifitas dalam proses ini dilakukan untuk mengumpulkan kebutuhan yang tidak terstruktur, melakukan pengelompokan dan mengorganisir dalam beberapa klaster. Cara yang umum dilakukan dalam proses ini adalah dengan menggunakan model sistem. Model sistem tersebut akan menjelaskan tentang sub sistem yang dipunyai oleh sistem yang sedang dikembangkan. Lalu dari beberapa kebutuhan yang sudah didapatkan, dikelompokkan berdasarkan sub sistem tersebut.
  3. Requirements Prioritization and Negotiation (Prioritisasi dan Negosiasi Kebutuhan), adalah proses yang dilakukan ketika beberapa stakeholder terlibat dalama proses rekayasa kebutuhan. Beberapa kebutuhan yang didapat sering kali mengalami konflik di antara stakeholder. Dalam proses ini dilakukan penentuan prioritas dari kebutuhan, menemukan dan dan menyelesaikan konflik yang ada melalui kegiatan negosiasi. Biasanya, dalam proses ini dibutuhkan kehadiran stakeholder sistem.
  4. Requirements Specification (Spesifikasi Kebutuhan), dalam proses ini kebutuhan sistem didokumentasikan yang kemudian akan disampaikan pada tahap pengembangan selanjutnya.

 

2.3.  Penentuan Prioritas Kebutuhan Perangkat Lunak

Proses memilih kebutuhan yang benar dari sekelompok kandidat kebutuhan merupakan permasalahan yang krusial pada proses pengembangan perangkat lunak. Penentuan prioritas kebutuhan perangkat lunak dapat diartikan sebagai proses pendefinisian relasi urutan kebutuhan, untuk mendapatkan klaster-klaster kebutuhan dalam proses pengembangan perangkat lunak (Perini et al, 2007). Pengurutan tersebut dilakukan dengan mempertimbangkan karakteristik dari kebutuhan yang sudah didapatkan. Kebutuhan dengan urutan paling atas atau memiliki bobot urgensi paling tinggi merupakan kebutuhan yang berada pada titik prioritas. Kebutuhan dengan posisi prioritas dapat dianggap sebagai kebutuhan yang utama.

Proses penentuan prioritas dapat dilakukan dengan cara manual. Proses penentuan prioritas dengan cara manual dapat dilakukan dengan menghitung bobot kebutuhan berdasarkan kriteria yang telah ditentukan. Namun demikian, waktu pengerjaan harus dipertimbangkan. Karena penggunaan waktu yang lama dalam proses penentuan prioritas akan berpengaruh pada pengerjaan tahapan selanjutnya. Oleh karena itu perlu adanya sebuah pendekatan untuk mengatasi masalah tersebut.

Menurut Perini et al (2012), terdapat dua jenis perspektif dalam melakukan penentuan prioritas kebutuhan perangkat lunak, yaitu ex-ante dan ex-post. Perspektif ex-ante adalah sebuah pandangan bahwa tidak menggunakan pengetahuan akan domain yang sedang diambil dalam penentuan prioritas kebutuhan. Sebaliknya, ex-post menggunakan pengetahuan tentang domain pada proses penentuan prioritas kebutuhan. Pada ex-ante, dilakukan dengan menggunakan asumsi-asumsi yang mendasari dalam proses penentuan prioritas. Sedangkan ex-post, dilakukan dengan melibatkan stakeholder untuk dapat menilai sepasang kebutuhan mana di antara keduanya yang memiliki urutan lebih tinggi. Perspektif ex-post berasal dari paradigma penyelesaian masalah yang dikenal dengan nama penalaran berbasis kasus (Case-based Reasoning) (Perini et al, 2012). Beberapa algoritma dalam machine learning termasuk dalam golongan penalaran berbasis kasus (Case-based Reasoning).

 

2.4.  Machine Learning

2.4.1.    Definisi Machine Learning

Komputer dibangun untuk dapat menjalankan tugas atau menyelesaikan masalah berdasarkan instruksi dari pengguna. Dalam proses menjalankan tugas, komputer menggunakan algoritma. Algoritma adalah sekumpulan instruksi yang tersusun secara urut. Fungsi algoritma adalah melakukan transformasi dari data input menjadi data output (Alpaydin, 2010). Machine Learning mempunyai pendekatan agar sebuah komputer tidak lagi hanya bisa menjalankan algoritma, akan tetapi dapat membuat algoritma sendiri. Proses pembuatan algoritma dapat dilakukan dengan proses pembelajaran (Learning) dengan mempertimbangkan data yang ada. Dengan kata lain komputer diupayakan untuk dapat mengekstrak algoritma secara otomatis berdasarkan data yang ada untuk menyelesaikan tugasnya (Alpaydin, 2010).

 

2.4.2.    Algoritma Penentuan Prioritas

Beberapa algoritma dalam Machine Learning yang dapat digunakan untuk kasus penentuan prioritas adalah sebagai berikut:

  • AHP (Analytic Hierarchy Process)

AHP atau disebut juga Analytic Hierarchy Process adalah teknik dalam penentuan keputusan dengan multi kriteria berdasarkan pembandingan sepasang data. Dalam kasus multi kriteria, proses dilakukan secara berulang pada setiap kriteria, dimana AHP mensintesa urutan ranking berdasarkan komposisi bobot dari kriteria yang berbeda (Perini et al, 2007).

  • CBRank (Case-Based Ranking)

CBRank atau Case-Based Ranking adalah sebuah algoritma yang mendukung proses penentuan keputusan untuk proses prioritisasi data. Dalam kasus rekayasa kebutuhan perangkat lunak, CBRank menyajikan proses penentuan prioritas secara iteratif, dimana dapat digunakan pada keadaan banyak stakeholder serta banyak kriteria (Perini, 2012).

  • IGA (Interactive Genetic Algorithm)

IGA (Interactive Genetic Algorithm) merupakan varian baru dari Algoritma Genetika. Algoritma Genetika adalah algoritma yang meniru proses evolusi biologis untuk memecahkan masalah dalam domain yang luas (Konar, 2000). Algoritma Genetika Interaktif adalah sebuah algoritma yang menggunakan evaluasi manusia. Aplikasi utama dari teknik ini meliputi domain yang sulit atau tidak mungkin untuk merancang sebuah fungsi fitnes komputasi, misalnya, gambar berkembang, musik, desain artistik berbagai bentuk agar sesuai preferensi estetika pengguna, dan lain sebagainya.

 

2.5.  Penelitian Terdahulu

Beberapa peneliti telah melakukan penelitian terkait dengan optimasi pada tahapan rekayasa kebutuhan khususnya pada penentuan prioritas spesifikasi kebutuhan perangkat lunak. Perini et al (2007), melakukan pembandingan dua metode penentuan prioritas yaitu AHP (Analytic Hierarchy Process) dan CBRank (Case-Based Ranking) yang diterapkan pada kasus penentuan prioritas pada data spesifikasi kebutuhan perangkat lunak. Hasil dari penelitian tersebut menunjukkan bahwa AHP lebih akurat dari pada CBRank, namun hasil pengurutan data spesifikasi kebutuhan perangkat lunak yang dihasilkan oleh kedua metode tersebut adalah sama. 18 Percobaan dilakukan dengan menggunakan 20 data spesifikasi kebutuhan perangkat lunak.

Shadiq et al (2009), berpendapat bahwa kualitas dari spesifikasi kebutuhan dipengaruhi oleh teknik atau metode yang digunakan dalam proses elisitasi kebutuhan. Teknik atau metode yang digunakan adalah algoritma AHP yang diterapkan pada proses alisitasi dan prioritisasi data spesifikasi kebutuhan perangkat lunak. Dengan menggunakan algoritma AHP dapat disimpulkan bahwa proses pembuatan ranking pada data spesifikasi kebutuhan perangkat lunak dapat dilakukan dengan mudah.

Rosyid et al (2011), melakukan pembandingan antara dua metode yaitu CBRank dan Cumulative Voting pada kasus analisa prioritas pada spesifikasi kebutuhan perangkat lunak. Dari hasil penelitian yang telah dilakukan dapat disimpulkan bahwa CBRank mempunyai waktu operasional dan kompleksitas yang lebih tinggi dibandikan dengan Comulative Voting. Rosyid juga menyebutkan terdapat beberapa metode yang dapat digunakan untuk proses analisa prioritas seperti VOP (Value-Oriented Prioritization) dan NA (Numerical Assignment).

Perini et al (2012), melakukan penelitian serupa dengan apa yang pernah dilakukan sebelumnya, yang menyatakan bahwa terdapat beberapa kelemahan pada penggunaan AHP. Dengan AHP, membutuhkan usaha lebih bagi evaluator pada saat proses elisitasi ketika jumlah pasangan data tumbuh dengan cepat. Hal ini menjadikan AHP sulit diterapkan pada proses pengembangan perangkat lunak yang memiliki banyak spesifikasi kebutuhan. Sebaliknya, CBRank menawarkan fleksibilitas yang dapat dengan mudah untuk diterapkan.

Beberapa peneliti lainnya melakukan penelitian pada proses penentuan prioritas pada spesifikasi kebutuhan perangkat lunak dengan menggunakan Algoritma Genetika, seperti yang dilakukan oleh Tonella et al (2012). Dalam penelitian ini disebutkan Algoritma Genetika yang digunakan adalah IGA (Interactive Genetic Algorithm), dilakukan pembandingan dengan IAHP (Interactive Analitic Hierarchy Process) dalam membandingkan sepasang data kebutuhan dalam kasus nyata. IGA menunjukkan performa lebih baik dari IAHP. IGA juga menunjukkan kehandalan dalam menangani kesalahan yang dilakukan oleh user dalam memasukkan data. Tonella et al (2012), meyimpulkan kombinasi pengetahunan tentan elisitasi kebutuhan perangkat lunak dan algoritma pencarian heuristik (seperti GA) sangat berpotensi berguna untuk digunakan pada beberapa kegiatan rekayasa perangkat lunak, diluar masalah penentuan prioritas pada kebutuhan perangkat lunak.

 

PENUTUP

3.1. Kesimpulan

Beberapa hal dapat disimpulkan dari hasil studi literatur terkait dengan penggunaan Machine Learning pada proses penentuan prioritas kebutuhan perangkat lunak.

  1. Pendekatan machine learning digunakan untuk menghindari proses penentuan prioritas kebutuhan yang dilakukan secara manual, sehingga membutuhkan metode percepatan.
  2. Beberapa algoritma terbukti dapat digunakan untuk proses penentuan prioritas kebutuhan perangkat lunak, seperti AHP (Analitic Hierarchy Process), CBRank (Case-Based Ranking), Comulative Voting dan Genetic Algorithm (Algoritma Genetika). Beberapa algoritma juga disebutkan mungkin dapat digunakan dalam proses tersebut adalah VOP (Value-Oriented Prioritization) dan NA (Numerical Assignment).
  3. Dari beberapa metode yang pernah digunakan untuk penyelesaian penentuan prioritas kebutuhan perangkat lunak, menjelaskan bahwa Genetic Algorithm (Algoritma Genetika) adalah salah satu algoritma yang efektif, karena dengan beberapa kemampuannya untuk dapat mengatasi beberapa masalah yang ditimbulkan oleh pengguna dalam memasukkan data.

 

3.2. Saran

Terdapat beberapa pemikiran kedepan terkait dengan optimalisasi proses penentuan prioritas kebutuhan perangkat lunak. Beberapa algoritma machine learning telah digunakan, beberapa menunjukkan performa yang bagus dalam kasus prioritisasi kebutuhan perangkat lunak. Pembandingan antar algoritma perlu dilakukan untuk dapat mengetahui algoritma yang paling efektif. Beberapa eksplorasi juga perlu diterapkan khususnya pada penggunaan algoritma pencarian heuristik (Heuristic Search). Dapat juga dikembangkan pada penggunaan Swarm Intelligence (intelegensia kelompok) untuk optimalisasi proses penentuan prioritas kebutuhan perangkat lunak.

 

Daftar Pustaka

Alpaydin, E. 2010. Introduction to Machine Learning Second Edition. The MIT Press: Cambridge, Massachusetts, London, England

Berenbach, B., Paulish, D.J., Kazmeier, J., Rudorfer, A. 2009. Software & System Requirement Engineering: In Practice. McGraw Hill

Hull, E., Jackson, K., Dick, J. 2011. Requirement Engineering Third Edition. Springer-Verlag: London

Jones, M.T. 2008. Artificial Intelligence: A System Approach. INFINITY SCIENCE PRESS LLC: Hingham

Konar, A. 2000. Artificial Intelligence and Soft Computing : Behavioral and Cognitive Modeling of the Human Brain. CRC Press LLC

Perini, A., Susi, A., Avesani, P. 2012. A Machine Learning Approach to Software Requirement Prioritization. IEEE Transaction On Software Engineering

Perini, A., Susi, A., Ricca, F., Bazzanella, C. 2007. An Empirical Study to Compare the Accuracy of AHP and CBRanking Techniques for Requirements Prioritization. IEEE Comparative Evaluation in Requirement Engineering (CERE ’07)

Rosyid, H., Prasetyo, E., Jatmika, A. H., Siahaan, D. 2011. Comparison Analysis of Requirement Prioritization Methods Between Case Based Rangking adn Cumulative Voting. KNS&I. Pp. 22-27

Sadiq, M., Ghafir, Shabina., Shahid, M. 2009. An Approach for Eliciting Software Requirement and its Prioritization using Analitic Hierarchi Process. IEEE International Conference on Advances in Recent Technologies in Communication and Computing. Pp. 790-795

Siahaan, D. 2012. Analisa Kebutuhan dalam Rekayasa Perangkat Lunak. Penerbit ANDI: Yogyakarta

Sommerville, I. 2011. Software Engineering 9th Edition. Pearson Education, Inc.

Tonella, P., Susi, A., Palma, F. 2012. Interactive Requirements Prioritization Using a Genetic Algorithm. Information and Software Technology. Pp. 173-187

 

 

Perkuliahan IMK

Instruksi Perkuliahan IMK

Perkuliahan IMK dilanjutkan dengan pengerjaan Final Project oleh setiap kelompok. Topik Final Project dibebaskan, silahkan memilih topik (obyek teliti) yang berbeda untuk setiap kelompok (dikoordinir ketua kelas). Analisa interface obyek teliti dikaitkan dengan teori yang sudah didapat pada perkuliahan. Presentasi Final Project dilakukan oleh masing-masing kelompok di ruang dosen paling lambat minggu tenang (24-30 Desember). Presentasi diadakan pada hari Jumat jam 08.00 di ruang dosen pada setiap minggu sebelum minggu tenang. Laporan Final Project dalam bentuk dokumen dan ppt (dokumen tercetak dan softcopy, ppt softcopy).

Selamat mengerjakan…

Salam

Tugas IMK

Tugas IMK tanggal 031212 dapat didownload pada link berikut ini:

Tugas IMK

Nilai Final SP PBO 2011/2012

Nilai Final SP PBO 2011/2012 dapat didownload disini.

Nilai SP PBO 2011/2012

Nilai UAS PBO SP 2011/2012 bisa didownload disini.

Materi JAX-WS (MK. JEE)

Berikut link materi JAX-WS.

[link]

Contoh Hibernate + JSF + Primefaces

Berikut adalah kode project Hibernate + JSF + Primefaces.

[zip]

Materi Hibernate

Berikut adalah materi Hibernate

[Pertemuan 6 - Hibernate]

Materi JSF + Hibernate (MK. JEE Framework)

Berikut adalah code project JSF + Hibernate :

[Book]

Materi PI PHP MVC

Berikut linknya :

[ppt]