Rabu, 30 April 2014 0 comments

Contoh Soal MODEL COCOMO

Contoh Penganggaran Biaya berdasarkan MODEL COCOMO

Constructive Cost Model (COCOMO) dikembangkan oleh Boe81 dan Boe84. Model ini menganggarkan jumlah biaya dengan istilah personal-month (PM).

Langkah dasar penganggaran biaya, yaitu:
Menentukan anggaran dasar dari suatu proyek pengembangan sistem. Rumus yang digunakan:
E1 = a*(KDLOC)
Keterangan :
E1 = Nilai anggaran awal
KDLOC = Kilo of delivered lines of source code
a dan b = nilainya a dan b tergantung kepada jenis proyek, a(optimis), b(pesimis).

Jenis proyek:
▪ Organic (experience and less stringent, small team)
▪ Embbedded (ambitious and novel; little experience and stringent)
▪ Semidetached (fall between two types)

System
a
B
Organic
3.2
1.05
Semiedetached
3.0
1.12
Embedded
2.8
1.20

Ukuran Proyek
Phase
SIZE
Small
Intermediate
Medium
Large
Product Design
16
16
16
16
Detailed Design
26
25
24
23
Code and Unit Test
42
40
38
36
Integration and Test
16
19
22
25

Menentukan anggaran biaya secara keseluruhan :
E = EAF * Ei
Keterangan :
E          = Anggaran Keseluruhan
Ei         = Anggaran Awal
EAF    = Effort Adjustment Factor atau Faktor-faktor yang mempengaruhi biaya

Contoh 1 : (Jumlah Biaya sudah di ketahui)
Jika anggaran biaya (total effort) bagi suatu pengembangan sistem berjenis organik sebesar 20PM. Pengembangan sistem terdiri dari aktifitas data entry, data update, query dan report. Tentukanlah presentase anggaran biaya masing-masing langkah !
Jawab :

Aktifitas
Menentukan Presentase
Menentukan Biaya
Data Entry
16+(16-16)/(32-8)*20=16%
16/100*20=3.2PM
Data Update
25+(24-25)/(32-8)*20=24.2%
24.2/100*20=4.5PM
Query
40+(38-40)/(32-8)*20=38.3%
38.3%/100*20=7.7PM
Report
19+(22-19)/(32-8)*20=21.5%
21.5%/100*20=4.3PM

Contoh 2 : (jumlah biaya belum diketahui)
Soal :
Proyek pengembangan sistem untuk automasi perkantoran. Kebutuhan automasi perkantoran meliputi empat modul utama yaitu : product design, detailed design, code & unit test dan integration & test. Sistem yang dikembangkan berjenis organic.
Tugas :
      a.       Tentukan anggaran biaya keseluruhan dari masing-masing modul ?
      b.      Hitunglah waktu yang diperlukan ?
      c.       Tentukanlah jumlah orang yang dibutuhkan ? 
      d.      Buatlah Project Schedulling ?

Jawab :
      a.       Menentukan anggaran biaya
Langkah 1 : tentukan size setiap modul
Phase
SIZE
KDLOC
Product Design
0.6
Detailed Design
0.6
Code and Unit Test
0.8
Integration and Test
1.0
Total
3.0

Langkah 2 : tentukan faktor-faktor yang mempengaruhi biaya

Product Attributes
Rating Multiplying
Factors
Complexity
Computer Attributes
High
1.15
Storage
Personal Attributes
High
1.06
Experiences
Project Attributes
Low
1.13
Programmer Capability
Low
1.17

Langkah 3 : Hitung EAF (Effort Adjustment Factor)
EAF    = kalikan kesemua factor yang mempengaruhi biaya
            = 1.15 * 1.06 * 1.13 * 1.17
            = 1.61
Langkah 4 : tentukan awal proyek
Ei         =  a * (KDLOC) b
            = 3.2 * 3 1.05
            = 10.14 PM
