Minggu, 31 Oktober 2010

Tugas 3 RPL WEB engineering

1. jelaskan integrasi system

Sistem informasi manajemen (SIM) bukan sistem informasi keseluruhan, karena tidak semua informasi di dalam organisasi dapat dimasukkan secara lengkap ke dalam sebuah sistem yang otomatis. Aspek utama dari sistem informasi akan selalu ada di luar sistem komputer.

Pengembangan SIM canggih berbasis komputer memerlukan sejumlah orang yang berketrampilan tinggi dan berpengalaman lama dan memerlukan partisipasi dari para manajer organisasi. Banyak organisasi yang gagal membangun SIM karena :

  1. Kurang organisasi yang wajar
  2. Kurangnya perencanaan yang memadai
  3. Kurang personil yang handal
  4. Kurangnya partisipasi manajemen dalam bentuk keikutsertaan para manajer dalam merancang sistem, mengendalikan upaya pengembangan sistem dan memotivasi seluruh personil yang terlibat.

SIM yang baik adalah SIM yang mampu menyeimbangkan biaya dan manfaat yang akan diperoleh artinya SIM akan menghemat biaya, meningkatkan pendapatan serta tak terukur yang muncul dari informasi yang sangat bermanfaat.

Organisasi harus menyadari apabila mereka cukup realistis dalam keinginan mereka, cermat dalam merancang dan menerapkan SIM agar sesuai keinginan serta wajar dalam menentukan batas biaya dari titik manfaat yang akan diperoleh, maka SIM yang dihasilkan akan memberikan keuntungan dan uang.

Secara teoritis komputer bukan prasyarat mutlak bagi sebuah SIM, namun dalam praktek SIM yang baik tidak akan ada tanpa bantuan kemampuan pemrosesan komputer. Prinsip utama perancangan SIM : SIM harus dijalin secara teliti agar mampu melayani tugas utama.

Tujuan sistem informasi manajemen adalah memenuhi kebutuhan informasi umum semua manajer dalam perusahaan atau dalam subunit organisasional perusahaan. SIM menyediakan informasi bagi pemakai dalam bentuk laporan dan output dari berbagai simulasi model matematika.

2. Arsitektur SOA dan Gambar-nya

SOA (Perangkat Lunak Berorientasi Arsitektur), yaitu arsitektur berorientasi layanan, pertama oleh paling otoritatif penelitian di dunia IT dan perusahaan konsultan Gartner diajukan pada tahun 1996, tetapi karena tingkat teknologi dan lingkungan pasar tidak memiliki implementasi nyata dari SOA, kondisi, SOA bukan menjadi perhatian nyata, begitu lama waktu berikutnya diam. Setelah memasuki abad ke-21, Internet melonjak, perusahaan semakin banyak bergerak operasi ke internet di lapangan, memimpin e-commerce untuk berkembang. Dalam rangka dikemas menjadi bisnis yang terpisah, dengan layanan scalable yang kuat dapat diakses di internet, orang mengajukan konsep layanan Web, praktik SOA ini adalah orang yang nyata.
SOA menyediakan sebuah organisasi TI standar bangunan dan metode dapat dikombinasikan melalui penciptaan sistem pelayanan berlebihan dapat digunakan kembali untuk mengurangi operasi TI dan mempercepat proses pembangunan proyek. SOA memungkinkan suatu perusahaan secara efisien keseimbangan sumber daya yang tersedia dan aset, sistem seperti ini dapat membuat departemen TI lebih efisien, siklus pengembangan yang lebih pendek, proyek ini didistribusikan lebih cepat, untuk membantu TI dan teknologi integrasi bisnis memiliki makna yang luas, dapat :

Mempersempit kesenjangan antara bisnis dan teknologi - sebagai pusat bisnis
SOA perubahan model sistem informasi teknologi-sentris, sehingga kembali ke bisnis TI peran dukungan teknis. TI tujuan teknologi adalah untuk bisnis, aplikasi layanan, daripada perkembangan teknologi IT itu sendiri. Bisnis personil dapat merakit perangkat keras, sebagai struktur yang sama dari sudut pandang bisnis aplikasi real-time, sehingga mengurangi kesenjangan antara bisnis dan teknologi.

Berbagi dan menggunakan kembali sumber daya perangkat lunak
SOA menyediakan komponen sesuai dengan kemasan asli memiliki bentuk standar pelayanan dokumen tertentu deskripsi antarmuka, sehingga pengguna jasa dan pelayanan adalah hubungan longgar digabungkan antara. Dengan cara ini, sistem warisan dapat dienkapsulasi ke dalam layanan reusable, meningkatkan laba atas investasi; sisi lain, dapat menghubungi layanan yang diberikan oleh penyedia layanan eksternal untuk memainkan peran dalam penggunaan kembali.

Aplikasi dengan kebutuhan untuk memperluas - fleksibilitas dan kelincahan
fitur SOA's longgar digabungkan untuk aplikasi untuk membawa banyak fleksibilitas. pengguna layanan dan penyedia layanan untuk mempertahankan antarmuka yang konsisten untuk kasus kontrak dapat berkembang secara independen. aplikasi berbasis SOA dapat dilihat sebagai kopling longgar antara jasa dan layanan koleksi. Oleh karena itu, sementara layanan baru dapat dengan mudah diatur untuk bergabung dengan longgar, di sisi lain juga dapat diatur sesuai dengan kebutuhan bisnis kembali jadwal layanan untuk menghasilkan layanan komposit baru. Oleh karena itu, aplikasi berbasis SOA dengan mudah untuk mengubah karakteristik ekspansi mudah untuk mendukung operasional respon cepat dan kelincahan.

