Selasa, 17 Mei 2011

Teknik Estimasi pada Proyek Sistem Informasi

Estimasi merupakan sebuah proses pengulangan. Pemanggilan ulang estimasi yang pertama dilakukan selama fase definisi, yaitu ketika anda menulis rencana pendahuluan proyek. Hal ini perlu dilakukan, karena anda membutuhkan estimasi untuk proposal. Setelah fase analisis direncanakan ulang, anda harus memeriksa estimasi dan merubah rencana pendahuluan proyek menjadi rencana akhir proyek.
                                                             
Teknik – Teknik Estiminasi
Ada tiga teknik yang digunakan untuk melakukan estimasi, yaitu :
1. Keputusan Profesional
Katakanlah bahwa anda merupakan orang yang memiliki pengalaman yang luas dalam membuat program “report generation modules”. Anda melakukannya dengan pendekatan merancang report tersebut dan memperkirakan berapa lama waktu yang dibutuhkan untuk membuat program tersebut. Setelah mempelajari rancangan program selama 5 menit, programmer lalu menutup matanya selama 5 menit (dia tidak tidur, tetapi berhitung), dan kemudian mengatakan “15 hari”. Inilah yang disebut Keputusan Profesional murni. Keuntungan dari teknik ini adalah cepat , dan jika seseorang sudah ahli dalam teknik ini, maka estimasinya pasti akan lebih akurat. Sedangkan kerugian dari teknik ini adalah bahwa anda membutuhkan seorang ahli yang berpengalaman dalam bidang ini, dan beberapa ahli tersebut akan bekerja keras untuk mendapatkan estimasi yang tepat.

2. Sejarah
Jalan keluar dari ketergantungan pada orang dan untuk membuat estimasi lebih khusus, yaitu anda harus mengerti tentang sejarahnya. Tulislah berapa lama masing-masing tugas dapat diselesaikan dan siapa yang bertanggung jawab atas tugas tersebut. Anda dapat membandingkan tuagas yang akan diestimasik dengan tugas yang sama yang dikerjakan lebih awal, setelah itu mulailah dengan melakukan estimasi. Hal ini dimaksudkan agar anda menjabarkan suatu proyek ke dalam beberapa tugas yang biasanya diulang dan mudah untuk dibandingkan.

3. Rumus-rumus
Ada beberapa rumus yang digunakan dalam software estimasi. Software yang baik untuk diketahui adalah COCOMO (Referensi 15). COCOMO dapat digunakan untuk memperkirakan biaya proyek, usaha (person months), jadwal, dan jumlah staf untuk masing-masing fase berikut ini :
Preliminary Design - our Analysis Phase
Detailed Design (DD) - our Design Phase
Code and Unit Tes (CUT) - same as ours
System Test - our System Test and Acceptance Phase

Ada 3 tipe penginputan dengan COCOMO
pertama, pemasukan biaya bulanan dari staf. Baik staf yang berkedudukan sebagai programer, analis, designer, test staff, administrasi dan technical writer. Gambar 13.1 menunjukkan sebuah layar penginputan yang digunakan untuk tipe ke dua dari penginputan. Faktor-faktor ini mencirikan level keseluruhan dari kelengkapan software yang ada, ukuran dan kemampuan dari komputer yang digunakan untuk pengembangan, kemampuan menampung dan pengalaman staf, dan juga pemrograman praktis serta alat-alat yang digunakan.
 