Langkah 5 : tentukan anggaran keseluruhan
E          = EAF * Ei
            = 1.61 * 10.14
            = 16.3PM

Langkah 6 : tentukan presentase dan biaya masing-masing modul
Aktifitas
Menentukan Presentase
Menentukan Biaya
Data Entry
16+(16-16)/(32-8)*16.3=16%
16/100*16.3=2.6PM
Data Update
25+(24-25)/(32-8)*16.3=24.4%
24.4/100*16.3=4.0PM
Query
40+(38-40)/(32-8)*16.3=38.7%
38.7%/100*16.3=6.3PM
Report
19+(22-19)/(32-8)*16.3=20.9%
20.9%/100*16.3=3.4PM

Menentukan waktu proyek bertujuan untuk menentukan jumlah waktu bagi proyek dan juga bagi masing-masing tahap.  Menentukan waktu tidak bisa dihitung secara langsung dari anggaran keseluruhan usaha karena tidak berhubungan secara linier. Alasannya jika seseorang karyawan menghadapi suatu permasalahan dan memerlukan waktu untuk berkomunikasi dengan pimpinan dan atau karyawan tersebut disuruh rapat atau seminar, maka waktu komunikasi tersebut juga perlu diperhitungkan. Komunikasi n persons dan akan bertambah secara dua kali lipat jika terdapat banyak n untuk berkomunikasi. 
Variabel tunggal (single variable) bisa digunakan untuk menentukan keseluruhan waktu proyek. Didalam model COCOMO, untuk sistem berjenis organik penjadwalan ditentukan dengan menggunakan persamaan berikut :
D = 2.5 E 0.38


Keterangan :
D                     = Duration
2.5 dan 3.08    = Variabel proyek untuk jenis organik
Duration ditentukan oleh dengan months.

Jadi dari proyek sistem automasi kantor diatas, perhitungan waktu yang diperlukan adalah :
D         = 2.5 E 0.38
            = 2.5 * 16.34 0.38
            = 7.23 months

      b.      Waktu yang diperlukan
Modul
Pembagian waktu
Product Design
16 % * 7.23 = 1.16 months
Detailed Design
24.4 % * 7.23 = 1.77 months
Code and Unit Test
38.7 % * 7.23 = 2.8 months
Integration and Test
20.9 % * 7.23 = 1.51 months

      c.       Jumlah orang yang dibutuhkan
Menentukan jumlah personal (personal plan)
Modul
Jumlah Orang
Product Design
2.6PM / 1.16 = 2.24 Persons
Detailed Design
4.0PM / 1.77 = 2.25 Persons
Code and Unit Test
6.3PM / 2.8 = 2.25 Persons
Integration and Test
3.4PM / 1.51 = 2.25 Persons

Kesimpulan (a,b,c) : Deskripsi keseluruhan proyek pengembangan otomatisasi perkantoran adalah :
Modul
Presentase
Biaya
Waktu
Jumlah Orang
Data Entry
16%
2.6 PM
1.16M
2.24 P
Data Update
24.4%
4.0 PM
1.77M
2.25 P
Query
38.7%
6.3 PM
2.8M
2.25 P
Report
20.9%
3.4 PM
1.51M
2.25 P
TOTAL
100 %
16.3 PM
7.24M
8.99 P

      d.      Membuat project Schedulling
Penjadwalan proyek bertujuan untuk memantau kemajuan proyek. Membuat penjadwalan bisa menggunakan Carta Gantt yang menggunakan orientasi kalender bagi menggambarkan penjadwalan proyek. Setiap aktifitas digambarkan dengan bar dalam kalender, mulai dari hari pertama aktifitas hingga selesai aktifitas.

Walaupun bagaimana konsep Carta Gantt mudah dipahami dan banyak sekali digunakan. Carta Gantt sesuai untuk proyek yang berukuran kecil dan medium. Sedang untuk proyek yang besar dan kritikal, ketergantungan diantara aktifitas penting maka digunakan carta PERT. Carta PERT adalah carta yang berdasarkan graf yang bisa digunakan untuk menentukan aktifitas dalam bentuk lintasan kritikal (critical path) yaitu jika suatu aktiviti delay maka keseluruhan proyek akan delay. 