Singkatnya, arsitektur berorientasi layanan (SOA) mencoba untuk berbagi sumber daya jaringan yang diperlukan untuk melayani dalam bentuk kemasan seragam dan akses, sehingga mereka tetap dalam distribusi fisik otonomi sementara mencapai pusat informasi "virtual" logika atas dasar pengelolaan terpadu secara transparan dan mengoptimalkan sumber daya seleksi, akses on-demand untuk perantara dan efektif dan partisipasi aktif untuk mendukung konfigurasi aplikasi pengguna.

3. Jelaskan Arsitektur Dari CodeIgniter Sertakan Gambar

CodeIgniter adalah sebuah framework yang menerapkan konsep Model-View-Controller (MVC) sebagai pola didalam mengembangkan aplikasi berbasis PHP. Dengan pola MVC ini memungkinkan developer untuk mengorganisir file-file untuk membangun aplikasi.

CodeIgniter berisi banyak sekali instant library yang memudahkan seorang programmer PHP didalam membangun aplikasi sehingga walaupun aplikasinya besar, seorang programmer tidak perlu mendefinisikan library-library tersebut dari awal. Sebagai contoh jika kita ingin membuat sebuah fungsi database untuk memunculkan list data dari sebuah table dengan query ‘SELECT’, maka kita hanya tinggal memanggil library yang sudah disediakan dan selebihnya akan dikerjakan oleh CodeIgniter.

4 Jelaskan Perbedaan Pattern dan framework

Pattern

“Pattern Recognition” atau dalam bahasa indonesia dapat diartikan sebagai “Pengenalan Pola”. Yaitu dimana komputer dapat mengenali suatu pola yang pernah diberikan sebelumnya dan membandingkan kemiripan suatu benda pada tingkat atau prosentase tertentu.

Menurut Ursa Majorsy, Pola dalam hal ini merujuk pada pengertian suatu komposisi stimulus penginderaan yang kompleks yang dapat dikenali oleh manusia sebagai pengamat sebagai suatu kelompok objek. Rekognisi pola merupakan proses pengenalan kembali terhadap pola yang pernah dikenal. Oleh karena itu, jika kita melihat wajah teman kita atau mendengar lagu kesukaan kita, kita dapat mengenal masing-masing persepsi tersebut sebagai sesuatu yang sebelumnya telah dialami.

Bila dilihat dari jenis prosesnya, pemrosesan informasi memiliki dua jenis pemrosesan, yaitu data driven & conceptually driven. Pemrosesan data driven dimulai dengan datangnya data penginderaan. Sedangkan dalam conceptually driven pemrosesan informasi dimulai dengan pembentukan konsep atau harapan individu tentang informasi yang mungkin dijumpainya.

Pengenalan pola melibatkan baik pemrosesan data dengan data driven (informasi diterima oleh indera) maupun conceptually driven (pengetahuan yang disimpan di memori). Pengenalan pola (pattern recognition) merupakan proses yang menjembatani antara proses deteksi sinyal penginderaan yang sederhana (yang cenderung data driven) dengan persepsi terhadap pola-pola yang kompleks (yang cenderung conceptually driven).

Kemampuan untuk mengenal pola dari informasi penginderaan merupakan ciri khas yang spektakuler pada manusia dan binatang. Kemampuan ini memungkinkan kita untuk mengenal teman lama diantara lautan manusia. Kita juga bisa mengenal suatu lagu hanya dengan mendengar beberapa not dari lagu tersebut. Dengan mata terpejam pun kita bisa menebak dengan benar bunga melati dari aroma yang kita cium. Pembahasan mengenai pengenalan pola pada bab ini lebih banyak difokuskan pada pengenalan pola visual.

Pengenalan Pola (pattern Recogntion) sesuai sample yang kita ambil dari manusia dan hewan dapat dibagi dua yaitu Pengenalan Pola Visual dan Non-Visual. Pengenalan Pola Visual adalah kemampuan untuk mengenali sesuatu dari pola-pola yang dapat dilihat seperti halnya pohon, rumah, tiang listrik, dll. Sedangkan Pengenalan Pola Non-Visual adalah kemampuan untuk mengenali sesuatu dari suara atau rasanya seperti halnya (lagu ini judulnya apa, siapa yang menyanyikan, siapa penciptanya) selain itu kita juga bisa mengenali suatu buah/makanan dengan hanya merasakannya seperti “jika minum jus yang telah diberi pewarna sehingga tidak terlihat jus aslinya kita bisa tau kalau itu jus apa saat kita merasakannya”. Nah bagaimana mengaplikasikannya kedalam sebuah mesin (komputer) sehingga komputer dapat mengenali pola-pola tersebut. Mari kita pelajari bersama

Framework

Menurut kamus Inggris - Indonesia yang disusun oleh John M. Echols dan Hassan Sadily framework memiliki arti kerangka. Tetapi saya lebih suka mengartikan framework ini menjadi kerangka kerja. Kenapa disebut kerangka kerja? Karena pekerjaan yang akan dilakukan harus mengikuti dan tidak lari dari kerangka tersebut. Seperti tukang jahit yang menggunting kain untuk pakaian berdasarkan pola(framework) yang ada. Maklum ibu saya adalah tukang jahit, maka itu saya tahu akan hal ini.