The factors are :
1 - Very Low 2 - Low 3 - Nominal 4 - High 5 - Very High
Gambar 13.1 Tampilan dengan menggunakan software COCOMO
Pada hal ini, Anda mungkin akan merasa bahwa COCOMO akan melakukan pendugaan yang baik, sejak software iniselalu tepat menentukan proyek yang lama. Tetapi, kesulitannya yaitu setiap akhir dari penggunaan software ini COCOMO selalu menanyakan nomor garis yang terdapat pada kode sumber (LOSC). Pada saat itu, Anda telah memiliki pengetahuan yang cukup mengenai sistem untuk memperkirakan LOSC dengan teliti, Anda tidak memerlukan beberapa rumus. Namun, Anda hanya memperkirakan keseluruhan proyek dengan teliti. Titik fungsi rumus-rumus. Pendekatan COCOMO dapat diperbaiki oleh produk-produk yang menghitung LOSC, yang diberikan fungsi-fungsi dari sebuah produk tersebut dan hasilnya dimasukkan ke dalam rumus-rumus COCOMO. Salah satu produknya adalah Before You Leap (BYL) oleh Gordon Group. Gambar 13.2 adalah tampilan dari BYL yang digunakan cepat untuk titik fungsi seperti bahasa yang digunakan. Hasil-hasil yang diberikan oleh BYL seperti keseluruhan dari COCOMO, kecuali hasil akhirnya akan ditampilkan dalam grafik-grafik, seperti pie chart atau diagram batang.
Gambar 13.2 BYL Function Point Analysis Screen
Harga produk yang lain tergantung pada perkiraan-perkiraan dari asosiasi komputer. CA – Estimasi memperbolehkan Anda untuk memberikan biaya, upaya, jadwal dan susunan staf di dalam COCOMO, tetapi beberapa penambahan disarankan atas permintaan hardware-nya (oriented IBM), rata-rata analisa keuangan, analisa resiko dan biaya pemeliharaan untuk single maupun keseluruhan proyek lingkungannya. CA- Estimasi dapat dimasukkan ke sistem pengembangan peralatan dan bentuk aslinya. Itu dapat diperkirakan untuk menarik pembelian dalam bentuk eceran atau bungkusan. Bentuk-bentuk dari faktor pemasukan ke dalam CA – Estimasi adalah terdaftar dalam gambar 13.3. Catatan dari ini lebih lengkap dan lebih berpengalaman dari pada COCOMO.

 
Gambar 13.3 Tabel dari input/output CA-Estimasi

Program Estimasi
Pendekatan satu rumus yang telah berhasil untuk fase estimasi perhitungan program adalah kemiripan sebuah pendekatan fungsi point. Dalam hal ini akan dijelaskan mengenai pemahaman bagaimana semua rumus itu bekerja. Jika Anda melakukan latihan untuk tingkat pemrograman, Anda akan lebih mengerti dari tingkat-tingkat yang lain. Pada dasarnya ada 2 faktor yang mempengaruhi lamanya waktu dari sebuah tugas , kerumitan dari tugas (C) dan produktivitas dari seseorang yang memperagakannya. Produktivitas dari seorang tergantung pada lamanya pengalaman seseorang (G) dalam bidang tersebut dan pengetahuan dari pekerjaan yang khusus(J). Rumus ini dapat digambarkan sebagai berikut :
D = C x ( G x J ) (Rumus 1)
Dimana :
D adalah lamanya waktu
C adalah faktor kompleksitas kesulitan
G adalah faktor pengalaman
J adalah faktor pengetahuan pekerjaan



Sumber:
iwayan.info/Lecture/PengelProySI_S1/BukuAjar/PPSI_BAB13.pdf
www.matabumi.com/cerita/cocomo

http://docs.google.com/viewer?a=v&q=cache:Zz8bM5aKeO8J:wsilfi.staff.gunadarma.ac.id/Downloads/files/20200/Pertemuan%2B10%2B-%2BEstimasi.pdf+%22teknik+estimasi%22&hl=id&gl=id&pid=bl&srcid=ADGEESgXOMQBNqGqaw4pLWuTIL9RYEbyM4bEr-Y6FrgDTCDb3csWteQ5W2Ed8AFPjLEPrFinLY46qQZP1ObpL8zhQlB7r1-TOlW-Vz_UJuMze-FRQVsxCvu43_dC0rjV2BJH5xvToK0S&sig=AHIEtbT8efZfAuTdlRa-JXGocptqE8DzWg&pli=1
Readmore »

Minggu, 10 April 2011

Fase dalam Pemrograman