Referensi :
1 comments

COCOMO (Constructive Cost Model)

Pengertian COCOMO
COCOMO adalah sebuah model yang didesain oleh Barry Boehm untuk memperoleh perkiraan dari jumlah orang-bulan yang diperlukan untuk mengembangkan suatu produk perangkat lunak. Satu hasil observasi yang paling penting dalam model ini adalah bahwa motivasi dari tiap orang yang terlibat ditempatkan sebagai titik berat. Hal ini menunjukkan bahwa kepemimpinan dan kerja sama tim merupakan sesuatu yang penting, namun demikian poin pada bagian ini sering diabaikan. 

Jenis-Jenis COCOMO

Jenis-jenis COCOMO terdiri dari 3 jenis yaitu : 

1. Model COCOMO Dasar 
Model COCOMO dapat diaplikasikan dalam tiga tingkatan kelas meliputi :
1. Proyek organik (organic mode) Adalah proyek dengan ukuran relatif kecil, dengan anggota tim yang sudah berpengalaman, dan mampu bekerja pada permintaan yang relatif fleksibel.
2. Proyek sedang (semi-detached mode) Merupakan proyek yang memiliki ukuran dan tingkat kerumitan yang sedang, dan tiap anggota tim memiliki tingkat keahlian yang berbeda.
3. Proyek terintegrasi (embedded mode) Proyek yang dibangun dengan spesifikasi dan operasi yang ketat. 

Model COCOMO dasar ditunjukkan dalam persamaan 1, 2, dan 3 berikut ini: 


Dimana :
E : besarnya usaha (orang-bulan)
D : lama waktu pengerjaan (bulan)
KLOC : estimasi jumlah baris kode (ribuan)
P : jumlah orang yang diperlukan.

Sedangkan koefisien ab, bb, cb, dan db diberikan pada Tabel 1 berikut:

Tabel 1 . Koefisien Model COCOMO Dasar


2. Model COCOMO Lanjut (Intermediate COCOMO) 

Pengembangan model COCOMO adalah dengan menambahkan atribut yang dapat menentukan jumlah biaya dan tenaga dalam pengembangan perangkat lunak, yang dijabarkan dalam kategori dan subkatagori sebagai berikut:
a. Atribut produk (product attributes)
1. Reliabilitas perangkat lunak yang diperlukan (RELY)
2. Ukuran basis data aplikasi (DATA)
3. Kompleksitas produk (CPLX)

b. Atribut perangkat keras (computer attributes)
1. Waktu eksekusi program ketika dijalankan (TIME)
2. Memori yang dipakai (STOR)
3. Kecepatan mesin virtual (VIRT)
4. Waktu yang diperlukan untuk mengeksekusi perintah (TURN)

c. Atribut sumber daya manusia (personnel attributes)
1. Kemampuan analisis (ACAP)
2. Kemampuan ahli perangkat lunak (PCAP)
3. Pengalaman membuat aplikasi (AEXP)
4. Pengalaman penggunaan mesin virtual (VEXP)
5.Pengalaman dalam menggunakan bahasa pemrograman (LEXP)

d. Atribut proyek (project attributes)
1. Penggunaan sistem pemrograman modern(MODP)
2. Penggunaan perangkat lunak (TOOL)
3. Jadwal pengembangan yang diperlukan (SCED) 

Masing-masing subkatagori diberi bobot seperti dalam tabel 2 dan kemudian dikalikan.


Dari pengembangan ini diperoleh persamaan: 


Dimana :
E : besarnya usaha (orang-bulan)
KLOC : estimasi jumlah baris kode (ribuan)
EAF : faktor hasil penghitungan dari sub-katagori di atas.

Koefisien ai dan eksponen bi diberikan pada tabel berikut.