Kembali ke dunia IT khususnya pemrograman, framework terdiri dari modul - modul yang mempunyai tugasnya masing - masing (menangani database, XmlRPC, email, dll) dan memiliki aturan pakai (aturan penulisan kode program, struktur direktori/file, dan penggunaan modul). Memang menjadi lebih rumit dan lebih lambat, bagi anda yang biasanya menulis kode program tanpa menggunakan framework. Tapi percayalah, jika sudah terbiasa menggunakan framework maka anda akan merasakan manfaatnya yang begitu luar biasa yaitu waktu pengerjaan dan kode yang lebih sedikit dan juga file - file anda lebih terstruktur.

Kita asumsikan anda disuruh untuk membuat program yang membaca RSS dan kemudian menampilkannya. Dengan menggunakan framework, kita hanya tinggal panggil modul yang menangani RSS, buat object, panggil methodnya, kemudian tampilkan. Simpel kan? Hanya beberapa baris kode saja. Hal ini akan sangat jauh berbeda jika anda mengerjakannya tanpa framework.

Jumat, 29 Oktober 2010

topik khusus WEB enginnering Non-linear (tidak berurutan), Disorientation (Hilang Orientasi), Cognitive Overload (Overhead Kognitif)

Non-linear (tidak berurutan)

● hypertext yang tidak memiliki script dalam satu urutan tetap karna dalam bagian-bagian tertentu bisa merujuk ke bagian lain secara tidak sekuen sesuai dengan alamat rujukan yang diberikan. Artinya link-linknya yang tidak berurutan.

Disorientation (Hilang Orientasi)

● Situasi dimana pengguna user kehilangn arah dalam aplikasi yang tidak non-linear dan menjadi tidak pasti di lokasi user sekarang berada dalam aplikasi. Hal ini membuat user merasa kebingungan dengan aplikasi itu.

Kaedah mengatasi:

– Hadkan bilangan pautan (links)

– Gunakan penunjuk lokasi visual, peta global atau tempatan dan sebagainya

– Adakan fungsi-fungsi menu seperti kembali ke ‘home’ atau halaman menu utama dan automatic backtracking (kembali secara otomatis)

Cognitive Overload (Overhead Kognitif)

● cognitive overload: Masalah yang selalu dikaitkan dengan penggunaan hypertext yang timbul apabila pengguna dipersembahkan dengan terlalu banyak bilangan pilihan atau links dalam sesuatu halaman, akibatnya pengguna atau user jadi keliru link mana yang harus diikuti dan mungkin akan membawa kepada rasa kurang senang kepada user untuk meneruskan atau menggunakan aplikasi web tersebut.

Hal ini dapat dikurangi dengan:

– Sediakan glossary bagi istilah-istilah yang teknikal

– Guna tetingkap pop-up untuk glossary, fungsi help, dll

– Kurangkan bilangan hypertext dalam sesuatu nod

topik khusus WEB enginnering (Software Engineering, Agile Software Development, Extrem Software Devolopment )

1. Software Engineering

Arti Software Engineering :

Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering ap­proach) atau 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.

Dalam membuat softrare yang baik, ada beberapa cara :

1. Fase Perencanaan (Planning) :

a) Rencana software

b) Analisa kebutuhan software

c) Analisa cost banefit (Salah satu bagian dari studi kelayakan)

2. Fase Pengembangan (Development) :

a) Coding

b) Testing

Macam-macam test program :

i) Unit test (Test per modul)

ii) Integreated test (Test penggabungan dari modul-modul yang telah diuji)

iii) Validated test (Diuji dengan data sebenarnya)

iv) System test (Test dilakukan dengan lingkungan sebenarnya)

v) Topdown test (Test gabungan dari atas ke bawah)

vi) Bottom up test (Test gabungan dari bawah ke atas)

3. Fase Pemeliharaan (Maintenance) :

Jenis-jenis maintenance

a) Koreksi (Corection)

b) Adaptasi (Adaptive)

Software dikembangkan sesuai dengan tuntutan perkembangan jaman

c) Adaptasi yang berkembang pada dewasa ini terbagi atas :

i) Sistem Operasi

à Pengarahan sistem operasi yang bersifat multi user. Contoh : UNIX

à Sistem operasi yang bersifat jaringan. Contoh : NOVELL

ii) RDBMS - Relational DataBase Management System

à Berkembang dalam bentuk bahasa SQL (Structure Query Language).

iii) Bahasa

Mengarah pada perkembangan bahasa generasi ke empat (4GL - Fourth Generation Language)

Bahasa 4GL adalah suatu bahasa yang dibuat untuk meningkatkan produktifitas programmer dan end user. Contoh :

a) INFORMIX - Dapat dijalankan pada PC dengan minimum RAM 4MB + 640KB dan disk sto­r­age > 40MB

b) ORACLE

c) INGRES

d) AS / SET - Digunakan pada IBM AS 400

e) POWER HOUSE - digunakan pada HR 3000

iv) Perfective

Menyempurnakan software yang ada biasanya dilakukan karena permin­taan / saran / kritik user.

2. Agile Software Development

Adalah Salah satu sebuah metode yang di pakai untuk proses pengembangan software. Agile merupakan jenis pengembangan jangka pendek memerlukan penyesuaian atau adaptasi secara cepat dari para pengembang terhadap perubahan yang terjadi dan dalam bentuk apapun itu.

