Senin, 30 Mei 2016

Project II - Tahap Penyelesaian Perangkat Lunak di Sebuah Perusahaan



Teknik Mengukur Durasi - pengalaman
1. Perkirakan jumlah minimal waktu yang dibutuhkan untuk melakukan tugas - durasi optimis (OD).
2. Perkirakan jumlah maksimum waktu yang dibutuhkan untuk melakukan tugas - durasi pesimis (PD).
3. Perkirakan diharapkan durasi (ED) yang akan dibutuhkan untuk melakukan tugas tersebut. - Gangguan dan keterlambatan waktu
4. Hitung rata-rata tertimbang dari yang paling mungkin durasi (D) sebagai berikut:

Berdasarkaan rumus dan petunjuk gambar diatas,
Ketika kita ingin menyelesaikan perangkat lunak di sebuah perusahaan kita harus memikirkan perkiraan project yang akan kita kerjakan.
dengan menggunakan rumus diatas kita akan menentukan
1. Ketika Kita memperkirakan jumlah minimal waktu yang kita butuhkan untuk menyelesaikan perangkat lunak tersebut 2 hari,
2. Ketika kita memperkirakan jumlah maksimum waktu yang kita butuhkan untuk menyelesaikan perangkat lunak tersebut 6 hari

3. Serta tidak lupa kita juga memperkirakan durasi yang kita harapkan untuk menyelesaikan perangkat lunak tersebut dengan memperkirakan gangguan dan keterlambatan waktu tersebut 3 hari

maka kita akan membaginya dengan 6 hari maksimal perkiraan yang kita perkirakan agar perangkat lunak tersebut terselesaikan 

maka ,waktu ideal perangkat lunak yang kita kerjakan akan memakan waktu 3 hari .
sebagai contohnya :

kita ingin membuat perangkat lunak disebuah perusahaan dengan waktu yang ideal
kita memperkirakan jumlah minimum waktu yang kita butuhkan untuk menyelesaikan perangkat lunak tersebut 4 minggu
selanjutnya kita memperkirakan jumlah maksimum waktu yang kita butuhkan untuk menyelesaikan perangkat lunak tersebut 8 minggu
Serta tidak lupa kita juga memperkirakan durasi yang kita harapkan untuk menyelesaikan perangkat lunak tersebut dengan memperkirakan gangguan dan keterlambatan waktu tersebut 2 minggu

ddengan menggunakan rumus di atas maka kita akan menyelesaikannya ddengan 2,5 minggu

D=(1 X 4 Minggu ) + (4 X 2 Minggu) +  (1 X 8 Minggu) / 8

= 4 + 8 + 8 / 8
= 2.5 Minggu

Pengembangan jadwal proyek :
-Tidak hanya jangka waktu tugas
-tetapi juga intertask dependensi
-Empat jenis dependensi intertask
   *Finish-to-start (FS): Akhir dari satu tugas memicu awal tugas lain.
   *Start-to-start (SS): Awal satu tugas memicu awal tugas lain.
   *Finish-to-finish (FF): Dua tugas harus selesai pada waktu yang sama.
   *Start-to-finish (SF): Awal satu tugas menandakan akhir dari tugas lain.

Tahapan penyelesaian Perangkat Lunak di sebuah perusahaan , dengan menentukan judul dan kapan idealnya perangkat lunak tersebut selesai dikerjakan.
I. Tujuan
II. latar belakang
      A. Masalah, peluang, atau pernyataan direktif
      B. Sejarah permintaan proyek
      C. Tujuan proyek
      D. Deskripsi Produk
III. Cakupan
      A. Stakeholder
      B. Pengetahuan
      C. Proses
      D. Komunikasi
IV. Pendekatan proyek
      A. Route
      B. Kerja
V. Pendekatan Manaterial
Pertimbangan bangunan
     A. Tim
    B. Manajer dan pengalaman 
    C. Pelatihan
    D. jadwal Rapat
    E. Pelaporan metode dan frekuensi manajemen
    F. Konflik
    G. Manajemen Cakupan
VI. kendala
Tanggal
    A. Mulai
    B. Batas Waktu
    C. Anggaran
    D. Teknologi
VII. Perkiraan kasarnya
    A. Sebuah jadwal
    B. Anggaran
VIII. Kondisi Kepuasan
Kriteria
    A. Sukses
    B. Asumsi
    C. Risiko

IX. lampiran

