Selasa, 07 April 2015

Definisi Analisis Sistem

Kegiatan  analisls   sistem  adalah  kegiatan   untuk  melihat   sistem  yang sudah berialan,  melihat bagian mana yang bagus dan tidak bagus,  dan kemudian   mendokumentasikan   kebutuhan yang akan dipenuhi  dalam sistcm yang baru.  Hal tersebut  terlihat sederhana,   namun  sebenarnya tidak.  Banyak hambatan yang akan ditemui  dalam proses tersebut..


Pada banyak proyek  sistem informasi,   proses analisis   dan   desain sering  kali berialan  bersama-sama.  Jadi selama  kegiatan  analisis, kegiatan desain juga  dilakukan. Hal ini dilakukan karena pada banyak kasus,   user  sering   kesulitan   untuk   mendefinisikan   kebutuhan mereka.  Jadi mereka akan lebih mudah  mendefinisikan  kebutuhan, jika   mereka   telah   melihat    gambar   rancangan    sistem   yang   baru, khususnya rancangan  antarrnuka

Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Conversi Rekayasa Perangkat Lunak

Teknologl informasi sosial  atau Social information technology  (social IT)    adalah   faktor   atau   aspek   sosial yang  berkaitan dengan implementasi suatu  teknologl informasi. Sebuah produk perangkat lunak  tidak hanya berkutat di masalah teknologi dan  teknis. Sering sebuah  produk  perangkat lunak  hanya  dibuat berdasarkan  sudut pandang pengembang perangkat lunak  yang memiliki kecenderungan berpola pikir teknis. Sebuah perangkat lunak dianggap berkualitas jika mernenuhi kebutuhan pelanggan (customer) dan sesuai  keinginan  pelanggan (customer). Sering kendala dari pengembangan perangkat lunak bukan berada pada masalah teknis (teknologi perangkat lunak dan perangkat keras) tapi  pada kondisi lingkungan pelanggan,  misalnya ternyata  yang  akan  menjadi   user atau   pemakai  perangkat  lunak belum bisa mengoperasikan komputer, atau keengganan user untuk mengubah kebiasannya bekerja menggunakan perangkat lunak yang baru  atau dari manual menjadi menggunakan perangkat lunak, lingkungan   yang tidak  mendukung   disiplin  (misalnya   untuk  aplikasi keuangan)  maka dari itu perlu adanya analisis  terlebih dahulu di lingkungan pelanggan apakah dapat dijalankan perangkat lunak yang akan dikembangkan,  karena  sebaik  apapun  perangkat  lunak jika tidak mampu  digunakan  di  lingkungan  pelanggan  maka  perangkat   lunak itu  hanya   akan   menjadi    "artifak"  yang   disimpan  di   gudang   atau bahkan  dibuang.

Hal-hal yang harus  dilakukan  sebelum mengembangkan  perangkat lunak  di lingkungan  tertentu maka harus  dicari  tahu pengetahuan   lingkungan   tentang   teknologi   informasi  dan komputer
  •        "social  knowledge"  atau   "local  knowledge"   (pengetahuau mengenai  budaya  lokal)  di lingkungan  yang  akan dikembangkan   perangkat   lunak,   apakah   memungkinkan untuk  dikembangkan  perangkat  lunak
  •     pengetahuan  tentang  apa saja yang bisa dibatasi  dan  yang tidak,   sehingga   saat  pengembangan   perangkat    lunak   dapat mendeflnisikan aturan main dari  perangkat lunak

Setelah perangkat lunak dikembangkan tetap masih diperlukan adanya sosialisasi  perangkat  lunak  dengan  mengadakan pelatihan secara bertahap,  karena meugubah kebiasaan sebuah lingkungan ke sesuatu yang baru tidaklah gampang  dan yang akan menggunakan perangkat  lunak  memillki  karakter  yang berbeda-beda. Memang  tidak harus   menuruti  semua karakrer,   tapi  setidaknya   dapat   dicari   titik tengah  yang dapat  diterima   semua  pihak.  Komunikasi  yang baik antara  pcugernbang   dan  pelanggan  atau  user sangat  dibutuhkan agar terialin  kerja sarna yaug baik dan saling menguntungkan.
Melakukan konversi dari cara kerja yang lama ke cara kerja  yang baru menggunakan  perangkat   lunak  yang  dikembangkan perlu  dilakukan seeara  bertahap,  karena  perubahan yang ekstrim  akan  menghabiskan lebih  banyak  sumber  daya,  dana,  dan  waktu.  Beberapa  cara  konversi adalah  sebagat  berikut:

  • Konversi paralel