Tabel 3. Koefisien Model COCOMO Lanjut 


3. Model COCOMO II (Complete atau Detailed COCOMO model)

Model COCOMO II, pada awal desainnya terdiri dari 7 bobot pengali yang relevan dan kemudian menjadi 16 yang dapat digunakan pada arsitektur terbarunya. 

Tabel 4. COCOMO II Early Design Effort Multipliers

Tabel 5. COCOMO II Post Architecture Effort Multipliers 

Sama seperti COCOMO Intermediate (COCOMO81), masing-masing sub katagori bisa digunakan untuk aplikasi tertentu pada kondisi very low, low, manual, nominal, high maupun very high. Masing-masing kondisi memiliki nilai bobot tertentu. Nilai yang lebih besar dari 1 menunjukkan usaha pengembangan yang meningkat, sedangkan nilai di bawah 1 menyebabkan usaha yang menurun. Kondisi Laju nominal (1) berarti bobot pengali tidak berpengaruh pada estimasi. Maksud dari bobot yang digunakan dalam COCOMO II, harus dimasukkan dan direfisikan di kemudian hari sebagai detail dari proyek aktual yang ditambahkan dalam database.

Referensi : 





Senin, 28 April 2014 0 comments

Kenapa anda dianjurkan menggunakan software open source dalam membuat aplikasi? (Keuntungan dan Kerugiannya)

Karena software yang didukung oleh open source merupakan sistem yang mendistribusikan perangkat lunak kepada pengguna dengan memberikan program dan source code secara gratis. Tetapi kita juga bisa mengembangkan open source tersebut sesuai dengan keinginan dan kebutuhan kita, tentunya kebebasan itu tetap bertumpu pada etika dan peraturan yang telah ditetapkan sebelumnya.

Fitur-fitur utama dari karakteristik open source adalah kebebasan user untuk:
1  - Menggunakan software sesuai keinginannya.
2  - Memiliki software yang tersedia sesuai kebutuhan.
3  - Mendistribusikan software kepada user lainnya.

Kebebasan yang tak terbatas bagi tiap orang untuk mengakses kode program merupakan pedang bermata dua bagi software itu sendiri. Hal ini disebabkan karena kebebasan ini memberikan informasi tentang kelemahan software. Kemudian, yang terjadi adalah eksploitasi kelemahannya. Para hacker akan menggunakan kelemahan ini untuk melakukan hal-hal yang dapat merugikan pengguna software tersebut. Akibatnya akan lebih buruk jika software tersebut merupakan software yang vital bagi pengguna karena akan memungkinkan terjadinya penipuan, pencurian identitas, pencurian informasi, dan sebagainya.

