Anda di halaman 1dari 65

Application Development &

Software System
Pusat Pengembangan Internal Audit | Yayasan
Pendidikan
Pelatihan Internal
Audit Internal Audit
Tingkat Lanjutan
Sertifikasi Qualified Internal Auditor (QIA)
Agenda Application
Development
BAB I: Pendahuluan

BAB II: Build or Buy

BAB III: System Development Life Cycles

BAB IV: Prototyping

BAB V: Application Development Tools

2
BAB - I
Pendahuluan
Aplication Development
Application Development atau sering juga dikatakan
sebagai software development adalah istilah untuk
menyebut berbagai rangkaian kegiatan yang
dilakukan dalam usaha untuk mengembangkan
produk software atau program aplikasi.
Application Development Management (ADM)
adalah cara pengelolaan yang dilakukan terhadap
proses pengembangan aplikasi atau software.
Metodologi Pengembangan Software
System Development Life Cycles
Analysing
Maintenance
and bug fixing the
problem

Market
Deployment
research

Gathering
Testing
requirement

Devising
Implementation
(coding) plan or
design
Metodologi Pengembangan Software

Waterfall Extreme
• Terstruktur • Mengerjakan beberapa tahapan
• Mengerjakan tahapan secara tepat secara berulang
berurutan • Membutuhkan waktu lebih sedikit
• Banyak menghabiskan waktunya pada tahap perencanaan dan
pada tahapan identifikasi risiko dokumentasi
• Menyiapkan rencana terinci dari • Lebih menekankan waktunya pada
pengembangan software sebelum tahap pembuatan program
tahapan pekerjaan pemrograman (coding) dan pengujiannya
(coding) dimulai • Melakukan tahapan pengujian
• Menghindari perubahan desain secara terus menerus
yang signifikan • Selalu memperbaiki produknya
• Membuat ulang program pada dari bug sepanjang waktu, selama
tahapan selanjutnya masa pengembangan
Tujuan Application Development Management
(ADM)

Berbagai kegiatan pengembangan aplikasi yang berbeda


seringkali juga harus dikerjakan oleh perusahaan pada saat
yang sama sekaligus. Kesemuanya itu jelas memerlukan
cara atau mekanisme pengelolaan yang tertata rapi, agar
proses pengembangan aplikasi, termasuk perubahan-
perubahannya, bisa berjalan dengan lancar dan terkendali.
Untuk tujuan itulah maka diperlukan keberadaan
Application Development Management (ADM).
BAB - II
Build or Buy
System Development Life Cycles

Planning

Implementation Analysis

Design
Model Waterfall
Studi
Maintenance
Kelayakan

Pendefinisian
Acceptance,
Kebutuhan
Installation,
dan Analisa
Deployment
Sistem

Integration Pengadaan
and Testing Software

Sistem
Manajemen
Development Sumber Daya
terintegrasi
System
Design
SDLC – Manajemen Pengendalian
Pencapaian Studi Kelayakan

Kerangka waktu

Solusi komputerisasi

Perlu Perbaikan atau tidak

Produk Vendor

Perkiraan biaya

Solusi sesuai dengan strategi bisnis

Dikembangkan atau membeli

Faktor-faktor membeli atau dikembangkan sendiri

Jangka waktu system berfungsi

Biaya mengembangkan dibanding membelinya

Sumber daya yang tersedia

Kebutuhan informasi dari sistem lain


Tahap Pendefinisian Kebutuhan

Masalah atau Luas dan kebutuhan Pengguna menentukan


kebutuhan utama kebutuhannya
- Pengendalian akses
- Peraturan yang
berlaku
- Kebutuhan informasi
manajemen

Kegagalan dalam mendefinisikan dan mengelola kebutuhan sistem dapat berakibat


timbulnya sejumlah risiko. Risiko utama diantara risiko-risiko tersebut adalah “scope
creep” (cakupan yang selalu berkembang).
Request for Proporsal (RFP)

Produk vs kebutuhan sistem