Secara konseptual siklus pengembangan sebuah sistem informasi adalah sebagai berikut :
1. Analisis Sistem: menganalisis dan mendefinisikan masalah dan kemungkinan solusinya untuk sistem informasi dan proses organisasi.
2. Perancangan Sistem: merancang output, input, struktur file, program, prosedur, perangkat keras dan perangkat lunak yang diperlukan untuk mendukung sistem informasi
3. Pembangunan dan Testing Sistem: membangun perangkat lunak yang diperlukan untuk mendukung sistem dan melakukan testing secara akurat. Melakukan instalasi dan testing terhadap perangkat keras dan mengoperasikan perangkat lunak
4. Implementasi Sistem: beralih dari sistem lama ke sistem baru, melakukan pelatihan dan panduan seperlunya.
5. Operasi dan Perawatan: mendukung operasi sistem informasi dan melakukan perubahan atau tambahan fasilitas.
6. Evaluasi Sistem: mengevaluasi sejauih mana sistem telah dibangun dan seberapa bagus sistem telah dioperasikan.
Siklus tersebut berlangsung secara berulang-ulang. Siklus di atas merupakan model klasik dari pengembangan sistem informasi. Model-model baru, seperti prototyping, spiral, 4GT dan kombinasi dikembangkan dari model klasik di atas.
Analisis Sistem
Alasan pentingnya mengawali analisis sistem:
1.      Problem-solving: sistem lama tidak berfungsi sesuai dengan kebutuhan. Untuk itu analisis diperlukan untuk memperbaiki sistem sehingga dapat berfungsi sesuai dengan kebutuhan.
2.       Kebutuhan baru: adanya kebutuhan baru dalam organisasi atau lingkungan sehingga diperlukan adanya modifikasi atau tambahan sistem informasi untuk mendukung organisasi.

3.       Mengimplementasikan ide atau teknologi baru.

4.       Meningkatkan performansi sistem secara keseluruhan.

Perancangan Sistem.
Analisis sistem digunakan untuk menjawab pertanyaan what? Sedangkan desain digunakan untuk menjawab pertanyaan how? Desain berkonsentrasi pada bagaimana system dibangun untuk memenuhi kebutuhan pada fase analisis. Elemen-elemen pengetahuan yang berhubungan dengan proses desain:
1. Sumber daya organisasi: bertumpu pada 5 unsur organisasi, yaitu: man, machines, material, money dan methods.
2. Informasi kebutuhan dari pemakai: informasi yang diperoleh dari pemakai selama fase analisis sistem.
3. Kebutuhan sistem: hasil dari analisis sistem.
4. Metode pemrosesan data, apakah: manual, elektromechanical, puched card, atau computer base.
5. Operasi data. Ada beberapa operasi dasar data, antara lain: capture, classify, arrange, summarize, calculate, store, retrieve, reproduce dan disseminate.
6. Alat bantu desain, seperti: dfd, dcd, dd, decision table dll.

Langkah dasar dalam proses desain:
1. Mendefinisikan tujuan sistem (defining system goal), tidak hanya berdasarkan informasi pemakai, akan tetapi juga berupa telaah dari abstraksi dan karakteristik keseluruhan kebutuhan informasi sistem
2. Membangun sebuah model konseptual (develop a conceptual model), berupa gambaran sistem secara keseluruhan yang menggambarkan satuan fungsional sebagai unit sistem.
3. Menerapkan kendala organisasi (applying organizational contraints). Menerapkan kendala-kendala sistem untuk memperoleh sistem yang paling optimal. Elemen organisasi merupakan kendala, sedangkan fungsi-fungsi yang harus dioptimalkan adalah: performance, reliability, cost, instalation schedule, maintenability, flexibility, grouwth potensial, life expectancy. Model untuk sistem optimal dapat digambarkan sebagai sebuah model yang mengandung: kebutuhan sistem dan sumber daya organisasi sebagai input; faktor bobot terdiri atas fungsi-fungsi optimal di atas; dan total nilai yang harus dioptimalkan dari faktor bobot tersebut.
4. Mendefinisikan aktifitas pemrosesan data (defining data processing activities). Pendefinisian ini dapat dilakukan dengan pendekatan input-proses-output. Untuk menentukan hal ini diperlukan proses iteratif sebagai berikut
·         Mengidentifikasn output terpenting untuk mendukung/mencapai tujuan sistem (system’s goal)
·         Me-list field spesifik informasi yang diperlukan untuk menyediakan output tersebut
·         Mengidentifikasi input data spesifikik yang diperlukan untuk membangun field informasi yang diperlukan.
·         Mendeskripsikan operasi pemrosesan data yang diterapkan untuk mengolah input menjadi output yang diperlukan.
·         Mengidentifikasi elemen input yang menjadi masukan dan bagian yang disimpan selama pemrosesan input menjadi output.
·         Ulangi langkah tersebut terus menerus samapi semua output yang dibutuhkan diperoleh.
·         Bangun basis data yang akan mendukung efektifitas sistem untuk memenuhi kebutuhan sistem, cara pemrosesan data dan karakteristik data.
·         Berdasarakan kendala-kendala pembangunan sistem, prioritas pendukung, estimasi cost pembangunan; kurangi input, output dan pemrosesan yang ekstrim
·         Definisikan berbagai titik kontrol untuk mengatur aktifitas pemrosesan data yang menentukan kualitas umum pemrosesan data.
·         Selesaikan format input dan output yang terbaik untuk desain sistem.
5. Menyiapkan proposal sistem desain. Proposal ini diperlukan untuk manajemen apakah proses selanjutnya layak untuk dilanjutkan atau tidak. Hal-hal yang perlu disiapkan dalam penyusunan proposal ini adalah:
·         Menyatakan ulang tentang alasan untuk mengawali kerja sistem termasuk tujuan/objektif khusus dan yang berhubungan dengan kebutuhan user dan desain sistem.
·         Menyiapkan model yang sederhana akan tetapi menyeluruh sistem yang akan diajukan.
·         Menampilkan semua sumber daya yang tersedia untuk mengimplementasikan dan merawat sistem.
·         Mengidentifikasi asumsi kritis dan masalah yang belum teratasi yang mungkin berpengaruh terhadap desain sistem akhir.

