Manajemen Proyek
Minggu 4
Danny Kriestanto, S.Kom., M.EngContoh WBS
Contoh WBS
Contoh WBS
Lines of Codes
• Mengestimasi dengan menghitung semua instruksi source-code dengan mengabaikan komentar dan baris kosong
(misalnya dengan menghitung banyaknya perintah yang diakhiri dengan tanda semicolon)
• LoC dapat dengan lebih mudah dikerjakan jika sebuah proyek dapat dipecah dalam bentuk WBS dalam tingkatan paling rendah
Lines of Codes
• Taksiran dalam bentuk:
• Nilai Optimis (NO) • Nilai Realistis (NR) • Nilai Pesimistis (NP)
Contoh
• Contoh: Diberikan obyek window yang didekati dengan WBS. Obyek ini diperkirakan antara 250 hingga 500 baris kode dengan keyakinan mendekati 350.
=> (250 + (4 X 350) + 500)/6 = 358 LoC = 0,358 KLoC
Petunjuk
• Pastikan bahwa tiap-tiap " baris kode program" yang terhitung berisi hanya satu statemen program ( jika dua statemen yang executable berada pada satu baris, yang dipisahkan oleh suatu titik koma, maka dihitung menjadi dua;
• jika satu statemen yang executable ada atau tersebar ke dua / beberapa baris, maka dihitung satu. Bahasa pemrograman menyediakan pilihan pengkodean untuk bermacam-macam keperluan, tetapi biasanya tetap mudah untuk menentukan satu statemen tunggal yang executable karena compiler atau interpreter melakukan hal yang sama.
Petunjuk
• Hitung semua setoran , termasuk statemen-statemen yang
executable - pemakai akhir tidak akan secara langsung menggunakan
setiap statemen, tapi suatu produk bisa memerlukannya sebagai pendukungnya (seperti utilitas)
• Menghitung definisi data sekali saja
• Jangan menghitung baris yang mengandung komentar • jangan menghitung kode debug atau kode yang bersifat temporer
lainnya seperti perangkat lunak pengujian, kasus uji, peranti bantu pengembangan, peranti bantu prototipe, dan seterusnya
Petunjuk
• Hitung tiap-tiap definisi permintaaan, pemanggilan, atau pemasukan ( kadang-kadang disebut compiler directive) dari suatu makro sebagai bagian dari program yang memakainya ( jangan menghitung statemen program yang dipakai ulang)
• Terjemahkan banyaknya baris dari kode program ke baris bahasa asembler padanannya sedemikian sehingga mungkin dapat dibuat perbandingannya terhadap proyek-proyek lain
Lines of Codes Index Converter
Bahasa Basic Assembler SLOC (Level) Rerata SLOC per Function Point Basic Assembler 1 320 Autocoder 1 320 Macro Assembler 1.5 213 C 2.5 128 – 150DOS Batch Files 2.5 128
Basic 3 107 LOTUS Macro 3 107 ALGOL 3 105 -106 COBOL 3 105 – 107 FORTRAN 3 105 – 106 JOVIAL 3 105 – 107
Lines of Codes Index Converter
Mixed Languages(default) 3 105 Pascal 3.5 91 COBOL (ANSI 85) 3.5 91 RPG 4 80 MODULA-2 4.5 80 PL/ I 4.5 80 Concurrent PASCAL 4 80 FORTRAN 95 4.5 71 BASIC (ANSI) 5 64 FORTH 5 64 LISP 5 64 PROLOG 5 64 LOGO 5.5 58
Lines of Codes Index Converter
RPG III 5.75 56 C++ 6 53 JAVA 6 53 YACC 6 53 Ada 95 6.5 49 CICS 7 46 SIMULA 7 46 Database Language 8 40CLIPPER DB dan Dbase III 8 40
INFORMIX 8 40
ORACLE dan SYBASE 8 40
Access 8.5 38 Dbase IV 9 36 FileMaker Pro 9 36 Decision Support Languages 9 35
Lines of Codes Index Converter
FOXPRO 2.5 9.5 34 APL 10 32 SAS 10 32 DELPHI 11 29 Object-oriented default 11 29 OBJECTIVE-C 12 27 Oracle Developer / 2000 14 23 SMALLTALK 15 21 Awk 15 21 EIFFEL 15 21
UNIX shell Script (PERL) 15 21
4thGeneration Default 16 20
Lines of Codes Index Converter
Aplication Builder 16 20 COBRA 16 20 Crystal Reports 16 20 Datatrieve 16 20 CLIPPER 17 19 SQL 25 13 – 16 HTML 3.0 22 15 IEF / IEW 23 14 EASYTRIEVE+ 25 13 SQL (ANSI) 25 13 EXCELL 50 6 QUATRO PRO 51 6
Graphic Icon Languages 75 4
Petunjuk
• Setiap konversi dari satu bahasa pemrograman ke bahasa pemrograman lain harus dilakukan dengan konversi ke Bahasa Assembler terlebih dahulu
Kelebihan LoC
• Umum digunakan
• Memungkinkan adanya perbandingan matriks ukuran dan produktivitas antar kelompok pengembang
• Berhubungan langsung dengan produk akhir • Mudah diukur
• Mengukur perangkat lunak dari sudut pandang pengembang • Ukuran perkiraan dapat dengan mudah dibandingkan dengan ukuran riil
Kelemahan LoC
• Kesulitan menaksir perangkat lunak baru
• Instruksi program berbeda menurut jenis bahasa pemrograman, metode desain, dan gaya serta kemampuan programmer
• Tidak adanya standarisasi organisasi, seperti ISO
• Melibatkan banyak biaya yang mungkin tidak dipertimbangkan (spt biaya kebutuhan spesifikasi, dan dokumen pemakai yang tidak termasuk dalam pengkodean)
Kelemahan LoC
• Programmer sangat mungkin menerima bayaran lebih untuk baris kode yang banyak, sebaliknya desainer sangat menerima bayaran yang kecil. • Perhitungan LoC seharusnya membedakan kode yang dihasilkan dengan
kode yang berdasarkan fungsinya, bukannya menghitung langsung banyaknya baris kode.
• LoC tidak dapat digunakan apabila platform atau bahasa pemrograman dibedakan.
• Hanya ada dua cara membedakan jumlah LoC untuk perangkat lunak baru: 1. menganalogikan dengan perangkat lunak yang telah ada. 2. Meminta opini pakar
Function POINT
• Dibuat untuk mengatasi kelemahan-kelemahan LoC • Pertama kali dicetuskan oleh A.J. Albrecht pada tahun 1970 • Distandarisasi oleh IFPUG
• Pada tahun 1987 digunakan oleh pemerintah Inggris dan pelatihannya dilakukan tahun 1994 untuk versi 4.0.
Prinsip FP
• Melengkapi unit standar dari pengukuran
• Berdasarkan pada pandangan eksternal pemakai terhadap sistem • Pengukuran kerja produktif bersama dengan pengukuran usaha kerja
akan menghasilkan pengukuran produktivitas
• Model estimasi yang mendasarkan pengukuran function-point untuk produktivitas
• Tujuannya adalah membangun pengukuran relatif dari nilai fungsi hasil yang akan diserahkan, terlepas dari teknologi atau pendekatan yang digunakan
Prinsip FP
• Secara umum pendekatan dilakukan berdasar perhitungan (bobot yang merefleksikan nilai tipe fungsi ) dari
• External input (data screen, ligt-pen, switch, transaksi dari aplikasi lain) • External output (screen report, terminal report, screen message, transaksi untuk
aplikasi lain)
• Logical internal file (Data base, user table, message table, logical internal table) • File atau struktur data
• External interface file (share data base, logical internal file yang dapat diakses dari / ke aplikasi lain)
• External inquiry (user inquiry tanpa update file, help message and screen, pemilihan menu screen)
Langkah-Langkah
1. Kumpulkan dokumen dari sudut pandang user 2. Klasifikasikan ke dalam 5 tipe fungsi
3. Siapkan lembar kerja untuk masing-masing fungsi 4. Gunakan faktor pembobotan untuk setiap fungsi 5. Jumlahkan ke dalam function Count (FC)
6. Gunakan nilai dari 0-5 untuk masing-masing dari 14 karakteristik (N)
7. Jumlahkan ke dalam Processing Complexity (CF) 8. Hitung AFP = FP x CF
9. Konversikan ke LOC
Petunjuk Menghitung FP (1)
1. Hitung Jumlah fungsi untuk tiap kategori 2. Terapkan faktor Pembobotan 3. Terapkan faktor lingkungan 4. Kalkulasi kompleksitas 5. Hitung FP 6. Konversi
Petunjuk Menghitung FP (2)
Tabel Lembar Kerja Worksheet
Langkah 1. Menghitung Jumlah Fungsi dalam tiap-tiap kategori Langkah 2. Menerapkan faktor pembobotan kompleksitas
Sederhana Menengah Kompleks Function Point
Jumlah Output ____ x 4 ____ x 5 ____ x 7
Jumlah Input ____ x 3 ____ x 4 ____ x 6
Jumlah Inquiry Output ____ x 4 ____ x 5 ____ x 7
Jumlah Inquiry Input ____ x 3 ____ x 4 ____ x 6
Jumlah File ____ x 7 ____ x 10 ____ x 15
Jumlah Interface ____ x 5 ____ x 7 ____ x 10
Total Function Point :
Komunikasi Data Pemrosesan terdistribusi Kebutuhan Performansi Batasan Konfigurasi Rating Transaksi Online Inquiry dan / atau Entry Efisiensi pemakai akhir Online update Pemrosesan Kompleks Reusability Kemudahan konversi / Install Kemudahan Operasi Digunakan dibeberapa site Potensial terhadap perubahan fungsi
Total (N) : Langkah 4. Kalkulasi Faktor Kompleksitas (CF)
CF = 0.65 + (0.01 x N) =
Langkah 5. Menghitung Kesesuaian Function Point (AFP)
AFP = FP x CF
Langkah 6. Konversi ke LOC (Optional)
LOC = AFP x LOC/AFP
Petunjuk Menghitung FP (4)
• External Output adalah berbagai hal yang diproduksi oleh perangkat lunak (data screen, data report, pesan kesalahan, dst)
• Output adalah unit informasi yang dihasilkan perangkat lunak kepada pemakai
Merujuk 1-5 Data Merujuk 6-19 Data
Merujuk lebih dari 20 data Merujuk 0 – 1 File Sederhana (4) Sederhana (4) Menengah (5)
Merujuk 2 atau 3 File Sederhana (4) Menengah (5) Kompleks (7)
Merujuk 4 atau lebih File Menengah (5) Kompleks (7) Kompleks(7)
Petunjuk Menghitung FP (4)
• External Input adalah sesuatu yang diterima perangkat lunak dari luar sistem
• Input merupakan unit informasi yang diberikan pemakai untuk sistem
Merujuk 1-5 Data Merujuk 6-19 Data
Merujuk lebih dari 20 data
Merujuk 0 – 1 File Sederhana (3) Sederhana (3) Menengah (4)
Merujuk 2 atau 3 File Sederhana (3) Menengah (4) Kompleks (6)
Merujuk 4 atau lebih File Menengah (4) Kompleks (6) Kompleks(6)
Petunjuk Menghitung FP (5)
• External Inquiry adalah instruksi khusus agar perangkat lunak merespon, membentuk, menurunkan sesuatu akibat masukan yang diberikan. (contoh sederhananya: button untuk proses)
• Inquiry mengakses langsung ke database, namun bukan merupakan query.
Petunjuk Menghitung FP (6)
Bagian Output (Catatan: Pilih Nilai Tertinggi : Output atau Input
Merujuk 1-5 Data Merujuk 6-19 Data Merujuk lebih dari 20 data Merujuk 0 – 1 File Sederhana (4) Sederhana (4) Menengah (5)
Merujuk 2 atau 3 File Sederhana (4) Menengah (5) Kompleks (7)
Merujuk 4 atau lebih File Menengah (5) Kompleks (7) Kompleks(7)
Bagian Input (Catatan: Pilih Nilai Tertinggi : Output atau Input)
Merujuk 1-5 Data Merujuk 6-19 Data Merujuk lebih dari 20 data Merujuk 0 – 1 File Sederhana (3) Sederhana (3) Menengah (4)
Merujuk 2 atau 3 File Sederhana (3) Menengah (4) Kompleks (6)
Cara Menghitung FP (7)
• Menghitung Struktur data:
• Hal-hal yang harus diingat ketika menghitung struktur data / File meliputi :
• File internal adalah File yang secara logik berada dalam program (mudahnya: jumlah tabel dari sebuah skema)
• Struktur data dikenal sebagai “file” adalah kelompok data user utama yang secara permanen disimpan dalam lingkungan sisitem perangkat lunak • Struktur data dijangkau pemakai melalui input, output, inquiry, atau interface
Cara Menghitung FP (8)
Catatan: Hitung File dan Relasi secara logik bukan tipe record secara fisik
Merujuk 1-19 Item Data
Merujuk 20-50 Item Data
Merujuk lebih dari 50 Item Data
Relasi / Format 1 record lojik Sederhana (7) Sederhana (7) Menengah (10)
Relasi / Format 2-5 record lojik
Sederhana (7) Menengah (10) Kompleks (15)
6 atau lebih record lojik Menengah (10) Kompleks (15) Kompleks(15) Faktor Pembobotan Analisis File pada Function Point
Cara Menghitung FP (9)
• Ketika menghitung interface, beberapa hal yang harus diingat adalah :
• File eksternal adalah file turunan mesin yang digunakan program • Interface adalah data (dan kontrol) yang disimpan diluar lingkungan
perangkat lunak sistem yang dievaluasi
• Pada tipe program menggunakan client/server, ‘konektor’ antara program dan database adalah sebuah interface.
• Struktur data bersama diantara sistem-sistem dihitung sebagai interface dan juga struktur data
• Hitung tiap-tiap data dan aliran kontrol menurut arahnya sebagai interface unik
Cara Menghitung FP (10)
Catatan: Jumlah Relasi secara logik bukan tipe record secara fisik
Merujuk 1-19 Item Data
Merujuk 20-50 Item Data
Merujuk lebih dari 50 Item Data
Relasi / Format 1 record lojik Sederhana (5) Sederhana (5) Menengah (7)
Relasi / Format 2-5 record lojik
Sederhana (5) Menengah (7) Kompleks (10)
6 atau lebih record lojik Menengah (7) Kompleks (10) Kompleks(10) Faktor Pembobotan Analisis Interface pada Function Point
Cara Menghitung FP (11)
• Faktor Lingkungan
Faktor lingkungan Rating (0,1,2,3,4,5)
Komunikasi data Informasi data atau kendali dikirim atau diterima melalui fasilitas komunikasi data. Sistem online dipengaruhi oleh komunikasi data. Pemrosesan Terdistribusi Aplikasi menggunakan data yang disimpan, diakses atau diproses
pada suatu storage lain atau memproses sistem lain selain dari sistem yang digunakan pada sistem utama tersebut. Kebutuhan Performansi permintaan user yang telah disetujui dibuat dengan throughput
luar biasa tinggi atau memiliki respon waktu yang cepat Batasan Konfigurasi Aplikasi akan dijalankan pada konfigurasi yang ketat,berat atau
padat
Rating Transaksi Trafik jaringan tinggi, layar penuh dengan informasi dan grafik,
Cara Menghitung FP (12)
Online Inquiry dan/ atau Entry Terlalu Interaktif
Efisiensi pemakai akhir Pertimbangan faktor manusia perlu ditambahkan Online Update Update database dinamis, database terdistribusi
Pemrosesan kompleks keamanan yang tinggi, proses transaksi yang berat, algoritma yang kompleks, interupsi logika kendali
Reusability Kode yang didesain untuk dapat dipakai ulang harus berkualitas tinggi Kemudahan Konversi / install Konversi dan instalasi memerlukan dokumen perencanaan yang telah diuji Kemudahan operasi Efektif tetapi tetap mudah untuk melakukan prosedur start, backup, error
recovery dan shutdown. Aktifitas manual dibuat minimal Digunakan dibeberapa site Account meliputi fungsi bisnis yang berbeda-beda
Cara Menghitung FP (13)
• Tabel perbandingan dengan sistem skor tinggi
Faktor Lingkungan Contoh sistem dengan Skor tinggi
Komunikasi data kompleks Suatu program pada bank multinasional yang harus menangani transfer uang elektronis dari suatu institusi ke seluruh dunia Pemrosesan Terdistribusi Sebuah mesin pencarian web dimana pemrosesan dibentuk oleh
lebih dari selusin server yang bekerja sebagai tandem Sasaran Performansi tinggi Sebuah sistem kendali trafik udara yang harus menyediakan
keakuratan posisi pesawt dari radar data tiap saat dan terus menerus
Penggunaan konfigurasi yang berat
Sebuah sistem universitas dimana ratusan siswa registrasi untuk suatu kelas secara bersamaan
Cara Menghitung FP (14)
Rating Transaksi yang tinggi Suatu program bank yang harus membentuk jutaan transaksi semalaman untuk menyeimbangkan semua saldo sebelum hari esok
Entry data online Persetujuan program penggadaian dimana para juru ketik memasukkan data secara interaktif ke sistem komputer dari lembar aplikasi yang diisi oleh pemilik barang
Desain User-friendly Perangkat lunak anjungan komputer dengan layar sentuh dimana konsumen pada suatu stasiun kereta api dapat membeli karcis menggunakan kartu kredit mereka
Update Data online Sistem perusahaan penerbangan di mana agen perjalanan dapat membooking penerbangan dan memilih tempat duduk. Perangkat lunak harus mampu mengunci dan kemudian memodifikasi arsip tertentu di database untuk memastikan bahwa tempat duduk yang sama tidak dijual dua kali
Cara Menghitung FP (15)
Pemrosesan Kompleks Perangkat lunak medis yang mencek berbagai gejala dan membuat keputusan logis untuk sampai pada suatu diagnosa awal
Reusability suatu pengolah pekerjaan yang harus dirancang sedemikian sehingga menu toolbarsnya dapat disatukan ke dalam aplikasi yang lain, seperti spreadsheet atau pembangkit laporan
Kemudahan Instalasi suatu aplikasi peralatan pengendali yang akan menginstal peralatan minyak lepas pantai
Kemudahan operasional suatu program untuk meneliti angka-angka yang sangat besar dari historis arsip keuangan yang harus memproses informasi dengan cara meminimkan langkah dimana operator komputer harus membaca dan menulis lagi pada file lain untuk memuat data tersebut
Cara Menghitung FP (16)
Banyak site perangkat lunak pembayaran gaji untuk suatu korporasi perusahaan multinasional yang harus mempertimbangkan karakteristik yang berbeda dari berbagai negara-negara, termasuk pajak pendapatan dan mata uang
Fleksibilitas suatu program peramalan keuangan yang dilakukan secara bulanan, triwulanan, atau proyeksi tahunan dengan kualitas sama persis dengan manajer bisnis tertentu yang mungkin memerlukan informasi yang dipecah berdasarkan lini produk dan daerah geografis
Cara Menghitung FP (17)
• Kalkulasi Faktor Kompleksitas • Gunakan rumus berikut:
CF = 0.65 + (0.01 x N)
• Dimana N adalah pembobotan faktor lingkungan
• Untuk rumus LOC = AFP x LOC/AFP, dapat digunakan tabel pada halaman 11-15, dengan ketentuan: konversi menggunakan kolom paling kanan.