Showing posts with label Rekayasa Perangkat Lunak. Show all posts
Showing posts with label Rekayasa Perangkat Lunak. Show all posts

April 7, 2015

PEMODELAN DATA [KARDINALITAS dan MODALITAS]

Pemodelan data menjawab serangkaian pertanyaan spesifik yang relevan dengan aplikasi pemrosesan data. Apakah objek data utama yang akan diproses oleh system ? Bagaimana komposisi dari masing-masing objek data dan atribut apa yang menggambarkan objek tersebut? Dimana objek saat ini berada? Bagaimana hubungan antara masing-masing objek data dan objek yang lainnya? Bagaimana hubungan objek dengan proses yang mentransformasikannya?

Untuk menjawab pertanyaan-pertanyaan tersebut, metode pemodelan data menggunakan ERD. ERD hanya berfokus pada data (sehingga memuaskan prinsip pertama analisis operasional).


1. Objek Data, Atribut Dan Hubungan
2. Kardinalitas dan Modalitas

  Kardinalitas  Model data harus dapat merepresentasikan jumlah peristiwa dari objek didalam hubungan yang diberikan. Tiilmann (TIL. 93) mendefinisikan kardinalitas dari objek – relationship pair dengan cara sebagai berikut :
Kardinalitas merupakan spesifikasi dari sejumlah peristiwa dari suatu (objek) yang dapat dihubungkan kesejumlah peristiwa dari (objek) yang lain. Kardinalitas biasanya diexpresikan secara sederhana ‘satu’ atau ‘banyak’. Dengan mempertimbangkan semua kombinasi dari ‘satu’ dan ‘banyak’ dua objek dapat dihubungkan sebagai :
·        Satu ke satu (1:1) suatu peristiwa dari objek A dapat berhubungan dengan satu dan hanya kejadian dari objek B, dan sebuah peristiwa dari B hanya dapat berhubungan dari satu kejadian A, misalnya : seorang suami hanay dapat memiliki satu orang istri dan seorang istri hanya dapat memiliki satu orang suami (di New Jersey).
·        Satu ke banyak (1:N) suatu kejadian A dapat berhubungan dengan satu  atau lebih kejadian dari objek B, tetapi sebuah kejadian B dapat berhubungan dengan satu kejadian A, misalnya : seorang ibu  dapat memiliki banyak anak, tetapi seorang anak hanya dapat memiliki satu orang ibu saja.
·        Banyak ke banyak (N:N) sebuah kejadian A dapat berhubungan dengan satu atau lebih kejadian dari B, sementara itu sebuah kejadian dari B dapat berhubungan dengan satu atau lebih kejadian dari A, misalnya : seorang paman dapat memiliki banyak keponakan sementara itu seorang keponakan dapat memiliki banyak paman.

 Modalitas  dari suatu hubungan adalah nol bila tidak ada kebutuhan eksplisit untuk hubungan yang terjadi atau hubungan itu bersifat optional.modalitas bernilai satu apabila suatu kejadian dari hubungan merupakan perintah.



Copas From : http://helmiap-hellboyz.blogspot.com/2011/09/analisis-terstruktur.html

March 21, 2015

AGILE DEVELOPMENT

Agile Development Methods adalah sekelompok metodologi pengembangan perangkat lunak yang didasarkan pada prinsip-prinsip yang sama atau pengembangan sistem jangka pendek yang memerlukan adaptasi cepat dari pengembang terhadap perubahan dalam bentuk apapun. Agile development methods merupakan salah satu dari Metodologi pengembangan perangkat lunak yang digunakan dalam pengembangan perangkat lunak. Agile memiliki pengertian bersifat cepat, ringan, bebas bergerak, dan waspada. Sehingga saat membuat perangkat lunak dengan menggunakan agile development methods diperlukan inovasi dan responsibiliti yang baik antara tim pengembang dan klien agar kualitas dari perangkat lunak yang dihasilkan bagus dan kelincahan dari tim seimbang. Rekayasa perangkat lunak  dapat terwujud jika (manajer, pelanggan, dan pengguna) bekerja sama dalam satu tim  dan bisa mengatur ,mendukung komunikasi dan kolaborasi di antara semua pihak yang terlibat di dalamnya.


 Agile development methods terdefinisi dalam empat nilai, biasa di sebut Agile Alliance’s Manifesto, diantaranya :

1.   Interaksi dan personel lebih penting dari pada proses dan alat.
2.   Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap.
3.   Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak.
4.   Respon terhadap perubahan lebih penting daripada mengikuti rencana.