Dalam Agile Software Development interaksi dan personel lebih penting dari pada proses dan alat, software yang berfungsi lebih penting daripada dokumentasi yang lengkap, kolaborasi dengan klien lebih penting dari pada negosiasi kontrak, dan sikap tanggap terhadap perubahan lebih penting daripada mengikuti rencana

Ciri dan Prinsip Agile Method

  1. Kepuasan klien prioritas
  2. Tanggap perubahan yang terjadi
  3. Komunikasi tim
  4. Kerja tim
  5. Klien bagian dari tim
  6. Hasil 2 minggu – 2 bulan
  7. Solving (perbaikan) berjalan setiap saat

3. Extrem Software Devolopment

Extrem Software Devolopment dikenal juga dengan XP ini merupakan model pengembangan yang berfokus pada coding(pembuatan kodenya) sebagai aktivitas utama di semua tahap pada siklus pengembangan perangkat lunak (software development lifecycle).

Tujuan XP

  1. menurunkan jumlah biaya pengembangan dari adanya perubahan software.
  2. software yang dibuat haruslah lebih fleksibel terhadap perubahan

Nilai-nilai inti dari bagian Extrem Programing

1. Communication (komunikasi)

Komunikasi ini menjadi hal penting dalam sebuah tim pengembang software. Jika komunikasi perorangan (programer, tester, coach , big bos dll ) dalam sustu time mengalami misscomunikasi ini akan mengakibatkan munculnya masalah-masalah yang nantinya bisa menggangu proses pengembangannya bias-bisa tidak dapat menyelesaikannya.

2. Simplicity (kesederhaan)

Hal ini Mengacu pada desain system yang akan dibuat.XP menganjurkan desain yang berevolusi terus sepanjang pengembangan software. Bayak seorang programmer memikirkan bagaimana software yang dibuatnya nanti menjadi fleksibel untuk masa depan, sehingga mengambil sebuah keputusan yang sifatnya rekaan (spekulasi) dari mereka. Namun keputusan itu meeleset dari kenyataan. Maka dari itu di anjurkan untuk membuat desain sisten yang sesuai kebutuh utama yang memang di butuhkan.

3. Feedback (umpan balik)

Feedback ini diperlukan untuk mengetahui kemajuan dari proses dan kualitas dari aplikasi yang dibangun. Informasi ini harus dikumpulkan setiap interval waktu yang singkat secara konsisten. Ini dimaksudkan agar hal-hal yang menjadi masalah dalam proses pengembangan dapat diketahui sedini mungkin dan customer dapat membuat keputusan berdasarkan informasi tersebut.

4. Courage (Keberanian)

Ini merupakan nilai yang menjadi katalisator bagi ketiga nilai sebelumnya. Keberanian diperlukan untuk mengatakan bahwa target deadline yang diinginkan customer tidak mungkin tercapai, untuk mengambil keputusan saat code yang sudah dibuat ternyata harus dibuang karena kesalahan informasi

5. Respect (Menghormati)

Adanya saling menghargai antar pihak-pihak yang berkepentingan dalam proses pengembangan software ini.


software and software engineering

Selama tiga dekade pertama dari era komputerisasi, tantangan utama adalah mengembangkan hardware kom­puter yang dapat mengurangi biaya pengolahan dan penyimpanan data. Selama dekade tahun 1980 an, kemajuan yang pesat dari mikro elektronik menghasilkan kemampuan komputer yang lebih baik pada tingkat biaya yang lebih rendah. Namun masalah sekarang berbeda. Tantangan utama adalah mengurangi biaya dan memperbaiki kualitas solusi berbasis komputer (Solusi yang diimplementasikan dengan mempergunakan software). Software merupakan faktor kunci dalam keberhasilan suatu usaha, software dapat membedakan satu perusahaan dari per­usahan saingannya.

Evolusi Perkembangan Software

Evolusi software


Tahun-tahun awal :

à Batch orientation

à Limmited distribution

à Custummer software

Era kedua :

à Multi user

à Real time

à Database


Era ketiga

à Distibuted system

à Embedded intellegence

à Low cost hardware

à Consumer infact

Era keempat :

à Expert system

à A I Machine

à Parallel architecture


Tahun-tahun pertama :

à Batch Orientation

Suatu orientasi di mana proses dilakukan setelah data dikumpulkan dalam satuan waktu tertentu, atau proses dilakukan setelah data terkumpul, lawan dari batch adalah ONLINE atau Interactive Process.

Keuntungan dari Interactive adalah mendapatkan data yang selalu up to date.

à Limmited distribution

Suatu penyebaran software yang terbatas pada perusahaan-perusahaan tertentu.

à Custom software

Software yang dikembangkan berdaasarkan perusahaan-perusahaan tertentu.

Era kedua :

à Multi user

Suatu sistem di mana satu komputer digunakan oleh beberapa user pada saat yang sama.

à Real Time

Suatu sistem yang dapat mengumpulkan, menganalisa dan mentransformasikan data dari berbagai sumber, mengontrol proses dan menghasilkan output dalam mili second.

à Database

Perkembangan yang pesat dari alat penyimpan data yang OnLine menyebabkan muncul generasi pertama DBMS (DataBase Management System).

à Product Software

Adalah software yang dikembangkan untuk dijual kepada masyarakat luas.

ERA KETIGA :

à Distributed system

Suatu sistem yang tidak hanya dipusatkan pada komputer induk (Host computer), daerah atau bidang lain­nya yang juga memiliki komputer yang ukurannya lebih kecil dari komputer induk. Lawan dari distributed system adalah Centralized System.

à Embedded Intelegence