Referensi pelanggan
Kelangsungan vendor, stabilitas keuangan
Tersedianya dokumentasi yang lengkap
Dukungan vendor
Ketersediaan source code
Lama pengalaman
Daftar/jadwal pengembangan produk
Jumlah pelanggan yang menggunakan produk
Uji coba pendahuluan
Diskusi dengan Current User

Komitmen
pelatihan
Komitmen
Keandalan dan
pelayanan
dokumentasi
produk
Cakupan Kontrak

Komitmen memberikan Dana perjanjian


Penjelasan spesifik
Tanggal komitmen dokumentasi, escrow perangkat
apa yang akan
produk akan perbaikan, upgrade, lunak jika produk
diberikan dan pemberitahuan versi
disampaikan tidak termasuk
biayanya baru dan pelatihan source code

Penjelasan tentang Persyaratan adanya Dana untuk


jangka waktu pengujian
dukungan yang akan perubahan yang Kesepakatan
yang layak dan disetujui
diberikan selama sebelum komitmen akan dibuat oleh pemeliharaan
instalasi untuk membeli dibuat perusahaan pembeli

Dana Jadual pembayaran


menggandakan dihubungkan
perangkat lunak dengan tanggal
guna kelangsungan aktual penyampaian
usaha produk
Risiko Paket Software

Tidak memadainya
jejak audit

Pengendalian
password

Keamanan
aplikasi secara
keseluruhan
Elemen Desain Sistem
Diagram
hirarki
fungsional

Entity Diagram
Relationship layout
Diagram layar

Panduan
Tabel aturan
perintah
bisnis
program

Diagram
proses bisnis
Pemrograman Terintegrasi Workstations

Program library tetap berada di server atau mainframe dalam


library management system, tapi modifikasi, pengembangan
dan pengujian dapat dilakukan dari workstation.

Mengurangi
integritas
program dan
proses
Perubahan yang
Banyaknya versi valid berpotensi
program terhapus dan
diganti

Kelemahan
Bahasa Pemgrograman

High Level Object Low Level Fourth GL Decision


Languages Oriented Languages (4GLs) Support
• COBOL Language • digunakan • FOCUS atau System
• PL/1 • C++ untuk • dBAse Expert
komputer • Power Builder Languages
• FORTRAN • Basic tertentu.
• JAVA • Ms.Visual • Express
Studio
• LISP
• Gupta Team
Developer • PROLOG
Debugging Tool
Debugging tool adalah program yang membantu
programer untuk menemukan dan memperbaiki bug
selama pengembangan
Logic
Memory Output
path
dumps analyzers membantu
monitor
membuat laporan membuat gambaran menganalisa
rangkaian event internal memori keakuratan hasil
sebuah program

menyediakan
membandingkan
memberitahu ‘tanda’ jika terjadi
antara hasil yang
programer ketidakkonsistenan
diharapkan dengan
kesalahan logika data atau nilai
hasil aktualnya
parameter
Test Data Generator

Test data generator adalah suatu program yang


memproduksi data secara acak untuk keperluan menguji
suatu program. Test data generator bekerja dengan
menggunakan karakter field, layout dan nilai-nilai data.
Sebagai tambahan dalam pengujian data generator
biasa digunakan interactive debugging aid dan code
logic analyzer.
Pendekatan Pengujian

Bottom
up
Top
Down
Pengujian Ukuran & Kompleksitas

Pilot testing Unit testing Interface testing


•Pengujian pendahuluan focus pada •Pengujian ini meyakinkan operasi •Pengujian hardware dan software
aspek dari sistem yang spesifik internal program berjalan sesuai untuk mengevaluasi hubungan antara
dengan spesifikasi dua atau lebih komponen

System testing
•Pengujian meyakinkan program yang Performance testing Function/Validity Testing
dimodifikasi berinteraksi dengan
komponen sistem lainnya •Membandingkan kinerja sistem dengan •Menguji fungsionalitas sistem sesuai
sistem lain dengan kebutuhannya secara detail
•Recovery testing, Security testing,
Stress/Volume testing

Regression testing Parallel testing Acceptance testing


