Dalam makalah terdahulu dijelaskan materi “keterkaitan dengan
kompleksitas” yang didalamnya menjelaskan tentang sistem yang dibagi lagi
menjadi beberapa subsistem, yaitu subsistem manajemen dan subsistem aplikasi.
Dan dalam makalah ini akan dijelaskan lebih lanjut mengenai pengendalian
subsistem manajemen.
Pengendalian umum menurut Gandodiyoti. S (2007) adalah sistem
pengendalian internal komputer yang berlaku umum meliputi seluruh kegiatan
komputerisasi sabuah organisasi secara menyeluruh, yang berarti ketentuan dalam
pengendalian itu berlaku untuk seluruh kegiatan komputerisasi di perusahaan itu.
Karena itu keputusan dalam pengendalian jenis ini merupakan wewenang dari
manajemen atau bersifat management framework, serta disebut sebagai
Pengendalian Perspektif Manajemen. Ruang lingkup dari pengendalian perspektif
manajemen adalah:
A. Pengendalian pucuk manajemen (top management controls)
B. Pengendalian manajemen pengembangan sistem (system development
management controls).
C. Pengendalian manajemen program (programming management controls).
D. Pengendalian manajemen sumber data (data resource management controls).
E. Pengendalian manajemen keamanan (security management controls).
F. Pengendalian manajemen operasi (operation management controls).
G. Pengendalian manajemen jaminan kualitas (quality assurance management
control).
Dalam makalah ini akan dijelaskan lebih lanjut atas ruang lingkup
pengendalian perspektif manajemen yaitu pengendalian pucuk manajemen,
pengendalian manajemen pengembangan sistem dan pengendalian manajemen
program.
A. Pengendalian Pucuk manajemen (Top Management Controls)
Maksud dari pucuk pimpinan disini adalah board of directors atau di
Indonesia disebut rideksi yang terdiri dari direktur utama serta para direktur
lainnya. Dan direksi ini bertanggungjawab terhadap seluruh operasi
perusahaan, termasuk di bidang Teknologi Informasi yang mendukung atas
keberhasilan suatu perusahaan.
Pengendalian pucuk pimpinan merupakan sistem pengendalian intern yang
ada di suatu organisasi yang mendorong keterlibatan dan tanggungjawab
pucuk pimpinan organisasi terhadap kegiatan teknologi informasi di
organisasi tersebut serta semua konsekuensinya. Auditor dapat melihat atau
menganalisis bagaimana kepedulian dari pucuk pimpinan organisasi terkait
sistem informasinya dengan menilai apakah pucuk pimpinan di organisasi
tersebut sudah melakukan kegiatan planning, organizing, actuating dan
controlling dalam pengelolaan sumber daya informasinya.
1. Planning function
Dalam kegiatan ini, manajemen puncak harus menentukan tujuan dan
sasaran yang ingin dicapai oleh unit sistem informasi dalam organisasi
tersebut serta bagaimana cara mencapainya. Penyusunan rencana disini
meliputi tiga hal yaitu:
a. Mengetahui kesempatan dan masalah yang di hadapi organisasi
sehingga teknologi dan sistem informasi dapat digunakan secara
efektif.
b. Mengidentifikasi sumber daya yang diperlukan untuk menyediakan
teknologi dan sistem informasi yang diperlukan.
c. Membuat strategi dan taktik yang diperlukan untuk memperoleh
sumber daya tersebut.
Kegiatan perencanaan dibedakan menjadi strategic plan dan
operational plan, yang mana keduanya harus selalu di review secara terus-
menerus serta diperbaharui jika memang diperlukan.
Strategic plan bersifat jangka panjang, biasanya sekitar 3 sampai 5
tahun dan berisi hal-hal seperti:
a. Penilaian terhadap kondisi teknologi yang ada saat ini (current
information assessment), baik dari kelemahan, serta tantangan dan
ancaman yang ada.
b. Tujuan jangka panjang (strategic directions), dimana jasa atas
informasi masa depan harus disediakan, strategi keseluruhan terhadap
intraorganisasi maupun interorganisasi.
c. Strategi pengembangan (development strategic), terkait visi organisasi
di bidang sistem informasi, pengaplikasiannya di masa depan, berapa
dana yang diperlukan serta monitoring terhadap pelaksanaan strategi.
Sedangkan operational plan bersifat jangka pendek, biasanya sekitar 1
sampai 3 tahun dan berisi hal-hal seperti:
a. Progress report, didalamnya berisikan keterangakn terkait keberhasilan
serta kegagalan pencapaian rencana yang sedang berjalan, perubahan
besar terhadap software ataupun hardware, serta hal-hal baru yang
harus dilakukan.
b. Initiatives to be undertaken, berisikan keterangan tentang
pengembangan sistem, perubahan hardware ataupun software, serta
tambahan karyawan dan sumber daya keuangan.
c. Implementation schedule, berisikan keterangan tentang kapan mulai
atau selesainya setiap proyek utama, kejadian penting yang terjadi
serta bagaimana prosedur kontrol proyek yang diterapkan.
Dan dalam tahap perencanaan pengembangan sistem, biasanya
dibentuk Komite Pengarah (steering committee) dalam suatu organisasi
yang bertanggung jawab atas perencanaan sistem informasi yang ada.
2. Organizing function
Fungsi dari pengorganisasian disini adalah mengumpulkan,
mengalokasikan serta mendapatkan sumber daya yang diperlukan untuk
dapat mencapai tujuan yang telah ditetapkan di awal. Yang dimaksud
sumber daya disini berupa perangkat keras (hardware), perangkat lunak
(software), personel, dan fasillitas. Kegiatan staffing melibatkan tiga
kegiatan didalalamnya yaitu proses mendapatkan, mengembangkan dan
memberhentikan karyawan, oleh karena itu manajemen harus mengelola
staf yang dimiliki dengan sebaik-baiknya karena alasan yang penting
seperti:
a. Efektivitas fungsi sistem informasi bergantung pada kualitas staf.
b. Staf sistem informasi yang berkualitas biasanya sangat sulit didapatkan
karena beberapa alasan.
c. Adanya kecenderungan manusia untuk melakukan kecurangan.
Contoh prosedur pengendalian dasar dalam pemilihan staf adalah:
a. Pengecekan latar belakang (bisa dilihat dari resume, referensi,
keilmuan)
b. Pengecekan kesehatan mental dan fisik
c. Keterikatan antar staf utama
d. Penjelasalasan mengenai aturan-aturan yang ada di organisasi yang
perlu diketahui
Personil atau staf sistemm informasi mempunyai karakteristik tertentu
yang berbeda dengan yang lainnya. Kebijakan personil suatu unit
organisasi sistem informasi pastinya berbeda dengan unit yang lain.
Kebijakan umum dari pimpinan organisasi juga sangat diperlukan dalam
kaitan pemisahan tugas dan fungsi yang perlu dipertegas seperti:
a. Fungsi pengembangan sistem informasi (system development)
b. Fungsi pelaksanaan (operasional/produksi) sistem komputerisasi
c. Unit fungsional pengguna jasa informasi (user).
3. Actuating function
Seperti yang kita ketahui tugas pimpinan atau manajer adalah
memberikan pengarahan, perhatian, pembinaan, mendorong motivasi serta
berkomunikasi dengan para staf dengan sebaik-baiknya. Perlu dipahami
bahwa staf unit komputer merupakan knowledge-worker, yaitu pegawai
profesional yang memiliki karakteristik spesifik. Kepemimpinan dalam
bidang sistem informasi mungkin lebih rumit lagi, karena lingkungan
teknis yang dihadapi berbeda dari manajer di bidang lain. Manajer di
bidang informasi seharusnya memiliki ciri kepemimpinan seperti:
a. Awareness, yaitu memiliki kesadaran tentang pentingnya motivasi dan
kepemimpinan yang baik.
b. Empathy, yaitu memliki sikap simpati dan dapat menempatkan diri
dalam setiap stafnya.
c. Objectivity, yaitu dapat menganalisa setiap kejadian dengan objektif
tanpa libatkan emosi.
d. Self-knowledge, yaitu dapat mengetahui akibat dari setiap kegiatan
yang dia lakukan.
Auditor dapat melaksanakan analisis terhadap efektivitas kegiatan
yang ada di atas dengan menganalisis data formal maupun informal untuk
mengetahui seberapa baik kegiatan komunikasi antara manajer dengan
para stafnya.
4. Controlling function
Seperti pada setiap pengelolaan organisasi lainnya, pimpinan harus
melakukan pengawasan atau memonitoring apakah kinerja atau realisasi
pelaksanaan kegiatan sudah sesuai dengan rencana atau malah
menyimpang tidak sesuai dengan apa yang seharusnya. Fungsi kontrol
disini untuk membandingkan antara hasil yang dicapai dengan target yang
telah direncanakan. Ketika pucuk pimpinan mencoba melakukan analisa
terhadap keseluruhan kendali atas fungsi sistem informasi, akan timbul
dua pertanyaan yaitu:
a. Berapa banyak dana yang seharusnya dikeluarkan untuk fungsi sistem
informasi?
b. Apakah organisasi memperoleh hasil yang sesuai dengan biaya yang
dikeluarkan dari fungsi sistem informasi?
Kontrol dapat dilakukan dengan menetapkan kebijakan dan standar
untuk setiap aktivitas yang berkaitan dengan fungsi sistem informasi.
Salah satu dalam isu organisasi adalah masalah struktur organisasi
pusat komputer perlu dievaluasi mengenai sentralisasi dan desentralisasi.
Banyak alasan yang diberikan atas masing-masing jenis struktur
organisasi. Seperti saat diberlakukannya sentralisasi beralasan lebih baik
pucuk pimpinan yang mengendalikan segala macam fungsi sistem
informasi. Sedangkan ketika diberlakukannya sistem desentralisasi
beralasan untuk peningkatan kapasitas organisasi untuk memanfaatkan
kesempatan yang ada di bidang sistem informasi dan mengurangi biaya
yang berhubungan dengan aktivitas sistem informasi. Ada beberapa hal
yang harus diperhatikan ketika memutuskan untuk melakukan sentralisasi
atau desentralisasi seperti:
a. Kontrol, yaitu tanggung jawab untuk pengambilan keputusan terhadap
fungsi sistem informasi dapat diberikan kepada satu orang atau banyak
orang.
b. Lokasi dari perangkat keras atau perangkat lunak itu ditempatkan pada
satu tempat atau tersebar di beberapa tempat.
c. Fungsi, dalam hal pengembangan sistem informasi, operasional dan
pemeliharaannya dapat dikerjakan oleh satu orang pada bagian tertentu
atau oleh orang yang banyak bagian pada organisasi
B. Pengendalian Manajemen Pengembangan Sistem (System Development
Management Controls)
Pengendalian ini diperlukan untuk mencegah dan mendeteksi
kemungkinan kesalahn saat waktu pengembangan dan pemeliharaan sistem,
serta untuk memperoleh keyakinan yang memadai bahwa sistem berbasis
teknologi informasi yang ada telah dikembangkan dan dipelihara dengan cara
yang efisien dan melalui proses sebagaimana mestinya. Auditor dapat
menggunakan tiga pendekatan dalam melihat pengendalian ini, yaitu:
1. Concurrent audit, dimana auditor berpartisipasi sebagai anggota tim
pengembang sistem dalam organisasi tersebut dan biasa dilakukan oleh
auditor internal.
2. Post implementation audit, ini dilakukan untuk mengevaluasi sistem yang
telah diimplementasikan dan biasa dilakukan oleh auditor internal.
3. General audit, melakukan evaluasi proses pengembangan sistem secara
umum dan tahap ini biasanya dilakukan oleh auditor eksternal.
Manajemen pengembangan sistem mencakup hal-hal yang terkait dengan
kebijakan mengenai metode analisis, desain, pengembangan, implementasi
dan pemeliharaan sistem informasi. Terdapat beberapa metodologi yang dapat
dipakai sebagai acuan dalam prosedur pengembangan sistem aplikasi.
Metodologi pengembangan sistem aplikasi terdiri dari berbagai macam
pendekatan seperti:
1. Systems development life-cycle approach (SDLC)
Merupakan metode pengembangan sistem aplikasi yang terdiri dari
beberapa tahap:
a. Feasibility study, dengan criteria cost benefit untuk mengusulkan
aplikasi.
b. Information analysis, menentukan keperluan user.
c. System design , mendesain user interface, file yang digunakan dan
fungsi proses informasi yang akan dilakukan oleh sistem.
d. Program development, seperti design, coding, compiling, testing, dan
dokumentasi program.
e. Procedures and form development, desain serta dokumentasi prosedur
sistem informasi dan formulir yang digunakan user pada sistem.
f. Acceptance test, tes terkahir terhadap sistem dan persetujuan formal
serta penerimaan oleh management dan user.
g. Conversion, mengkonversi atau mengubah dari sistem lama ke sistem
yang baru.
h. Operation and maintenance, penambahan sistem selama implementasi
atau penggunaan dan modifikasi yang dilakukan serta pemeliharaan
bila diketahui ada masalah.
2. Socio-technical design approach
3. Political approach
4. Soft-systems approach
5. Prototyping approach
6. Contingency approach
C. Pengendalian Manajemen Program (Programming Management
Controls)
Pembuatan dan pengembangan program merupakan tahap yang penting
dalam siklus hidup pengembangan sistem. Tahapan ini memiliki tujuan utama
untuk memperoleh dan menerapkan program yang berkualitas.
Beberapa karakteristik program yang berkualitas adalah :
1. Dapat berfungsi secara tepat dan lengkap
2. Memiliki user interface dengan kualitas yang tinggi
3. Dapat bekerja secara efisien
4. Dapat dirancang dan didokumentasikan dengan baik
5. Pelaksanaan pemeliharaan yang mudah
6. Dapat langsung menyesuaikan jika kondisinya dibawah batas normal
Apabila program memiliki karakteristik yang telah disebutkan di atas,
maka aktivitas pengembangan, penerimaan dan implementasi program dapat
dirancang/diatur dengan baik. Dalam pengembangan sistem, auditor dapat
memakai model siklus hidup untuk lebih memahami, merencanakan, dan
menyelesaikan tugas dalam rangka agar mendapatkan software dengan
kualitas baik. Selama menjalankan proses audit, model ini juga dapat
digunakan sebagai pedoman aktivitas dalam mengumpulkan dan
mengevaluasi fakta.
Ada 6 pedoman dalam pengembangan program yaitu, perencanaan,
pengendalian, perancangan, pengkodean, pengujian, pengoperasian and
pemeliharaan. Penjelasan dari program diatas adalah sebagai berikut:
1. Perencanaan (Planning)
Tugas manajemen yang utama dalam tahap ini adalah untuk
memperkirakan kebutuhan besarnya sumber daya (jam kerja pada
khususnya) yang diperlukan dalam pengembangan, pengadaan, dan
penerapan software. Jika, sebagai contoh, software di buat di rumah (in-
house), manajemen harus berusaha untuk memperkirakan berapa jumlah
baris kode (program) yang di ketik atau banyaknya fungsi yang di buat.
Jika suatu software akan dikembangkan dan diimplementasikan secara
in-house, manajemen harus memanfaatkan lima teknik perencanaan biaya
yang telah dibuat oleh Boehm (1984), yaitu model algoritma, penilaian
seorang ahli, analogi, perkiraan atas-bawah, dan perkiraan bawah-atas.
Penjelasan terkait teknik-teknik tersebut adalah sebagai berikut :
a. Algorithmic Models (model algoritma), model ini dapat
memperkirakan jumlah sumber daya yang dibutuhkan berdasarkan
faktor biaya. Misalnya, memperkirakan jumlah instruksi yang harus
ditulis, bahasa pemrograman yang akan digunakan, dan perubahan
pada permintaan kebutuhan. Dengan menggunakan model COCOMO
(Boehm’s (1981)).
b. Expert Judgment (penilaian seorang ahli), seorang ahli dapat
memperkirakan kebutuhan sumber daya yang diperlukan dalam proses
pembuatan program. Menurut penelitian Vicinanza et el’s (1991),
penilaian seorang ahli menghasilkan perkiraan yang lebih baik untuk
menentukan sumber daya apabila dibandingkan dengan model
algoritma.
c. Analogy (analogi), apabila proyek software yang sama pernah dibuat,
penentuan sumber daya yang dibutuhkan dapat ditentukan berdasarkan
pada pengalaman sebelumnya.
d. Top-Down Estimation (Perkiraan atas-bawah), proyek dipecah menjadi
beberapa pekerjaan, dan penentuan sumber daya yang dibutuhkan oleh
setiap pekerjaan tersebut baru dibuat.
e. Bottom-Up Estimation (Perkiraan bawah-atas), jika masing-masing
pekerjaan sudah dibuat terlebih dahulu, kebutuhan sumber daya untuk
masing-masing dapat diperkirakan dan dikumpulkan untuk keperluan
seluruh kebutuhan proyek. Selain memperkirakan kebutuhan sumber
daya, manajemen juga perlu memutuskan tujuan dari keputusan
penting yang dibuat selama fase perencanaan seperti :
2. Pengendalian (Control)
Pada tahap pengendalian, terdapat dua tujuan utama yaitu :
a. Untuk memonitor kemajuan dan tahap-tahap pada siklus hidup
software agar sesuai dengan rencana awal yang telah dibuat.
b. Mengontrol tugas pengembangan, pengadaan dan implementasi
software, agar software dapat di produksi secara autentik, akurat dan
lengkap.
Untuk memonitor agar pengendalian sesuai dengan rencana awal,
beberapa teknik dapat digunakan seperti :
a. Work Breakdown Structures (WBS), dengan teknik ini kita dapat
mengidentifikasi tugastugas yang spesifik untuk pengembangan,
pengadaan, dan implementasi software yang dibutuhkan. ([Link]
and Smith 1996).
b. Gantt Chart , teknik ini akan menunjukan kapan tugas harus dimulai
dan diselesaikan, tugas apa yang harus dibuat bersama-sama, dan tugas
apa yang harus dihasilkan secara serial.
c. Program Evaluation and review technique (PERT), teknik ini dapat
menunjukan tugas-tugas yang harus diselesaikan, bagaimana
hubungannya, kebutuhan sumber daya apa untuk setiap pekerjaan.
Pada tahap ini, seorang auditor juga harus mempunyai dua perhatian
khusus terhadap kendali, yaitu :
a. Auditor harus bisa mengevaluasi apakah fungsi dari aktivitas
pengendalian dapat diterapkan juga pada software yang berbeda.
b. Seorang auditor harus dapat mengumpulkan bukti apakah prosedur
dari suatu pengendalian sudah dijalankan dengan benar dan bisa
dipercaya.
3. Perancangan (Design)
Dalam tahap perancangan, seorang programmer bertanggung jawab
untuk menspesifikasikan struktur dan operasi dari program untuk
menemukan artikulasi yang dibutuhkan selama proses informasi sistem
dari desain sampai pengembangan sistem. Dalam tahap ini, perhatian
utama seorang auditor difokuskan untuk menentukan apakah programmer
memakai suatu tipe khusus dari pendekatan sistematik untuk suatu
rancangan. Auditor harus mengubah keinginannya berdasarkan beberapa
faktor seperti ukuran dan bahan dari suatu program.
Seorang auditor bisa mendapatkan bukti dari proses desain dengan
melakukan interview, observasi, dan review dari dokumentasi. Mereka
dapat berkomunikasi dengan programmer, apakah mereka dapat
memahami tentang kebutuhan dengan menggunakan pendekatan yang
sistematik untuk rancangan tersebut, jika iya, bagaimana cara untuk
menggunakannya. Auditor juga bisa mengamati apakah programmer
menggunakan pendekatan sistematik dalam merancang suatu program.
Mereka bisa meninjau dokumentasi program, apakah memiliki struktur
chart sebagai bukti programmer menggunakan pendekatan yang sistematik
dalam proses merancang program.
4. Pengkodean (Coding)
Tahap koding (penulisan program) dilakukan pada saat software akan
dibuat atau dimodifikasi. Selama tahap ini, programmer akan menulis dan
mendokumentasikan source code (program sumber) dalam bahasa
pemrograman untuk mengimplementasikan rancangan program. Ada tiga
strategi utama dari implementasi modul dan integras, yaitu:
a. Top-Down, strategi ini dapat dipakai jika modul level atas (high-level
modules) dibuat (coding) lalu dites dan diintegrasikan sebelum modul
level bawah (low-level modules). Strategi ini memiliki keuntungan
yaitu kesalahan pada modul level atas dapat teridentifikasi lebih awal,
namun strategi ini memiliki kerugiann yaitu pada saat uji coba,
program akan menemui kesulitan saat modul level bawah menemukan
kesalahan fungsi input-output yang sangat sulit.
b. Bottom up, strategi ini dapat dipakai jika modul level bawah dibuat
(coding) lalu dites dan diintegrasikan sebelum modul level atas di buat.
Strategi ini memiliki keuntungan yaitu modul level rendah yang
merupakan operasi yang paling sulit di implementasikan dan dites
terlebih dahulu, namun strategi ini memiliki kerugian yaitu sangat sulit
untuk di teliti seluruh operasinya, sebelum programnya selesai dibuat.
c. Threads (rangkaian / untaian), strategi ini dipakai jika sudah ada
keputusan terlebih dahulu untuk fungsi program yang akan dibuat
kemudian modul pendukungnya baru dibuat dan kemudian
diimplementasikan untuk menghasilkan fungsi yang penting. Strategi
ini memiliki keuntungan yaitu fungsi yang paling penting
diimplementasikan terlebih dahulu,namun strategi ini juga memiliki
kerugian, yaitu integrasi dari modul yang berikutnya mungkin dapat
lebih sulit apabila dibandingkan dengan pendekatan top-down atau
bottom-up. Auditor perlu mencari bukti yang benar dengan cara uji
coba oleh manajemen program dalam memilih strategi implementasi
modul dan integrasi. Untuk program yang besar, penggunaan strategi
yang kurang bagus dapat mengakibatkan program yang dihasilkan
menjadi kurang berkualitas. Auditor dapat melakukan wawancara
untuk menguji apakah manajemen menggunakan pendekatan
sistematik untuk memilih strategi implementasi modul dan integrasi.
Strategi Coding menurut konvensi (kesepakatan) program terstruktur,
terdapat tiga dasar struktur utama, yaitu :
a. Urutan sederhana (simple sequence - SEQUENCE)
b. Pemilihan dengan seleksi (selection based on a test – IF-THEN-ELSE)
dan
c. Pengulangan kondisi (conditional repetition-DO WHILE)
Apabila konvensi pemrograman terstruktur sudah terpenuhi, maka
dapat dipastikan bahwa para programmer akan membuat source-code yang
tingkat kesalahannya kecil, mudah dipahami dan mudah untuk dipelihara.
Auditor dapat mencari bukti untuk memastikan apakah manajemen
programming terjamun telah dibuat oleh programmer mengikuti struktur
programming yang telah di sepakati. Mereka dapat melakukan wawancara
dengan manager atau programmer tentang tugas dan cara yang
dilakukannya dalam membuat program.
Auditor juga dapat memastikan apakah programmer dalam membuat
programnya menyediakan fasilitas otomatis sebagai alat bantu untuk
mereka. Beberapa tipe penggunaan fasilitas koding otomatis anatara lain
a. Shorthand preprocessor, yang memungkinkan programmer untuk
menulis kode secara singkat, serta dapat menerjemahkan kode singkat
ini dalam sintak yang lebih lengkap, contohnya COBOL.
b. Decision-table preprocessor, memindahkan bentuk teks program ke
bentuk source-code menggunakan bahasa pengolahan compiler.
c. Copy facility, memungkinkan penggunaan kode secara berulang-ulang.
d. Editor, yang memungkinkan kode di ciptakan, di format, dan
dimodifikasi secara mudah.
e. User-interface management system, memungkinkan desain dari
implementasi yang cepat,seperti windows, icons, menus, dan dialog
boxes.
f. CASE tools, berisi bermacam-macam fasilitas yang dapat membantu
proses koding.
Strategi Dokumentasi Pedoman untuk menghasilkan dokumentasi yang
berkualiatas adalah :
a. Sediakan petunjuk yang proses pembuatan program ke dalam beberapa
tahapan dan komponen secara keseluruhan dan hubungan antara
komponen-komponen tersebut.
b. Gunakan baris komentar dalam program secara bebas untuk
menjelaskan jalannya (logika) program.
c. Beri nama untuk variabel, konstanta tipe, paragraf, modul, dan seksi
yang mudah dimengerti kepada para pembaca source-code program.
d. Buat layout dari source-program sehingga mudah untuk dibaca.
e. Kelompokan tipe kode yang saling terkait.
5. Pengujian (Testing)
Tahap ini merupakan tahap validasi program. Pengujian memastikan
bahwa program melakukan tugasnya dengan benar. Pengujian program
dan debugging program terkait erat. Pengujian pada dasarnya merupakan
tahap selanjutnya dari debugging di mana program divalidasi dengan
menguji coba pada serangkaian kasus yang sesuai.
Akan tetapi, pengujian program lebih dari sekadar menjalankan
program beberapa kali. Ada metode validasi formal, tetapi hanya berlaku
untuk program yang sangat sederhana. Dengan demikian, pengujian
program membutuhkan pilihan kasus uji.
Aturan yang dapat membantu dalam pengujian program adalah sebagai
berikut:
a. Jadikan rencana uji sebagai bagian dari desain program.
b. Periksa semua kasus yang sepele dan khusus.
c. Pilih data uji secara acak.
d. Rencanakan dan dokumentasikan pengujian perangkat lunak seperti
halnya pengujian perangkat keras.
e. Gunakan nilai maksimum dan minimum dari semua variabel sebagai
data uji.
f. Gunakan metode statistik dalam merencanakan dan mengevaluasi
tugas-tugas kompleks.
Ada dua tujuan dalam mempersiapkan rencana pengujian. Pertama,
rencana pengujian terperinci yang tepat menunjukkan bahwa spesifikasi
program dipahami sepenuhnya. Kedua, rencana pengujian digunakan
selama pengujian program untuk membuktikan kebenaran program.
6. Pengoperasian dan pemeliharaan
Jika dilihat dari sudut pandang sistem audit, perhatian utama pada
operasional program adalah bagaimana kinerja program tersebut dapat
dipantau setiap saat. Perlu seseorang yang bertanggung jawab untuk
mengidentifikasi apabila program perlu pemeliharaan, lalu terdapat
kemungkinan lain seperti identifikasi dari kebutuhan perawatan mungkin
tidak terjadi. Untuk itu bisa terjadi kekeliruan pada database program,
kegagalan dalam pencapaian keinginan pengguna, atau operasi program
menjadi tidak efisien. Mekanisme formal dalam monitoring status
operasional program sangat diperlukan, ketika pengguna program
merupakan seluruh anggota organisasi yang terdiri dari berbagai macam
latar belakang. Ada 3 macam tipe dari pemeliharaan (maintenance) yang
diperlukan agar program tetap beroperasi, yaitu:
a. Repair-maintenance-errors, pemeliharaan dengan cara memperbaiki
kesalahan.
b. Adaptive maintenance-users needs, pemeliharaan dengan cara
mengadaptasi pada keinginan pengguna.
c. Perfective maintenance, pemeliharaan dengan maksud agar
mendapatkan program yang sempurna.
Perhatian utama seorang auditor pada fase operation & maintenance
memastikan bahwa fase ini dapat berjalan dengan efektif dan pelaporan
secara berkala dapat dilakukan, serta proses pemeliharaan dapat dipantau
dengan baik. Auditor harus bisa mencari bukti bahwa manajemen telah
meninjau sistem dengan baik dan bertanggung jawab didalam monitoring
status dari operasional program. Auditor dapat melakukan wawancara,
observasi, tinjauan pada dokumen yang menunjukkan bahwa sistem telah
beroperasi dengan baik. Setelah itu, mereka harus fokus pada kualitas dari
kontrol proses pemeliharaan tersebut.
Menyusun Tim Programming
Seorang programmer memiliki cara dalam menangani pekerjaan mereka,
dimana hal tersebut sangat berpengaruh pada kualitas software yang mereka buat.
Para programmer bisa disusun sebagai satu kesatuan tim. Mereka bekerja sama
dalam periode waktu tertentu untuk menyelesaikan suatu proyek, dimana
keputusannya dibicarakan antar sesama anggotanya. Hal ini sangat bermanfaat
bila proyek yang ditangani sangat rumit dan tidak jelas. Ada struktur tim yang
digunakan untuk mengorganisasikan para programmer, yaitu Chief Programmer
Teams, Adaptives Teams dan Controlled-Decentralized Teams. Penjelasan
mengenai struktur tim tersebut :
1. Chief Programmer Team
Dalam struktur ini, tim dirancang untuk mengurangi kebutuhan proses
informasi antara anggota tim untuk meningkatkan kapasitas dari proses
informasi. Setiap anggota memiliki tugas yang berbeda, yang akan diuraikan
di bawah ini:
a. Chief Programmer
1) Bertanggung jawab dalam merancang, coding, dan mampu
mengintegrasikan bagian yang penting dalam sistem
2) Dapat memberikan perintah kerja pada bagian back-up dan support
programmers.
3) Bertanggung jawab penuh pada sistem dimana tim bekerja
4) Seorang chief programmer harus merupakan seorang yang ahli dan
sangat produktif
b. Programmmmer
1) Merupakan programmer senior yang bertanggung jawab dalam
memberikan dukungan penuh kepada chief programmer
2) Merupakan orang yang mampu mengambil alih tugas chief
programmer kapan pun dibutuhkan.
c. Support Programmer
1) Posisi ini dibutuhkan saat proyek besar yang tidak bisa dikerjakan
oleh chief programmer dan diback-up oleh programmer saja
2) Mampu memberikan dukungan penuh
3) Bekerja dalam pembuatan coding dan uji coba modul tingkat rendah
(tesing lower-level)
d. Librarian
1) Bertanggung jawab dalam pemeliharaan program production library
2) Menyediakan input dan mengumpulkan output untuk para
programmer, file output dari hasil kompilasi dan uji coba
3) Mampu mempertahankan agar source-code dan object-code library
tetap up to date.
2. Adaptive Team
Pada struktur tim ini, dirancang untuk melayani dua kebutuhan utama,
antara lain:
a. Meningkatkan kualitas program
b. Memenuhi kebutuhan sosial/psikologi dari setiap anggota programmer
dalam team
Terdapat beberapa perbedaan struktur adaptive teams dengan struktur chief
programmer teams. Perbedaan tersebut antara lain :
a. Adaptive tim tidak memiliki tingkat otoritas, dimana kepemimpinan dalam
tim ada di tangan para anggotanya
b. Dalam adaptive tim, pekerjaan diberikan kepada anggota dari tim daripada
ditentukan melalui posisi anggota
c. Adaptive tim tidak memiliki librarian (penyedia data) dalam
mengkoordinasikan fungsi tim
3. Controlled Decentralized Teams
Pada struktur ini, terdapat beberapa spesialisasi tugas untuk setiap anggota
yang terdapat di dalam tim, yaitu:
a. Junior Programmer, melakukan pelaporan hasil program pada senior
programmer
b. Senior Programmer, melaporkan hasil laporan yang sudah diserahkan oleh
junior programmer kepada project leader
c. Project Leader, menerima hasil laporan dan melakukan evaluasi terhadap
hasil laporan yang di terima
Struktur ini memiliki keuntungan, yaitu dapat memecahkan masalah yang
kompleks, dimana struktur ini akan memfasillitasi pemecahan masalah, namun
struktur ini memiliki kerugian, dimana strukur ini tidak bisa bekerja dengan
baik apabila tugas dari programmer tersebut tidak bisa dibagi-bagi, dan
dengan waktu deadline yang sangat ketat.
Pengelolaan Kelompok Sistem Programming
Para programmer sering diklasifikasikan berdasarkan aplikasi programmer
atau sistem programmer. Dahulu, programmer membangun dan merawat program
untuk system aplikasinya, tetapi saat ini programmer membangun dan merawat
sistem software, seperti sistem operasi, sistem manajemen database, dan
komunikasi software.
a. Mengontrol Masalah
Mengontrol sistem programmer adalah tugas yang berat, biasanya
mereka mempunyai keahlian yang tinggi dan sering bekerja secara
individu atau berada didalam grup yang kecil. Dengan menerapkan kontrol
secara tradisional pada aktivitas mereka seperti pemisahan tugas, hal
tersebut sangatlah sulit dan mereka biasanya bekerja pada situasi yang
kritis.
b. Mengukur Sistem Kontrol
Meskipun sulit unuk memantau sistem programmer, beberapa hal ini
dapat diimplementasikan, seperti:
1. Pekerjakan staf sistem programming yang mempunyai kualitas yang
tinggi.
2. Pisahkan tugas seluas mungkin, misalnya tanggung jawab untuk desain
dan coding sistem program dipisah dari tanggung jawab untuk uji coba
program.
3. Mengembangkan dan membuat dokumen yang berisi standar kinerja
4. Batasi wewenang sistem programmer, jadi seorang programmer hanya
bekerja sesuai dengan aplikasi yang dikuasainya.
5. Jauhkan prosedur petunjuk manual dan kunci mesin dari aktivitas
sistem programmer. Hal ini dimaksudkan untuk mencegah munculnya
aktivitas yang tidak diinginkan / sesuai dengan tugasnya.
6. Pekerjakan konsulan dari luar untuk mengevaluasi pekerjaan
programming.
7. Perintahkan programmer aplikasi untuk mengevaluasi pekerjaan sistem
programmer secara berkala agar dapat dihasilkan program yang
berkualitas.
DAFTAR PUSTAKA
Gondodiyoto, S. 2007. Audit Sistem Informasi + Pendekatan CobIT.
Jakarta: Mitra Wacana Media.
Ron Weber (2007). Information Systems Control and Audit. Prentice-Hall,
USA