Prinsip Dasar Desain.
 Ada 2 prinsip dasar desain, antara lain:
1.      Desain sistem monolitik. Ditekankan pada integrasi sistem. Resource mana yang bisa diintegrasikan untuk memperoleh sistem yang efektif terutama dalam cost.
2.      Desain sistem modular. Ditekankan pada pemecahan fungsi-fungsi yang memiliki idependensi rendah menjadi modul-modul (subsistem fungsional) yang terpisah sehingga memudahkan kita untuk berkonsentrasi mendesain per modul. Sebuah sistem informasi dapat dipecah menjadi 7 subsistem fungsional, yaitu: data collection, data processing, file update, data storage, data retrival, information report dan data processing controls.
 Petunjuk umum dalam desain subsistem fungsional sebuah sistem informasi:
1. Sumber data sebaiknya hanya dikumpulkan sekali sebagai input ke sistem informasi.
2. Akurasi sumber data sangat tergantung pada banyaknya langkah untuk me-record, collect dan prepare data untuk prosessing. Semakin sedikit langkah semakin akurat.
3. Data yang dihasilkan dari sistem berbasis komputer sebaiknya tidak dimasukkan lagi ke sistem.
4. Pewaktuan yang diperlukan untuk mengumpulkan data harus lebih kecil dari pewaktuan informasi tersebut diperlukan.
5. Perlu pemilihan cara pengumpulan data yang paling optimal
6. Pengumpulan data tidak harus on-line, melainkan tergantung dari kebutuhan informasi.
7. Semua sumber data harus dapat di validasi dan diedit segera setelah di kumpulkan.
8. Data yang sudah divalidasi, sebaiknya tidak divalidasi pada proses selanjutnya.
9. Total kontrol harus segera di cek lagi sebelum dan sesudah sebuah aktifitas prosesing yang besar dilakukan.
10. Data harus dapat disimpan hanya di 1 tempat dalam basis data kecuali ada kendala sistem.
11. Semua field data sebaiknya memiliki prosedur entri dan maintenance.
12. Semua data harus dapat dicetak dalam format yang berarti untuk keperluan audit.
13. File transaksi harus di maintain paling tidak dalam 1 siklus update ke basis data.
14. Prosedur backup dan security harus disediakan untuk semua field data.
15. Setiap file non sequential perlu memiliki prosedur reorganisasi secara periodik.
16. Semua field data harus memiliki tanggal update/akses penyimpanan terakhir.
Untuk menganalisa sistem secara efektif, kita membutuhkan lebih dari sekedar perangkat permodelan; yaitu metode. Metode ini dari waktu ke waktu berubah sesuai dengan perkembangan teknologi. Siklus ini cenderung menglami perubahan yang berarti dengan ditemukannya bahasa generasi keempat dan terakhir generasi kelima dimana pendekatan dengan paradigma object-oriented dan kompatibilitas antar model.
Pada dasarnya ada dua metode pendekatan dalam membangun sistem, yang pertama yaitu topdown. Pada metode ini sistem yang diturunkan dari pemetaan secara global yang kemudian akan menurun ke arah yang lebih deskriptif. Metode ini dianalogikan sebagai pembuatan rumah yang dimulai dari aspek yang paling mendasar yaitu pondasi hingga ke bagian terkecil misalnya sebuah kran pada kamar mandi. Metode kedua yaitu bottom-up, dimana sistem dipetakan dari satuan terkecil sehingga ke satuan terbesar, misalnya perakitan mobil. Pada awal 1980an mulai dikenal teknik pendesainan terstruktur dengan menggunakan konsep pararel dan siklus, misalnya antara uji coba program dan pemrograman dapat dilakukan kerja pararel dan seandainya ada sesuatu yang salah ketika implementasi maka dilakukan survey, analisa dan desain ulang yang menggantikan metode pendesainan klasik yang cenderung serial.
Pada prinsipnya aktivitas pendesainan sistem secara terstruktur melingkupi :
·         Survey ; berfungsi untuk mengetahui kebutuhan pemakai, kesalahan-kesalahan dalam sistem lama, menetapkan tujuan perancangan, mengajukan usulan otomasi sistem yang layak dan dapat diterima, dan menyiapkan laporan survey yang berisi tentang segala sesuatu, pada poin di atas.
·         Analisa sistem ; menggabungkan laporan survey dan kebijakan pemakai menjadi spesifikasi yang terstruktur dengan menggunakan permodelan.
·         Desain ; mengimplementasikan model yang diinginkan pemakai.
·         Implementasi ; merepresentasikan hasil desain ke dalam pemograman.
·         Uji coba desain ; menguji coba seluruh spesifikasi terstruktur.
·         Testing akhir ; menguji sistem secara keseluruhan.
·         Deskripsi prosedur ; pembuatan laporan teknis tertulis seperti petunjuk pemakaian dan pengoperasian.
·         Konversi database ; mengkonversi data, soalnya kata data sudah berarti jamak pada sistem sebelumnya.
·         Instalasi ; aspek terakhir yang mesti dilakukan mencakup, serah terima manual, perangkat keras dan pelatihan pemakaian.