•Proses menjalankan kembali bagian •Proses memasukkan data pengujian ke •Dilakukan pengujian untuk
dari skenario pengujian atau rencana dalam dua sistem. Sistem yang mendapatkan persetujuan pengguna
pengujian untuk meyakinkan bahwa dimodifikasi dan sistem alternatif dan dalam rangka mendukung proses untuk
perubahan atau koreksi tidak membandingkan hasilnya. meyakini bahwa sistem siap
membawa error yang baru diimplementasikan
Reviu Pasca Implementasi

Apakah sistem telah Mengevaluasi untung-


Menilai kecukupan
memenuhi kebutuhan rugi atau ROI (Return
sistem
user On Investment)

Mengembangkan Mengembangkan
rekomendasi untuk rencana untuk
mengatasi kekurangan mengimplementasikan
sistem rekomendasi tersebut
BAB - III
System Development Life Cycles
Pengertian Umum SDLC
Systems Development Life Cycle (SDLC) merupakan proses
pengembangan software dalam suatu rekayasa sistem
informasi. SDLC dalam hal ini melakukan proses pembuatan
dan atau penggantian suatu sistem informasi, serta model
dan metodologi yang digunakan untuk membangun sistem
tersebut. Dalam rekayasa software, konsep SDLC diterapkan
dengan menggunakan berbagai macam pilihan metodologi
pengembangan software.
Model & Metodologi SDLC

Waterfall

Synchronize
and stabilize Spiral

SDLC

Agile software
Incremental development

Rapid
prototyping
Model & Metodologi SDLC
Model Agile
• XP dan Scrum
• Proses yang sifatnya ringan dan sederhana

Model Interative/Berulang
• Rational United Process dan Dynamic Systems Development Method
• Ruang lingkup proyek yang terbatas

Model Sequential/Berurutan atau Big-Design-Up-Front (BDUF)


• Waterfall
• lebih ditujukan untuk proyek besar yang berisiko dengan cara membuat terlebih
dahulu perencanaan secara lengkap dan tepat

Model Lainnya
• Ditujukan untuk bentuk pengembangan software secara iterasi dan teradaptasi
• Ruang lingkup pengembangannya hanya pada fitur-fitur tertentu
Konsep SDLC
Risiko SDLC

tidak cocok dengan hasil akhir proses


sistem yang telah ada, atau sistem yang
kehilangan kesempatan
baru tidak
bisnis, mengurangi
kredibilitas IS dan memenuhi
menurunkan motivasi kebutuhan usaha
karyawan pengguna

melampaui batas penggunaan


sumber daya keuangan yang
disediakan untuk proyek
tersebut dan diselesaikan
terlambat
BAB - IV
Prototyping
Metodologi Prototyping
Metodologi Prototyping adalah pendekatan dalam
pengembangan software dengan cara membuat sebuah
prototype (versi yang belum lengkap dari software)
kemudian menyempurnakannya secara terus menerus
sehingga menjadi sistem final yang memenuhi kebutuhan
pengguna.
Metode Dasar Prototyping

Secara bertahap
Membangun model
membangun sistem
untuk membuat
sebenarnya yang akan
desain
berjalan di produksi
Permasalahan Metode Prototyping

Pengendalian
yang lemah

Menambah
fungsi ekstra

Tekanan untuk segera


mengimplementasikan
prototype
Prinsip Dasar (Prototyping)Membangun satu
paket besar sistem
dengan cara memilih
bagian perbagiannya

Meminimalisir risiko
Pemahaman yang baik bawaan proyek dengan
atas masalah cara memecahnya
mendasar dari bisnis menjadi bagian-bagian
yang lebih kecil

Metodologi prototype
diperbaiki terus Melibatkan pengguna
menerus hingga pada sepanjang proses
akhirnya menjadi pengembangan
produk final

Dikembangkan wujud
kecil sistem kemudian
disempurnakan secara
terus menerus
Kekuatan (Prototyping)
Pengguna bisa mengajukan Dapat digunakan secara
wujud tentatif (sementara) realistis memodelkan aspek
Meningkatkan partisipasi
bentuk eksperimental di penting dari sistem
komunikasi antar pihak
saat awal pengembangan sepanjang masa siklus
sistem pengembangannya