Konversi paralel dilakukan  dengan  melakukan beberapa  waktu transisi dimana ada waktu dimana kedua  sistem  (sistem  lama dan sistem baru) berjalan  bersama   untuk keperluan   transisi sampai  sistem  baru  dapat berjalan  mandiri.  Sumber  daya yang dibutuhkan pada konversi paralel akan banyak terkuras pada waktu transisi.

  • Konversi Langsung
konversi langsung   dilakukan    karena   sistem   lama   secara ekstrirn  Iangsung   diganti   dengan  sistem  yang  baru.  Konversi ini   akan   mengalami   waktu   yang  sangat   sulit   di   awal berjalannya   sistem  baru

  • Konversi per fase
konversi per fase dilakukan dengan berpindah per fase  dari sistcm   lama  ke  sistem  baru  misalkan  pada  awal konversi hanya  pada   pekerjaan  memasukkan     data-data   saja,  pada tahap  berikutnya   rnulai  menggunakan  proses  perhitungan, lalu  fase  berikutnya  mulai   rnenggunakan    proses   pelaporan sistem  baru,  dan  seterusnya  (lebih  fokus  pada  per   fungsi sistem)

  • Konversi pilot atau single locatiion
konversi  pilot  dilakukan dengan  melakukau konvcrsi per unit kerja atau per lokasi di dalam sebuah lingkungan kerja, Misalnya pada tahap awal unit kerja yang sistemnya berubah adalah  bagian keuangan,  berikutnya pada bagian  sumber  daya mannsia, dan seterusnya.





Pengembangaan  perangkat  lunak yang berhasil  dan  dapat  diterima dengan baik tidak hanya memperhatikan  masalah teknis, tapi mernperhatikan masalah nonteknis seperti permasalahan  sosial dan mencermati isu-isu yang sedang berkembang di masyarakat.




Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Proses Rekayasa Perangkat Lunak


Berikut tahapan dalam melakukan rekayasa perangkat lunak :



Gambar : Tahapan Umum Rekayasa Perangakat Lunak

Proses - proses pada gambar diatas dapat dilakukan berulang kali samapai perangkat lunak memenuhi kebutuhan pelanggan atau user. Untuk membangun perangkat lunak yang benar - benar baik maka diperlukan tahapan - tahapan rekayasa perangkat lunak. Perangkat lunak yang yang dibangun tanpa melalui tahanapan rekayasa perangkat lunak yang baikmaka akan seperti membuat baju tanpa pola dan rencana model baju yang baik. Dalam membuat sebuah baju, maka dibutuhkan adanya perencanaan model baju yang baik. Setelah pola baju terbentuk maka kain mulai dipotong sesuai pola, baru kemudian dijahit. Jika baju dibuat tanpa pola, maka yang terjadi adalah baju hasil tambal sulam. Seperti halnya pembuatan perangkat lunak tanpa melalui proses rekayasa perangkat lunak " tambal sulam", begitu kurang maka akan di tambal. Tentu   saju  hasil perangkat  lunak  " tambal sulam "  tidak  akan  bagus,    Contoh  lain misalnya sebuah bangunun tanpa  rencana   yang matang, maka yang terjadi adalah baugunan "tambal sularn"  yang akhirnya dirobohkan atau  bahkan roboh karena pembuataanya tanpa perencanan  yang matang.  Misalkan   awalnya dibuat tanpa jendela, lalu  butuh jendela, maka  ditambahkan  jendela. Jika  butuh  tambahan   lantai  ke atas, maka  ditambahkan   lantai,  tanpa   rnelihat     kekuatan     lantai   di bawahnya.   Maka yang terjadi  adalah  bangunan    yang ambruk  jika tidak   mampu  menahan  kebutuhan  tanpa   perencanaan  yang   baik.

Perkembangan teknologi informasi  saat  ini  sangat  mempermudah dan mempercepat  proses rekayasa perangkat lunak  dengan adanya bermacam-macam   tools desain.   tools pengembangan   seperti  IDE (Integrated   Development  Environment),  appllcatinn  framework, dan lain-lain. Hal tersebut sering disalahartikan oleh pengembang perangkat lunak pemula  dan pelanggan/pengguna  perangkat lunak bahwa  pengembangan perangkat  lunak  bisa  diselesaikan   dalam  satu malam.