Apa manfaat yang kita dapatkan dengan menggunakan Open Source ?
Ada banyak manfaat positif yang bisa kita peroleh dengan menggunakan Open Source, diantaranya :
Kreativitas : Dengan Open Source kita bisa mempelajari cara kerja suatu perangkat lunak, memodifikasinya, bahkan membuat produk baru dari sumber yang ada.
Kemandirian : Kita tidak perlu lagi tergantung pada suatu produk tertentu, bahkan dengan Open Source kita bisa membuat produk yang sekelas dengan perusahaan berskala raksasa seperti Microsoft.
Penghematan :
Hemat Waktu : Berapa banyak waktu yang kita sia-siakan untuk berurusan dengan virus komputer di sistem closed source (baca : Windows) ? Dengan menggunakan sistem operasi Open Source seperti 3D OS kita tidak perlu membuang waktu lagi berurusan dengan virus komputer.
Hemat Biaya : Berapa banyak biaya yang perlu kita keluarkan untuk pembelian suatu produk proprietary seperti Windows, Photoshop, MS Office dan lain-lainnya ?
Hemat Devisa : Berapa banyak devisa negara yang harus lari keluar negeri jika kita terus menggunakan produk proprietary ?
Mengurangi Tingkat Pembajakan : Open Source memungkinkan kita untuk tidak lagi menggunakan milik orang lain secara tidak sah atau dengan kata lain kita tidak perlu lagi menjadi pencuri. Selain mengurangi tingkat pembajakan, secara otomatis dosa-dosa kita juga ikut berkurang.
Meningkatkan Citra Negara : Tahukah Anda bahwa pembajakan menjadikan citra negara menurun ? Dan ini secara tidak langsung membawa akibat buruk pada hubungan dagang dengan luar negeri. Dan repotnya, di tahun 2009 ini Indonesia kembali masuk dalam daftar Priority Watch List.
Banyaknya tenaga (SDM) untuk mengerjakan proyek, proyek open source biasanya menarik banyak developer, misalnya pengembangan web server Apache menarik ribuan orang untuk ikut mengembangkan dan memantau.
Mencegah kesalahan (bugs atau error) lebih cepat ditemukan dan diperbaiki, hal ini dikarenakan jumlah developernya sangat banyak dan tidak dibatasi. Visual inspection (eye-balling) merupakan salah satu metodologi pencarian bugs yang paling efektif. Selain itu, source code yang tersedia membuat setiap orang dapat mengusulkan perbaikan tanpa harus menunggu dari vendor.
Kualitas produk lebih terjamin, hal ini dikarenakan evaluasi dapat dilakukan oleh banyak orang sehingga kualitas produk dapat lebih baik. Namun, hal ini hanya berlaku untuk produk open source yang ramai dikembangkan orang. Tidak selamanya open source dikembangkan oleh banyak orang, karena bisa juga dilakukan oleh individual.

Selain membawa manfaat, tentu saja Open Source juga mempunyai kekurangan, diantaranya:
Kurangnya dukungan vendor : Harus diakui, masih cukup banyak vendor baik Hardware, Software, ataupun game yang belum memberikan dukungan penuh pada Open Source. Dan hal ini tentu saja cukup menghambat perkembangan Open Source.
Kurangnya dukungan support : Karena belum cukup memasyarakat, maka dukungan support juga masih cukup sulit untuk ditemukan. Support untuk Open Source selama ini masih banyak bergantung pada Internet (Google). Sehingga cukup menyulitkan mereka yang tidak mempunyai akses penuh pada Internet.
Kurangnya dukungan bisnis : Pandangan bahwa Open Source adalah gratis dan tidak bisa membawa manfaat bisnis sangat menghambat para pebisnis yang akan terjun di Open Source. Kurangnya dukungan dari pebisnis ini membuat Open Source tidak bisa mempromosikan dirinya secara baik dan ini secara tidak langsung membuat pengenalan Open Source menjadi lebih lambat.
Kurangnya promosi : Masih banyak orang yang beranggapan Open Source susah untuk dipergunakan, padahal perkembangan Open Source belakangan ini sudah cukup pesat dan bahkan dalam beberapa hal terkadang mampu menggungguli produk closed source. Kesalahpahaman ini bisa terjadi karena kurangnya promosi akan Open Source.
Kurangnya SDM yang dapat memanfaatkan open source, ketersediaan source code yang diberikan dapat menjadi sia-sia, jika SDM yang ada tidak dapat menggunakannya. SDM yang ada ternyata hanya mampu menggunakan produk saja, Jika demikian, maka tidak ada bedanya produk open source dan yang propriertary dan tertutup.
Tidak adanya proteksi terhadap HaKI, kebanyakan orang masih menganggap bahwa open source merupakan aset yang harus dijaga kerahasiannya. Hal ini dikaitkan dengan besarnya usaha yang sudah dikeluarkan untuk membuat produk tersebut. Karena sifatnya dapat diabuse oleh orang-orang untuk mencuri ide dan karya orang lain.
Open Source digunakan secara sharing, dapat menimbulkan resiko kurangnya diferensiasi antara satu software dengan yang lain, apabila kebetulan menggunakan beberapa open Source yang sama.        

Referensi :