Pemrograman adalah Rangkaian kegiatan atau perintah untuk dieksekusi oleh komputer. Program merupakan kumpulan instruction set yang akan dijalankan oleh pemroses, yaitu berupa software. Bagaimana sebuah sistem komputer berpikir diatur oleh program ini. Program inilah yang mengendalikan semua aktifitas yang ada pada pemroses. Program berisi konstruksi logika yang dibuat oleh manusia, dan sudah diterjemahkan ke dalam bahasa mesin sesuai dengan format yang ada pada instruction set.
Aktifitas pada fase ini adalah menulis program. Kejadian pentingnya adalah menguji program, rencana tes sistem, dan paling tidak mulai pada dokumentasi user.

Berikut langkah-langkah dalam pemrograman:
1.      Rencana Penggabungan (Plan The Integration)
2.      Mendisain Modul (Design The Module)
3.      Telusuri Disain Modul (Walk Through The Module Design)
4.      Rencana Bagaimana Menguji Modul (Plan How To Test The Module)
5.      Kode Setiap Modul (Code Each Module)
6.      Menguji Modul (Test The Module)
7.      Menguji Level Terendah dari Integrasi (Test The Lowest Levels Of Integration)
8.      Menyimpan Semua Hasil Pengujian; Penggabungan Modul-Modul yang telah Diuji (Save The Results of All Tests; Submit Finished Module to Integration)
9.      Memulai Dokumentasi User (Get Started on The User Documentation)

Fase Pemrograman  
1. Rencana Penggabungan (Plan The Integration)
Merincikan beberapa metode untuk menggabungkan bagian-bagian tersebut dan harus merencanakan urutan penggabungannya agar program tersebut dapat digabungkan.

2. Mendisain Modul (Design The Module)
Programmer menerima beberapa tingkatan disain dari fase disain. Tugasnya adalah memecah modul secara rinci ke tingkat yang lebih rendah hingga mencapai keadaan siap untuk melakukan pemrograman, hal ini disebut sebagai disain modul.
Adapun pertimbangan lainnya:
·         Jika pemecahan modul yang dihasilkan adalah sangat penting yang memerlukan prioritas seperti adanya respon, user-friendly, atau konsistensi, perancang bisa melanjutkan ke tingkat yang lebih rendah.
·         Tingkat pemecahan dari disain dinyatakan dengan kontak.
·         Jika programmer tidak mengetahui pada waktu disain, pengetahuan programmer tingkat menengah dapat diasumsikan, dan disain dapat diambil alih oleh programmer tingkat menengah yang dapat mengatasinya.
Tetapi programmer tidak senang menerima disain yang terlalu rinci, yang programnya adalah menerjemahkan bahasa Inggris sederhana, seperti pernyataan secara harafiah ke dalam bahasa pemrograman.

3. Telusuri Disain Modul (Walk Through The Module Design)
Pada fase ini, dianjurkan untuk menelusuri disain dari masing-masing modul sebelum melakukan pengkodean. Kegunaan dari penelusuran disain modul adalah untuk memastikan bahwa disain terbaik yang telah dilakukan, semua fungsi telah dialamatkan dan semua bagian telah ditangani.

4. Rencana Bagaimana Menguji Modul (Plan How to Test The Module)
Programmer harus menyiapkan rencana pengujian modul dan data pengujian sebelum dikodekan. Rencana pengujian dilakukan setelah kode ditetapkan dan cenderung hanya menguji bagian kode yang paling ‘sulit’. Pimpinan proyek bisa saja melakukan tuntutan pada penelusuran rencana pengujian sepanjang disain modul sedang dilaksanakan. Kerjakan penelusuran ini bersama-sama.

5. Kode Setiap Modul (Code Each Module)
Standar pengkodean akan ditetapkan pada saat disain sistem. Berikut ini adalah ringkasan dari sebuah program terstruktur, yaitu :
•     Jika berukuran kecil. Aturan dasarnya adalah kira-kira 100 baris kode yang dapat dieksekusi dan listingnya tidak lebih dari 2 halaman.
•     Satu entry, satu exit.
•     Referensi secara keseluruhan sedikit.
•     Konstruksi terstruktur yang digunakan : berurutan, IF/THEN/ELSE, CASE, WHILE, UNTIL, CALL (bukan GO TO).