PENDEKATAN PENGEMBANGAN SISTEM
Terdapat beberapa pendekatan dalam pengembangan system,antara lain :

a. Pendekatan Klasik

Disebut juga pendekatan tradisional/ konvensional. Pendekatan klasik mengembangkan sistem dengan tahapan-tahapan system life cycle. Pendekatan ini menekankan bahwa pengembangan akan berhasilbila mengikuti tahapan pada Sistem Life Cycle.
Permasalahan yang dapat timbul pada pendekatan klasik :
1.Pengembangan perangkat lunak akan menjadi sulit
2. Biaya perawatan dan pemeliharaan sistem akan menjadi mahal
3. Kemungkinan kesalahan sistem besar
4. Keberhasilan sistem kurang terjamin
b. Pendekatan Terstruktur
Pendekatan terstruktur akan dilengkapi dengan alat-alat dan teknik-teknik yang dibutuhkan dalam pengembangan sistem, sehingga hasil akhir dari sistem yang dikembangkan akan didapatkan sistem yang strukturnya didefinisikan dengan baik dan jelas. Beberapa metodologi pengembangan sistem yang terstruktur telah banyak yang diperkenalkan dalam buku-buku maupun perusahaan-perusahaan konsultan pengembang sistem. Metodologi ini memperkenalkan penggunaa alat-alat dan teknik-teknik untuk pengembangan sistem yang terstruktur.
Konsep pengembangan sistem terstruktur bukan merupakan konsep yang baru. Teknik perakitan di pabrik dan sirkuit untuk alat elektronik adalah dua contoh baru konsep ini yang banyak digunakan di industri. Konsep ini relatif masih baru dalam pengembangan sistem informasi untuk menghasilkan produk sistem yang memuaskan hasilnya. Melalui pendekatan struktur,permasalahan yang kompleks dalam organisasi dapat dipecahkan dan hasil dari produktifitas dan kualitasnya lebih baik ( bebas kesalahan ).
Keuntungan pendekatan terstruktur :
a. Mengurangi kerumitan masalah
b. Konsep mengarah pada sistem yang ideal
c. Standarisasi
d. Orientasi kemassa datang

c. Pendekatan dari bawah ke atas
Pendekatan ini dimulai dari level bawah organisasi, yaitu level operasional dimana transaksi dilakukan. Pendekatan ini dimulai dari perumusan kebutuhan untuk menangani transaksi dan naik ke level atas dengan merumuskan kebutuhan informasi berdasarkan transaksi tersebut. Pendekatan ini ciri-ciri dari pendekatan klasik. Pendekatan dari bawah ke atas bila digunakan pada tahap analisis sistem disebut juga dengan istilah data analisis, karena yang menjadi tekanan adalah data
yang akan di olah terlebih dahulu, informasi yang akan dihasilkan menyusul mengikuti datanya.
d. Pendekatan dari atas ke bawah
Pendekatan dari ats ke bawah (Top down approach) dimulai dari level atas organisasi, yaitu level perencanaan strategi. Pendekatan ini dimulai dengan mendefinisikan sasaran dan kebijaksanaan organisasi. Langkah selanjutnya dari pendekatan ini adalah dilakukannya analisis kebutuhan informasi. Setelah kebutuhan informasi ditentukan, maka proses turun ke pemrosesan transaksi yaitu penentuan output,input, basis data, prosedur operasi dan kontrol. Pendekatan ini juga merupakan ciri-ciri pendekatan terstruktur. Pendekatan atas turun bila digunakan pada tahap analisis sistem disebut juga dengan istilah decision analysis, karena yang menjadi tekanan adalah informasi yang dibutuhkan untuk pengambilan keputusan oleh manajemen terlebih dahuli kemudian data yang perlu dipilah didefinisikan menyusut mengikuti informasi yang dibutuhkan.
e. Pendekatan Sepotong ( placemeal approach )
Pengembangan yang menekankan pada suatu kegiatan tertentu tanpa memperhatikan posisinya/sasaran di sistem informasi secara global.
f. Pendekatan sistem ( sistem approach )
Memperhatikan sistem informasi sebagai satu kesatuan terintregasi untuk masing-masing kegiatan aplikasinya dadn menekankan sasaran organisasinya secara global.
g. Pendekatan sistem menyeluruh ( total sistem approach )
Pendekatan pengembangan sistem serentak secara menyeluruh sehingga menjadi sulit untuk dikembangkan ( ciri klasik ).
h. Pendekatan modular ( Modular approach )
Pendekatan dengan memecah sistem komplek menjadi modul yang sederhana sehingga sistem lebih mudah dipahami dan dikembangkan, tepat waktu, mudah di pelihara ( ciri terstruktur ).
i. Lompatan jauh
Pendekatan yang menerangkan perubahan menyeluruh secara serentak menggunakan teknologi canggih sehingga mengandung resiko tinggi, terlalu mahal, sulit
dikembangkan karena terlalu komplek.