Anggapan    tersebut  sangat  tidak tepat.  Rekayasa  perangkat  lunak terdiri   dari  beberapa   kegiatan  yang harus   dilakukan . Jika  tahapan- tahapan   tersehut   tidak  dilalui  deugan  baik, hampir   bisa  dipastikan  perangkat   lunak  yang dihasilkan  tidak  akan mempunyai  kualitas  yang baik, Jadi,  tidak  ada perangkat  Junak yang bisa  dihasilkan   dangan baik hanya   dalam   satu    malam    seperti    mitos pembuatan   candi Prambanan   atau mitos  pembuatan Gunung Tangkuban   Perahu.


Proses   perangkat  lunak   (software process)  adalah   sekumpulan aktifitas   yang   memiliki   tujuan    untuk    mengembangkan   atau mengubah  perangkat lunak. Secara umum   proses  perangkat  lunak terdiri dari:

  • Pengumpulan Spesifilcasi (Specification)

Mengetahui  apa  saja  yang  harus  dapat  dikerjakan  sistem pcrangkat lunak dan batasan pengembangan perangkat lunak
  •        Pengembangan (Development)

Pengembangan  perangkat lunak untuk  menghasilkan  sistem pcrangkat lunak
  •          Validasi (Validation)

Memeriksa apakah    perangkat  lunak   sudah    memenuhi keinginan    pelanggan (customer).
  •          Evolusi (Ewlution)

Mengubah   perangkat  lunak   nntuk   memenuhj perububan kebutuhan pelanggan (customer).

Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Minggu, 05 April 2015

Tantangan Rekayasa perangkat Lunak

Ternyata dalam melakukan rekayasa perangkat lunak memiliki tantangan, tantangan yang dihadapi dari proses rekayasa perangkat lunak, adalah sebagai berikut :

1.        Tantangan warisan dimana perangkat lunak dikembangkan selama bertahun - tahun oleh orang - orang yang berbeda, hal ini dapat menyebabkan ketidakpahaman atau perubahan tujuan pembuatan dari perangkat lunak.

2.        Tantangan heterogenitas dimana perangkat lunak harus dapat beradaptasi dengan teknologi yang terus berkembang dengan semakinluaasnya lingkungan distribusi perangkat lunak.


3.        Tantangan pengiriman bahwa perangkat lunak dengan skala besar dan kompleks sekalipun dapat sampai ke tangan pelanggan dengan cepat dan kualitas tetap terjaga.


Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Kategori Rekayasa Perangkat Lunak

Postingan kali ini akan membahas tentang kategori maupun fase - fase dari perangkat lunakbeserta tantangan nya.

Pada rekayasa perangkat lunak dikategorikan ke dalam tiga buah kategori umum, setiap fase dialamatkan pada 1 pertanyaan atau lebih yang diajukan sebelumnya.

1.        Fase pendefinisian fokus pada "what"
Yang artinya harus mencari tahu atau mengidentifikasi informasi apa yang harus di proses, sepertiapa fungsi dan performasni yang diinginkan, seperti apa perilaku sistem yang diiinginkan, apa kriteria validasi yang dibutuhkan untuk mendefinisikan sistem.

2.        Fase pengembangan yang fokus pada "how"
Yang artinya selama tahap pengembangan perangkat lunak seorang perekayasa perangkat lunak berusaha untuk mendefinisikan bagaimana data distruktur dan bagaimana fungsi yang dibutuhkan diimplementasikan, bagaiman karakter antar muka tampilan, bagaimana desain di translasikan ke bahasa pemrograman, dan bagaimana pengujiannya.

3.        Fase pendukung (support phase)
Fase ini berfokus pada perubahan yang terasosiasi pada perbaikan kesalahan, adaptasi yang dibutuhkan pada lingkungan perangkat lunak yang terlibat, dan perbaikan yang terjadi akibat perubahan kebutuhan pelanggan, pada fase pendukung terdapat 4 tipe perubahan, yaitu :