6. Menguji Modul (Test The Module)
Programmer menguji modul dengan menetapkan lingkungan yang tepat, menyediakan beberapa input, membiarkan modul langsung memproses secara logic dan mendapatkan hasilnya. Beberapa input mungkin tidak sebenarnya, terutama jika modul tersebut tidak menyediakan input yang sebenarnya.
Modul seharusnya diuji dalam dua tahap, yaitu:
·         Tahap Pertama disebut pengujian “White Box”. Programmer harus mengetahui isi di dalam modul dan menyediakan data pengujian, sehingga masing-masing path logical dalam program dapat dieksekusi.
·         Tahap Kedua atau pengujian “Black Box” dapat dilakukan. Dalam pengujian ini, programmer mengabaikan bagian dalam dari modul data disediakan secara berurut dan dianggap seperti pemakaian sebenarnya.

7. Menguji Level Terendah dari Integrasi (Test The Lowest Levels of Integration)
Jika modul utama memanggil sub-modul, programmer harus menggabungkan dan menguji semua modul secara bersama-sama. Bahkan jika programmer tidak bertanggung jawab untuk menulis sub-modul, programmer harus menguji perintah CALL dan RETURN dari seluruh modul.
Metode terbaik untuk melakukan hal ini adalah membuat sebuah “program stub” (potongan program) sebagai pengganti sub-modul. Potongan program ini dapat terdiri dari empat baris program yang menunjukkan bahwa kontrol sudah diterima dengan baik, tampilkan parameter penerima, jika perlu lakukan pengontrolan kembali dengan beberapa parameter yang tidak sebenarnya.

8. Menyimpan Semua Hasil Pengujian; Penggabungan Modul-Modul yang Telah Diuji (Save The Results Of All Tests; Submit Finished Modules To Integration)
Hasil pengujian digunakan untuk menyusun statistik yang menunjukkan penyebab, cara perbaikan serta biaya-biaya yang dibutuhkan untuk memperbaiki kesalahan-kesalahan program.
Pimpinan proyek biasanya menguasai atau mengepalai penggabungan ini pada sistem berukuran kecil sampai sedang. Software seperti CMS (Code Management System) sangat berguna untuk menajemen konfigurasi – menjamin program tetap berjalan sesuai versinya dan mengubah ke source code.


9. Memulai Dokumentasi User (Get Started On The User Documentation)
Apakah programmer bertanggung jawab pada dokumentasi user atau tidak, tahapan ini adalah waktu terbaik untuk menjawabnya. Dokumen-dokumen berikut mungkin harus ditulis :
Tuntunan Pemakai (User’s Guide)
Dokumen ini dapat ditulis oleh programmer, penulis teknis atau bahkan user sendiri. Tampilkan kembali FS yang mempunyai bagian rinci mengenai menu, layar, form, dan user interface lainnya.
USER’S GUIDE yang baik adalah terbagi dalam bagian-bagian yang menunjukkan tingkatan user yang berbeda-beda. Sebagai contoh, dalam USER’S GUIDE sistem ABC, harus ada bagian yang disebut “Registrar’s Functions” atau “Warehouse Functions” atau lainnya. Materinya harus disesuaikan agar user dapat menggunakan secara normal. Hal ini membuat USER’S GUIDE berguna untuk mempelajari sistem.
Tuntunan Pemeliharaan (Maintenance Guide)
Bagaimana anda menemukan programmer untuk merinci dokumen dari program mereka untuk pemeliharaan berikutnya ? Kebanyakan Manajer proyek mengalami kesulitan dalam hal berikut : programmer enggan untuk melakukan dokumentasi sebelum program ditulis; dan beruntunglah menemukannya setelah semuanya selesai dikerjakan. Programmer berpikir bahwa pemeliharaan memerlukan penjelasan secara rinci dari logika pemrograman. Sangat membosankan untuk menulisnya dan sebenarnya tidak perlu. Berikut ini adalah solusi sederhana tentang hal tersebut : lebih baik merinci spesifikasi disain tingkat modul secara struktur, mendokumentasikan sendiri kode, dirasa cukup untuk pemeliharaan sistem.
MAINTENANCE GUIDE akan berisi spesifikasi disain, listing program dan penjelasan bagaimana semuanya disesuaikan, bagaimana mengubah pendekatan, dan bagaimana menghubungkan dan menguji semuanya.
Tuntunan Operator atau Tuntunan Manajer Sistem (Operator’s Guide or System Manager’s Guide)
Sama seperti USER’S GUIDE untuk orang-orang yang menghidupkan sistem di pagi hari, mematikannya, melakukan backup, menangani permasalahan utama, melakukan perhitungan, dsb. Dokumentasi yang disediakan oleh perusahaan hardware dan sistem operasi mungkin cukup – hanya prosedur untuk software tertentu yang harus ditulis ulang.
Dokumentasi Pelatihan (Training Documentation)
Jika anda akan memberikan kursus bagaimana menggunakan sistem, rencanakan apakah materi pelatihan akan diperlukan. USER’S GUIDE yang baik harusnya menambahkan hal ini. Anda mungkin harus membuat bantuan pelatihan, seperti transaparansi, buku latihan, pengujian, dan sebagainya.