Suatu product yang diberi tambahan “Intellegence” dan biasanya ditambahkan mikroprocessor yang mutak­hir. Contohnya adalah automobil, robot, peralatan diagnostic serum darah.

à Low Cost Hardware

harga hardware yang semakin rendah, ini dimungkinkan karena munculnya Personal Computer.

à Consummer Inpact

Adanya perkembangan komputer yang murah menyebabkan banyaknya software yang dikembangkan, soft­ware ini memberi dampak yang besar terhadap masyarakat.

ERA KEEMPAT :

à Expert system

Suatu penerapan A.I. (Artificial Intellegence) pada bidang-bidang tertentu, misalnya bidang kedokteran, komunikasi, dll.

à AI Machine

Suatu mesin yang dapat meniru kerja dari sebagian otak manusia. Misalnya mesin robot, komputer catur.

à Parallel Architecture

Arsitektur komputer yang memungkinkan proses kerja LAN paralel, yang dimungkinkan adanya prosesor berbeda dalam satu komputer

ARTI SOFTWARE

1. Instruksi

Atau program komputer yang ketika dieksekusi akan memberi fungsi dan hasil yang diinginkan.

2. Struktur data

Yang memungkinkan program memanipulasi informasi

3. Dokumen

Yang menggambarkan operasi dan penggunaan program.

SIFAT DAN KARAKTERISTIK SOFTWARE

1. Software merupakan elemen sistem logik dan bukan elemen sistem fisik seperti hardware

2. Elemen itu tidak aus, tetapi bisa rusak.

3. Elemen software itu direkayasa atau dikembangkan dan bukan dibuat di pabrik seperti hardware

4. Software itu tidak bisa dirakit.

KOMPONEN SOFTWARE

1. Bentuk bahasa

Terbagi 2, yaitu

A. High Level, contoh PASCAL, COBOL, FORTRAN.

B. Middle Level, contoh C

2. Bentuk translator

Terbagi 3 , yaitu :

A. Interpreter

Menerjemahkan dari bahasa tingkat tinggi ke bahasa tingkat rendah secara satu persatu (statemen demi statemen)

B. Compiler

Menerjemahkan secara keseluruhan, proses lebih cepat dari interpreter

C. Assembler

Menerjemahkan dari bahasa rakitan ke bahasa mesin

3. Bentuk mesin :


aplikasi software

1. Sistem Software

Adalah sekumpulan program yang ditulis untuk melayani atau menunjang program lainnya. Beberapa sistem software seperti compiler, editor, komponen-komponen sistem operasi, driver dan prosesor telekomunikasi.

2. Real Time software

Software yang mengukur, menganalisis dan mengontrol kejadian yang sesungguhnya terjadi di dunia. Ele­men-elemen real time software terdiri dari :

A. Komponen pengumpul data

Yang mengumpulkan dan menyusun informasi dari lingkungan external.

B. Komponen analisis

Yang mentransformasikan informasi yang diperlukan oleh aplikasi

C. Komponen kontrol

Yang memberikan respon kepada lingkungan external

D. Komponen monitor

Yang mengkoordinasi semua komponen-komponen lainnya, sehingga respons real time yang berkisar 1 milisecond sampai 1 menit dapat dipertahankan.

Perlu dicatat bahwa istilah real time berbeda dari istilah interactive atau time sharing. Sistem real time harus memberikan respons pada waktu yang ditentukan, sedangkan pada sistem interactive atau time sharing respons time biasanya melebihi batas waktu yang ditentukan tanpa merusak hasil.

3. Business software

Software yang palinmg banyak digunakan dalam bidang aplikasi software. Software ini digunakan oleh manajemen untuk mengambil kepitusan ( Decision Making ) dalam bidang bisnis. Contoh :

à DAC EASY ACCOUNTING

à FINANCE MANAJER

4. Engineering and sciencetific software

Software yang dicirikan dengan algoritma numerik, aplikasinya berkisar dari astronomi sampai vulkanologi, dari analis ketegangan otomotif sampai dinamika orbit ruang angkasa. Software ini banyak digunakan dalam bidang engineering dan science. Contoh

à CAD / CAM ( Computer Aided Design / Computer Aided Manufacture - Ssimulasi sistem )

5. Emdebed software

Suatu software disimpan dalam memori tetap - ROM - Read Only Memory, dan digunakan untuk mengon­trol product dan sistem software ini dijalankan dengan berbagai fungsi terbatas.

6. PC software (Personal Computer)

Software yang banyak digunakan di komputer pribadi (PC). Contoh :

à Word Processing : WS, WP

à Spreadsheet : Lotus, Supercalc

à Computer Graphics : Printshop, Print Magic

à Games : Paoman, Load Runner

à DBMS : Dbase III+, Foxbase, Clipper

à Network : LAN, Novell

7. Artificial Intelegence software

Software yang banyak menggunakan algoritma non numerik dalam memecahkan masalah kompleks yang tidak dapat dianalisis dengan analisis komputasi biasa. Saat ini bidang AI yang paling aktif adalah expert system atau knowledge base system. Bidang aplikasi lain dari software AI adalah pengenalan citra dan suara ( image and voice pattern recognition ), teorema pembuktian dan permainan / games.

KRISIS SOFTWARE

Adalah sekumpulan masalah yang ditemukan dalam pengembangan software computer. Masalahnya tidak hanya terbatas pada software yang tidak berfungsi sebagaimana mestinya, tetapi krisis software ini terdiri dari masalah yang berhubungan dengan :

