Feeds:
Pos
Komentar

MEMORI INTERNAL

Karakteristik Sistem Memori (secara umum)

 

  1. 1.          Lokasi

® CPU

® Internal (main)

® External (secondary)

  1. 2.          Kapasitas

® Ukuran word

® Banyaknya word

  1. 3.          Satuan Transfer

® Word

® Block

  1. 4.          Metode Akses

® Sequential access

® Direct access

® Random access

® Associative access

 

  1. 5.          Kinerja

® Access time

® Cycle time

® Transfer rate

  1. 6.          Tipe Fisik

® Semikonduktor

® Permukaan magnetik

  1. 7.          Karakteristik Fisik

® Volatile/nonvolatile

® Erasable/nonerasable

  1. 8.          Organisasi

 

Catatan:

Bagi pengguna dua karakteristik penting memori adalah

  • Ø Kapasitas,
  • Ø Kinerja.

 

Penjelasan

1) Lokasi Memori

Ada tiga lokasi keberadaan memori di dalam sistem komputer, yaitu:

  • Ø Memori lokal
    • Memori ini built-in berada dalam CPU (mikroprosesor),
    • Memori ini diperlukan untuk semua kegiatan CPU,
    • Memori ini disebut register.
    • Ø Memori internal
      • Berada di luar CPU tetapi bersifat internal terhadap sistem komputer,
      • Diperlukan oleh CPU untuk proses eksekusi (operasi) program, sehingga dapat diakses secara langsung oleh prosesor (CPU) tanpa modul perantara,
      • Memori internal sering juga disebut sebagai memori primer atau memori utama.
      • Memori internal biasanya menggunakan media RAM

 

  • Ø Memori eksternal
    • Bersifat eksternal terhadap sistem komputer dan tentu saja berada di luar CPU,
    • Diperlukan untuk menyimpan data atau instruksi secara permanen.
    • Tidak diperlukan di dalam proses eksekusi sehingga tidak dapat diakses secara langsung oleh prosesor (CPU). Untuk akses memori eksternal ini oleh CPU harus melalui pengontrol/modul I/O.
    • Memori eksternal sering juga disebut sebagai memori sekunder.
    • Memori ini terdiri atas perangkat storage peripheral seperti : disk, pita magnetik, dll.

 

2) Kapasitas Memori

  • Ø Kapasitas register (memori lokal) dinyatakan dalam bit.
  • Ø Kapasitas memori internal biasanya dinyatakan dalam bentuk byte       (1 byte = 8 bit) atau word. Panjang word umum adalah 8, 16, dan 32 bit.
  • Ø Kapasitas memori eksternal biasanya dinyatakan dalam byte.

 

3) Satuan Transfer (Unit of Transfer)

Satuan transfer sama dengan jumlah saluran data yang masuk ke dan keluar dari modul memori.

  • Ø Bagi memori internal (memori utama), satuan transfer merupakan jumlah bit yang dibaca atau yang dituliskan ke dalam memori pada suatu saat.
  • Ø Bagi memori eksternal, data ditransfer dalam jumlah yang jauh lebih besar dari word, dalam hal ini dikenal sebagai block.

 

Word

Ukuran word biasanya sama dengan jumlah bit yang digunakan untuk representasi bilangan dan panjang instruksi, kecuali CRAY-1 dan VAX.

  • Ø CRAY-1 memiliki panjang word 64 bit, memakai representasi integer 24 bit.
  • Ø VAX memiliki panjang instruksi yang beragam, ukuran wordnya adalah 32 bit.

Addressable Units

Pada sejumlah sistem, addressable unit adalah word. Hubungan antara panjang suatu alamat (A) dengan jumlah addressable unit (N) adalah 2A = N

 

4) Metode Akses Memori

Terdapat empat jenis pengaksesan satuan data, sbb.:

  • Ø Sequential Access
  • Ø Direct Access
  • Ø Random Access
  • Ø Associative Access

v Sequential Access

®   Memori diorganisasikan menjadi unit-unit data, yang disebut record.

®   Akses dibuat dalam bentuk urutan linier yang spesifik.

®        Informasi pengalamatan dipakai untuk memisahkan record-record dan untuk membantu proses pencarian.

®        Mekanisme baca/tulis digunakan secara bersama (shared read/write mechanism), dengan cara berjalan menuju lokasi yang diinginkan untuk mengeluarkan record.

®        Waktu access record sangat bervariasi.

®        Contoh sequential access adalah akses pada pita magnetik.

 

v Direct Access

®        Seperti sequential access, direct access juga menggunaka shared read/write mechanism, tetapi setiap blok dan record memiliki alamat yang unik berdasarkan lokasi fisik.

®        Akses dilakukan secara langsung terhadap kisaran umum (general vicinity) untuk mencapai lokasi akhir.

®        Waktu aksesnya bervariasi.

®        Contoh direct access adalah akses pada disk.

 

v Random Access

®        Setiap lokasi dapat dipilih secara random dan diakses serta dialamati secara langsung.

®        Waktu untuk mengakses lokasi tertentu tidak tergantung pada urutan akses sebelumnya dan bersifat konstan.

®        Contoh random access adalah sistem memori utama.

 

v Associative Access

®        Setiap word dapat dicari berdasarkan pada isinya dan bukan berdasarkan alamatnya.

®        Seperti pada RAM, setiap lokasi memiliki mekanisme pengalamatannya sendiri.

®        Waktu pencariannya tidak bergantung secara konstan terhadap lokasi atau pola access sebelumnya.

®        Contoh associative access adalah memori cache.

 

5) Kinerja Memori

Ada tiga buah parameter untuk kinerja sistem memori, yaitu :

  • Ø Waktu Akses (Access Time)

®        Bagi RAM, waktu akses adalah waktu yang dibutuhkan untuk melakukan operasi baca atau tulis.

®        Bagi non RAM, waktu akses adalah waktu yang dibutuhkan untuk melakukan mekanisme baca tulis pada lokasi tertentu.

  • Ø Waktu Siklus (Cycle Time)

®        Waktu siklus adalah waktu akses ditambah dengan waktu transien hingga sinyal hilang dari saluran sinyal atau untuk menghasilkan kembali data bila data ini dibaca secara destruktif.

  • Ø Laju Pemindahan (Transfer Rate)

®        Transfer rate adalah kecepatan pemindahan data ke unit memori atau ditransfer dari unit memori.

®        Bagi RAM, transfer rate sama dengan 1/(waktu siklus).

®        Bagi non-RAM, berlaku persamaan sbb.:

 

TN = Waktu rata-rata untuk membaca atau menulis sejumlah N bit.

TA = Waktu akses rata-rata

N = Jumlah bit

R = Kecepatan transfer, dalam bit per detik (bps)

6) Tipe Fisik Memori

Ada dua tipe fisik memori, yaitu :

  • Ø Memori semikonduktor, memori ini memakai teknologi LSI atau VLSI (very large scale integration).

Memori ini banyak digunakan untuk memori internal misalnya RAM.

  • Ø Memori permukaan magnetik, memori ini banyak digunakan untuk memori eksternal yaitu untuk disk atau pita magnetik.

 

7)Karakteristik Fisik

Ada dua kriteria yang mencerminkan karakteristik fisik memori, yaitu:

  • Ø Volatile dan Non-volatile
    • Pada memori volatile, informasi akan rusak secara alami atau hilang bila daya listriknya dimatikan.
    • Pada memori non-volatile, sekali informasi direkam akan tetap berada di sana tanpa mengalami kerusakan sebelum dilakukan perubahan. Pada memori ini daya listrik tidak diperlukan untuk mempertahankan informasi tersebut.

Memori permukaan magnetik adalah non volatile.

Memori semikonduktor dapat berupa volatile atau non volatile.

  • Ø Erasable dan Non-erasable
    • Erasable artinya isi memori dapat dihapus dan diganti dengan informasi lain.
    • Memori semikonduktor yang tidak terhapuskan dan non volatile adalah ROM.

8)Organisasi

Yang dimaksud dengan organisasi adalah pengaturan bit dalam menyusun word secara fisik.

Hirarki Memori

Tiga pertanyaan dalam rancangan memori, yaitu :

Berapa banyak? Berapa cepat?     Berapa mahal?

Kapasitas.            Waktu access      Harga

Setiap spektrum teknologi mempunyai hubungan sbb.:

  • Ø Semakin kecil waktu access, semakin besar harga per bit.
  • Ø Semakin besar kapasitas, semakin kecil harga per bit.
  • Ø Semakin besar kapasitas, semakin besar waktu access.

Untuk mendapatkan kinerja terbaik, memori harus mampu mengikuti CPU. Artinya apabila CPU sedang mengeksekusi instruksi, kita tidak perlu menghentikan CPU untuk menunggu datangnya instruksi atau operand.

Untuk mendapatkan kinerja terbaik, memori menjadi mahal, berkasitas relatif rendah, dan waktu access yang cepat.

 

Untuk memperoleh kinerja yang optimal, perlu kombinasi teknologi komponen memori. Dari kombinasi ini dapat disusun hirarki memori sbb.:

Semakin menurun hirarki, maka hal-hal di bawah ini akan terjadi :

a)    Penurunan harga per bit

b)   Peningkatan kapasitas

c)    Peningkatan waktu akses

d)   Penurunan frekuensi akses memori oleh CPU.

 

Kunci keberhasilan organisasi adalah penurunan frekuensi akses memori oleh CPU.

Bila memori dapat diorganisasikan dengan penurunan harga per bit melalui peningkatan waktu akses, dan bila data dan instruksi dapat didistribusikan melalui memori ini dengan penurunan frekuensi akses memori oleh CPU, maka pola ini akan mengurangi biaya secar keseluruhan dengan tingkatan kinerja tertentu.