Sumber: http://wsilfi.staff.gunadarma.ac.id/Downloads/files/20196/Pertemuan+09+-+Fase+Pemrograman.pdf
Readmore »

Rabu, 02 Maret 2011

Model Pengembangan Standar Profesi


Pada materi "Model Pengembangan Standar Profesi" akan membahas:
a. Jenis dan Deskripsi Profesi IT
b. ACM dan IEEE

materi dapat di download:
download materi 1
download materi 2
Readmore »

Senin, 28 Februari 2011

HTML Code

Readmore »

Kamis, 09 Desember 2010

OS Android (Linux) dan OS Iphone (MAC)

OS Android
Android dirilis pertama kali pada 5 November 2007, dengan Linux yang berperan sebagai operating sistem menjadikan android sebagai open source. Awalnya Google Inc. membeli Android Inc., pendatang baru yang membuat peranti lunak untuk ponsel. Kemudian untuk mengembangkan Android, dibentuklah Open Handset Alliance, konsorsium dari 34 perusahaan peranti keras, peranti lunak, dan telekomunikasi, termasuk Google, HTC, Intel, Motorola, Qualcomm, T-Mobile, dan Nvidia.

Kelebihan dari os android selain open source, android bekerja sama dengan Google Inc. Sehingga, layanan google seperti Gmail, Google Calendar, Google Contacts dan Google Voice dapat digunakan oleh pengguna android. Salah satu hal dari Android adalah saat pertama menyalakannya Anda diminta memasukkan nama pengguna Google dan password dan semua pesan Google, kontak dan info lainnya mulai tersinkronisasi ke handset tanpa sync ke desktop.

Sayang sekali, untuk android ini belum mempunyai media pemutar video maupun audio yang resmi. Namun, pada umumnya Android memberi Anda lebih banyak pilihan tentang bagaimana mengatur ponsel Anda dan kontennya. Salah satu kelemahan Google adalah begitu banyak menyediakan versi Android. Manufaktur dan operator dapat memutuskan meng-upgrade ponsel mereka ke versi terbaru Android.

OS Iphone
Iphone adalah telephone genggam yang diproduksi oleh Apple Inc. Selain itu telepon ini juga dapat dihubungkan dengan jaringan internet, untuk melakukan berbagai aktivitas misalnya mengirim/menerima email, menjelajah web, dan lain-lain. Antarmuka dengan pengguna menggunakan layar sentuh multi-touch (atau bisa juga disebut dengan layar sentuh kapasitif) dengan papan ketik virtual dan tombol.

Iphone tidak hanya merupakan sebuah telephone melainkan ekosistem, dimana tidak dimiliki oleh produk lain. Integrasinya dengan semua produk Apple lainnya seperti iTunes, iPod, Mac, dll membuat pengguna Apple enggan berpindah platform. Dukungan jutaan aplikasinya termasuk game game high end juga menjadi faktor penting dalam kesuksesan apple iPhone (bahkan fungsi game nya diklaim menyaingi platform game sukses sebelumnya macam sony PSP dan Nitendo DS).