Pengertian dari Agile Alliance's Manifesto dijelaskan di bawah ini:
  • Interaksi dan personel lebih penting dari pada proses dan alat, di dalam agile interaksi antar anggota tim sangatlah penting, karena tanpa adanya interaksi yang baik maka proses pembuatan perangkat lunak tidak akan berjalan sesuai rencana.
  •  Perangkat lunak yang berfungsi lebih penting daripada dokumentasi yang lengkap, saat melakukan proses demonstrasi kepada klien, perangkat lunak yang berfungsi dengan baik akan lebih berguna daripada dokumentasi yang lengkap.
  • Kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, salah satu ciri dari agile adalah klien menjadi bagian dari tim pengembangan perangkat lunak. Kolaborasi yang baik dengan klien saat proses pembuatan perangkat lunak sangatlah penting ketika menggunakan agile. Karena fungsi-fungsi dari perangkat lunak yang dikembangkan harus terus menerus dibicarakan dan diimprovisasi disesuaikan dengan keinginan klien.
  • Respon terhadap perubahan lebih penting daripada mengikuti rencana, agile development methods berfokus terhadap kecepatan respon tim ketika klien menginginkan perubahan saat proses pembuatan perangkat lunak.

Other Agile Development (Model Proses Cepat Lainnya)

1.    Adaptive Software Development (ASD) Pengembangan Perangkat  Lunak  Adaptif Adaptive.
Software Development (ASD) diajukan oleh Jim Highsmith sebagai teknik untuk membangun software dan sistem yang kompleks. Filosofi yang mendasari Adaptive SoftwareDevelopment (ASD) adalah kolaborasi manusia dan tim yang mengatur diri sendiri
Spekulasi
Proyek dimulai dari SIKLUS PERENCANAAN ADAPTIF. Dimana yang digunakan adalah: Inisiasi.
Informasi Proyek, Pernyataan Misi Konsumen, Kendala Proyek
Pembelajaran
ASD menekankan pada pembelajaran sebagai elemen kunci dalam pencapaian sebuah tim perangkat lunak yang mampu “Mengorganisasi dirinya sendiri”.
Kolaborasi                                                       
Mengkritik Tanpa Permusuhan, Membantu Tanpa Rasa Kecewa, Bekerja Keras bahkan Lebih dari yang biasanya Dilakukan, Memiliki Kontribusi Untuk Pekerjaan yang Ada, Mengomunikasikan Setia Permasalahan maupun Kecurigaan

2.    Dynamic System Development Method (DSDM) Metode Pengembangan Sistem Dinamis “Menyediakan Kerangka Kerja” untuk membangun dan memelihara system perangkat lunak yangmemenuhi batasan waktu melalui penggunaan prototype yang ditambahi dan diperluas. Pada dasarnya 80 persen dari aplikasi dapat disampaikan dalam 20 persen dari waktu yang dibutuhkan untuk menghantarkan aplikasi yang lengkap (100 persen).

3.    Scrum
Pertama kali diperkenalkan oleh Jeff Sutherland tahun awal tahun 1990an, dan pengembangan selanjutnya dilakukan oleh Schwaber dan Beedle. Prinsip Secrum konsisten untuk untuk membangun kegiatan pengembangan dalam satu proses yang mencakup KEBUTUHAN, ANALISIS, PERANCANGAN, EVOLUSI, dan PENGHANTAR. Scrum menggunakan satu set pola proses perangkat lunak, yaitu:
Langkah:
Backlog: daftar prioritas dari kebutuhan proyek  atau fitur yang menyediakan nilai bisnis bagi pelanggan (Prioritas Update Kebutuhan).
Sprint: Unit kerja untuk mencapai daftar yang ada di Backlog, dan harus sesuai dengan time box.
Meeting: Pertemuan tiap hari yang mempertanyakan apa yang sudah dilakukan, kendala saat ini, dan perencanaan kedepan.

4.    Crystal
Metode Kristal ini pertama kali dibuat oleh Allstair Cockburn dan Jim Highsmith. Metode Kristal ini sendiri dibuat untuk mencapai suatu pendekatan pengembangan perangkat lunak yang berprioritas pada “kemampuan bermanuver”. Inti dari Metode Kristal ini sendiri adalah tujuannya yang memungkinkan Agile Team untuk memilih anggota dari “Keluarga Kristal” yang paling sesuai dengan proyek dan lingkungan mereka. 