Register adalah jenis memori yang tercepat, terkecil, dan termahal yang merupakan memori internal bagi prosesor.

Memori utama merupakan sistem internal memory dari sebuah komputer. Setiap lokasi di dalam memori utama memiliki alamat yang unik.

Cache adalah perangkat untuk pergerakan data antara memori utama dan register prosesor untuk meningkatkan kinerja.

Ketiga bentuk meori di atas bersifat volatile dan memakai teknologi semikonduktor.

 

Magnetic disk dan Magnetic tape adalah external memory dan bersifat non-volatile.

Memory Semikonduktor

Ada beberapa memori semikonduktor, yaitu :

  1. RAM : RAM statik (SRAM) dan RAM dinamik (DRAM).
  2. ROM : ROM, Programmable ROM (PROM), Erasable PROM (EPROM), Electrically EPROM (EEPROM), Flash Memory.

Random Access Memory (RAM)

  • Ø Baca dan tulis data dari dan ke memori dapat dilakukan dengan mudah dan cepat.
  • Ø Bersifat volatile
  • Ø Perlu catu daya listrik.

RAM Dinamik (DRAM)

Disusun oleh sel-sel yang menyimpan data sebagai muatan listrik pada kapasitor.

Ada dan tidak ada muatan listrik pada kapasitor dinyatakan sebagai bilangan biner 1 dan 0.

Perlu pengisian muatan listrik secara periodik untuk memelihara penyimapanan data.

RAM Statik (SRAM)

Disusun oleh deretan flip-flop.

Baik SRAM maupun DRAM adalah volatile. Sel memori DRAM lebih sederhana dibanding SRAM, karena itu lebih kecil. DRAM lebih rapat (sel lebih kecil = lebih banyak sel per satuan luas) dan lebih murah. DRAM memrlukan rangkaian pengosong muatan. DRAM cenderung lebih baik bila digunakan untuk kebutuhan memori yang lebih besar. DRAM lebih lambat.

Read Only Memory (ROM)

  • Ø Menyimpan data secara permanen
  • Ø Hanya bisa dibaca

Dua masalah ROM

  • Ø Langkah penyisipan data memerlukan biaya tetap yang tinggi.
  • Ø Tidak boleh terjadi kesalahan (error).

Programmabel ROM (PROM)

Bersifat non volatile dan hanya bisa ditulisi sekali saja.

Proses penulisan dibentuk secara elektris.

Diperlukan peralatan khusus untuk proses penulisan atau “pemrograman”.

Erasable PROM (EPROM)

Dibaca secara optis dan ditulisi secara elektris.

Sebelum operasi write, seluruh sel penyimpanan harus dihapus menggunakan radiasi sinar ultra-violet terhadap keping paket.

Proses penghapusan dapat dilakukan secara berulang, setiap penghapusan memerlukan waktu 20 menit.

Untuk daya tampung data yang sama EPROM lebih mahal dari PROM.

Electrically EPROM (EEPROM)

Dapat ditulisi kapan saja tanpa menghapus isi sebelumnya.

Operasi write memerlukan watu lebih lama dibanding operasi read.

Gabungan sifat kelebihan non-volatilitas dan fleksibilitas untuk update dengan menggunakan bus control, alamat dan saluran data.

EEPROM lebih mahal dibanding EPROM.

Sel memori memiliki sifat tertentu sbb.:

  • Ø Memiliki dua keadaan stabil untuk representasi bilangan biner 1 atau 0.
  • Ø Memiliki kemampuan untuk ditulisi
  • Ø Memiliki kemampuan untuk dibaca.

Organisasi Logik Keping (Chip Logic) Memori

Organisasi DRAM 16 Mbit secara umum. Array memori diorganisasikan sebagai empat buah kuardrat 2048 terhadap 2048 elemen. Elemen-elemen aray dihubungkan dengan saluran horizontal (baris) dan vertikal (kolom). Setiap saluran horizontal terhubung ke terminal Data-in/Sense masing-masing sel pada kolomnya.

Bahasa Pemprograman C++

1.Pembahasan Singkat

Secara tradisional, matakuliah Struktur Data difokuskan pada detail implementasi dari sejumlah struktur data sederhana; mahasiswa membuat dan mempelajari kode untuk linked list dan struktur data lain dari nol atau berdasarkan kode buatan dosen atau pengarang buku teks. Sebagai alternatif, diusulkan penggunaan Standard Template Library C++ (STL) yang telah teruji dan tersedia luas. STL yang termasuk dalam pustaka baku C++ ini telah menyediakan sejumlah besar struktur data dan algoritma untuk mengolah struktur data tersebut, sehingga pemrogram tidak lagi terbebani oleh detail implementasi. Dengan penggunaan STL, fokus matakuliah dapat digeser ke jenjang yang lebih tinggi, yaitu kepada pemilihan dan penggunaan struktur data secara tepat. Hal ini tepat dalam kurikulum yang memberi penekanan ke software engineering. Walaupun STL hingga saat ini belum mencakup semua struktur data yang mungkin ada, namun dengan penggunaan STL, perluasan juga dapat lebih mudah dilakukan ke struktur data yang lebih kompleks dan lebih dekat ke masalah nyata. Misalnya implementasi general tree, yang biasanya dihindari dalam pengajaran Struktur Data tradisional karena tingkat kesulitannya yang tinggi, dapat dengan mudah dibuat dengan bantuan STL.

STL juga dapat digunakan oleh mahasiswa dalam matakuliahmatakuliah selanjutnya, dan, lebih penting lagi, dalam industri setelah nantinya mereka lulus. Dikembangkan oleh Alexander Stepanov dan Meng Lee dari Hewlett-Packard, STL telah dimasukkan sebagai bagian dari pustaka baku C++ oleh ANSI/ISO pada tahun 1994. Stepanov (1995) menyatakan bahwa STL telah dikembangkan dengan sangat memperhatikan sifat umum dan efisiensi. Dua aspek ini memiliki arti penting dalam industri. Dengan perhatian pada aspek pertama, yaitu sifat umum, STL memiliki reusability yang tinggi sehingga penggunaannya dapat menghemat waktu dan sumber daya dalam pengembangan sistem. Semua struktur data dalam STL memiliki sifat umum, yaitu dapat menampung elemen bertipe data apa saja sesuai dengan yang ditentukan oleh pemrogram. Hal ini dimungkinkan oleh penggunaan fasilitas template (class dan function yang memiliki parameter berupa tipe data) yang tersedia padaC++. Ini berbeda misalnya dengan pustaka baku Java untuk struktur data, yaitu Java Collections Framework (JCF), yang struktur datanya dapat memiliki sifat umum berkat penggunaan inheritance. Namun atas desakan para pemrogram Java, fasilitas yang serupa dengan template juga telah ditambahkan pada versi Java yang terbaru, Java 2 Platform Standard Edition 5.0. Ini berarti bahwa pengalaman dalam menggunakan STL akan dapat bermanfaat juga saat bekerja dengan bahasa pemrograman lain seperti Java. STL lebih jauh lagi memisahkan struktur data dengan algoritma, sehingga algoritma STL memiliki sifat umum, yaitu dapat diterapkan pada berbagai macam struktur data. Hal ini dimungkinkan oleh penggunaan fasilitas template dan karena algoritma STL tidak mengakses elemen secara langsung namun melalui sejenis pointer.

Ada pandangan bahwa pemisahan ini merupakan kelemahan STL karena membuatnya tidak murni berorientasi objek dan karenanya memperbesar peluang terjadinya kesalahan pemrograman (Keffer 1995). Namun keuntungan dari pemisahan ini adalah bahwa pemrogram dapat menerapkan algoritma baru buatannya sendiri pada struktur data STL, dan dapat menerapkan algoritma STL pada struktur data baru buatannya sendiri. Fleksibilitas ini tentunya meningkatkan reusability STL. Dengan perhatian pada aspek kedua, yaitu efisiensi, STL dapat digunakan tanpa perlu mengorbankan efisiensi yang selama ini telah menjadi ciri khas dari C

and C++. Walaupun memiliki sifat umum, tiap komponen dalam STL memiliki implementasi yang efisiensinya tidak jauh berbeda dengan kode ekuivalennya yang dibuat secara manual. Bahkan ada argumentasi bahwapemanggilan algoritma STL lebih baik daripada pembuatan algoritma secara manual (yang biasanya dilakukan pemrogram dengan menggunakan loop)

karena algoritma STL seringkali lebih efisien. Selain alasan efisensi ini ada alasan-alasan lain, yaitu pembuatan loop lebih rentan terhadap kesalahan, dan pemanggilan algoritma STL seringkali menghasilkan kode yang lebih ringkas dan jelas sehingga lebih mudah dipelihara (Meyers 2001). Berikutnya akan diberikan suatu pengantar singkat mengenai STL, dan kemudian akan dibicarakan hal-hal yang perlu diperhatikan dalam penggunaan STL untuk mengajarkan Struktur Data

Container

Container adalah struktur data yang dapat menampung elemen bertipe data apa saja. Container diimplementasikan sebagai container class yang merupakan suatu template class, yaitu class yang memiliki parameter berupa tipe data. Beberapa di antaranya, yaitu vector, list, deque, stack, queue, priority_queue, set, dan map akan dibicarakan di sini. Tiap class tersebut didefinisikan pada headerdengan nama yang sama dengan nama