1. Bagaimana mengembangkan software

2. Bagaimana memelihara software ynag ada, yang berkembang dalam jumlah besar

3. Bagaimana mengimbangi permintaan software yang makin besar.

MASALAH

Krisis software oleh beberapa masalah :

1. Estimasi jadual dan biaya yang seringkali tidak tepat

2. Produktivitas orang-orang software yang tidak dapat mengimbangi permintaan software

3. Kualitas software yang kurang baik.

Penyebab :

Masalah yang berhubungan dengan krisis software disebabkan oleh :

1. Karakteristik software itu sendiri

Karakteristik software adalah software yang bersifat logika dibandingkan fisik, oleh karena itu mengukur software harus merupakan suatu kesatuan, tidak seperti hardware. Software yang bersifat tidak aus ini menyebabkan kesalahan yang terjadi pada software. Umumnya terjadi pada tahap pengembangan. Manajer tingkat menengah dan tingkat atas yang tidak mempunyai latar belakang software, seringkali diberi tang­gung jawab untuk mengembangkan software. Padahal tidak semua manajer itu dapat me-manage semua proyek.

Praktisnya : software programmer atau software engineering mendapatkan latihan formal yang sedikit dalam hal tehnik baru pengembangan software.

2. Kegagalan mereka yang bertanggung jawab dalam pengembangan software.

MITOS SOFTWARE

1. Mitos managements

A. Kita tidak perlu mengubah pendekatan terhadap pengembangan software, karena jenis pemrograman yang kita lakukan sekarang ini sudah kita lakukan 10 tahun yang lalu.

Realitasnya : Walau hasil program sama, produktivitas dan kualitas software harus ditingkatkan dengan menggunakan pendekatan software developments

B. Kita sudah mempunyai buku yang berisi standarisasi dan prosedur untuk pembentukan software.

Realitasnya : Memang buku tersebut ada, tetapi apakah buku tersebut sudah dibaca atau buku tersebut sudah ketinggalan jaman ( out of date ).

C. Jika kita tertinggal dari jadwal yang ditetapkan, kita menambah beberapa programmer saja. Konsep ini sering disebut Mongolian harde concept.

2. Mitos Langganan / Customer

A. Pernyataan tujuan umum sudah cukup untuk memulai penulisan program. Penjelasan yang lebih rinci akan menyusul kemudian.

Realitasnya : Definisi awal yang buruk adalah penyebab utama kegagalan terhadap usaha-usaha pem­bentukkan software. Penjelasan yang formal dan terinci tentang informasi fungsi performance interface, hambatan desain dan kriteria validasi adalah penting. Karakteristik di atas dapat ditentukan hanya sete­lah adanya komunikasi antara customer dan developer.

B. Kebutuhan proyek yang terus menerus berubah dapat dengan mudah diatasi karena software itu bersifat fleksibel. Kenyataannya memang benar bahwa kebutuhan software berubah, tetapi dampak dari peru­bahan berbeda dari waktu ke waktu.

Kesimpulan : Jika perubahan mendekati akhir penyelesaian, maka biaya akan lebih besar.

3. Mitos Praktisi

A. Tidak ada metode untuk analisis disain dan testing terhadap suatu pekerjaan, cukup menuju ke depan terminal dan mulai coding.

Realitasnya : Metode untuk analisis desain dan testing diperlukan dalam pengembangan software.

B. Segera setelah software digunakan, pemeliharaan dapat diminimalisasikan dan diatasi dengan cara “CATCH AS CATCH CAM”.

Realitasnya : Diperlukan budget yang besar dalam maintenance software. Pemeliharaan software harus diorganisir, direncanakan dan dikontrol seolah-olah sebagai suatu proyek besar dalam sebuah or­ganisasi.

MODEL SOFTWARE ENGINEERING

Krisis software tidak dapat hilang dalam satu satu malam, di mana tidak ada suatu pendekatan yang baik dalam mengatasi krisis software, namun gabungan dari metode untuk semua fase dalam pengembangan siftware seperti peralatan yang lebih baik untuk mengautomatisasi metode-metode ini, tehnik yang lebih baik untuk mengontrol kualitas, dan filosofi untuk koordinasi kontrol, serta manajemen dipelajari dalam suatu disiplin ilmu yang kita sebut software engineering.

Definisi :

Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang se­benarnya.

Software engineering terdiri dari 3 elemen kunci, yaitu :

1. Metode,

2. Peralatan (tools),

3. Prosedur,

yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.

1. Metode Software Enginnering

Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri dari serangkaian tugas :

à Perencanaan & estimasi proyek

à Analisis kebutuhan sistem dan software

à Desain struktur data

à Arsitektur program dan prosedur algoritma

à Coding

à Testing dan pemeliharaan

2. Peralatan Software Engineering

Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :

à CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hard­ware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.

à Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.

à Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE

3. Prosedur Software Engineering

Terdiri dari :

à urut-urutan di mana metode tersebut diterapkan

à dokumen

à laporan-laporan

à formulir-formulir yang diperlukan

à mengontrol kualitas software

à mengkoordinasi perubahan yang terjadi pada software

Dalam penguasaan atas model software engineering atau software engineering paradigm, dikenal ada 3 metode yang luas dipergunakan, yaitu :

1. Classic Life Cycle Pradigm - Model Water Fall - Model Siklus Hidup Klasik

Keterangan :

A. System Engineering and Analysis

Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerap­kan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan ele­men lain, seperti :

à Hardware

à Software

à Database