5.    Feature Driven Development (FDD) Pengembangan Drive Fitur
User dapat menggambarkan dengan mudah bentuk system,Dapat di organisasikan atau diatur ke dalam kelompok bisnis yang hirarki, Desain dank ode lebih mudah diperiksa secara efektif, Merancang proyek, penjadwalan dan jalur diarahkan oleh feature. Metode ini pertama kali dikemukakan dalam berbentuk konsep oleh Peter Coad.  Yang kemudian dikembangkan oleh Stephen Palmer dan Felsing John. 
Adapula keuntungan metode ini: User dapat menggambarkan dengan mudah bentuk system, Dapat di organisasikan atau diatur ke dalam kelompok bisnis yang hirarki, Desain dank ode lebih mudah diperiksa secara efektif, Merancang proyek, penjadwalan dan jalur diarahkan oleh feature

6.    Agile Modeling (AM)/ Pemodelan Cepat
Agile Modeling adalah suatu metodologi yang praktis untuk dokumentasi dan pemodelan system software. Agile Modeling adalah kumpulan nilai-nilai, prinsip dan praktek-praktek untuk memodelkan software agar dapat diaplikasian pada software development proyek secara efektif. Tetapi karena keefektifan ini pula, tentunya ada bagian bagian yang harus dipertimbangkan keadaanya. Model ini sendiri memang efektif di bandingkan model tradisional karena hanya mencapai tahapan baik, dan bukan sempurna.
Suatu penekanan pada software pengiriman secara cepat yang memuaskan pelanggan bisa menggunakan Express Programming. Sedangkan untuk menyesuaikan dengan kebutuhan Proyek adalah menggunakan Scrum. Sedangkan untuk pengembangan fitur yang memang sedikit lebih resmi dibandingkan metode lainnya yaitu Feature Driven Development (FDD).

7.    Agile Unified Process (AUP)
Metodologi AUP atau Agile - Unified Process merupakan suatu metodologi pengembangan perangkat lunak yang mulai marak digunakan.
Garis besar tahapan analisa dan perancangan yang dilakukan adalah sebagai berikut:
1)    Inception,
dengan aktivitas mendefinisikan project scope, mengestimasi biaya dan penjadwalan, mendefinisikan resiko, membuat kelayakan proyek dan mempersiapkan lingkungan pengerjaan proyek (tim, tempat kerja, instalasi, dan sebagainya). Proses iterasi dilakukan satu kali. Artifak yang dihasilkan diantaranya adalah dokumen Vision, dokumen Supplementary Specification, dokumen Glossary, Gantt Chart dan Iteration Plan.

2) Elaboration,
dengan aktivitas mengidentifikasi dan validasi arsitektur aplikasi. Proses iterasi dapat dilakukan satu sampai dua kali. Artifak yang dihasilkan adalah UML Use Case, Model Arsitektur (update dan snapshot), Architecture Prototype Code, Scenario Test Plan, dokumen Business Rule, dokumen Supplementary dan Glossary yang telah diupdate.

3) Construction,
dengan aktivitas memodelkan, membangun dan menguji sistem aplikasi (unit testing) serta membuat dokumentasi pendukung. Proses iterasi dapat dilakukan dua hingga delapan kali. Artifak yang dihasilkan adalah Use Case (yang telah diupdate), dokumen Supplementary dan Glossary (yang telah diupdate), Domain Model (snapshot), UML Activity Diagram (snapshot), UML Class Diagram (snapshot), CRC Card, UML Sequence Diagram (snapshot), Source Code, Code Documentation, Regression Test Suite, Acceptance Test dan Bugs Report.

4) Transition,
dengan aktivitas menguji sistem (integration sistem dan user testing), mereview kembali sistem aplikasi dan menginstalasi sistem aplikasi. Proses iterasi dapat dilakukan satu hingga dua kali. Artifak yang dihasilkan adalah Dokumen System Requirement Specification, Dokumen System Technical Specification, Panduan Instalasi dan Panduan Pengguna, Dokumen Pelatihan, Regression Test Suite, User Acceptance Test dan Bugs Report (yang sudah final).

8. Lean Software Development (LSD)
Adalah terjemahan dari lean manufacturing dan lean IT prinsip dan praktek untuk pengembangan perangkat lunak domain.



Sumber :
-          Ilmukuilmumu.wordpress.com
-          http://id.wikipedia.org/

March 1, 2015

REKAYASA PERANGKAT LUNAK [RpL]



Elektronika dan komputer pada zaman ini tidaklah asing di mata kita, elektronika dan komputer selalu digunakan di hampir segala aspek kehidupan kita, bahkan kita tidak bisa sedetikpun jauh dari mereka. Artinya kita butuh dengan adanya elektronika dan komputer untuk memudahkan urusan kehidupan kita.
Perangkat Lunak adalah adalah sebuah perangkat dalam dari perangkat-perangkat elektronika dan komputer tersebut, yang menjadikan suatu perangkat lunak itu suatu kebutuhan manusia dengan berbagai bagian disiplin ilmu yang dibidangi oleh setiap tenaga professional, yang menjadi bagian penting dalam pertumbuhan perkembangan perangkat lunak dengan berbagai krisis perangkat lunak menurut berbagai sisi pandang konsumen, manajer dan pengembangan/praktisi.