class yang dimilikinya, kecuali priority_queue didefinisikan pada header <queue>. 2.1.1 vector Container vector diimplementasikan sebagai array dengan realokasi memori otomatis saat kapasitasnya dalam menampung elemen perlu ditambah. Iterator-nya berjenis random-access. Member function yang dimiliki antara lain:

  • • vector() merupakan default constructor yang membentuk vector kosong.
  • • vector(n) merupakan constructor yang membentuk vector berisi n buah elemen.
  • • empty() memberikan true jika dan hanya jika vector kosong.
  • • size() memberikan jumlah elemen.
  • • capacity() memberikan jumlah maksimum elemen yang dapat ditampung tanpa realokasi memori.
  • • reserve(n) melakukan alokasi atau realokasi memori sebesar n.
  • • operator [i] memberikan elemen kei.
  • • front() memberikan elemen paling awal.
  • • back() memberikan elemen terakhir.
  • • begin() memberikan iterator yang menunjuk ke elemen paling awal.
  • • end() memberikan iterator yang menunjuk ke posisi setelah elemen terakhir.
  • • push_back(x) menyisipkan elemen x pada bagian akhir.
  • • pop_back() menghapus elemen terakhir.

STL UNTUK MENGAJARKAN STRUKTUR DATA

Dalam penggunaan STL untuk mengajarkan Struktur Data, dianggap mahasiswa telah memiliki pengetahuan dasar mengenai C atau C++ dari matakuliah sebelumnya. Akan sangat

membantu jika mahasiswa telah atau sedang menempuh matakuliah Pemrograman Berorientasi Objek atau ekuivalennya dalam C++. Namun jika tidak demikian, dalam beberapa kali pertemuan awal mahasiswa dapat diperkenalkan kepada class, operator overloading, dan template; sedangkan konsep-konsep C++ lain seperti inheritance dan polymorphism maupun detaildetail seperti destructor, copy

constructor, dan initialization section untuk sementara dapat dengan aman diabaikan. Mahasiswa dapat diperkenalkan kepada STL antara lain melalui kode. Sebagai contoh, kode-kode berikut menyisipkan sejumlah elemen ke dalam container, menggunakan iterator untuk melakukan penelusuran sambil mencetak nilai tiap elemen, dan kemudianmenggunakan algorithm find untuk mencari suatuelemen dengan nilai tertentu. Kode berikut menggunakan vector:

#include <vector>

#include <algorithm>

#include <iostream>

using namespace std;

void main() {

vector<int> c;

vector<int>::iterator i;

c.push_back(1);

c.push_back(3);

c.push_back(2);

for(i=c.begin(); i!=c.end();

i++)

cout << *i;

i = find(c.begin(), c.end(),

2);

if(i != c.end()) cout <<

“found”;

else cout << “not found”;

}

Sedangkan kode berikut menggunakan

list:

#include <list>

#include <algorithm>

#include <iostream>

using namespace std;

void main() {

list<char> c;

list<char>::iterator i;

c.push_front(‘C’);

c.push_front(‘A’);

c.push_front(‘B’);

for(i=c.begin(); i!=c.end();

i++)

cout << *i;

i = find(c.begin(), c.end(),

‘B’);

if(i != c.end()) cout <<

“found”;

else cout << “not found”;

}

Dalam kode-kode di atas, vector dibuat menampung elemen bertipe int dan list dibuat menampung elemen bertipe char. Ini menunjukkan sifat umum container. Kode lain untuk kasus lain perlu juga diadakan, misalnya kasus container menampung pointer ke objectmerupakan kasus penggunaan STL yang sering terjadi (Eckel 1996). Kode-kode di atas juga menggambarkan bahwa cara penggunaan iterator adalah

seragam untuk container yang berbedabeda, dan bahwa algorithm dapat diterapkan pada berbagai macam container. Dengan penggunaan STL, tidak berarti semua pendekatan dalam pengajaran tradisional dapat ditinggalkan. Yang perlu dipertahankan adalah antara lain pengantar ke analisis kompleksitas (notasi big-O). Pemilihan struktur data secara tepat kini mendapat perhatian khusus. STL menyediakan berbagai macam container dan mahasiswa perlu dianjurkan untuk memilih container yang paling efisien sesuai permasalahan. Sebagai contoh,

biasanya vector merupakan container pilihan, namun jika akan sering dilakukan operasi penyisipan atau penghapusan pada posisi sembarang dalam struktur data, maka list lebih tepat dipilih karena operasi tersebut kompleksitasnya linear untuk vector namun konstan untuk list. Pemilihan struktur data ini dapat diperjelas dengan menunjukkan contoh-contoh permasalahan nyata. Penggunaan struktur data secara tepat juga kini mendapat perhatian khusus.

Meskipun algorithm memiliki sifat umum, yaitu dapat diterapkan pada berbagai macam container, namun mahasiswa perlu dianjurkan untuk memilih kombinasi yang efisien dan menghindari kombinasi yang tidak efisien. Sebagai contoh, dalam memilih

algorithm pencarian, perlu dilihat apakah iterator menunjuk ke rentang terurut. Jika ya, sebaiknya dipilih algorithm yang kompleksitasnya logaritmik seperti binary_search. Jika tidak, terpaksa dipilih algorithm yang kompleksitasnya linear seperti find.

 KESIMPULAN

// Copyright (c) L. E. Santoso 2004. All rights reserved

#include <list>

#include <iostream>

using namespace std;

class N { // node

public:

char data;

list<N> *link;

N(char d, list<N> *l) { data = d; link = l; }

};

void createSubs(list<N> *l) {

for(list<N>::iterator i = l->begin(); i != l->end(); i++) {

cout << “Enter children of ” << i->data << “: “;

char c;

cin.get(c);

while(c != ‘\n’) {

if(!i->link) i->link = new list<N>;

i->link->push_back(N(c, 0));

cin.get(c);

}

}

for(i = l->begin(); i != l->end(); i++)

if(i->link) createSubs(i->link);

}

void traverse(list<N> *l, int order) {

for(list<N>::iterator i = l->begin(); i != l->end(); i++) {

if(order == 0) cout << i->data; // preorder

if(i->link) traverse(i->link, order);

if(order == 1) cout << i->data; // postorder

}

}