memanfaatkan
pengetahuan yang Membantu memudahkan
Bermanfaat khususnya
diperoleh pada iterasi awal mengidentifikasi fungsi
untuk menangani tujuan
untuk bisa dikembangkan yang sulit atau
yang belum jelas
pada iterasi-iterasi membingungkan
sesudahnya

Cepat melakukan
Menentukan spesifikasi dari Mendorong munculnya implementasi aplikasi yang
aplikasi produktif yang akan inovasi serta rancangan belum lengkap, namun
dihasilkan sistem yang luwes telah memiliki beberapa
fungsi yang sudah selesai
Kelemahan (Prototyping)

Tidak ketatnya proses Ketidakcukupan atau Bagian yang tidak


Kebutuhan pengguna
persetujuan dan ketidaklengkapan fungsional sering tidak
bisa sering berubah
pengendalian analisa sistem didokumentasikan

Sistem nampaknya
Rancangan tidak
Perancang sistem sering Terbentuknya sistem bagus dan memiliki user
flexible secara potensial
mengabaikan dengan rancangan yang interface yang cantik,
membuat keterbatasan
dokumentasi jelek namun tidak berfungsi
system
dengan semestinya

Menambah anggaran Tidak cukup memiliki


serta lamanya waktu mekanisme ‘check and
penyelesaian sistem balance’
Situasi yang paling sesuai
(Prototyping)

Pengembangan sistem online

Pengembangan decision support system

Proyek berskala besar

Proyek yang tujuannya belum jelas

Implementasinya dibutuhkan dengan segera

Kebutuhan fungsionalnya sering berubah

Penggunanya tidak memiliki cukup pengetahuan

Anggota tim pengembang cukup berpengalaman

Manajer proyek cukup berpengalaman

Susunan tim pengembang relatif tetap

Tidak perlu terlalu menghemat sumberdaya

Tidak memerlukan persetujuan setiap tahapan

Analis dan pengguna ikut serta menangani masalah bisnis

Melakukan inovasi, dan merubah rancangan secara fleksibel


Situasi yang paling tidak sesuai (Prototyping)

Sistem berbasis
mainframe atau
sistem batch
berorientasi transaksi

Tujuan proyek Sistem e-bisnis


sangat jelas berbasis web

Susunan tim
Adanya kebutuhan
pengembang yang
yang tinggi
tidak tetap
BAB - V
Application Development Tools
Pengembangan Sistem Informasi

melakukan
Menuliskan
Menangkap analisa dan Pengujian Memperbaiki
perintah Implementasi
user membuat terhadap penulisan
program aplikasi
requirement desain program program
(code)
aplikasi
Computer Aided Software Engginering
(CASE)
CASE adalah software bantuan (tool) yang dapat membantu meringankan kerja dalam
proses pengembangan software, sehingga bisa membantu menghasilkan sistem
informasi yang lebih berkualitas.

CASE membantu System Analyst

Analisa Menyiapkan Penulisan


Pengujian
kebutuhan desain program Dokumentasi
program
user aplikasi (code)
Produk CASE

Upper Middle Lower


CASE membantu
mendeskripsikan
CASE CASE membantu
penulisan program
menyiapkan desain
dan komputer (code)
detail dari aplikasi
mendokumentasika dan pendefinisian
n kebutuhan user database

mencakup mencakup layout menggunakan


pendefinisan data layar monitor dan informasi desain
layout laporan
object dan detail, aturan
tercetak, organisasi
hubungan antar data object dan arus pemrograman dan
datanya, serta proses didalam aturan syntax
pendefinisian proses aplikasi database
Auditor SI dalam Memahami CASE

Membantu proses pembuatan desain aplikasi, namun tidak menjamin


keberhasilan

Melengkapi dan sesuai dengan metodologi pengembangan aplikasi


yang dipilih/digunakan

Pemindahan data harus dipantau dan dikendalikan untuk menjamin


Integritas

Perubahan aplikasi tercermin dalam data yang disimpan

Pengendalian internal dalam aplikasi harus dirancang