B. Analisis kebutuhan software

Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk soft­ware engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan inter­face terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.

C. Design

Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :

à Struktur data

à Arsitektur software

à Rincian prosedur

Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.

D. Coding

Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin

E. Testing

Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan.

F. Maintenance

Software yang sudah dikirim ke customer data berubah karena

à Software mengalami error

à Software harus diadaptasi untuk menyesuaikan dengan lingkungan external, misalnya adanya sistem operasi baru atau peripheral baru.

à Software yang lebih disempurnakan karena adanya permintaan dari customer.

Masalah yang dihadapi dari model siklus hidup klasik adalah :

à Proyek yang sebenarnya jarang mengikuti aliran sequential yang ditawarkan model ini. Iterasi (Pengulangan) selalu terjadi dan menimbulkan masalah pda aplikasi yang dibentuk oleh model ini.

à Seringkali pada awalnya customer sulit menentukan semua kebutuhan secara explisit (jelas).

à Customer harus sabar karena versi program yang jalan tidak akan tersedia sampai proyek software sele­sai dalam waktu yang lama.

2. Prototype Paradigm

Keterangan :

Seringkali seorang customer sulit menentukan input yang lebih terinci, proses yang diinginkan dan output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin dengan efisiensi alogoritma yang di­buatnya, sulit menyesuaikan sistem operasi, serta interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini, pendekatan prototype untuk software engineering merupakan langkah yang terbaik. Proto­type sebenarnya adalah suatu proses yang memungkinkan developer membuat sebuah model software.

Ada 2 bentuk dari model ini, yaitu :

A. Paper Prototype

Menggambarkan interaksi manusia dan mesin dalam sebuah bentuk yang memungkinkan user mengerti bagaimana interaksi itu terjadi.

B. Working Prototype

Adalah prototype yang mengimplementasikan beberapa bagian dari fungsi software yang diinginkan seperti pada pendekatan pengembangan software. Model ini dimulai dengan :

à Pengumpulan kebutuhan developer dan customer

à Menentukan semua tujuan software

à Mengidentifikasi kebutuhan-kebutuhan yang diketahui

Hasil dari pengumpulan kebutuhan diteruskan pada Quick Design. Quick Design ini memfokuskan pada representasi aspek-aspek software yang dapat dilihat oleh user, misalnya format input dan output, selanjutanya dari desain cepat diteruskan pada pembentukan prototype (langkah ke 3). Prototype ini dievaluasi oleh customer / user dan digunakan untuk memperbaiki kebutuhan-kebutuhan software. Proses iterasi terjadi agar prototype yang dihasilkan memenuhi kebutuhan customer, juga pada saat yang sama developer mengerti lebih baik tentang apa yang harus dikerjakan.

Masalah yang dihadapi oleh prototyping paradigm ini adalah :

à Customer hanya melihat pada apa yang dihasilkan oleh software, tidak peduli pada hal-hal yang ber­hubungan dengan kualitas software dan pemeliharaan jangka panjang.

à Developer seringkali menyetujui apa yang diterangkan oleh customer agar prototype dapat dihasilkan dengan cepat. Akibatnya timbul pemilihan sistem operasi / bahasa pemrograman yang tidak tepat.

3. Fourth Generation Tehnique Paradigm - Model tehnik generasi ke 4 / 4GT

Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan seorang developer software menerapkan beberapa karakteristik software pada tingkat yang tinggi, yang ke­mudian menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi yang ditentu­kan developer. Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :

à DataBase Query

à Pembentukan laporan ( Report Generation )

à Manipulasi data

à Definisi dan interaksi layar (screen)

à Pembentukan object dan source ( Object and source generation )

à Kemampuan grafik yang tinggi, dan

à Kemampuan spreadsheet

Keterangan gambar :

à Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan kebutuhan. Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan ke dalam proto­type. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan tidak dapat menentukan informasi yang diing­inkan oleh peralatan 4GT.

à Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan kebutuhan ke im­plementasi yang menggunakan bahasa non prosedur fourth generation (generasi ke 4). Tetapi untuk proyek besar, pengembangan strategi desain sistem tetap diperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan pendekatan konvensional.

à Implementasi yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang diing­inkan yang kemudian diterjemahkan ke dalam bentuk source code dan object code secara otomatis.

à Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product. Selanjutnya de­veloper harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software engineering.

Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan bahwa :

A. peralatan 4GT tidak semudah penggunaan bahasa pemrograman,

B. source code yang dihasilkan oleh peralatan ini tidak efisien,

C. pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.

4. Model Kombinasi - Combining Paradigm

Keterangan :

Model ini menggabungkan keuntungan-keuntungan dari beberapa model sebelumnya. Seperti pada model sebelumnya, model kombinasi ini dimulai dengan langkah pengumpulan kebutuhan.

Pendekatan yang dapat diambil adalah pendekatan siklus hidup klasik (Analisis sistem dan analisis kebu­tuhan software) atau dapat juga menggunakan pendekatan seperti prototyping jika definisi masalahnya tidak terlalu formal.

Jika kebutuhan untuk fungsi dan performance software diketahui dan dimengerti, pendekatan yang dianjur­kan adalah model siklus hidup klasik. Sebaliknya, jika aplikasi software menuntut interaksi yang sering antara manusia dan mesin, membutuhkan algoritma yang tidak dapat dibuktikan, atau membutuhkan tehnik output / kontrol, maka pendekatan yang dianjurkan adalah model prototyping.