j. Pendekatan berkembang

Pendekatan yang menerapkan teknologi canggih hanya untuk aplikasi yang memerlukan saja dan terus dikembangkan untuk periode berikutnya mengikuti kebutuhan dan teknologi yang ada.

Kamis, 28 April 2016

RPL (Project 1) NPM Ganjil



Pokok Pembahasan
Untuk NPM Ganjil

Pengenalan Rekayasa Perangkat Lunak
1. Konsep dasar Rekayasa Perangkat Lunak (Software Engineering) :
2. Tanggung Jawab profesional dan etika
3. Siklus Hidup Perangkat Lunak (SWDLC/Software Development Life Cycle)

Perencanaan Proyek Prangkat Lunak
1.Observasi pada Estimasi
2.Tujuan Perencanaan Proyek
3.Ruang Lingkup Perangkat Lunak
4.Sumber Daya
5.Estimasi Proyek Perangkat Lunak

Pengenalan Rekayasa Perangkat Lunak

Pengertian Dasar

Istilah Reakayasa Perangkat Lunak (RPL) secara umum disepakati sebagai terjemahan dari istilah Software engineering. Istilah Software Engineering mulai dipopulerkan pada tahun 1968 pada software engineering Conference yang diselenggarakan oleh NATO. Sebagian orang mengartikan RPL 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 atau prosedur. Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses informasi (O’Brien, 1999).Pengertian RPL sendiri adalah suatu disiplin ilmu yang membahas semua aspek produksi perangkat lunak, mulai dari tahap awal yaitu analisa kebutuhan pengguna, menentukan spesifikasi dari kebutuhan pengguna, disain, pengkodean, pengujian sampai pemeliharaan sistem setelah digunakan. Dari pengertian ini jelaslah bahwa RPL tidak hanya berhubungan dengan cara pembuatan program komputer. Pernyataan ”semua aspek produksi” pada pengertian di atas, mempunyai arti semnua hal yang berhubungan dengan proses produksi seperti manajemen proyek, penentuan personil, anggaran biaya, metode, jadwal, kualitas sampai dengan pelatihan pengguna merupakan bagian dari RPL.

Sejarah Software Engineering

Istilah software engineering digunakan pertama kali pada akhir 1950-an dan awal 1960-an. Saat itu, masih terdapat perdebatan tajam mengenai aspek engineering dari pengembangan perangkat lunak. Pada tahun 1968 dan 1969, komite sains NATO mensponsori dua konferensi tentang rekayasa perangkat lunak, yang memberikan dampak kuat terhadap pengembangan rekayasa perangkat lunak. Banyak yang menganggap dua konferensi inilah yang menandai awal resmi profesi rekayasa perangkat lunak.Pada tahun 1960-an hingga 1980-an, banyak masalah yang ditemukan para praktisi pengembangan perangkat lunak. Banyak project yang gagal, hingga masa ini disebut sebagai krisis perangkat lunak. Kasus kegagalan pengembangan perangkat lunak terjadi mulai dari project yang melebihi anggaran, hingga kasusu yang mengakibatkan kerusakan fisik dan kematian. Salah satu kasus yang terkenal antara lain meledaknya roket Ariane akibat kegagalan perangkat lunak. Selama bertahun-tahun, para peneliti memfokuskan usahanay untuk menemukan teknik jitu untuk memecahkan masalah krisi perangkat lunak. Berbagai teknik, metode, alat, proses diciptakan dan diklaim sebagai senjata pamungkas untuk memecahkan kasus ini. Mulai dari pemrograman terstruktur, pemrograman berorientasi objek, pernagkat pembantu pengembangan perangkat lunak (CASE tools), berbagai standar, UML hingga metode formal diagung-agungkan sebagai senjaat pamungkas untuk menghasilkan software yang benar, sesuai anggaran dan tepat waktu. Pada tahun 1987, Fred Brooks menulis artikel No Silver Bullet, yang berproposisi bahwa tidak ada satu teknologi atau praktek yang sanggup mencapai 10 kali lipat perbaikan dalam produktivitas pengembanan perngkat lunak dalam tempo 10 tahun.Sebagian berpendapat, no silver bullet berarti profesi rekayasa perangkat lunak dianggap telah gagal. Namun sebagian yang lain justru beranggapan, hal ini menandakan bahwa bidang profesi rekayasa perangkat lunak telah cukup matang, karena dalam bidang profesi lainnya pun, tidak ada teknik pamungkas yang dapat digunakan dalam berbagai kondisi.

1. Konsep Dasar Perangkat Lunak

