Kamis, 16 Agustus 2018

antarmuka pengguna (user interface)

ANTARMUKA PENGGUNA (USER INTERFACE)


  • Pengertian antarmuka
Interface adalah salah satu layanan yang disediakan sistem operasi sebagai sarana interaksi antara pengguna dengan sistem operasi. Antarmuka adalah komponen sistem operasi yang bersentuhan langsung dengan pengguna. Terdapat dua jenis antarmuka, yaitu Command Line Interface(CLI) danGraphical User Interface(GUI).
         Antarmuka pemakai (User Interface) merupakan mekanisme komunikasi antara pengguna (user) dengan sistem. Antarmuka pemakai (User Interface) dapat menerima informasi dari pengguna (user) dan memberikan informasi kepada pengguna (user) untuk membantu mengarahkan alur penelusuran masalah sampai ditemukan suatu solusi.
         User interface, berfungsi untuk menginputkan pengetahuan baru ke dalam basis pengetahuan sistem pakar (ES), menampilkan penjelasan sistem dan memberikan panduan pemakaian sistem secara menyeluruh step by step sehingga user mengerti apa yang akan dilakukan terhadap suatu sistem. Yang terpenting dalam membangun user interface adalah kemudahan dalam memakai/ menjalankan sistem, interaktif, komunikatif, sedangkan kesulitan dalam mengembangkan/ membangun suatu program jangan terlalu diperlihatkan.
  • Tujuan antarmuka pengguna (User Interface)
Tujuan sebuah user interface adalah mengkomunikasikan fitur-fitur sistem yang tersedia agar user mengerti dan dapat menggunakan sistem tersebut. Dalam hal ini penggunaan bahasa amat efektif untuk membantu pengertian, karena bahasa merupakan alat tertua—barangkali kedua tertua setelah gestur—yang dipakai orang untuk berkomunikasi sehari-harinya. Praktis semua pengguna komputer dan Internet—kecuali mungkin anak kecil yang memakai komputer untuk belajar membaca—dapat mengerti tulisan.
Meski pada umumnya panduan user interface menyarankan agar ikon tidak diberi tulisan supaya tetap mandiri dari bahasa, namun elemen user interface lain seperti teks pada tombol, caption window, atau teks-teks singkat di sebelah kotak input dan tombol pilihan semua menggunakan bahasa. Tanpa bahasa pun kadang ikon bisa tidak jelas maknanya, sebab tidak semua lambang ikon bisa bersifat universal.
Meskipun penting, namun sayangnya kadang penggunaan bahasa, seperti pemilihan istilah, sering sekali dianggap kurang begitu penting. Terlebih dari itu dalam dunia desain situs Web yang serba grafis, bahasa sering menjadi sesuatu yang nomor dua ketimbang elemen-elemen interface lainnya. Artikel ini akan mencoba memberikan beberapa pertimbangan pemilihan bahasa dan istilah untuk meningkatkan usability melalui perbaikan komunikasi dengan user.
  • Jenis-jenis User Interface
Ada dua jenis User Interface yaitu :
1 . Command Line Inteface (CLI) :
CLI (Command Line Interface) adalah tipe antarmuka dimana penggun berinteraksi dengan system operasi melalui text terminal.CLI adalah sebuah bentuk antarmuka antara sistem operasi dan pemakai dimana pemakai mengetikkan perintah-perintah dengan menggunakan perintah dalam bentuk teks dan sebuah metode untuk memasukinya.
Pengguna CLI biasanya adalah administrator sistem berbasis sistem operasi LINUX. Setiap sistem operasi memberi nama CLI- nya berbeda-beda. Unix member nama CLI-nya sebagai bash, ash, ksh, dan lain sebagainya. Ms-Dos memberi nama CLI-nya command.com atau command prompt. Sedangkan Windows Vista, Microsoft menamakannya Powershell. Pengguna Linux mengenal CLI pada Linux sebagai Terminal, sedangkan pada Apple atau machintosh namanya adalah commandshell.
2. Graphical User Interface (GUI)
Saat ini interface yang banyak digunakan dalam software adalah GUI (Graphical User Interface).Penganut GUI biasanya adalah mereka yang sudah terbiasa dengan system operasi Wndows.Bagi mereka, GUI adalah harga mati yang tidak bisa ditawar lagi.
GUI adalah tipe antarmuka yang digunakan oleh pengguna untuk berinteraksi dengan system operasi melalui gambar-gambar grafik, kon, dan menggunakan perangkat penunjuk (pointing device) seperti mouse atau track ball.
Sama seperti CL, tiap-tiap siste operasi memiliki nama tersendiri untuk komponen GUI-nya. Pada Apple Mac OS X, GUI-nya disebut Aqua. Microsoft member nama GUI pada Windows XP sebagai Lunar dan GUI Windows Vista sebagai Aero. Pada Linux, ada dua pengembangan utama desktop environment, yang masing-masing menghasilkan roduk KDE (K Desktop Environment) dan GNOME.
  • Prinsip-prinsip dalam Merancang User Interface