Pada kasus seperti ini, 4GL dapat digunakan untuk mendapat prototype dengan cepat. Segera sesudah pro­totype dievaluasi dan disempurnakan, langkah desain dan implementasi dalam siklus hidup klasik diterap­kan.

Dari model yang disebut di atas dapat diambil suatu kesimpulan, bahwa proses pengembangan software terdiri dari 3 fase, yaitu :

1. Fase Definisi

2. Fase Pengembangan (Development)

3. Fase Pemeliharaan (Maintenance)

1. Fase Definisi

Fase definisi memfokuskan pada “What”. Selama definisi ini, developer software berusaha untuk :

à Mengidentifikasi informasi apa yang dikerjakan proses

à Fungsi dan performance apa yang diinginkan

à Interface apa yang dibutuhkan

à Hambatan desain apa yang ada, dan

à Kriteria validasi apa yang dibutuhkan untuk menetapkan keberhasilan sistem.

A. Sistem Analis

Sistem analis menetapkan peranan dari setiap elemen dalam sistem berbasis komputer, terutama menga­lokasikan peranan software.

B. Sistem Software Planning

Dalam sistem ini, setelah lingkungan software dialokasikan, maka langkah dari sistem software plan­ning ini adalah :

à Pengalokasian sumber / resource

à Estimasi biaya

à Penetapan tugas pekerjaan dan jadual.

C. Requirement Analysis

Penetapan lingkup untuk software memberikan petunjuk / arah. Namun definisi yang lebih rinci dari in­formasi dan fungsi software diperlukan sebelum pekerjaan dimulai.

2. Fase Pengembangan

Fase pengembangan berfokus pada “How”. Selama pengembangan, developer software berusaha menjelas­kan :

à Bagaimana struktur data dan arsitektur software yang didesain

à Bagaimana rincian prosedur diimplementasikan ( diterapkan )

à Bagaimana desain diterjemahkan ke dalam bahasa pemrograman atau bahasa non prosedur, dan

à Bagaimana pengetesan akan dilaksanakan.

A. Desain software ( Software Design )

Desain menterjemahkan kebutuhan-kebutuhan software ke dalam sekumpulan representasi (grafik, ta­bel, diagram, atau bahasa yang menjelaskan struktur data, arsitektur software dan prosedur algoritma).

B. Coding

Representasi desain harus diterjemahkan ke dalam bahasa tiruan / artificial language yang menghasilkan perintah-perintah yang dapat dieksekusi oleh komputer.

C. Software Testing

Segera sesudah software diimplementasikan dalam bentuk yang dapat dieksekusi oleh mesin, software perlu ditest untuk menemukan kesalahan ( merupakan fungsi logika dan implementasi ).

3. Fase Pemeliharaan

Fase pemelihaaan berfokus pada “Change” atau perubahan. Ini dapat disebabkan :

A. Perubahan karena software error ( Corective Maintenance )

B. Perubahan karena software disesuaikan / diadaptasi dengan lingkungan external, misalnya munculnya CPU baru, sistem operasi baru ( Adaptive Maintenance )

C. Perubahan software yang disebabkan customer / user meminta fungsi tambahan, misalnya fungsi grafik, fungsi matematik, dll ( Perfective Maintenance )

TUGAS ANDA 1 :

Dengan menerapkan konsep pada model pengembangan Classic Lyfe Cycle di atas, anda lakukan beberapa hal berikut ini :

1. Tentukan Software apa yang akan anda buat;

2. Kemudian lakukan langkah A dan B dengan melakukan pendekatan pada pengembangan sistem berbasis web. (pembuatan aplikasi berbasis jaringan).

3. Dibuat secara berkelompok dengan jumlah maksimal setiap kelompok 5 orang.

4. Hasil yang telah anda buat, dilaporkan kembali dengan ketikan rapi dan terstruktur. (lihat contoh di bawah ini)

5. Laporan hasil dikirimkan ke email : r.syafari@yahoo.com denga format subject sebagai berikut :

“TUGAS RPL ......... ke ...... / Nama Kelompok”

6. Dalam setiap tugas, cantumkan nama anggota kelompok beserta Nim.

7. Tugas dikirim dalam bentuk attachment dengan format word dokumen (.doc)

8. Laporan tersebut diterima paling lambat tanggal 15 Oktober 2006

Selamat Mengerjakan, Bila anda mengalami kesulitan kirimkan email ke alamat di atas dengan subject “KONSUL – RPL / Nim anda”


Contoh Penulisan laporan

Nama Kelomok :

Anggota Kelompok : 1.

2.

3. dst.

Nama Software / Perangkat Lunak :

A. Daftar Kebutuhan perangkat lunak :

Jelaskan mengapa software yang akan anda buat dianggap perlu untuk dikembangkan, dan berikan gambaran hubungannya antar subsistem yang direncakan tersebut.

Gambaran tersebut bisa anda buat dengan teknik analisis menggunakan tool flowchart (untuk hal ini dapat anda lihat panduan).

B. Analisis Kebutuhan Perangkat lunak

Hardware

Software Pendukung

Database yang akan digunakan

1.

2.

3. dst.

1.

2.

3.dst

1.

2.

3.dst

C. Jadwal KerjaPengembangan perangkat lunak

Bagian ini adalah rencana jadwal kerja dalam bentuk time series

Contoh :

No.

Nama Kegiatan

Bulan/minggu/hari ke-

Bulan/minggu/hari ke-

dst

1.

Pembelian Server

2.

Instal P/L server dan S.O

3.

Desain Database

4.

dst.