Rekayasa Perangkat Lunak???
Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software Engineering mulai dipopulerkan tahun 1968 pada Software Engineering Conference yang diselenggarakan oleh NATO. Rekayasa perangkat lunak sering di artikan oleh sebagian orang hanya sebatas pada bagaimana membuat program komputer. Padahal ada perbedaan yang mendasar antara perangkat lunak(software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk memproses informasi. Perangkat lunak dapat berupa program ataupun prosedur. Program adalah kumpulan perintah yang dapat dimengerti oleh komputer, sedangkan Prosedur adalah perintah yang dibutuhkan pengguna dalam memproses informasi(O’Brien, 1999).
Rekayasa Perangkat Lunak (Software Engineering) adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, desain, enkripsi/pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan.

Tujuan RPL???
Rekayasa Perangkat Lunak mempunyai tujuan-tujuan khusus dalam merekayasa:
  1. Memperoleh biaya produksi perangkat lunak yang rendah.
  2. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat waktu.
  3. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis platform.
  4. Menghasilkan perangkat lunak yang biaya perawatannya rendah.


Ruang Lingkup RPL???


Ruang lingkup Rekayasa Perangkat Lunak sesuai definisinya (Abran et.al., 2014),
  •  Software requirements berhubungan dengan spesifikasi kebutuhan dan persyaratan perangkat lunak.
  • Software design mencakup proses penentuan arsitektur, komponen, antar muka, dan karakteristik lain dari perangkat lunak.
  • Software construction berhubungan dengan detail pengembangan perangkat lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian kesalahan.
  •  Software testing meliputi pengujian pada keseluruhan perilaku perangkat lunak.
  • Software maintenance mencakup upaya-upaya perawataan ketika perangkat lunak telah dioperasikan.
  •  Software configuration management berhubungan dengan usaha perubahan konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
  • Software engineering management berkaitan dengan pengelolaan dan pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
  • Software engineering tools and methods mencakup kajian teoritis tentang alat bantu dan metode RPL.
  • Software engineering process berhubungan dengan definisi, implementasi, pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
  • Software quality menitik beratkan pada kualitas dan daur hidup perangkat lunak.
      Rekayasa Perangkat Lunak dan Disiplin Ilmu!!!
  1.        Disiplin Ilmu Komputer.
         Disiplin ilmu komputer(Computer Science) muncul pada awal-awal tahun 1940-an yang merupakan integrasi dari teori algoritma, logika matematika, dan ditemukannya cara penyimpanan program secara elektronik pada komputer.
         Model pengelompokan sub-bidang ilmu dalam disiplin ilmu komputer.
a.       Disiplin ilmu komputer menurut klasifikasi ACM – Association for Computing Machinery - (Gambar 1.1)
b.      Disiplin ilmu komputer menurut klasifikasi Denning (Gambar 1.2)
c.       Disiplin ilmu komputer menurut klasifikasi Wikipedia (Gambar 1.3)


               
    
     Gambar 1.1                                                   Gambar 1.2    

Gambar 1.3             


                     2.  Disiplin Ilmu Lain.

            Rekayasa perangkat lunak  selain terkait dengan disiplin ilmu komputer tapi juga berkaitan dengan disiplin ilmu lainnya. Hubungan keterkaitan itu dapat dilihat pada (Gambar 1.4)

Gambar 1.4


·         Bidang ilmu manajemen meliputi akuntasi, financial, pemasaran, manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya manusia, kebijakan dan strategi bisnis.
·         Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik, analisis numerik dan matematika diskrit.
·         Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas, manajemen resiko, dan penjadwalan proyek.
·         Bidang ilmu ergonomika menyangkut hubnungan(interaksi) antara manusia dengan komponen-komponen lain dalam sistem komputer.

·         Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biaya keuntungan, pemodelan, simulasi, proses dan operasi bisnis.

d       Sumber Refrensi:
               * Mulyanto, Aunur R.(2008)."Rekayasa Perangkat Lunak", jilid 1, (56 rekayasa perangkat lunak jilid 1.pdf). Jakarta : Direktorat Pembinaan Sekolah Menengah Kejuruan, Direktorat Jenderal Manajemen Pendidikan Dasar dan Menengah, Departemen Pendidikan Nasional.