Perbandingan Android dan Iphone:
Pada platform Android berbasis Linux, setiap aplikasi berjalan dalam penyimpanan terpisah. Setiap aplikasi diisolasi secara unik dengan pengaturan hak akses untuk mengatur apakah aplikasi tertentu diperbolehkan untuk mengakses. Akibatnya, pengguna Linux biasanya tidak memiliki “root” atau hak istimewa yang dapat mengakses file sistem. Aplikasi Android pun dibatasi untuk mengakses file sistem. Sama seperti sistem operasi Linux pada desktop yang meminimalkan kerusakan yang dapat dilakukan  oleh virus, dengan kata lain, Android membatasi potensi kerusakan yang dapat dilakukan oleh aplikasi jahat.

Pada sistem Android pun, seluruh akses Aplikasi baru diatur oleh pengguna, misalnya saja akses telepon, akses penggunaan GPS dan lain-lain. Berbeda dengan iPhone yang membebaskan semua aplikasi dapat mengakses seluruh sistem tanpa harus menginformasikan ke pengguna. Dari sisi keamanan aplikasi terlihat Android lebih unggul dengan pemberitahuan akses data oleh aplikasi pihak ke 3 yang dianggap berbahaya. Sedangkan pada iPhone, Anda tidak akan tahu apakah Aplikasi tersebut berbahaya atau tidak.

Sistem Operasi Android menempatkan pengguna untuk mengendalikan serta mengevaluasi kebutuhan suatu aplikasi sebelum menginstalnya. Sebaliknya, pada AppStore iPhone, Apple yang mengevaluasi setiap aplikasi yang masuk ke pasar aplikasi tersebut. Sedangkan pasar Android tidak memiliki pembatasan dari Google, sehingga dengan mudah pengembang aplikasi menempatkan aplikasi yang dibuatnya tanpa harus di “Filter” oleh Google. Sehingga di harapkan pengguna Android dapat mengevaluasi sendiri Aplikasi tersebut sebelum diinstall.

Dari sisi pasar Aplikasi, jelas iPhone unggul dengan keamanan aplikasi yang saring oleh Apple sendiri. Namun penyaringan tersebut perlu kerja tambahan dari Apple untuk menyaring setiap kode aplikasi yang dimungkinkan diselipkan kode-kode berbahaya, namun dari ribuan aplikasi baru yang membludak dari hari ke hari, kemungkinan besar ada saja aplikasi jahat yang dapat mengancam keamanan sistem iPhone.

Hal ini sempat diriset oleh salah satu badan riset “Lookout” yang menginformasikan bahwa pengguna iPhone memiliki jumlah aplikasi yang dapat mengakses data pengguna 2x lebih banyak daripada Android, baik itu mengakses buku telepon pengguna, maupun mengambil data lokasi.
Android merupakan paltform OpenSource dari Google. Keterbukaan pengembangan sistem oleh siapapun dimungkinkan disini. Sehingga kode-kode yang merupakan dasar sistem diawasi oleh banyak pengembang di seluruh dunia yang ikut serta didalamnya. Sedangkan Apple hanya mengandalkan pengembang yang bekerja dengan Apple. Tapi seberapa banyak pengembang sistem iOS di Apple, apakah dapat sebanyak dan setangguh pengembang Android di seluruh dunia dalam menutup celah keamanan.

Informasi maupun ancaman kode-kode tertentu dapat lebih cepat diinformasikan dari  seluruh dunia baik itu ancaman kode-kode, maupun celah keamanan. Dalam Era transparansi dan partisipasi dari seluruh pihak, Android memiliki keterbukaan dan kontrol pengguna mengenai apa saja yang dibutuhkan oleh setiap pengguna Smartphone yang berkembang pesat dewasa ini. Tidak ada perusahaan tunggal dengan segilintir karyawan yang dapat melindungi pengguna dari segala sesuatu. Kebebasan pengontrolan aplikasi oleh pengguna sangat penting disini, apalagi menyangkut data Privacy pengguna. Akan lebih baik lagi apabila Google lebih ketat menyaring setiap aplikasi baru sebelum masuk ke Android Market.


Sumber:
http://id.wikipedia.org/wiki/IPhone
http://www.inilah.com/read/detail/742301/inilah-10-fakta-menyangkut-ponsel-android
http://www.teknologinet.com/2010/08/aplikasi-keamanan-os-android-vs-iphone.html
Readmore »