Repository harus diamankan dan pengendalian versi yang ketat juga


diterapkan

Auditor SI bisa juga menjadi user dan Data Flow Diagram dapat
digunakan sebagai alternatif teknik flowcharting
Code Generator

Code Generator menghasilkan kode program


berdasarkan parameter, yang didefinisikan oleh
system analyst atau atas data entity flow diagram
yang dibangun dengan modul desain yang ada pada
produk CASE. Tool ini memungkinkan pengembang
untuk membangun software secara lebih efisien.
Fourth Generation Languages (4GLs)

Lingkungan pengembangan program generasi


empat, adalah istilah untuk suatu paket software
untuk pengembangan sistem, yang didalamnya
mencakup bahasa pemrograman komputer tingkat
sangat tinggi. 4GL sendiri merupakan singkatan
dari ‘bahasa generasi keempat’. Bahasa
pemrograman ini sering digunakan untuk
pengembangan prototyping.
Karakteristik Dasar 4GL

Independen
Non Procedural Fasilitas perangkat Konsep work bench
terhadap lingkungan
Languages (Portability) lunak Programer

• tidak mengikuti • dapat berpindah • menyediakan • Programer


lagi paradigma lintas arsitektur banyak fasilitas memiliki akses
prosedural dimana komputer, sistem • kemampuan melalui
komputer operasi dan merancang atau terminalnya ke
menjalankan monitor menggambarkan fasilitas
perintah secara telekomunikasi format layar, penyimpanan file,
berurutan • diimplementasikan mengembangkan penyimpanan
• menggunakan pada prosessor layar bantuan sementara,
event driven dan mainframe (help screens), dan pengeditan text
konsep object maupun personal- membuat output dan perintah
oriented computer gratis sistem operasi
programming dengan mudah
secara luas, seperti
object, properties
dan methods
Agenda Work Station and Database

BAB I: Pendahuluan

BAB II: Data base Overview

BAB III: Data Base Structure

BAB IV: Jenis Database

BAB V: Pengendalian Database


49
BAB - I
Pendahuluan
Workstation
Workstation. Adalah laptop atau komputer desktop yang digunakan secara
mandiri untuk bekerja. Workstation memiliki sistem operasi dan sistem aplikasi
untuk produktifitas (mis. Ms Office, browser, multimedia dll).

Thick Thin
komputer workstation
Client (desktop atau laptop) yang
menjadi bagian dari sebuah
Client workstation pengguna yang
berisi sistem operasi yang
jaringan, yang berisi sistem
minimal dan atau tidak
operasi yang berfungsi
tersedia penyimpanan data.
penuh dan dengan berbagai
aplikasi program.
BAB - II
Database Overview
Database Management System -
DBMS
Perangkat lunak sistem yang membantu mengorganisasikan,
mengendalikan, dan menggunakan data yang diperlukan oleh
program aplikasi. DBMS menyediakan fasilitas untuk
membuat dan memelihara database yang terorganisasi
dengan baik. DBMS juga menyediakan fungsi untuk
normalisasi data yang dapat mengurangi duplikasi data,
mempercepat waktu akses dan membuat pengamanan dasar
terhadap data yang sensitif.
Tingkatan Akses Pengguna dalam DBMS

User dan
database

User dan Program


field dan
data database

Transaksi
User dan
dan
transaksi
database

Program
dan field
data
Keuntungan DBMS

Independensi data

Kemudahan dukungan dan fleksibilitas

Efisiensi proses transaksi

Mengurangi duplikasi data

Konsistensi data

Meminimalkan biaya pemeliharaan

Diterapkannya standar data dan pemrograman


Jenis Metadata

Conseptual External Internal


schema schema schema
metadata metadata metadata
Kapabilitas Fungsional
Data Dictionary & Directory Systems (DD/DS)

memungkinkan Fasilitas dapat digunakan