a. Apa itu perangkat lunak?
Perangkat lunak merupakan program komputer yang berfungsi menghubungkan antara pengguna dan komputer yang digunakan. dapat dibilang perangkat lunak merupakan sebagai media penerjemah perintah yang diberikan oleh pengguna kepada komputer untuk selanjutnya diproses melalui perangkat keras komputer tersebut.Perangkat lunak umumnya digunakan untuk mengontrol perangkat keras yang biasa disebut sebagai device driver, melakukan proses penghitungan, berinteraksi dengan perangkat lunak yang lebih mendasar lainnya, seperti sistem operasi dan bahasa pemrograman.

Secara umum ada tiga jenis perangkat lunak yang diketahui hingga saat ini yaitu sistem operasi yang merupakan sebuah penghubung antara pengguna dari komputer dengan perangkat keras komputer. Kedua yaitu perangkat lunak bahasa pemrograman seperti java. Dan yang ketiga yaitu perangkat lunak aplikasi yang merupakan penrangkat yang digunakan untuk membantu dan memudahkan pekerjaan seseorang misalnya saja Microsoft Excel, Word, dan Power Point

b. Apa itu Rekayasa Perangkat Lunak?
Rekayasa atau teknik merupakan penerapan ilmu dan teknologi untuk menyelesaikan permasalahan manusia. Hal ni diselesaikan lewat pengetahuan, matematika, dan pengalaman praktis yang diterapkan untuk mendesain objek atau proses yang berguna. Para praktisi teknik professional disebut perekayasa.

Rekayasa perangkat lunak atau Software engineering dalam bahasa inggris merupakan bidang ilmu yang mempelajari tentang segala aspek perangkat lunak, seperti cara-cara pengembangan, pemeliharaan , pembuatan, serta manajemen kualitas perangkat lunak.

Rekayasa perangkat lunak jugamerupakan disiplin rekayasa dengan perangkat lunak yang dikembangkan. Biasanya proses melibatkan penemuan pada keinginan klien, menyusunnya didalam daftar kebutuhan, merangcang arsitektur yang mampu mendukung semua kebutuhan, perancangan, pengodean, pengujian, dan pengintegrasian bagian yang terpisah, menguju keseluruhan, penyebaran, dan pemeliharaan perangkat lunak.


2. Tanggung Jawab Profesional dan Etika

Tanggung Jawab Profesional dan Etika

Rekayasa perangkat lunak jelas dibatasi oleh hukum lokal, nasional dan internasional. Perekayasa perangkat lunak harus memiliki tanggung jawab etis dan moral jika ingin dihormati sebagai profesional. Terdapat beberapa standar dan kode etik yang harus dipertimbangkan, yaitu:
Konfidensialitas, Harus menghormati konfidensialitas atasan dan kliennya walaupun tidak ada persetujuan yang ditanda tangani secara formal.
Kompetensi. Tidak boleh menyalahi tingkat kompetensinya (melebihi atau menyimpang)
Hak Properti Intelektual, Menyadari terhadap hukum yang mengatur penggunaan properti intelektual, seperti paten, hak cipta dan lain sebagainya.
Penyalahgunaan Komputer, Tidak boleh dengan sengaja menyalah gunakan komputer yang nantinya berakibat merugikan orang lain, seperti penyebaran virus, penyadapan dan lain sebagainya.


3. Siklus Hidup Perangkat Lunak (SWDLC/Software Development Life Cycle)

System Development Life Cycle (SDLC)
SDLC adalah tahapan-tahapan pekerjaan yang dilakukan oleh analis sistem dan programmer dalam membangun sistem informasi.Langkah yang digunakan meliputi :

1. Melakukan survei dan menilai kelayakan proyek pengembangan sistem informasi
2. Mempelajari dan menganalisis sistem informasi yang sedang berjalan
3. Menentukan permintaan pemakai sistem informasi
4. Memilih solusi atau pemecahan masalah yang paling baik
5. Menentukan perangkat keras (hardware) dan perangkat lunak (software)
6. Merancang sistem informasi baru
7. Membangun sistem informasi baru
8. Mengkomunikasikan dan mengimplementasikan sistem informasi baru
9. Memelihara dan melakukan perbaikan/peningkatan sistem informasi baru bila diperlukan.

System Development Lyfe Cycle (SDLC) adalah keseluruhan proses dalam membangun sistem melalui beberapa langkah. Ada beberapa model SDLC. Model yang cukup populer dan banyak digunakan adalah waterfall. Beberapa model lain SDLC misalnya fountain, spiral, rapid, prototyping, incremental, build & fix, dan synchronize & stabilize.

Dengan siklus SDLC, proses membangun sistem dibagi menjadi beberapa langkah dan pada sistem yang besar, masing-masing langkah dikerjakan oleh tim yang berbeda.
Dalam sebuah siklus SDLC, terdapat enam langkah. Jumlah langkah SDLC pada referensi lain mungkin berbeda, namun secara umum adalah sama. Langkah tersebut adalah:

1. Analisis sistem, yaitu membuat analisis aliran kerja manajemen yang sedang berjalan
2. Spesifikasi kebutuhan sistem, yaitu melakukan perincian mengenai apa saja yang dibutuhkan dalam pengembangan sistem dan membuat perencanaan yang berkaitan dengan proyek sistem
3. Perancangan sistem, yaitu membuat desain aliran kerja manajemen dan desain pemrograman yang diperlukan untuk pengembangan sistem informasi
4. Pengembangan sistem, yaitu tahap pengembangan sistem informasi dengan menulis program yang diperlukan
5. Pengujian sistem, yaitu melakukan pengujian terhadap sistem yang telah dibuat
6. Implementasi dan pemeliharaan sistem, yaitu menerapkan dan memelihara sistem yang telah dibuat

Siklus SDLC dijalankan secara berurutan, mulai dari langkah pertama hingga langkah keenam. Setiap langkah yang telah selesai harus dikaji ulang, kadang-kadang bersama expert user, terutama dalam langkah spesifikasi kebutuhan dan perancangan sistem untuk memastikan bahwa langkah telah dikerjakan dengan benar dan sesuai harapan. Jika tidak maka langkah tersebut perlu diulangi lagi atau kembali ke langkah sebelumnyKaji ulang yang dimaksud adalah pengujian yang sifatnya quality control, sedangkan pengujian di langkah kelima bersifat quality assurance. Quality control dilakukan oleh personal internal tim untuk membangun kualitas, sedangkan quality assurance dilakukan oleh orang di luar tim untuk menguji kualitas sistem. Semua langkah dalam siklus harus terdokumentasi. Dokumentasi yang baik akan mempermudah pemeliharaan dan peningkatan fungsi system


Perencanaan Proyek Prangkat Lunak

1. Observasi pada Estimasi
Estimasi yang diperlukan dalam perancangan proyek perangkat lunak di antaranya adalah sumber daya, biaya, dan jadwal sebagai usaha dalam pengembangan perangkat lunak, mengakses informasi historis yang baik, dan keberanian untuk melakukan pengukuran kuantitatif bila hanya data kualitatif saja yang ada. Berikut adalah yang menimbulkan ketidakpastian dalam estimasi:

a. Project complexity (kompleksitas proyek) berpengaruh kuat terhadap ketidakpastian yang inheren dalam perencanaan. Komplekitas ini merupakan pengukuran relatif yang dipengaruhi oleh kebiasaan dengan usaha yang dilakukan sebelumnya
b. Project size (Ukuran proyek) Merupakan faktor penting yang dapat mempengaruhi akurasi estimasi. Bila ukuran bertambah maka ketergantungan di antara berbagai elemen perangkat lunak akan meningkat dengan cepat.

Structural uncertainty (Ketidakpastian struktural) Tingkat ketidakpastian strutural juga berpengaruh dalam risiko estimasi. Dengan melihat kembali, kita dapat mengingat lagi hal-hal yang terjadi dan dapat menghindari tempat-tempat dimana masalah muncul.

Risiko diukur melalui tingkat ketidakpastian pada estimasi kuantitatif yang dibuat untuk sumber daya, biaya, dan jadwal.Bila ruang lingkup proyek atau syarat proyek tidak dipahami dengan baik, maka risiko dan ketidakpastian menjadi sangat tinggi. Perencana perangkat lunak harus melengkapi fungsi, kinerja, dan definisi interface(yang diisikan ke dalam spesifikasi sistem). Pendekatan-pendekatan rekayasa perangkat lunak modern (seperti model proses evolusioner) memakai pandangan pengembangan yang interaktif. Dengan pandangan semacam ini dimungkinkan untuk melihat estimasi dan merevisinya bila customer mengubah kebutuhannya.

2. Tujuan Perencanaan Proyek

Tujuan perencanaan proyek perangkat lunak adalah untuk menyediakan sebuah kerangka kerja yang memungkinkan manajer membuat estimasi yang dapat dipertanggungjawabkan mengenai sumber daya, biaya dan jadwal. Tujuan perencanaan dicapai melalui suatu proses penemuan informasi yang menunjuk ke estimasi yang dapat dipertanggungjawabkan.

3. Ruang Lingkup Perangkat Lunak

Penentuan ruang lingkup perangkat lunak merupakan aktivitas pertama dalam perencanaan proyek perangkat lunak. Ruang lingkup perangkat lunak menggabarkan fungsi, kinerja, batasan, interface dan reliabilitas. Fungsi yang digambarkan dalam statmen ruang lingkup dievaluasi dan disaring untuk memberikan awalan yang lebih detail pada saat estimasi dimulai. Pertimbangan kinerja melingkupi pemrosesan dan kebutuhan waktu respon. Batasan ini mengidentifikasi dari batas yang ditempatkan pada perangkat lunak oleh perangkat keras eksternal, memori, atau sistem informasi yang ada.

4. Sumber Daya