a.         Koreksi (correction)
meski terdapat jaminan kualitas yang terbaik, kecacatan atau keinginan pelanggan yang tidak terpenuhi oleh perangkat lunak. Pemeliharaan dengan memperbaiki kecacatan tersebut.
b.         Adaptasi (Adaption)
Pada saat tertentu lingkungan asli (contoh CPU, sistem operasi, karakteristik produk luar) dimana perangkat lunak dikembangkan akan mengalami perubahan . Pemeliharaan ini merupakan tahap untuk memoodifikasi perangkat lunak agar mengakomodasi perubahan lingkungan luar dimana pernagkat lunak dijalankan.
c.         Perbaikan (Enchancement)
Sejalan dengan digunakan perangkat lunak, maka pelanggan atau pemakainya akan mengenali fungsi tambahan yang dapat memberikan manfaat.
d.        Pencegahan (prevention)
Keadaan perangkat lunak komputer sangat di mungkinkan untuk perubahan, maka pemeliharaan pencegahan, atau disebut daur ulang sistem harus dikondisikan untuk mengakomodasi perubahan kebutuhan yang diinginkan oleh pemakainnya.


Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Pengertian Rekayasa Perangkat Lunak

Setelah postingan sebelumnya membahas tentang aplikasi dan produk perangkat lunak, kini kita akan membahas pengertian dari rekayasa perangkat lunak.

Rekayasa perangkat lunak (software engineering) merupakan pembangunan dengan menggunakan prinsisp atau konsep rekayasa dengan tujuan menghasilkan perangkat lunak yang bernilai ekonomi yang dipercaya dan bekerja secara efisien menggunakan mesin.

Perangkat lunak banyak dibuat dan pada akhirnya sering tidak digunakan karena tidak memenuhi kebutuhan pelanggan atau bahkan masalah non-teknis seperti keengganan pemakai perangkat lunak (user) untuk mengubah cara ekrja dari manual ke otomatis, atau ketidakmampuan user menggunakan komputer. Oleh karenaitu, rekayasa perangkat lunaj dibutuhkan agar perangkat lunak yang dibuat tidak hanya menjadi perangkat lunak yang tidak dipakai.

rekayasa perangkat lunak lebuh fokus pada praktik pengembangan perangkat lunak dan mengirimkan perangkat lunak yang bermanfaat kepada pelanggan. terdapat ilmu komputer yang lebih fokus pada teori dan konsep dasar perangkat komputer. rekayasa perangkat lunak lebih fokus pada bagaimana membuat perangkat lunaj yang memenuhi kriteria berikut :

·    Dapat terus dipelihara setelah pernagkat lunak selesai dibuat seiring berkembangnya teknologi dan lingkungan (maintainability).
·      Dapat diandalkan dengan proses bisnis yang dijalankan dan perubahan yang terjadi (dependability and robust)
·         Efisiensi dari segi sumber daya dan pengguna
·         Kemampuan untuk dipakai sesuai dengan kebutuhan (usability)
Dari kriteria yang terdapat diatas maka pernagkat lunak yang baik adalah perangkat lunak yang dapat memenuhi kebutuhan pelanggan, atau user, atau berorientasi pada pelanggan atau pemakai perangkat lunak, bukan berorientasi pada pembuat atau pengembang perangkat lunak.

"Perangkat lunak yang baik adalah perangkat lunak yang fokus pada pengguna atau pelanggan."


Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Aplikasi dan Produk Perangkat Lunak

Setelah postingan yang lalu membahas tentang Pengertian dan Karakter dari Perangkat Lunak, pada postingan kali ini akan membahas tentang aplikasi dari perangkat lunak :

1.        Perangkat lunak sistem (system software)
Perangkat lunak sistem (system software) adalah kumpulan program dalam hal ini program yang satuditulis untuk memenuhi kebutuhan program lainnya.
2.        Perangkat lunak waktu nyata (real-time software )
Perangkat lunak waktu nyata (real-time software ) merupakan perangkat lunak yang memonitor, menganalisa , mengontrol sesuatu secara waktu nyata (real-time). Reaksi yang dibutuhkan pada perangkat lunak harus langsung menghasilkan respon yang diinginkan.
3.        Perangkat lunak bisnis (Business software)
Perangkat lunak bisnis (Business software) merupakan perangkat lunak penggelola informasi bisnis (seperti akutansi, penjualan, pembayaran, penyimpanan).
4.        Perangkat lunak untuk keperluan rekayasa dan keilmuan (engineering and scienctific software)
Perangkat lunak untuk keperluan rekayasa dan keilmuan (engineering and scienctific software)  merupakan perangkat lunak yang menimplementasikan algoritma yang terkait dengan keilmuan ataupun perangkat lunak yang membantu keilmuan, misalnya perangkat lunak pada bisang astronomi, kesehatan dan lain sebagainya.
5.    Perangkat lunak tambahan untuk membantui mengerjaklan suatu fungsi dari perangkat lunak lainnya. (Embedded software)
Perangkat lunak tambahan untuk membantui mengerjaklan suatu fungsi dari perangkat lunak lainnya. (Embedded software) misalnya perangkat lunak untuk mencetak dokumen di tambahkan agar perangkat lunak yang memerlukan dapat mencetak laporan , maka perangkat lunak untuk mencetak dokumen ini disebut Embedded software.
6.        Perangkat lunak komputer personal (personal computerr software)
Perangkat lunak komputer personal (personal computerr software) merupakan perangkat lunak untuk PC misalnya perangkat lunak pemroses teks, pemroses grafik dan lainnya.
7.        Perangkat lunak berbasis web (web based software)
Perangkat lunak berbasis web (web based software) merupakan perangkat lunak yang dapat diakses dengan menggunakan browser.
8.        Perangkat lunak berintelejensian buatan (Artificial intrlligrnce software)
Perangkat lunak berintelejensian buatan (Artificial intrlligrnce software) merupakan perangkat lunak yang emnggunakan algoritma tertentu untuk mengelola data sehingga seakan - akan memiliki intelejensia bertambahanya data yang di proses.