void main() {

cout << “Enter root: “;

char c;

cin.get(c); cin.ignore();

list<N> *root = new list<N>;

root->push_back(N(c, 0));

createSubs(root);

cout << “Preorder: “; traverse(root, 0); cout << endl;

cout << “Postorder: “; traverse(root, 1); cout << endl;

Pengertian Sistem Informasi Manajemen ( SIM )

Sistem informasi Manajemen adalah serangkaian sub sistem informasi yang menyeluruh dan terkoordinasi dan secara rasional terpadu yang mampu mentransformasi data sehingga menjadi informasi lewat serangkaian cara guna meningkatkan produktivitas yang sesuai dengan gaya dan sifat manajer atas dasar kriteria mutu yang telah ditetapkan.

Dengan kata lain SIM adalah sebagai suatu sistem berbasis komputer yang menyediakan informasi bagi beberapa pemakai dengan kebutuhan yang sama. Para pemakai biasanya membentuk suatu entitas organisasi formal, perusahaan atau sub unit dibawahnya. Informasi menjelaskan perusahaan atau salah satu sistem utamanya mengenai apa yang terjadi di masa lalu, apa yang terjadi sekarang dan apa yang mungkin terjadi di masa yang akan datang. Informasi tersebut tersedia dalam bentuk laporan periodik, laporan khusus dan ouput dari model matematika. Output informasi digunakan oleh manajer maupun non manajer dalam perusahaan saat mereka membuat keputusan untuk memecahkan masalah.

Perancangan, penerapan dan pengoperasian SIM adalah mahal dan sulit. Upaya ini dan biaya yang diperlukan harus ditimbang-timbang. Ada beberapa faktor yang membuat SIM menjadi semakin diperlukan, antara lain bahwa manajer harus berhadapan dengan lingkungan bisnis yang semakin rumit. Salah satu alasan dari kerumitan ini adalah semakin meningkatnya dengan muncunya peraturan dari pemerintah.

Lingkungan bisnis bukan hanya rumit tetapi juga dinamis. Oleh sebab itu manajer harus membuat keputusan dengan cepat terutama dengan munculnya masalah manajemen dengan munculnya pemecahan yang memadai.

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.

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.

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.

B. Penerapan SIM dalam Transportasi

Keberhasilan dari pembangunan tidak terlepas dari peran aktif dari semua sektor terutama sector transportasi. Luasnya wilayah jasa pelayanan angkutan darat yang harus dapat dijangkau, yang meliputi seluruh wilayah Indonesia , maka perlu dilakukan suatu penanganan khusus dalam

meningkatkan kualitas pelayanan transportasi darat yang aman, selamat, mudah dijangkau, berdaya saing dan terintegrasi. Pengelolaan pelayanan transportasi darat dalam skala nasional merupakan pekerjaan yang kompleks. Pekerjaan ini harus memperhitungan berbagai sub moda transportasi darat baik umum maupun pribadi, berbagai event-event rutin maupun khusus yang dapat meningkatkan beban transportasi darat seperti angkutan lebaran, natal dan tahun baru, liburan, bencana alam, kondisi operasional di lapangan (kemacetan lalu lintas yang semakin parah di kota-kota besar dan metropolitan), perkembangan sarana-prasarana transportasi dan juga tindakan-tindakan pihak-pihak lain yang dapat mengganggu jalannya pelayanan jasa angkutan darat. Dalam penyelenggaraan transportasi darat, sangat perlu kecepatan informasi agar setiap permasalahan dapat diatasi secara cepat dan semaksimal mungkin. Kondisi tersebut perlu dan harus didukung dengan sistem teknologi informasi untuk transportasi darat yang handal, yang mampu saling mendukung dan terpadu dengan sistem – sistem lainnya.

Transportasi darat dengan cepat, tepat, konsisten dan mudah selalu tersedia setiap saat (Timely Available). Guna mewujudkan sistem tersebut, pada saat ini hal tersebut sangat dimungkinkan dengan semakin pesatnya perkembangan teknologi informasi yang didukung pula oleh perkembangan kemampuan sumber daya manusia di Indonesia dalam penguasaan teknologi informasi.Dalam perencanaan pembangunan transportasi darat, pemanfaatan data base dengan menggunakan teknologi informasi berbasis GIS (Geografic Information Sistem) sangat diperlukan. Pada tingkat operasional guna mengatasi permasalahan lalu lintas di tingkat lokal maka penerapan Program Aplikasi Pengendalian Lalu Lintas seperti ATCS/ITCS (Area Traffic Control System/Integrated Traffic Control System), ITS ( Intelegent Transport System), sedangkan ditingkat regional dan nasional pengembangan Transportation Management Centre (TMC) merupakan salah satu solusi terbaik dari sistem teknologi informasi yang dapat dikembangkan. Selain daripada itu dalam rangka melayani kebutuhan informasi transportasi darat bagi masyarakat dan penerapan e-governance penggunaan website, call centre, sms centre merupakan media informasi yang efektif dan effisien sedangkan untuk kelancaran dan kemudahan pelayanan transportasi darat pengunaan smart card dimasa datang akan menjadi suatu kebutuhan.

C. Pengertian e-ticketing

E-ticketing atau electronic ticketing adalah suatu cara untuk mendokumentasikan proses penjualan dari aktifitas perjalanan pelanggan tanpa harus mengeluarkan dokumen berharga secara fisik ataupun paper ticket. Semua informasi mengenai electronic ticketing disimpan secara digital dalam sistem komputer milik airline. Sebagai bukti pengeluaran E-Ticket, pelanggan akan diberikan Itinerary Receipt yang hanya berlaku sebagai alt untuk masuk ke dalam bandara di Indonesia yang masih mengharuskan penumpang untuk membawa tanda bukti perjalanan. E-ticketing (ET) adalah peluang untuk meminimalkan biaya dan mengoptimalkan kenyamanan penumpang. E-ticketing mengurangi biaya proses tiket, menghilangkan fomulir kertas dan meningkatkan fleksibilitas penumpang dan agen perjalanan dalam membuat perubahan-perubahan dalam jadwal perjalanan.

Sejalan dengan perkembangan teknololgi informasi, internet kini muncul sebagai alternative system distribusi informasi travel. Internet merupakan m edium yang sempurna untuk menjual paket perjalanan, karena internet sanggup membawa jaringan supplier yang luas dan basis kostumer yang besar ke sebuah market place terpusat. Adapun pengertian lain yaitu E-Ticketing, atau penjualan tiket online, merupakan salah satu cara bagi orang untuk membeli tiket untuk acara lokal. Merupakan fasilitas pemesanan tiket online yang dirancang untuk membantu kelompok masyarakat yang tidak memiliki akses ke sistem jenis ini .. Hal ini memungkinkan kelompok-kelompok masyarakat untuk meningkatkan kegiatan dan menjual tiket secara online melalui situs web Kingston Council.

E-Ticketing sistem untuk memudahkan orang untuk membeli tiket untuk berbagai acara semua dari satu situs web. Tiket dapat dibeli dengan cara ini dengan uang tunai, cek atau kredit / kartu debit. Orang tanpa akses ke internet dapat memesan tiket melalui internet publik di terminal atau perpustakaan di Pusat Informasi dan Visitor Centre.

Anda tak perlu lagi menghabiskan waktu untuk mengkhawatirkan ‘keamanan’ tiket penerbangan nantinya. Lupakan resiko hilangnya tiket, dicuri, tertinggal, atau bahkan tercebur air. Bahkan E-ticketing memungkinkan anda, membelikan tiket untuk kerabat pada saat mendadak. Kemudahan yang demikian ini, merupakan bukti komitmen Garuda Indonesia terhadap konsumennya.

Siapapun dapat membeli tiket pada sistem online. Anda harus mendaftar pada sistem pembayaran kami untuk menggunakan sarana. Ini adalah proses yang sangat sederhana dan membantu Anda menyimpan data yang Anda telah membeli tiket. Promoters memiliki daerah aman pada situs e-tiket di mana mereka dapat memantau penjualan dan mencetak off daftar orang-orang yang memesan untuk menghadiri acara mereka. Anda perlu mendaftar sebelum Anda dapat mulai menjual tiket. Proses pendaftaran untuk meminta informasi mengenai rincian kontak pribadi serta rincian dan kelompok masyarakat yang harus membayar tiket pendapatan. Proses pendaftaran juga memerlukan anda untuk menerima syarat dan ketentuan untuk penjualan tiket on-line.

D. Manfaat e-ticketing

Saat ini hanya ada beberapa cara untuk membeli tiket untuk kegiatan kesenian masyarakat. Sistem ini akan memberikan Anda akses cepat dan mudah untuk berbagai macam acara melalui satu situs. Ini dapat digunakan untuk membeli tiket menggunakan kredit / kartu debit dan cek, yang banyak gerai tiket tidak dapat dilakukan pada saat ini. Hal ini juga sepenuhnya aman.

Setiap organisasi yang perencanaan sebuah event dan bertanggung jawab untuk penjualan tiket untuk aktivitas dapat meningkatkan aktivitas di situs Web. Semua promoters yang mendaftar akan disetujui oleh administrator sebelum mereka dapat mulai menjual tiket sehingga hanya mereka yang dapat menunjukkan bahwa mereka yang utama Acara akan diizinkan untuk mempromosikan acara itu. Sistem ini memungkinkan Anda untuk mempromosikan aktivitas secara gratis dan menjual tiket untuk acara ke khalayak yang lebih luas. Hal ini juga berarti Anda tidak perlu membayar biaya untuk menyiapkan sistem ini atau administrasi itu. E-ticketing menyediakan banyak manfaat diantaranya :

  1. Biaya Simpanan – Mengurangi biaya yang terkait dengan pencetakan dan mailing tiket tiket ke pembeli. Menghilangkan atau mengurangi memerlukan tiket untuk stok, amplop dan pos.
  2. Buruh Simpanan – Mengurangi tenaga kerja yang terkait dengan pencetakan dan mailing tiket. Potong bawah pada upaya yang diperlukan untuk mengambil tiket untuk membeli Akan Panggil pesanan.
  3. Aman dan Aman – E-Tiket selamat dan aman. Barcode validasi menghilangkan kemungkinan palsu dan duplikat tiket.
  4. Kehadiran sebenarnya Pelaporan – Cari tahu berapa banyak Anda e-tiket patrons dihadiri Anda acara dan ketika mereka tiba.
  5. Instant Pengiriman – Tiket pembeli senang menjadi mampu mencetak tiket mereka segera. Tidak perlu menunggu surat atau menunggu di baris di acara tersebut. Pelanggan dapat mencetak tiket elektronik mereka segera setelah mereka membelinya. Hal ini membuat e-tiket yang ideal untuk hadiah menit terakhir atau menit terakhir keputusan.
  6. Informasi tambahan – E-Tiket menyediakan ruang untuk tambahan informasi seperti peta jalan, arah, dan lain informasi pelanggan Anda mungkin perlu tahu.
  7. Periklanan – E-Tiket menyediakan kemampuan unik periklanan. Meningkatkan pendapatan perusahaan anda dengan menawarkan ruang iklan pada web Anda tiket.

Sementara mempertahankan standar keselamatan yang tinggi merupakan prioritas utama untuk memastikan keselamatan penerbangan, sejumlah maskapai layanan penuh telah mengadopsi e-tiket mereka sebagai bagian dari upaya untuk meningkatkan layanan kepada pelanggan. E-sistem tiket penumpang yang memungkinkan sebuah buku tiket pesawat untuk mendapatkan salinan mereka terima berisi catatan Penemu atau reservasi dan nomor e-tiket nomor. Bahwa e-tiket sangat menguntungkan bagi kedua perusahaan penerbangan dan pelancong. menghilangkan masalah ini dan biaya yang pelancong pengalaman ketika mereka kehilangan tiket kertas. Jika sebuah tiket boarding terputus, mendapatkan penggantian sering mudah seperti naik ke loket tiket dan memberikan Anda nomor konfirmasi untuk baru satu. Sementara untuk maskapai penerbangan, e-tiket adalah lebih murah dan lebih efisien metode pengelolaan tiket. Ia menghilangkan manual tugas yang diperlukan untuk proses dan account untuk kertas tiket penerbangan dan menyimpan biaya bahan lainnya, seperti tiket jaket. Seorang penumpang yang memegang e-tiket memiliki pilihan untuk check-in online dan cetak out nya tiket boarding di rumah atau di kantor. Layanan ini tersedia antara 30 jam dan satu jam sebelum penumpang jadwal keberangkatan. Dengan manfaat bagi kedua perusahaan penerbangan dan penumpang, maka tidak mengherankan bahwa semakin banyak perusahaan penerbangan yang menyiapkan sistem tiket elektronik – sesuatu yang telah mendapat respon antusias dari penumpang di seluruh dunia.

E. Langkah-langkah e-ticketing

Dalam proses e-ticketing terdapat beberapa langkah yang dapat dilakuklan guna mempermudah kita dalam pemesanan tiket secara online dimana dengan e-ticketing kita repot mengantri dalam memesan tiket.Langkah-langkah E-Ticketing sangat praktis, reservasi adalah yang paling utama. Sabagai seorang mobile, sibuk dan akrab dengan e-lifestyle, ada beberapa pilihan yang tersedia bagi anda. Menelepon Call Center maskapai penerbangan yang dipilih. Langkah berikutnya adalah pembayaran. Dengan mengutamakan kemudahan, anda dapat melakukannya melalui ATM, serta credit card. Call Center yang menjamin keamanan saat memasukkan nomor credit card. Terjamin semua informasi anda akan disimpan dengan rapi dan aman. Jika tertinggal tanda terima perjalanan, anda dapat meminta duplikatnya di seluruh kantor penjualan tiket maskapai penerbangan (airport).

F. Permasalahan dan Contoh

Saat ini permasalahan pelayanan transportasi udara yang sangat serius terjadi di wilayah perkotaan terutama di kota-kota besar dan kota metropolitan didunia. Dominasi penngguna pesawat terbang dalam melalukan perjalanan tidak seimbang dengan jumlah pesawat yang ada. pada akhirnya akan menyebabkan kepadatan penumpang yang tinggi di bandara-bandara (airport). Hal ini

Kondisi ini pada akhirnya akan memunculkan problem klasik di setiap perusahaan maskapai penerbangan, seperti halnya masalah rute penerbangan,jadwal penerbangan yang tidak tepat dan pemesanan tiket dan lain-lain.

Salah satu solusi yang fundamental dari pemerintah khususnya mengenai pemesanan tiket adalah dengan menerapkan system e-ticketing pada setiap maskapai penerbangan yang ada. Karena dengan adanya system e-ticketing dapat memudahkan kita dalam memperoleh tiket .

Namun di balik kemudahan –kemudahan yang ada terdapat juga beberapa masalah diantaranya :

  • Tidak semua orang mengerti tentang internet artinya belum bisa mengoprasikan internet itu sendiri
  • Keterbatasan pihak maskapai penerbangan dalam memasarkan tiketnya secara online
  • Belum semua orang mengetahui tentang bagaimana caranya memesan tiket secara online
  • Belum semua orang mengetahui dan paham betul tentang e-ticketing

Salah satu maskapai penerbangan yang menerapkan pemesanan tiket secara online (e-ticketing) yaitu maskapai penerbangan AirAsia. PT. Indonesia AirAsia merupakan kerjasama gabungan dengan maskapai berbiaya rendah yang terkemuka Asia Tenggara, AirAsia Berhad – yang memiliki 49% sahamnya. Indonesia AirAsia diluncurkan kembali pada tanggal 8 Desember 2004 sebagai maskapai penerbangan berbiaya hemat dan mengusung konsep yang sama dengan Grup AirAsia. Indonesia AirAsia hadir dengan harga terjangkau dan konsep “tanpa embel-embel” (tanpa tiket, tempat duduk bebas dan tanpa penyediaan makanan). Indonesia AirAsia sekarang telah mengoperasikan sebelas armada Boeing 737-300 yang melayani delapan rute domestik, yaitu dari Jakarta ke Medan, Padang, Pekanbaru, Denpasar (Bali), Balikpapan, Surabaya, Batam dan Solo, serta lima belas rute internasional dari Jakarta, Bandung, Bali, Medan, Padang, Pekanbaru, Surabaya ke Kuala Lumpur (Malaysia), dari Jakarta ke Johor Bahru, Bangkok, Kota Kinabalu, Kuching dan Penang, dari Medan ke Penang (Malaysia) dan dari Bali ke Kota Kinabalu dan Kuching. Hingga akhir tahun 2007, Indonesia AirAsia telah menerbangkan lebih dari 4,3 juta tamu. Bagi Indonesia AirAsia keselamatan penumpang merupakan hal terutama. Indonesia AirAsia selalu mengedepankan keselamatan penumpang beserta awak pesawat dan pilot. Tidak hanya saat di udara, tetapi juga saat pemesanan, check-in , boarding , terbang, hingga tiba di tempat tujuan. Indonesia AirAsia mempercayakan seluruh perawatan armadanya di Garuda Maintenance Facilities (GMF). Di tempat tersebut, dilakukan pemeriksaan rutin dan pemeriksaan pemeliharaan tingkat rendah “A” check, hingga pemeliharaan tingkat tinggi “C” check. Indonesia AirAsia akan terus melakukan pengembangan serta penambahan armada untuk memenuhi antusiasme masyarakat terhadap hadirnya maskapai dengan konsep Low Cost Carrier (LCC) yang aman dan nyaman di Indonesia. Kami ingin semua masyarakat Indonesia, baik tua-muda, balita-lansia, sehat maupun cacat merasakan terbang dengan nyaman dan aman menggunakan Boeing 737-300 Indonesia AirAsia yang berkursi empuk dan mewah serta lorong kabin yang ditebari karpet merah. Adapun kegiatan operasional AirAsia mengikuti pola operasi sebagai berikut :

§ Harga hemat, tanpa embel embel

Harga AirAsia selalu lebih rendah dibandingkan maskapai lainnya. Layanan jasa seperti ini sangat cocok bagi penumpang yang hanya ingin terbang tanpa embel embel makanan, tanpa layanan airport lounge, tanpa mengikuti program loyalty frequent flyer miles. Semua ini lebih baik di tukar dengan harga kursi yang 80% jauh lebih murah dibandingkan dengan mengikutsertakan layanan layanantersebut.
Tidak memberikan makanan atau minuman. Namun AirAsia mempunyai ‘Snack Attack’, yang menyajikan berbagai macam pilihan lezat untuk makanan dan minuman dengan harga yang terjangkau dan hanya untuk para tamu AirAsia. Tamu dapat membelinya di dalam pesawat.

§ Frekuensi Terbang Tinggi

Frekuensi terbang AirAsia yang tinggi bertujuan untuk kenyamanan para tamu. Maskapai inimempraktekkan pola 25 menit untuk tinggal landas, dimana merupakan yang paling cepat di Asia, sehingga menghasilkan utilisasi pesawat yang tinggi, biaya makin rendah dan produktivitas staf/maskapai yang makin meningkat.

§ Untuk Kenyamanan Tamu

AirAsia berkomitmen untuk memberikan pelayanan yang nyaman untuk membuat perjalanan lebih mudah. Tamu dapat melakukan pembelian dengan kenyamanan berikut :

  • · Call Center (Pusat Layanan Telepon) – Berdiri pada bulan februari 2004, Call Center AirAsia berlokasi di Halim Perdana Kusuma dengan 60 layanan sambungan telepon untuk kenyamanan para tamu dalam membeli penerbangan.
  • · Terbang tanpa tiket – Diluncurkan pada tanggal 18 April 2002, konsep ini melengkapi layanan pembelian dari Internet booking AirAsia dan layanan Call Center dengan menyediakan alternatif murah biaya dari tiket cetak asli. Tamu tidak lagi perlu repot repot untuk mengambil tiket!
  • · Beli lewat Internet – sebagai maskapai pertama yang memperkenalkan layanan ini di Asia, AirAsia menawarkan cara baru yang nyaman dalam membeli kursi AirAsia melalui website www.airasia.com.Tidak perlu telepon, tidak perlu antri. www.airasia.com di luncurkan pada tanggal 10 Mei 2002, dan sekarang tersedia dalam 6 bahasa – English, Bahasa Malaysia, Mandarin, Thai dan Bahasa Indonesia.
  • · Reservasi dan kantor penjualan – Tersedia di bandara dan di kota untuk kenyamanan bagi tamu yang ingin datang langsung.
  • · Travel agent resmi – AirAsia juga memperkenalkan layanan online B2B kepada travel agent. Fitur berbasis internet dengan informasi ketersediaan kursi secara real time yang pertama di Asia. Travel agent dapat melakukan pembayaran secara virtual melalui kartu kredit.
  • · Layanan pelanggan untuk lebih baik – AirAsia secara terus menerus cari mencari cara untuk melayani lebih baik dan memberikan penghematan lebih lagi kepada tamu nya.

 Keamanan yang utama

AirAsia (PT. IAA) melakukan pemeriksaan rutin pesawatnya di hangar Garuda Maintenance Facilities (GMF). Kegiatan in merupakan komitmen kepada masyarakat bahwa Indonesia AirAsia selalu patuh pada ketentuan keselamatan penerbangan. Saat ini GMF sudah memiliki approval EASA (sertifikasi dari authority Eropa) dan FAA (sertifikasi dari authority Amerika) yang berarti kualitas perawatan pesawat di GMF sudah diakui oleh dunia internasional.

Rekayasa Perangkat Lunak

Rekayasa Perangkat Lunak

PROSES

2.1. Pengembangan Perangkat Lunak – Sebuah Lapisan Teknologi

Meskipun ratusan penulis telah mengembangkan definisi pengembangan perangkat lunak, definisi yang diusulkan oleh Fritz Bauer pada konferensi seminar masalah ini masih menjadi dasar dari diskusi :

Rekayasa perangkat lunak adalah pengembangan dan penggunaan prinsip pengembangan untuk memperoleh perangkat lunak secara ekonomis yang reliable dan bekerja secara efisien pada mesin nyata

Pada definisi tersebut Bauer memberi kita suatu dasar melalui berbagai pertanyaan seperti :

–          Bagaimana kita secara ekonomis membangun perangkat lunak sehingga dapat diandalkan reliable-nya?

–          Apakah yang dibutuhkan untuk menciptakan program komputer yang bekerja secara efisien pada lebih dari satu mesin riil yang berbeda?

IEEE telah mengembangkan definisi yang lebih komprehensif, yaitu sebagai berikut :

Rekayasa perangkat lunak : (1). Aplikasi dari sebuah pendekatan kuantifiabel, disiplin dan sistematis kepada pengembangan, operasi dan pemeliharaan perangkat lunak; yaitu aplikasi dari Rekayasa perangkat lunak. (2). Studi tentang pendekatan-pendekatan seperti pada (1).

2.1.1. Proses, Metode dan Alat Bantu

Rekayasa perangkat lunak merupakan sebuah teknologi yang dibentangkan (gambar 2.1). Banyak pendekatan keteknikan (termasuk rekayasa perangkat lunak) yang harus berada pada sebuah komitmen dasar menuju kualitas.

Pondasi untuk rekayasa perangkat lunak merupakan bentangan proses. Proses-proses rekayasa perangkat lunak adalah perekat yang menjaga bentangan-bentangan teknologi secara bersama-sama dan memungkinkan perkembangan perangkat lunak komputer yang tepat waktu dan rasional.

Metode-metode rekayasa perangkat lunak memberikan teknik untuk membangun perangkat lunak. Metode-metode itu menyangkut serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian dan pemeliharaan.

Tool-tool rekayasa perangkat lunak memberikan topangan yang otomatis ataupun semi-otomatis pada proses-proses dan metode-metode yang ada.

2.1.2. Pandangan Umum Tentang Rekayasa Perangkat Lunak

Rekayasa merupakan analisis, desain, konstruksi, verifikasi dan manajemen kesatuan teknik (atau sosial). Tanpa mempedulikan kesatuan yang dikembangkan, pertanyaan-pertanyaan di bawah ini harus dimunculkan dan dijawab :

  • Masalah apakah yang akan dipecahkan?
  • Karakteristik kesatuan apakah yang dipakai untuk menyelesaikan masalah tersebut?
  • Bagaimanakah kesatuan (dan pemecahan tersebut) diadakan?
  • Bagaimanakah kesatuan tersebut dibangun?
  • Pendekatan apakah yang akan dipakai untuk menemukan kesalahan-kesalahan yang dibuat di dalam desain dan konstruksi dari kesatuan tersebut?
  • Bagaimanakah kesatuan tersebut ditopang selama proses adaptasi yang lama, pada saat koreksi, serta ketika perbaikan dibutuhkan oleh para pemakai kesatuan tersebut?

Fase definisi (Definition phase) berfokus pada “apa” (what); di mana, pada definisi ini pengembang perangkat lunak harus mengidentifikasi informasi apa yang akan diproses, fungsi dan unjuk kerja apa yang dibutuhkan, tingkah laku sistem seperti apa yang diharapkan, interface apa yang akan dibangun, batasan desain apa yang ada, dan kriteria validasi apa yang dibutuhkan untuk mendefinisikan sistem yang sukses. Kebutuhan (requirement) kunci dari sistem dan perangkat lunak yang didefinisikan.

Fase pengembangan (Development phase) berfokus pada how (bagaimana), yaitu di mana selama masa pengembangan perangkat lunak, teknisi harus mendefiniskan bagaimana data dikonstruksikan, bagaimana fungsi-fungsi diimplementasikan sebagai sebuah arsitektur perangkat lunak, bagaimana detail prosedur akan diimplementasikan, bagaimana interface ditandai (dikarakterisasi), bagaimana rancangan akan diterjemahkan ke dalam bahasa pemrograman (atau bahasa non prosedural), serta bagaimana pengujian akan dilakukan.

Fase pemeliharaan (Maintenance phase) berfokus pada perubahan (change), yang dihubungkan dengan  koreksi kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak berkembang, serta perubahan sehubungan dengan perkembangan yang disebabkan oleh perubahan kebutuhan pelanggan.

Ada empat tipe perubahan yang terjadi selama masa fase pengembangan, yaitu Koreksi. Meskipun dengan jaminan kualitas yang terbaik, sepertinya pelanggan akan tetap menemukan cacat pada perangkat lunak. Pemeliharaan korektif (Corrective maintenance) mengubah perangkat lunak, membetulkan cacat atau kerusakan.

Adaptasi. Dari waktu ke waktu, lingkungan original (contohnya CPU, sistem operasi, aturan-aturan bisnis, karakteristik produk eksternal) di mana perangkat lunak dikembangkan akan terus berubah. Pemeliharaan adaptif (Adaptif maintenance) menghasilkan modifikasi kepada perangkat lunak untuk mengakomodasi perubahan pada kebutuhan fungsionalitas originalnya.

Perkembangan (Enhancement). Ketika perangkat lunak dipakai, pelanggan akan mengenali fungsi-fungsi tambahan yang memberi mereka keuntungan. Perfective maintenance memperluas perangkat lunak sehingga melampaui kebutuhan fungsi originalnya.

Pencegahan. Keadaan perangkat lunak semakin memburuk sehubungan dengan waktu, dan karena itu, preventive maintenance yang sering juga disebut Rekayasa perangkat lunak, harus dilakukan untuk memungkinkan perangkat lunak melayani kebutuhan para pemakainya. Pada dasarnya preventive maintenance melakukan perubahan pada program komputer sehingga bisa menjadi lebih mudah untuk dikoreksi, disesuaikan dan dikembangkan.

Fase dan langkah-langkah yang berhubungan, seperti yang digambarkan pada pandangan umum kita tentang Rekayasa perangkat lunak, harus diimbangi dengan sejumlah aktivitas pelindung (umbrella activities). Kegiatan-kegiatan khusus di dalam kategori ini menyangkut :

  • Kontrol dan pelacakan proyek perangkat lunak
  • Review teknis formal
  • Jaminan kualitas perangkat lunak
  • Manajemen konfigurasi perangkat lunak
  • Penghasilan dan penyiapan dokumen
  • Manajemen reusabilitas
  • Pengukuran
  • Manajemen resiko

2.2. Model-Model Proses Perangkat Lunak

Model proses untuk rekayasa perangkat lunak dipilih berdasarkan sifat aplikasi dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan kontrol serta penyampaian yang dibutuhkan.

Perkembangan perangkat lunak bisa dianggap sebagai lingkaran pemecahan masalah (Gambar 2.2.a) di mana terdapat empat keadaan berbeda, yaitu status quo, definisi masalah, perkembangan teknis memecahkan masalah di keseluruhan aplikasi dari banyak teknologi, dan integrasi pemecahan menyampaikan hasil (contohnya dokumen, program, data, fungsi bisnis baru, produk baru) kepada siapa yang membutuhkan pertama kali.

2.3. Model Sekuensial Linier

sekuensial linier untuk rekayasa perangkat lunak, yang sering disebut juga dengan “siklus kehidupan klasik” atau “model air terjun”. Model sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Dimodelkan setelah siklus rekayasa konvensional.

2.3. Model Sekuensial Linier

Gambar 2.3 menggambarkan sekuensial linier untuk rekayasa perangkat lunak, yang sering disebut juga dengan “siklus kehidupan klasik” atau “model air terjun”. Model sekuensial linier mengusulkan sebuah pendekatan kepada perkembangan perangkat lunak sistematik dan sekuensial yang mulai pada tingkat dan kemajuan sistem pada seluruh analisis, desain, kode, pengujian dan pemeliharaan. Dimodelkan setelah siklus rekayasa konvensional.

Para pemakai merasa enak dengan sistem aktual, sedangkan pengembang bisa membangunnya dengan segera. Tetapi prototyping bisa juga menjadi masalah karena alasan-alasan sbb :

  1. Pelanggan melihat apa yang tampak sebagai versi perangkat lunak yang bekerja tanpa melihat bahwa prototipe itu dijalin bersama-sama, tanpa melihat bahwa kita belum mencantumkan kualitas perangkat lunak secara keseluruhan atau kemampuan pemeliharaan untuk jangka waktu yang panjang.
  2. Pengembang sering membuat kompromi-kompromi implementasi untuk membuat prototipe bekerja dengan cepat.

Meskipun berbagai masalah bisa terjadi, prototipe bisa menjadi paradigma yang efektif bagi rekayasa perangkat lunak. Kuncinya adalah mendefinisikan aturan-aturan main pada saat awal; yaitu pelanggan dan pengembang keduanya harus setuju bahwa prototipe dibangun untuk berfungsi sebagai mekanisme pendefinisian kebutuhan.

2.5. Model RAD

Rapid Aplication Development (RAD) adalah sebuah proses perkembangan perangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek. Jika kebutuhan dipahami dengan baik, proses RAD memungkinkan tim pengembangan menciptakan “sistem fungsional yang utuh” dalam periode waktu yang sangat pendek (kira-kira 60 sampai 90 hari). Karena dipakai terutama pada aplikasi sistem konstruksi, pendekatan RAD melingkupi fase-fase sbb :

Bussiness modeling. Aliran informasi diantara fungsi-fungsi bisnis dimodelkan dengan suatu cara untuk menjawab pertanyaan-pertanyaan berikut :

Informasi apa yang mengendalikan proses bisnis? Informasi apa yang dimunculkan? Siapa yang memunculkannya?  Ke mana informasi itu pergi? Siapa yang memprosesnya?

Data modeling. Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut.

Proses modeling. Aliran informasi yang didefinisikan di dalam fase data modeling ditransformasikan untuk mencapai aliran informasi yang perlu bagi implementasi sebuah fungsi bisnis. Gambaran pemrosesan diciptakan untuk menambah, memodifikasi, menghapus atau mendapatkan kembali  objek data.

Aplication generation. RAD mengasumsikan pemakaian teknik generasi keempat. Selain menciptakan perangkat lunak dengan menggunakan bahasa pemrograman generasi ketiga yang konvensional, RAD telah banyak memproses kerja untuk memakai lagi komponen program yang ada atau menciptakan komponen yang bisa dipakai lagi.

Testing and turnover. Karena proses RAD menekankan pada pemakaian kembali, banyak komponen program telah diuji. Hal ini mengurangi keseluruhan waktu pengujian. Tetapi komponen baru harus diuji dan semua interface harus dilatih secara penuh.

Seperti semua proses model yang lain, pendekatan RAD memiliki kekurangan :

–          Bagi proyek yang besar tetapi berskala, RAD memerlukan sumber daya manusia yang memadai untuk menciptakan jumlah tim RAD yang baik

–          RAD menuntut pengembang dab pelanggan memiliki komitmen di dalam aktivitas rapid-fire yang diperlukan untuk melengkapi sebuah sistem, di dalam kerangka waktu yang sangat diperpendek. Jika komitmen tersebut tidak ada dari tiap konstituen, proyek RAD akan gagal.

2.6. Model Proses Perangkat Lunak  Evolusioner

Model evolusioner adalah model iteratif. Model itu ditandai dengan tingkah laku yang memungkinkan perekayasa perangkat lunak mengembangkan versi perangkat lunak yang lebih lengkap sedikit demi sedikit.

2.6.1. Model Pertambahan

Model inkremental menggabungkan elemen-elemen model sekuensial linier dengan filosofi prototipe iteratif. Seperti diperlihatkan pada gambar 2.7.

Pada saat model pertambahan dipergunakan, pertambahan pertama sering merupakan produk inti (core product), yaitu sebuah model pertambahan yang dipergunakan, tetapi beberapa muka tambahan tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh pelanggan (atau mengalami pengkajian lebih detail). Sebagai hasil dari pemakaian dan/atau evaluasi, maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana tersebut menekankan modifikasi produk inti untuk secara lebih baik memenuhi kebutuhan para pelanggan dan penyampaian fitur serta fungsionalitas tambahan. Proses ini diulang mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan produk yang lengkap.

Model proses pertambahan tersebut, seperti model prototipe dan pendekatan-pendekatan evolusioner yang lain, bersifat iteratif. Tetapi tidak seperti model prototipe, model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai.

2.6.2. Model Spiral

Model spiral yang pada awalnya diusulkan oleh Boehm adalah model proses perangkat lunak yang evolusioner yang merangkai sifat iteratif dari prototipe dengan cara kontrol dan aspek sistematis dari model sekuensial linier. Model itu berpotensi untuk pengambangan versi pertambahan perangkat lunak secara cepat.

Model spiral dibagi menjadi sejumlah aktivitas kerangka kerja, disebut juga wilayah tugas, di antara tiga sampai enam wilayah tugas. Gambar 2.8. menggambarkan model spiral yang berisi enam wilayah tugas :

–          Komunikasi pelanggan – tugas-tugas yang dibutuhkan untuk membangun komunikasi yang efektif di antara pengembang dan pelanggan

–          Perencanaan – tugas-tugas yang dibutuhkan untuk mendefinisikan sumber-sumber daya, ketepatan waktu, dan proyek informasi lain yang berhubungan.

–          Analisis risiko – tugas-tugas yang dibutuhkan untuk menaksir risiko-risiko, baik manajemen maupun teknis.

–          Perekayasa – tugas-tugas yang dibutuhkan untuk membangun satu atau lebih representasi dari aplikasi tersebut

–          Konstruksi dan peluncuran – tugas-tugas yang dibutuhkan untuk mengkonstruksi, menguji, memasang (install) dan memberikan pelayanan kepada pemakai (contohnya pelatihan dan dokumentasi).

–          Evaluasi pelanggan – tugas-tugas yang dibutuhkan untuk memperoleh umpan balik dari pelanggan dengan didasarkan pada evaluasi representasi perangkat lunak, yang dibuat selama masa perekayasaan, dan diimplementasikan selama masa pemasangan.

Ketika proses evolusioner ini mulai, tim rekayasa perangkat lunak bergerak searah jarum mengelilingi spiral tersebut dengan dimulai intinya. Lintasan pertama putaran spiral menghasilkan perkembangan dari spesifikasi produk; putaran spiral selanjutnya mungkin dipakai untuk mengembangkan sebuah prototipe, dan secara progresif mengembangkan versi perangkat lunak yang lebih canggih.

Tidak seperti model proses klasik yang berakhir pada saat perangkat lunak sudah disampaikan, model spiral bisa disesuaikan agar perangkat lunak bisa dipakai selama hidup perangkat lunak komputer.

Model spiral menjadi sebuah pendekatan yang realistis bagi perkembangan sistem dan perangkat lunak skala besar. Karena perangkat lunak terus bekerja selama proses bergerak, pengembang dan pemakai memahami dan bereaksi lebih baik terhadap risiko dari setiap tingkat evolusioner. Model spiral menggunakan prototipe sebagai mekanisme pengurangan risiko.

2.6.3. Model Rakitan Komponen

Model rakitan komponen menggabungkan beberapa karakteristik model spiral. Model ini bersifat evolusioner, sehingga membutuhkan pendekatan iteratif untuk menciptakan perangkat lunak. Tetapi model rakitan komponen merangkai aplikasi dari komponen perangkat lunak sebelum dipaketkan (kadang-kadang disebut “kelas”).

Aktivitas perangkat lunak dimulai dengan identifikasi calon kelas. Hal ini dipenuhi dengan mengamati data yang akan dimanipulasi oleh aplikasi dan algoritma-algoritma yang akan diaplikasikan untuk melakukan manipulasi. Data dan algoritma yang berhubungan dikemas ke dalam sebuah kelas.

Kelas-kelas (disebut komponen di dalam gambar 2.10). yang diciptakan di dalam proyek perangkat lunak disimpan di dalam class library atau tempat penyimpanan. Sekali kelas-kelas kandidat diidentifikasi, perpustakaan-perpustakaan kelas diamati untuk menentukan apakah kelas-kelas itu ada. Bila ada kelas itu kemudian diekstraksi dari pustaka dan digunakan lagi. Jika sebuah kelas kandidat tidak ada di dalam pustaka, dia direkayasa dengan menggunakan metode berorientasi objek. Iterasi aplikasi pertama yang akan dibangun kemudian dikomposisi dengan mempergunakan kelas yang diekstraksi dari perpustakaan dan kelas-kelas baru lain yang dibangun untuk memenuhi kebutuhan-kebutuhan unik dari aplikasi. Kemudian aliran proses kembali ke spiral dan akan masuk lagi ke iterasi rakitan komponen selama subsekuen melewati aktivitas perekayasaan.

Model rakitan komponen membawa kepada penggunaan kembali perangkat lunak, dan kegunaan kembali tersebut memberi sejumlah keuntungan yang bisa diukur pada perekayasa perangkat lunak.

2.6.4. Model perkembangan Konkuren

Model proses konkuren sering digunakan sebagai paradigma bagi pengembangan aplikasi klien/server. Sistem klien/server dirancang dari serangkaian komponen fungsional. Bila diaplikasikan kepada klien/server, model proses konkuren akan mendefinisikan aktivitas di dalam dua dimensi : dimensi sistem, dan dimensi komponen. Isu tingkat sistem ditujudengan menggunakan tiga aktivitas : desain, assembly, dan pemakaian. Dimensi komponen dituju dengan dua aktivitas : desain dan rea-lisasi. Konkuren dicapai dengan dua cara :

(1) aktivitas sistem dan komponen yang berlangsung secara simultan dan dapat dimodelkan dengan menggunakan pendekatan orientasi keadaan yang digambarkan di atas;

(2) aplikasi klien/server khusus diimplementasikan dengan banyak komponen di mana masing-masing bisa dirancang dan direalisasikan secara konkuren.

Kenyataannya model proses konkuren bisa diaplikasikan ke dalam semua tipe perkembangan perangkat lunak, dan memberikan gambaran akurat mengenai keadaan tertentu dari sebuah proyek.

2.7. Model Formal

Model metode formal mencakup sekumpulan aktivitas yang membawa kepada spesifikasi matematis perangkat lunak komputer. Metode formal memungkinkan perekayasa perangkat lunak untuk mengkhususkan, mengembangkan, dan memverifikasi sistem berbasis komputer dengan menggunakan notasi matematis yang tepat. Variasi di dalam pendekatan ini, disebut juga clean-room Rekayasa perangkat lunak, sedang diaplikasikan oleh banyak organisasi pengembang perangkat lunak.

Meskipun belum menjadi pendekatan utama, model metode formal sudah menawarkan janji perangkat lunak yang bebas cacat/kesalahan; tetapi perhatian tentang kemampuan aplikasinya di dalam lingkungan bisnis sudah mulai disuarakan :

  1. Pengembangan model formal banyak memakan waktu dan mahal
  2. Karena beberapa pengembang perangkat lunak perlu mempunyai latar belakang yang diperlukan untuk mengaplikasikan metode formal, maka diperlukan pelatihan yang ekstensif.
  3. Sulit untuk menggunakan model-model sebagai sebuah mekanisme komunikasi bagi pemakai yang secara teknik belum canggih.

2.8.      Teknik Generasi Keempat

Bentuk “teknik generasi keempat” (4GT) mencakup serangkaian bantu perangkat lunak yang luas yang secara umum memiliki satu hal : masing-masing memungkinkan perekayasa perangkat lunak untuk mengkhususkan beberapa karakteristik perangkat lunak pada suatu tingkat yang tinggi.

Sekarang ini lingkungan perkembangan perangkat lunak yang mendukung paradigma 4GT menyangkut beberapa atau semua alat bantu berikut ini : bahasa nonprosedural untuk query database, generate laporan, manipulasi data, interaksi layar dan definisi, dan penghasil kode; kemampuan grafis tingkat tinggi; dan kemampuan spreadsheet. Pada dasarnya dulu alat-alat bantu yang ditulis di atas bisa diperoleh hanya untuk domain aplikasi tertentu saja, tetapi sekarang lingkungan 4GT telah diperluas untuk menjangkau sebagian besar kategori aplikasi perangkat lunak.

Untuk aplikasi yang kecil, mungkin untuk bergerak secara langsung dari langkah pengumpulan kebutuhan ke implementasi, digunakan bahasa generasi keempat nonprosedural (fourth generation language/4GL). Tetapi untuk usaha yang lebih besar, diperlukan pengembangan strategi desain bagi sistem tersebut, sekalipun sebuah 4GL akan digunakan. Pemakaian 4GL tanpa desain (untuk proyek besar) akan menyebabkan terjadinya kesulitan-kesulitan yang sama (kualitas yang buruk, kemampuan pemeliharaan yang buruk, penerimaan pelanggan yang buruk) yang telah kita alami pada saat mengembangkan perangkat lunak dengan menggunakan pendekatan ad hoc.

Untuk menyimpulkan keadaan sekarang dari pendekatan 4GT :

  1. Kegunaan 4GT telah disebarkan selama dekade terakhir dan sekarang merupakan pendekatan yang masih berjalan terus bagi berbagai area aplikasi yang berbeda-beda.
  2. Data yang dikumpulkan dari perusahaan-perusahaan yang menggunakan 4GT menunjukkan bahwa waktu yang dibutuhkan untuk menghasilkan perangkat lunak sangat berkuranguntuk aplikasi kecil dan menengah, serta jumlah desain dan analisis bagi aplikasi kecil juga berkurang.
  3. tetapi kegunaan 4GT untuk pengembangan perangkat lunak yang besar membutuhkan analisis, desain dan pengujian yang sangat banyak untuk memperoleh penghematan waktu uang substansial yang dapat dicapai melalui eliminasi pengkodean.

Teknik generasi keempat telah menjadi sebuah bagian yang penting dari perkembangan perangkat lunak. Bila dirangkai dengan pendekatan rakitan komponen, paradigma 4GT bisa menjadi pendekatan yang dominan untuk pengembangan perangkat lunak.

2.9.      Teknologi Proses

Model proses yang telah didiskusikan pada bagian terdahulu harus disesuaikan dahulu sebelum digunakan oleh tim proyek perangkat lunak. Untuk melakukannya telah dikembangkan alat-alat bantu teknologi proses untuk membantu organisasi perangkat lunak menganalisa proses mereka yang sedang berlangsung, mengorganisasi tugas-tugas kerja, mengontrol dan memonitor kemajuan, serta mengatur kualitas teknis.

Sekali sebuah proses yang bisa diterima diciptakan, alat-alat bantu teknologi proses yang lain dapat dipergunakan untuk mengalokasi, memonitor, dan bahkan mengontrol semua tugas rekayasa perangkat lunak yang didefinisikan sebagai bagian dari model proses.

proses model incrumental

MODEL INCREMENTAL

  1. Pengertian

Model incremental adalah menggabungkan elemen-elemen model sekuensial linier (diimplementasikan secara berulang) dengan filosofi prototype interatif. Model ini memakai urutan-urutan linier di dalam model yang membingungkan, seiring dengan laju waktu kalender. Setiap urutan linier menghasilkan pertambahan perangkat lunak yang kemudian dapat disampaikan kepada pengguna.

A. Tahapan Incremental Model

Pada awal tahapan dilakukan penentuan kebutuhan dan spesifikasi,Kemudian dilakukan perancangan arsitektur software yang terbuka, agar dapat diterapkan pembangunan per-bagian pada tahapan selanjutnya.

  • Requirement adalah proses tahapan awal yang dilakukan pada incremental model adalah penentuan kebutuhan atau analisis kebutuhan.
  • Specification adalah proses spesifikasi dimana menggunakan analisis kebutuhan sebagai acuannya.
  • Architecture Design adalah tahap selanjutnya, perancangan software yang terbuka agar dapat diterapkan sistem pembangunan per-bagian pada tahapan selanjutnya.
  • Code setelah melakukan proses desain selanjutnya ada pengkodean.
  • Test merupakan tahap pengujian dalam model ini.

Pada saat model incremental (pertambahan) ini digunakan, pertambahan pertama sering merupakan produk inti (core product), yaitu sebuah model pertambahan yang dipergunakan, tetapi beberapa muka tambahan (beberapa diketahui dan beberapa tidak) tetap tidak disampaikan. Produk inti tersebut dipergunakan oleh pelanggan (atau mengalami pengkajian detail). Sebagai hasil dari pemakaian dan/atau evaluasi maka dikembangkan rencana bagi pertambahan selanjutnya. Rencana tersebut menekankan modifikasi produk inti untuk secara lebih baik memenuhi kebutuhan para pelanggan dan penyampaian fitur serta fungsional tambahan. Proses ini mengikuti penyampaian setiap pertambahan sampai bisa menghasilkan produk yang lengkap.

Model proses incremental tersebut, seperti model prototype dan pendekatan-pendekatan evolusioner yang lain, bersifat iterative. Tetapi tidak seperti model prototype, model pertambahan berfokus pada penyampaian produk operasional dalam setiap pertambahannya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai.

Perkembangan pertambahan, khususnya berguna pada saat staffing, tidak bisa dilakukan dengan menggunakan implementasi lengkap oleh batasan waktu bisnis yang sudah disepakati untuk proyek tersebut. Jika produk inti diterima dengan baik, maka staf tambahan (bila dibutuhkan) bisa ditambahkan untuk mengimplementasi pertambahan selanjutnya. Sebagai tambahan, system mayor yang sedang pada masa perkembangan serta waktu penyampaiannya belum pasti, mungkin membutuhkan keberadaan perangkat keras yang baru. Bisa juga rencana tertentu dibuat untuk menghindari pemakaian perangkat lunak ini, sehingga memungkinkan fungsionalitas partial disampaikan kepada pemakai tanpa harus banyak tertunda.

Karakteristik incremental

1. kombinasikan element-element dari waterfall dengan sifat iterasi/perulangan.

2. element-element dalam waterfall dikerjakan dengan hasil berupa produk dengan spesifikasi tertentu, kemudian proses dimulai dari fase pertama hingga akhir dan menghasilkan produk dengan spesifikasi yang lebih lengkap dari yang sebelumnya. Demikian seterusnya hingga semua spesifikasi memenuhi kebutuhan yang ditetapkan oleh pengguna.

3. produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk   pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk yang komplit dihasilkan.

4. model ini cocok jika jumlah anggota tim pengembang/pembangun PL tidak cukup.

5. Mampu mengakomodasi perubahan secara fleksibel.

6. Produk yang dihasilkan pada increment pertama bukanlah prototype, tapi produk yang sudah bisa berfungsi dengan spesifikasi dasar

7. Mungkin terjadi kesulitan untuk memetakan kebutuhan pengguna ke dalam rencana spesifikasi masing-masing hasil increment.

8. Produk hasil increment pertama biasanya produk inti (core product), yaitu produk yang memenuhi kebutuhan dasar. Produk tersebut digunakan oleh pengguna atau menjalani review/pengecekan detil. Hasil review tersebut menjadi bekal untuk pembangunan pada increment berikutnya. Hal ini terus dikerjakan sampai produk yang komplit dihasilkan

  1. Kelebihan Penggunaan Incremental Model

·  Merupakan model dengan manajemen yang sederhan.

.  Bersifat interatif atau perulangan.

.  mampu mengakomodasi perubahan secara fleksibel.

.  prioritas tinggi pada pelayanan system adalah yang paling diuji.

.  Produk yang dihasilkan semakin lama semakin lengkap, hingga versi akhir dari sebuah produk akan dianggap paling lengkap dan sempurna karena mengalami perbaikan yang berkesinambungan.

.  Model ini cocok jika jumlah anggota tim pengembangan/pembangunan software terbatas.

· Pelanggan dapat memakai inkremen yang pertama sebagai bentuk prototype dan mendapatkan pengalaman yang dapat menginformasikan persyaratan untuk inkremen system berikutnya

·  Resiko untuk kegagalan proyek secara keseluruhan lebih rendah. Walaupun masalah dapat ditemukan pada beberapa inkremen, bias saja beberapa inkremen diserahkan dengan sukses kepada pelanggan.

  1. Kekurangan Penggunaan Incremental Model

·  Inkremen harus relative lebih kecil (tidak lebih dari 20.000 baris kode) dan setiap inkremen harus menyediakan sebagian dari fungsional system

·  Adanya kesulitan untuk memetakan persyaratan pelanggan pada inkremen dengan ukuran yang benar

.  Butuh waktu yang relatif lebih lama untuk menghasilkan produk yang lengkap.

  1. Kendala

Kendala yang sering terjadi adalah sulitnya untuk memetakan kebutuhanu s e r (customer) ke dalam rencana spesifikasi masing-masing hasil increment. Hal ini disebabkan pula karena seringkali user sulit menentukan kebutuhannya sendiri secara eksplisit atau jelas

Implementasi Incremental Model :

• Untuk sistem dengan interaksi skala kecil dan medium

• Untuk sistem dengan masa penggunaan pendek

• Cocok untuk proyek berukuran kecil (tidak lebih dari 200.000 baris

coding)

Sebagai contoh pertama, software word-processing, dibangun menggunakan incremental model, mendelivery fungsi dasar file management, editing, dan fungsi document production pada Increment pertama. Kemampuan editing, dan fungsi document production yang lebih baik pada  increment kedua, checking dan grammar spelling pada increment ketiga. Proses akan diulangi sampai produk yang lengkap telah dihasilkan. Jika menggunakan Incremental model, increment yang pertama merupakan inti product. Incremental model focus pada pendeliverian opertional product pada tiap increment.

Sebagai contoh kedua, mengadopsi model sekuensial linier dan model prototipe. Fungsi dasar sama, tapi ada tambahan asesoris (contoh : ada M.Word 1997, 2000). Fungsi tambahan ditambahkan terus untuk membuat system menjadi lebih baik. Pada increment pertama PL yang jadi, mengakomodasi kebutuhan inti. Baru pada tahap berikutnya ditambahkan kemampuan baru.

Hello world!

Welcome to WordPress.com. After you read this, you should delete and write your own post, with a new title above. Or hit Add New on the left (of the admin dashboard) to start a fresh post.

Here are some suggestions for your first post.

  1. You can find new ideas for what to blog about by reading the Daily Post.
  2. Add PressThis to your browser. It creates a new blog post for you about any interesting  page you read on the web.
  3. Make some changes to this page, and then hit preview on the right. You can always preview any post or edit it before you share it to the world.