Berikut ini prinsip-prinsip UID:
  1. User familiarity / Mudah dikenali : gunakan istilah, konsep dan kebiasaan user bukan computer (misal: sistem perkantoran gunakan istilah letters, documents, folders bukandirectories, file, identifiers. — jenis document open office.
  2. Consistency / “selalu begitu” : Konsisten dalam operasi dan istilah di seluruh sistem sehingga tidak membingungkan. — layout menu di open office mirip dgn layout menu di MS office.
  3. Minimal surprise / Tidak buat kaget user : Operasi bisa diduga prosesnya berdasarkan perintah yang disediakan.
  4. Recoverability/pemulihan : Recoverability ada dua macam: Confirmation of destructive action (konfirmasi terhadap aksi yang merusak) dan ketersediaan fasilitas pembatalan (undo).
  5. User guidance / bantuan : Sistem manual online, menu help, caption pada icon khusus tersedia.
  6. User diversity /keberagaman : Fasilitas interaksi untuk tipe user yang berbeda disediakan. Misalnya ukuran huruf bisa diperbesar.
  • User Interaction (Interaksi pengguna)
Perancang sistem menghadapi dua masalah penting yaitu bagaimana informasi dari user bisa disediakan untuk sistem komputer – misalnya pada saat input data dan bagaimana informasi dari sistem komputer ditampilkan untuk user – hasil dari pemrosesan data. User interface yang baik harus menyatukan interaksi pengguna (user interaction) dan penyajian informasi (information presentation).
Ada 5 tipe utama interaksi untuk user interaction:
  1. Direct manipulation
Pengoperasian secara langsung: interaksi langsung dengan objek pada layar. Misalnya delete file dengan memasukkannya ke trash. Contoh: Video games.
  • Kelebihan: Waktu pembelajaran user sangat singkat, feedback langsung diberikan pada tiap aksi sehingga kesalahan terdeteksi dan diperbaiki dengan cepat.
  • Kekurangan : Interface tipe ini rumit dan memerlukan banyak fasilitas pada sistem komputer, cocok untuk penggambaran secara visual untuk satu operasi atau objek
  1. Menu selection 
Pilihan berbentuk menu: Memilih perintah dari daftar yang disediakan. Misalnyasaat click kanan dan memilih aksi yang dikehendaki.
  • Kelebihan : User tidak perlu ingat nama perintah. Pengetikan minimal. Kesalahan rendah.
  • Kekurangan :Tidak ada logika AND atau OR. Perlu ada struktur menu jika banyak pilihan. Menu dianggap lambat oleh expert user dibanding command language.
  1. Form fill-in 
Pengisian form : Mengisi area-area pada form. Contoh: Stock control.
  • Kelebihan : Masukan data yang sederhana. Mudah dipelajari
  • Kekurangan : Memerlukan banyak tempat di layar. Harus menyesuaikan dengan form manual dan kebiasaan user.
  1. Command language
Perintah tertulis: Menuliskan perintah yang sudah ditentukan pada program. Contoh: operating system.
  • Kelebihan : Perintah diketikan langsung pada system. Misal UNIX, DOS command. Bisa diterapkan pada terminal yang murah.Kombinasi perintah bisa dilakukan. Misal copy file dan rename nama file.
  • Kekurangan : Perintah harus dipelajari dan diingat cara penggunaannya – tidak cocok untuk user biasa.Kesalahan pakai perintah sering terjadi. Perlu ada sistem pemulihan kesalahan.Kemampuan mengetik perlu.
  1. Natural language 
Perintah dengan bahasa alami: Gunakan bahasa alami untuk mendapatkan hasil. Contoh: search engine di Internet.
  • Kelebihan: Perintah dalam bentuk bahasa alami, dengan kosa kata yang terbatas (singkat) – misalnya kata kunci yang kita tentukan untuk dicari oleh search engine. Ada kebebasan menggunakan kata-kata.
  • Kekurangan: Tidak semua sistem cocok gunakan ini. Jika digunakan maka akan memerlukan banyak pengetikan.
  • Penyajian Informasi (Information Presentation)
Sistem yang interaktif pasti menyediakan cara untuk menyajikan informasi untuk pengguna. Penyajian informasi bisa berupa penyajian langsung dari input yang diberikan (seperti teks pada word processing) atau disajikan dengan grafik. Beberapa faktor berikut adalah hal yang perlu diperhatikan sebelum menentukan
bentuk penyajian informasi:
  • Apakah pengguna perlu informasi dengan ketepatan tinggi atau data yang saling berhubungan?
  • Seberapa cepat nilai informasi berubah? Harus ada indikasi perubahan seketika?
  • Apakah pengguna harus memberi respon pada perubahan?
  • Apakah pengguna perlu melakukan perubahan pada informasi yang disajikan?
  • Apakah informasi berupa teks atau numerik? Nilai relatif perlu atau tidak?
Informasi bisa bersifat statis atau dinamis ketika disajikan, masing-masing baik dengan karakteristik yang berbeda dan kebutuhan yang berbeda pula:
  1. Static information:
  • Ditentukan saat awal sesi. Tidak berubah selama sesi berjalan.
  • Bisa berupa informasi numeris atau teks Chart di MS-Excel
  • Disajikan dengan jenis huruf khusus yang mudah dibaca atau diberi highlight dengan warna tertentu seperti pada Gambar 4 atau menggunakan icon yang mewakili
  1. Dynamic information:
  • Perubahan terjadi selama sesi berlangsung dan perubahan harus dikomunikasikan/ditunjukkan ke user
  • Bisa berupa informasi numeris atau teks. Contoh : Defragmentation, scanning virus, download
3
Nilai-nilai relatif misalnya seperti pada Gambar berikutnya. Selain nilai yang disajikan relatif, informasinya bersifat dinamis, karena berubah saat sesi berjalan. Untuk nilai digital kita biasanya gunakan untuk menunjukkan jam pada jam sistem di komputer. Selain ketepatan diperlukan, perubahannya tidak terjadi secara cepat.

Kamis, 09 Agustus 2018

entitiy relationship diagram (ERD)

Entity Relationship Diagram (ERD) adalah sebuah model data yang didasarkan atas persepsi dunia nyata, yang terdiri dari objek dasar yang disebut dengan entitas dan hubungan (relation) antara objek-objek tersebut.

Entitas (entity) adalah kelompok orang, tempat, objek, kejadian atau konsep tentang apa yang kita perlukan untuk men-capture dan menyimpan data.
Kategori entitas:
  • Orang: agen, kontraktor, pelanggan
  • Tempat: wilayah, gedung, ruangan, kampus
  • Objek: buku, mesin, produk
  • Peristiwa: penerapan, pembatalan, pendaftaran
  • Konsep: rekening, dana, stok.
Atribut (attribute) adalah sifat atau karakteristik deskriptif suatu entitas. Contoh: entitas Mahasiswa memiliki atribut: npm, nama, alamat, no_telepon, tgl_lahir.
Beberapa atribut dikelompokkan secara logis menjadi superatribut (superattribute) yang disebut atribut gabungan (compound attribute).
Misalnya, nama, merupakan atribut gabungan dari nama_depannama_tengah, dan nama_keluarga.

Hubungan (relationship) adalah hubungan yang terdapat di antara satu atau lebih entitas.
Misalnya: hubungan antara entitas STUDENT dan MATA KULIAH:
  • MAHASISWA mengikuti satu atau lebih MATA KULIAH.
  • MATA KULIAH diikuti oleh nol, satu, atau lebih MAHASISWA.

Contoh Relationship

Kardinalitas (cardinality) adalah jumlah minimum dan maksimum kemunculan satu entitas yang mungkin dihubungkan dengan kemunculan tunggal dari entitas lain.
Ada sejumlah kemungkinan banyaknya keterhubungan antar entitas tersebut, yaitu:
  • Satu-ke-satu (one to one)
  • Satu-ke-banyak (one to many)
  • Banyak-ke-banyak (many to many)
Satu-ke-satu (1 : 1)
Tingkat hubungan dinyatakan satu-ke-satu jika satu kejadian pada entitas yang pertama hanya mempunyai satu hubungan dengan satu kejadian yang ada pada entitas kedua, dan sebaliknya, satu kejadian pada entitas yang kedua hanya bisa mempunyai satu hubungan dengan satu kejadian pada entitas yang pertama.

Satu-pada-banyak (1 : N atau N : 1)
Tingkat hubungan satu-ke-banyak adalah sama dengan banyak pada satu, tergantung dari arah mana hubungan tersebut dilihat.
Untuk satu kejadian pada entitas yang pertama dapat mempunyai banyak hubungan dengan kejadian pada entitas yang kedua, sebaliknya untuk satu kejadian pada entitas yang kedua hanya bisa mempunyai satu hubungan pada entitas yang pertama.

Banyak-ke-banyak (N : N atau M : N)
Tingkat hubungan banyak-pada-banyak terjadi jika tiap kejadian pada sebuah entitas akan mempunyai banyak hubungan dengan kejadian pada entitas lainnya, baik dilihat dari sisi entitas yang pertama, maupun dilihat dari sisi entitas yang kedua.


Contoh Kardinalitas Metode Chen
Contoh Diagram ERD

pengertian dad/dfd

Pengertian DAD/DFD


Diagram Alir Data (DAD) atau Data Flow Diagram (DFD) adalah suatu diagram yang menggunakan notasi-notasi untuk menggambarkan arus dari data sistem, yang penggunaannya sangat membantu untuk memahami sistem secara logika, tersruktur dan jelas.
DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi oleh sistem. Dengan kata lain, DFD adalah alat pembuatan model yang memberikan penekanan hanya pada fungsi sistem.
DFD ini merupakan alat perancangan sistem yang berorientasi pada alur data dengan konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun rancangan sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun pembuat program.
Fungsi Data Flow Diagram
  • Data Flow Diagram (DFD) adalah alat pembuatan model yang memungkinkan profesional sistem untuk menggambarkan sistem sebagai suatu jaringan proses fungsional yang dihubungkan satu sama lain dengan alur data, baik secara manual maupun komputerisasi.
  • DFD ini adalah salah satu alat pembuatan model yang sering digunakan, khususnya bila fungsi-fungsi sistem merupakan bagian yang lebih penting dan kompleks dari pada data yang dimanipulasi oleh sistem.
  • DFD ini merupakan alat perancangan sistem yang berorientasi pada alur data dengan konsep dekomposisi dapat digunakan untuk penggambaran analisa maupun rancangan sistem yang mudah dikomunikasikan oleh profesional sistem kepada pemakai maupun pembuat program.
SYARAT MEMBUAT DFD
  1. Pemberian nama untuk tiap komponen DFD.
  2. Pemberian nomor pada komponen proses.
  3. Penggambaran DFD sesering mungkin agar enak dilihat.
  4. Penghindaran penggambaran DFD yang rumit.
  5. Pemastian DFD yang dibentuk itu konsiten secara logika.
TIPS DALAM MEMBUAT DFD
  1. Pilih notasi sehingga proses yang didekomposisi atau tidak didekomposisi dapat dibaca dengan mudah.
  2. Nama proses harus terdiri dari kata kerja dan kata benda.
  3. Nama yang dipakai untuk proses, data store, dataflow harus konsisten (identitas perlu).
  4. Setiap level harus konsisten aliran datanya dengan level sebelumnya.
  5. Usahakan agar external entity pada setiap level konsisten peletakannya.
  6. Banyaknya proses yang disarankan pada setiap level tidak melebihi 7 proses.
  7. Dekomposisi berdasarkan kelompok data lebih disarankan (memudahkan aliran data ke storage yang sama).
  8. Nama Proses yang umum hanya untuk prose yang masih akan didekomposisi.
  9. Pada Proses yang sudah tidak didekomposisi, nama Proses dan nama Data harus sudah spesifik.
  10. Aliran ke storage harus melalui proses, tidak boleh langsung dari external entity.
  11. Aliran data untuk Proses Report .. : harus ada aliran keluar. Akan ada aliran masuk jika perlu parameter untuk mengaktifkan report.Aliran data yang tidak ada datastorenya harus diteliti, apakah memang tidak mencerminkan persisten entity (perlu disimpan dalam file/tabel), yaitu kelak hanya akan menjadi variabel dalam program.
LANGKAH MEMBUAT/MENGGAMBAR DFD
  1. Identifikasi Entitas Luar, Input dan Output
    Identifikasi terlebih dahulu semua entitas luar, input dan ouput yang terlibat di sistem.
  2. Buat Diagram Konteks (diagram context)
    Diagram ini adalah diagram level tertinggi dari DFD yang menggambarkan hubungan sistem dengan lingkungan luarnya. Caranya :
    • Tentukan nama sistemnya.
    • Tentukan batasan sistemnya.
    • Tentukan terminator apa saja yang ada dalam sistem.
    • Tentukan apa yang diterima/diberikan external entity dari/ke sistem.
    • Gambarkan diagram konteks.
    diagram konteks.jpg
  3. Diagram ini adalah dekomposisi dari diagram konteks. Caranya :
    Tentukan proses utama yang ada pada sistem.
    Tentukan apa yang diberikan/diterima masing-masing proses ke/dari sistem sambil memperhatikan konsep keseimbangan (alur data yang keluar/masuk dari suatu level harus sama dengan alur data yang masuk/keluar pada level berikutnya).
    Apabila diperlukan, munculkan data store (master) sebagai sumber maupun tujuan alur data.
    Hindari perpotongan arus data.
    Beri nomor pada proses utama (nomor tidak menunjukkan urutan proses).
    overflow diagram.jpg
  4. Buat Diagram Level Satu
    Diagram ini merupakan dekomposisi dari diagram level zero. Caranya :
    Tentukan proses yang lebih kecil (sub-proses) dari proses utama yang ada di level zero.
    Tentukan apa yang diberikan/diterima masing-masing sub-proses ke/dari sistem dan perhatikan konsep keseimbangan.
    Apabila diperlukan, munculkan data store (transaksi) sebagai sumber maupun tujuan alur data.
    Hindari perpotongan arus data.
    Beri nomor pada masing-masing sub-proses yang menunjukkan dekomposisi dari proses sebelumnya.Contoh : 1.1, 1.2, 2

Rekayasa kebutuhan Perangkat Lunak

Rekayasa Kebutuhan perangkat lunak


Requirement Enginering berfungsi untuk membantu pengembang mengerti masalah yang akan dibuatkan solusinya dalam bentuk perangkat lunak. Tahapan ini adalah bagian dari proses komunikasi yang berlanjut pada pemodelan. 
Rekayasa Kebutuhan merupakan proses membentuk layanan yang dibutuhkan pelanggan dari suatu sistem dan juga batasan sistem yang akan beroperasi dan dikembangkan. Kebutuhan adalah deskripsi dari layanan sistem dan batasan (constraint) sistem yang dihasilkan selama proses rekayasa kebutuhan.

Bentuk pernyataan kebutuhan 



  • Kalimat abstrak yang cenderung terdengar ‘high level’ yang masih di awangawang, tidak rinci 
  • Kalimat yang lengkap dan rinci, tapi mungkin justru tidak memberikan gambaran yang jelas secara keseluruhan 
  • Bentuk fungsi matematika
Pernyataan kebutuhan ini memiliki dua manfaat
  • Dasar untuk membuka/mengikuti tender pekerjaan
    - Pengembang perangkat lunak biasanya mengikuti ‘tender’ untuk mendapatkan suatu pekerjaan
    - Sifat pernyataan untuk kebutuhan ini ‘open to interpretation’ 
  • Dasar untuk pembuatan kontrak pekerjaan
    - Kontrak memiliki kekuatan hukum, pengembang harus mengikuti panduan yang ada di kontrak dan sekaligus merupakan jaminan bagi pelanggan/pengguna untuk mendapatkan perangkat lunak sesuai keinginannya
Jenis Kebutuhan PL 
  • Kebutuhan Pengguna (User Requirement)
    - Menggunakan bahasa seharihari
    - Ungkapan pernyataan dalam bahasa ‘manusia’, kadang bisa disertai dengan gambar.
    - Pernyataan ini bisa berisi harapan apa yang dapat diberikan oleh sistem, juga kadang batasan-batasan operasional
    - Kebutuhan ini akan dituliskan untuk di yakinkan kembali ke pengguna (atau pelanggan).
    Contoh : Pimpinan perpustakaan ingin ada laporan bulanan yang menampilkan data jumlah buku yang dipinjam dan jumlah peminjam
  • Kebutuhan Sistem (System Requirement)
    - Menggunakan bahasa teknis
    – Berisi pernyataan dalam dokumen yang terstruktur yang berisi deskripsi rinci dari fungsi, layanan dan batasan operasional dari suatu sistem
    – Mendefinisikan apa yang harus diimplementasikan, hingga kemungkinan menjadi bagian dari kontrak antara ‘client’ dan kontraktor.
    – Dokumentasi System Requirement
    Contoh : Sistem akan menyiapkan laporan akhir bulan setiap tanggal akhir bulan.
User Requirement sifatnya lebih umum (high level). Sedangkan spesifikasi kebutuhan sistem sifatnya sudah lebih rinci/detil. 

Kebutuhan Fungsional dan NonFungsional (NF)

  • Kebutuhan Fungsional
    – Pernyataan tentang layanan yang harus diberikan oleh sistem
    – Bagaimana sistem harus memberikan respon terhadap suatu masukan
    – Kadangkadang termasuk juga “apa yang tidak perlu dilakukan sistem”
  • Kebutuhan NonFungsional (NF)
    Berisi pernyataan tentang batasan (constraint) dari layanan/fungsi yang ditawarkan oleh sistem  Contohnya: Timing constraint, Development constraint, Standard constraint 

Model-model pengembangan perangkat lunak

Pengembangan Perangkat Lunak (Software Development Process) adalah suatu penerapan struktur pada pengembangan suatu Perangkat Lunak (Software), yang bertujuan untuk mengembangkan sistem dan memberikan panduan untuk menyukseskan proyek pengembangan sistem melalui tahapan-tahapan tertentu. Dalam prosesnya, terdapat beberapa paradigma model pengembangan sistem perangkat lunak, diantaranya :


  1. Model Sekuensial Linier atau Waterfall Development Model
Model Sekuensial Linier atau sering disebut Model Pengembangan Air Terjun, merupakan paradigma model pengembangan perangkat lunak paling tua, dan paling banyak dipakai. Model ini mengusulkan sebuah pendekatan perkembangan perangkat lunak yang sistematik dan sekunsial yang dimulai pada tingkat dan kemajuan sistem pada seluruh tahapan analisis, desain , kode, pengujian, dan pemeliharaan.
2
Berikut Merupakan Tahapan – tahapan Pengembangan  Model Sekuensial Linear / Waterfall Development Model :
  • Rekayasa dan pemodelan sistem/informasi
Langkah pertama dimulai dengan membangun keseluruhan elemen sistem dan memilah bagian-bagian mana yang akan dijadikan bahan pengembangan perangkat lunak, dengan memperhatikan hubungannya dengan Hardware, User, dan Database.
  • Analisis kebutuhan perangkat lunak
Pada proses ini, dilakukan penganalisaan dan pengumpulan kebutuhan sistem yang meliputi Domain informasi, fungsi yang dibutuhkan unjuk kerja/performansi dan antarmuka.  Hasil penganalisaan dan pengumpulan tersebut didokumentasikan dan diperlihatkan kembali kepada pelanggan.
  • Desain
Pada proses Desain, dilakukan penerjemahan syarat kebutuhan sebuah perancangan perangkat lunak yang dapat diperkirakan sebelum dibuatnya proses pengkodean (coding). Proses ini berfokus pada  struktur data, arsitektur perangkat lunak, representasi interface, dan detail algoritma prosedural.
  • Pengkodean
Pengkodean merupakan proses menterjemahkan perancangan desain ke bentuk yang dapat dimengerti oleh mesin, dengan menggunakan bahasa pemrograman.
  • Pengujian
Setelah Proses Pengkodean selesai, dilanjutkan dengan proses pengujian pada program perangkat lunak, baik Pengujian logika internal, maupun Pengujian eksternal fungsional untuk memeriksa segala kemungkinan terjadinya kesalahan dan memeriksa apakah hasil dari pengembangan tersebut sesuai dengan hasil yang diinginkan.
  • Pemeliharaan
Proses Pemeliharaan erupakan bagian paling akhir dari siklus pengembangan dan dilakukan setelah perangkat lunak dipergunakan. Kegiatan yang dilakukan pada proses pemeliharaan antara lain :
  • Corrective Maintenance : yaitu mengoreksi apabila terdapat kesalahan pada perangkat lunak, yang baru terdeteksi pada saat perangkat lunak dipergunakan.
  • Adaptive Maintenance : yaitu dilakukannya penyesuaian/perubahan sesuai dengan lingkungan yang baru, misalnya hardware, periperal, sistem operasi baru, atau sebagai tuntutan atas perkembangan sistem komputer, misalnya penambahan driver, dll.
  • Perfektive Maintenance : Bila perangkat lunak sukses dipergunakan oleh pemakai. Pemeliharaan ditujukan untuk menambah kemampuannya seperti memberikan fungsi-fungsi tambahan, peningkatan kinerja dan sebagainya.
 1
  • Contoh Penerapan dari Pengembangan Model Sekuensial Linear / Waterfall Development Model
Contoh dari penerapan model pengembangan ini adalah pembuatan program pendaftaran online ke suatu Instansi Pendidikan. Program ini akan sangat membantu dalam proses pendaftaran, karena dapat meng-efektifkan waktu serta pendaftar tidak perlu repot-repot langsung mendatangi Instansi Pendidikan. Teknisnya adalah sebagai berikut :
  • Sistem program untuk pendaftaran dibuat menggunakan bahasa pemrograman PHP, dengan Sistem Database yang dibuat menggunakan MySQL, dan diterapkan (diaplikasikan) pada PC (personal computer) dengan sistem operasi berbasis Microsoft Windows, Linux, dan sebagainya.
  • Setelah program selesai dibuat dan kemudian dipergunakan oleh user, programmer akan memelihara serta menambah atau menyesuaikan program dengan kebutuhan serta kondisi user.
  • Kelebihan Model Sekuensial Linear / Waterfall Development Model :
    • Tahapan proses pengembangannya tetap (pasti), mudah diaplikasikan, dan prosesnya teratur.
    • Cocok digunakan untuk produk software/program yang sudah jelas kebutuhannya di awal, sehingga minim kesalahannya.
    • Software yang dikembangkan dengan metode ini biasanya menghasilkan kualitas yang baik.
    • Documen pengembangan sistem sangat terorganisir, karena setiap fase harus terselesaikan dengan lengkap sebelum melangkah ke fase berikutnya.
  • Kekurangan Model Sekuensial Linear / Waterfall Development Model :
    • Proyek yang sebenarnya jarang mengikuti alur sekuensial seperti diusulkan, sehingga perubahan yang terjadi dapat menyebabkan hasil yang sudah didapatkan tim pengembang harus diubah kembali/iterasi sering menyebabkan masalah baru.
    • Terjadinya pembagian proyek menjadi tahap-tahap yang tidak fleksibel, karena komitmen harus dilakukan pada tahap awal proses.
    • Sulit untuk mengalami perubahan kebutuhan yang diinginkan oleh customer/pelanggan.
    • Pelanggan harus sabar untuk menanti produk selesai, karena dikerjakan tahap per tahap, dan proses pengerjaanya akan berlanjut ke setiap tahapan bila tahap sebelumnya sudah benar-benar selesai.
    • Perubahan ditengah-tengah pengerjaan produk akan membuat bingung tim pengembang yang sedang membuat produk.
    • Adanya waktu kosong (menganggur) bagi pengembang, karena harus menunggu anggota tim proyek lainnya menuntaskan pekerjaannya.

  1. Model Prototype
Metode Prototype merupakan suatu paradigma baru dalam metode pengembangan perangkat lunak dimana metode ini tidak hanya sekedar evolusi dalam dunia pengembangan perangkat lunak, tetapi juga merevolusi metode pengembangan perangkat lunak yang lama yaitu sistem sekuensial yang biasa dikenal dengan nama SDLC atau waterfall development model.
3
Dalam Model Prototype, prototype dari perangkat lunak yang dihasilkan kemudian dipresentasikan kepada pelanggan, dan pelanggan tersebut diberikan kesempatan untuk memberikan masukan sehingga perangkat lunak yang dihasilkan nantinya betul-betul sesuai dengan keinginan dan kebutuhan pelanggan.
Perubahan dan presentasi prototype dapat dilakukan berkali-kali sampai dicapai kesepakatan bentuk dari perangkat lunak yang akan dikembangkan.
Teknik – teknik Prototyping Meliputi :
  • Perancangan Model
  • Perancangan Dialog
  • Simulasi
Berikut adalah 4 langkah yang menjadi karakteristik dalam proses pengembangan pada metode prototype, yaitu :
  • Pemilihan fungsi
  • Penyusunan Sistem Informasi
  • Evaluasi
  • Penggunaan Selanjutnya
Metode ini menyajikan gambaran yang lengkap dari suatu sistem perangkat lunak, terdiri atas model kertas, model kerja dan program. Pihak pengembang akan melakukan identifikasi kebutuhan pemakai, menganalisa sistem dan melakukan studi kelayakan serta studi terhadap kebutuhan pemakai, meliputi model interface, teknik prosedural dan teknologi yang akan dimanfaatkan.
4
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Prototype, yaitu :
  • Pengumpulan kebutuhan
Pelanggan dan pengembang bersama-sama mendefinisikan format seluruh perangkat lunak, mengidentifikasikan semua kebutuhan, dan garis besar sistem yang akan dibuat.
  • Membangun prototyping
Membangun prototyping dengan membuat perancangan sementara yang berfokus pada penyajian kepada pelanggan (misalnya dengan membuat input dan format output).
  • Evaluasi protoptyping
Evaluasi ini dilakukan oleh pelanggan, apakah prototyping yang sudah dibangun sudah sesuai dengan keinginan pelanggan atau belum. Jika sudah sesuai, maka langkah selanjutnya akan diambil. Namun jika tidak, prototyping direvisi dengan mengulang langkah-langkah sebelumnya.
  • Mengkodekan sistem
Dalam tahap ini prototyping yang sudah di sepakati diterjemahkan ke dalam bahasa pemrograman yang sesuai.
  • Menguji sistem
Setelah sistem sudah menjadi suatu perangkat lunak yang siap pakai, kemudian dilakukan proses Pengujian. Pengujian ini dilakukan dengan White Box, Black Box, Basis Path, pengujian arsitektur, dll.
  • Evaluasi Sistem
Pelanggan mengevaluasi apakah perangkat lunak yang sudah jadi sudah sesuai dengan yang diharapkan . Jika ya, maka proses akan dilanjutkan ke tahap selanjutnya, namun jika perangkat lunak yang sudah jadi tidak/belum sesuai dengan apa yang diharapkan, maka tahapan sebelumnya akan diulang.
  • Menggunakan sistem
Perangkat lunak yang telah diuji dan diterima pelanggan siap untuk digunakan.
Model Prototyping ini sangat sesuai diterapkan untuk kondisi yang beresiko tinggi di mana masalah-masalah tidak terstruktur dengan baik, terdapat fluktuasi kebutuhan pemakai yang berubah dari waktu ke waktu atau yang tidak terduga, bila interaksi dengan pemakai menjadi syarat mutlak dan waktu yang tersedia sangat terbatas sehingga butuh penyelesaian yang segera. Model ini juga dapat berjalan dengan maksimal pada situasi di mana sistem yang diharapkan adalah yang inovatif dan mutakhir sementara tahap penggunaan sistemnya relatif singkat.
Berikut merupakan Jenis – jenis dari Prototyping :
  • Feasibility prototyping
digunakan untuk menguji kelayakan dari teknologi yang akan digunakan untuk system informasi yang akan disusun.
  • Requirement prototyping
digunakan untuk mengetahui kebutuhan aktivitas bisnis user.
  • Desain Prototyping
digunakan untuk mendorong perancangan sistem informasi yang akan digunakan.
  • Implementation prototyping
merupakan lanjutan dari rancangan prototype, prototype ini langsung disusun sebagai suatu sistem informasi yang akan digunakan.
  • Contoh Penerapan Metode Prototype.
Sebuah rumah sakit ingin membuat aplikasi sistem database untuk pendataan pasiennya. Seorang atau sekelompok programmer akan melakukan identifikasi mengenai apa saja yang dibutuhkan oleh pelanggan, dan bagaimana model kerja program tersebut. Kemudian dilakukan rancangan program yang diujikan kepada pelanggan. Hasil/penilaian dari pelanggan dievaluasi, dan analisis kebutuhan pemakai kembali di lakukan.
  • Kelebihan Model Prototype :
  • Pelanggan berpartisipasi aktif dalam pengembangan sistem, sehingga hasil produk pengembangan akan semakin mudah disesuaikan dengan keinginan dan kebutuhan pelanggan.
  • Penentuan kebutuhan lebih mudah diwujudkan.
  • Mempersingkat waktu pengembangan produk perangkat lunak.
  • Adanya komunikasi yang baik antara pengembang dan pelanggan.
  • Pengembang dapat bekerja lebih baik dalam menentukan kebutuhan pelanggan.
  • Lebih menghemat waktu dalam pengembangan sistem.
  • Penerapan menjadi lebih mudah karena pelanggan mengetahui apa yang diharapkannya.
  • Kekurangan Model Prototype :
  • Proses analisis dan perancangan terlalu singkat.
  • Biasanya kurang fleksibel dalam mengahadapi perubahan.
  • Walaupun pemakai melihat berbagai perbaikan dari setiap versi prototype, tetapi pemakai mungkin tidak menyadari bahwa versi tersebut dibuat tanpa memperhatikan kualitas dan pemeliharaan jangka panjang.
  • Pengembang kadang-kadang membuat kompromi implementasi dengan menggunakan sistem operasi yang tidak relevan dan algoritma yang tidak efisien.

  1. Model Rapid Application Development (RAD)
Rapid Aplication Development (RAD) adalah sebuah model proses perkembanganperangkat lunak sekuensial linier yang menekankan siklus perkembangan yang sangat pendek (kira-kira 60 sampai 90 hari). Model RAD ini merupakan sebuah adaptasi “kecepatan tinggi” dari model sekuensial linier dimana perkembangan cepat dicapai dengan menggunakan pendekatan konstruksi berbasis komponen.
5
Berikut adalah Tahapan – tahapan Proses Pengembangan dalam Model Rapid Application Development (RAD), yaitu :
  • Bussiness Modeling
Fase ini untuk mencari aliran informasi yang dapat menjawab pertanyaan berikut:
  • Informasi apa yang menegndalikan proses bisnis?
  • Informasi apa yang dimunculkan?
  • Di mana informasi digunakan ?
  • Siapa yang memprosenya ?
  • Data Modeling
Aliran informasi yang didefinisikan sebagai bagian dari fase bussiness modeling disaring ke dalam serangkaian objek data yang dibutuhkan untuk menopang bisnis tersebut. Karakteristik (atribut) masing-masing objek diidentifikasi dan hubungan antar objek-objek tersebut didefinisikan.
  • 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 sebuah objek data.
  • Aplication Generation
Selain menggunakan bahasa pemrograman generasi ketiga, RAD juga memakai komponen program yang telah ada atau menciptakan komponen yang bisa dipakai lagi. Ala-alat bantu bisa dipakai untuk memfasilitasi konstruksi perangkat lunak.
  • Testing dan 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.
  • Kelebihan Model RAD :
  • Lebih efektif dari Pengembangan Model waterfall/sequential linear dalam menghasilkan sistem yang memenuhi kebutuhan langsung dari pelanggan.
  • Cocok untuk proyek yang memerlukan waktu yang singkat.
  • Model RAD mengikuti tahap pengembangan sistem seperti pada umumnya, tetapi mempunyai kemampuan untuk menggunakan kembali komponen yang ada sehingga pengembang tidak perlu membuatnya dari awal lagi sehingga waktu pengembangan menjadi lebih singkat dan efisien.
  • Kekurangan Model RAD :
  • Model RAD menuntut pengembangan dan 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, proyek RAD akan gagal.
  • Tidak semua aplikasi sesuai untuk RAD, bila system tidak dapat dimodulkan dengan teratur, pembangunan komponen penting pada RAD akan menjadi sangat bermasalah.
  • RAD tidak cocok digunakan untuk sistem yang mempunyai resiko teknik yang tinggi.
  • Membutuhkan Tenaga kerja yang banyak untuk menyelesaikan sebuah proyek dalam skala besar.
  • Jika ada perubahan di tengah-tengah pengerjaan maka harus membuat kontrak baru antara pengembang dan pelanggan.

  1. Model Evolutionary Development / Evolutionary Software Process Models
Model Evolutionary Development bersifat iteratif (mengandung perulangan). Hasil prosesnya berupa produk yang makin lama makin lengkap sampai versi terlengkap dihasilkan sebagai produk akhir dari proses. Model Evolutionary Development / Evolutionary Software Process terbagi menjadi 2, yaitu :
  1. Model Incremental
Model Incremental merupakan hasil kombinasi elemen-elemen dari model waterfall yang diaplikasikan secara berulang, atau bisa disebut gabungan dari Model linear sekuensial (waterfall) dengan Model Prototype. Elemen-elemen tersebut dikerjakan hingga menghasilkan produk dengan spesifikasi tertentu kemudian proses dimulai dari awal kembali hingga muncul hasil yang spesifikasinya lebih lengkap dari sebelumnya dan tentunya memenuhi kebutuhan pemakai.
 6
Model ini berfokus pada penyampaian produk operasional dalam Setiap pertambahanya. Pertambahan awal ada di versi stripped down dari produk akhir, tetapi memberikan kemampuan untuk melayani pemakai dan juga menyediakan platform untuk evaluasi oleh pemakai. Model ini cocok dipakai untuk proyek kecil dengan anggota tim yang sedikit dan ketersediaan waktu yang terbatas.
Pada proses Pengembangan dengan Model Incremental, perangkat lunak dibagi menjadi serangkaian increment yang dikembangkan secara bergantian.
  • Contoh Penerapan Model Incremental
Perangkat lunak pengolah kata yang dikembangkan dengan menggunakan paradigma pertambahan akan menyampaikan manajemen file, editing, serta fungsi penghasilan dokumen pada pertambahan pertama, dan selanjutnya. Pertambahan pertama dapat disebut sebagai produk inti (core product).  Dan pada pertambahan selanjutnya, produk inti akan dikembangkan terus hingga menghasilkan produk jadi yang siap untuk digunakan/dipasarkan.
  • Kelebihan Model Incremental :
  • Personil bekerja optimal.
  • mampu mengakomodasi perubahan secara fleksibel, dengan waktu yang relatif singkat dan tidak dibutuhkan anggota/tim kerja yang banyak untuk menjalankannya.
  • Pihak konsumen dapat langsung menggunakan dahulu bagian-bagian yang telah selesai dibangun. Contohnya pemasukan data karyawan.
  • Mengurangi trauma karena perubahan sistem. Klien dibiasakan perlahan-lahan menggunakan produknya setiap bagian demi bagian.
  • Memaksimalkan pengembalian modal investasi konsumen.
  • Kekurangan Model Incremental :
  • Tidak cocok untuk proyek berukuran besar (lebih dari 200.000 baris coding).
  • Sulit untuk memetakan kebutuhan pemakai ke dalam rencana spesifikasi tiap-tiap hasil dari increament.

2. Model Spiral / Model Boehm
Model ini mengadaptasi dua model perangkat lunak yang ada yaitu model prototyping dengan pengulangannya dan model waterfall dengan pengendalian dan sistematikanya.  Model ini dikenal dengan sebutan Spiral Boehm. Pengembang dalam model ini memadupadankan beberapa model umum tersebut untuk menghasilkan produk khusus atau untuk menjawab persoalan-persoalan tertentu selama proses pengerjaan proyek.
 7
Tahap-tahap model ini dapat dijelaskan secara ringkas sebagai berikut :
  • Tahap Liason:pada tahap ini dibangun komunikasi yang baik dengan calon pengguna/pemakai.
  • Tahap Planning (perencanaan):pada tahap ini ditentukan sumber-sumber informasi, batas waktu dan informasi-informasi yang dapat menjelaskan proyek.
  • Tahap Analisis Resiko:mendefinisikan resiko, menentukan apa saja yang menjadi resiko baik teknis maupun manajemen.
  • Tahap Rekayasa (engineering):pembuatan prototipe.
  • Tahap Konstruksi dan Pelepasan (release):pada tahap ini dilakukan pembangunan perangkat lunak yang dimaksud, diuji, diinstal dan diberikan sokongan-sokongan tambahan untuk keberhasilan proyek.
  • Tahap Evaluasi:Pelanggan/pemakai/pengguna biasanya memberikan masukan berdasarkan hasil yang didapat dari tahap engineering dan instalasi.
  • Kelebihan model iniadalah sangat mempertimbangkan resiko kemungkinan munculnya kesalahan sehingga sangat dapat diandalkan untuk pengembangan perangkat lunak skala besar. Pendekatan model ini dilakukan melalui tahapan-tahapan yang sangat baik dengan menggabungkan model waterfall ditambah dengan pengulangan-pengulangan sehingga lebih realistis untuk mencerminkan keadaan sebenarnya. Baik pengembang maupun pemakai dapat cepat mengetahui letak kekurangan dan kesalahan dari sistem karena proses-prosesnya dapat diamati dengan baik.
  • Kekurangan model iniadalah waktu yang dibutuhkan untuk mengembangkan perangkat lunak cukup panjang demikian juga biaya yang besar. Selain itu, sangat tergantung kepada tenaga ahli yang dapat memperkirakan resiko. Terdapat pula kesulitan untuk mengontrol proses. Sampai saat ini, karena masih relatif baru, belum ada bukti apakah metode ini cukup handal untuk diterapkan.

Model Spiral/Boehm sangat cocok diterapkan untuk pengembangan sistem dan perangkat lunak skala besar di mana pengembang dan pemakai dapat lebih mudah memahami kondisi pada setiap tahapan dan bereaksi terhadap kemungkinan terjadinya kesalahan. Selain itu, diharapkan juga waktu dan dana yang tersedia cukup memadai