Sedangkan produk  perangkat lunak yang dibuat oleh pengembang (developer) perangkat lunak terdiri dari 2 jenis, yaitu :
·           Produk generik
produk generik merupakan perangkat lunak yang dibuat oleh pengembang perangkat lunak untuk dijual atau dipopulerkan (open source) tanpa ada yang memesan terlebih dahulu, perangkat lunak yang termasuk dalam produk generik misalnya perangkat lunak sistem operasi, pernagkat lunak pendukung perkantoran untuk membuat dokumen, slide  presentasi, atau penghitungan dalam bentuk papersheet dan lain-lain.
·           Produk pemesanan
Produk pemesanan merupakan produk perangkat lunak yang dibuat karena ada pelanggan yang melakukan pemesanan, misalnya instansi memerlukan perangkat lunak untuk kebutuhan bisnis dalam instansi nya, maka instansi tersebut akan bekerja sama dengan pengembang untuk membuat perangkat lunak yang dibutuhkan
Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.

Pengertian Perangkat Lunak

Sebelum melakukan perancangan perangkat lunak, kita harus memahami terlebih dahulu apa yang dimaksud perangkat lunak tersebut.

Perangkat lunak (Software) adalah program komputer yang terasosiasi dengan dokumentasi perangkat lunak seperti dokumentasi kebutuhan, model desain, dan cara penggunaan (user manual). Sebuah program komputer tanpa terasosiasi dengan dokumentasinya maka belum dapat disebut perangkat lunak (Software). Sebuah perangkat lunak juga sering disebut dengan sistem perangkat lunak. Pengertian dari sistem sendiri adalah kumpulan komponen yang saling terkait dan mempunyai satu tujuan yang ingin dicapai.

Dari pengertian diatas dapat disimpulkan  pengertian sistem perangkat lunak adalah sebuah sistem yang memiliki komponen berupa perangkat lunak yang memiliki hubungan satu sama lain untuk memenuhi kebutuhan pelanggan (customer).

Pengertian pelanggan (customer) sendiri adalah orang atau organisasi yang memesan atau memberli perangkat lunak (Software) dari pengembang perangkat lunak atau bisa dianggap bahwa pelanggan (customer) adalah orang atau organisasi yang dengan suka rela mengeluarkan uang untuk memesan atau memebeli perangkat lunak. User atau pemakai perangkat lunak adalah orang yang memiliki kepentiangan untuk memakai atau menggunakan perangkat lunak untuk memudahkan pekerjaannya.

Berikut karakter dari perangkat lunak :
1.   Perangkat lunak dibangun dengan rekayasa (software engineering) bukan di produksi secara manufaktur atau pebrikan.
2.     Perangkat lunak tidak pernah usang ("wear out") karena kecacatan dlam perangkat lunak dapat diperbaiki.
3.  Barang produksi pabrikan biasanya komponen barunya akan terus diproduksi, sedangkan perangkat lunak biasanya terus diperbaiki seiring bertambahnya kebutuhan.

Demikian pembahasan tentang pengertian perangkat lunak, untuk postingan berikutnyakan dibahas tentang Aplikasi perangkat lunak dan jenis produk perangkat lunak.

Sumber : Rosa A. S, Rekayasa Perangkat Lunak Terstruktur dan Berorientasi Objek. Bandung, Indonesia: Informatika, 2014.