Memvalidasi
database Mencegah akses intrerogasi dan oleh beberapa
definisi yang
administrator yang tidak pelaporan yang DBMS,
diberikan atau
untuk membuat terotorisasi atau memungkinkan mengurangi akibat
meyakinkan
dan memodifikasi manipulasi DBA untuk dari perubahan
integritas
sebuah definisi metadata membuat query dari satu DBMS ke
metadata
data pada definisi data DBMS lainnya
Keuntungan Penggunaan DD/DS

Memfasilitasi
pemrograman
dengan
Menyediakan Menstandarkan
Meningkatkan mengurangi
kriteria validasi metode
dokumentasi kebutuhan
yang umum pemrograman
untuk
mendefinisikan
data
BAB - III
Database Structure
Model Database

Flat Hirarki Network Relasional

data dibuat terstruktur memungkinkan anak Model ini independen


digunakan pada
dengan hubungan memiliki relasi dengan terhadap implementasi
kebutuhan personal
induk/anak lebih dari satu induk fisik dari struktur data

sulit untuk
mengekspresikan
data dapat terhubung
disusun dalam satu file hubungan ketika anak
data element dapat
atau satu lembar data memiliki hubungan
terhubung ke item lainnya
dengan lebih dari satu
induk
Keuntungan Model Database
Relasional

Kemudahan
Lebih mudah
bagi user untuk
dimodifikasi
mengerti dan
daripada
mengimplemen
bentuk hirarki
tasikan sistem
dan network
fisik database

Mudah
Lebih cepat
mengkonversi ke
dalam pencarian
struktur
data
database lainnya

Pengendalian
akses terhadap
data yang
sensitif lebih
mudah
Jenis Database

Object Hirarhical Network


Database Database Database
database objek (atau Sistem
Manajemen Obyek Database, Database hirarkis, model mirip dengan database
ODBMS) adalah database di data adalah hirarki top- hirarki, namun dalam
mana informasi
direpresentasikan sebagai down, dengan rekord induk database network ini,
benda-benda yang digunakan dan satu atau lebih rekord antar catatan anak, dapat
dalam bahasa pemrograman anak dalam desainnya saling berrelasi
berorientasi obyek (OOPL).

datanya tidak memerlukan


atribut yang didefinisikan database hirarki saat ini
memungkinkan data
terlebih dahulu seperti menggunakan model IBM
memiliki hubungan yang
misalnya berapa ukuran, IMS (Information
bersifat lateral
panjang dan struktur Management System)
datanya
Pengendalian Database

Kontrol Akses • database relasional memiliki kontrol akses tabel dan field data
• database ini dapat menentukan siapa yang dapat mengakses
(Access Control) tabel, bahkan siapa yang dapat mengakses field

• database relasional enkripsi database sampai pada


Enkripsi tingkat fieldmenyediakan

• Administrator/auditor dapat melihat kegiatan yang berhubungan


dengan database seperti siapa yang mengakses database, waktu
Audit Logging akses, tabel dan field apa saja yang diakses, siapa yang
menambah data atau siapa yang menghapus data.

• Database administrator dapat membuat tampilan view, yang menyimpan


View atau query data sebagai tabel virtual.

virtual table • Pembuatan tabel virtual memungkinkan perubahan terhadap tabel view tidak
akan mempengaruhi terhadap database awalnya
Pengendalian untuk Meyakinkan
Integritas Database

Menetapkan dan
mengimplementasikan
Menetapkan standar definisi Menetapkan beberapa
prosedur backup dan
dan memonitor ketaatannya kontrol akses
recovery untuk meyakinkan
ketersediaan database

Menetapkan pengendalian
Menetapkan pengendalian Menggunakan database
untuk meyakinkan
untuk meyakinkan hanya checkpointuntuk memulai
keakuratan, kelengkapan,
pegawai yang berwenang proses kembali setelah
dan konsistensi elemen data
yang dapat mengubah sistem gagal pada point
dan relationship dalam
database tertentu
database

Mengikuti prosedur
Menggunakan program
Melakukan reorganisasi restrukturisasi database
monitor kinerja untuk
database untuk mengurangi ketika melakukan
memonitor dan memelihara
ruang hard disk perubahan logikal, fisikal
efisiensi database.
dan procedural
THANK YOU

Anda mungkin juga menyukai