Mengestimasi sumber daya yang dibutuhkan untuk menyelesaikan usaha pengembangan perangkat lunak yang meliputi manusia, komponen perangkat lunak, dan peranti perangkat keras/perangkat lunak. Piramida di atas memperlihatkan sumber daya pengembangan sebagai sebuah piramid. Peranti perangkat keras dan perangkat lunak berada pada fondasi dari piramida di atas dan menyediakan infrastruktur untuk mendukung usaha pengembangan(lingkungan pengembang). Dalam tingkat yang lebih tinggi terdapat komponen perangkat lunak reuseable – blok bangungan perangkat lunak yang dapat mengurangi biaya pengembangan secara dramatis dan mempercepat penyampaian. Dan di puncak terdapat sumber daya utama yaitu manusia. Masing-masing sumber daya ditentukan dengan empat karakteristik:
a. Deskripsi sumber daya
b. Statemen ketersediaan
c. Waktu kronologis sumber daya diperlukan
d. Durasi waktu sumber daya diaplikasikan

A. Sumber Daya Manusia

Perencanaan sumber daya manusia memulai dengan mengevaluasi ruang lingkup serta memilih kecakapan yang dibutuhkan untuk mnyelesaikan pengembangan. Baik posisi organisasi maupun specialty. Jumlah orang yang diperlukan untuk sebuah proyek perangkat lunak dapat ditentukan setelah estimasi usaha pengembangan dibuat.

B. Sumber daya perangkat lunak reusable

Kreasi dan penggunaan kembali blok bangunan perangkat lunak yang seharusnya dikatalog menjadi referensi yang mudah, distandarisasi untuk aplikasi yang mudah, dan divalidasi untuk integrasi yang mudah. Ada empat kategori sumber daya perangkat lunak yang harus dipertimbngkan pada saat perencanaan berlangsung, yaitu :
Komponen off-the-self Perangkat lunak yang ada dapat diperoleh dari bagian ketiga atau telah dikembangkan secara internal untuk proyek sebelumnya.
Komponen full-experience Spesifikasi, kode, desain atau pengujian data yang sudah ada yang dikembangkan pada proyek yang lalu yang serupa dengan perangkat lunak yang akan dibangun pada proyek saat ini.
Komponen partial-experience Aplikasi, kode, desain, atau data pengujiaan yang ada pada proyek yang lalu yang dihubungkan dengan perangkat lunak yang dibangun untuk proyek saat ini, tetapi akan membutuhkan modifikasi substansial.

Komponen baru Komponen perangkat lunak yang harus dibangun oleh tim perangkat lunak khususnya adalah untuk kebutuhan proyek sekarang. Lebih baik mengkhususkan syarat sumber daya perangkat lunak dari awal. Dengan cara ini evaluasi teknis dari semua alternatif dapat dilakukan dan akuisisi secara berkala dapat terjadi.

C. Sumber daya lingkungan

Lingkungan yang mendukung poyek perangkat lunak, yang disebut juga software engineering environment (SEE), menggabungkan perangkat lunak dan perangkat keras. Karena sebagian besar organisasi perangkat lunak memiliki konstituen ganda yang memerlukan akses ke SEE, maka perencana proyek harus menentukan jendela waktu yang dibutuhkan bagi perangkat keras dan perangkat lunak serta membuktikan bahwa sember-sumber daya tersebut dapat diperoleh.

Pada saat sebuah sistem berbasis komputer akan direkayasa, tim perangkat lunak mungkin membutuhkan akses ke elemen perangkat keras yang sedang dikembangkan oleh tim rekayasa yang lain.

5. Estimasi Proyek Perangkat Lunak

Biaya perangkat lunak terdiri dari presentase kecil pada biaya sistem berbasis komputer secara keseluruhan. Kesalahan estimasi biaya yang besar dapat memberikan perbedaan antara keuntungan dan kerugian. Estimasi proyek perangkat lunak dapat ditranformasi dari suatu seni yang misterius ke dalam langkah-langkah yang sistematis yang memberikan estimasi dengan risiko yang dapat diterima. Sejumlah pilihan untuk mencapai estimasi biaya dan usaha yang dapat dipertanggung jawabkan :

a. Menunda etimasi sampai akhir proyek
b. Mendasarkan etimasi pada proyek-proyek yang mirip yang sudah pernah dilakukan sebelumnya
c. Menggunakan “teknik dekomposisi” yang relatif sederhana untuk melakukan estimasi biaya dan usaha proyek
d. Menggunakan satu atau lebih model empiris bagi estimasi usaha dan biaya perangkat lunak. Model estimasi empiris dapat digunakan untuk melengkapi teknik dekomposisi serta menawarkan pendekatan estimasi yang secara potensial berharga. Model berbasis pengalaman(data hitoris) dan berbentuk :

d=f(vi)

Di mana d adalah satu dari sejumlah harga estimasi (contoh : usaha, biaya,durasi proyek) dan vi adalah parameter independen yang dipilih (seperti LOC dan FP yang diestimasi). Peranti estimasi otomatis mengimplementasi satu atau lebih teknik dekomposisi atau model empiris. Masing-masing pilihan estimasi biaya perangkat lunak yang dapat dilakukan sama baiknya dengan data hitoris yang digunakan untuk menumbuhkan estimasi.


REFERENSI:

Template by:

Free Blog Templates