Night Diamond Bloody Red

Wednesday, December 12, 2018

ANALISIS KINERJA SISTEM - MANAJEMEN KONTROL PROGRAMMING - Struktur Team Yang Digunakan Untuk Mengorganisasikan Para Programmer, dan Tugas Masing-Masing Anggota Team.


Nama : Irfan Nur Rakhman
NPM : 13115431
Kelas : 4KA07


MANAJEMEN KONTROL PROGRAMMING
Struktur Team Yang Digunakan Untuk Mengorganisasikan Para Programmer, dan Tugas Masing-Masing Anggota Team.

Terdapat 3 struktur team yang digunakan untuk mengorganisasikan para programmer:
1. Chief Programmer Teams
2. Adaptives Teams dan
3. Controlled-Decentralized Teams

Ketua Tim Programmer (Chief Programmer Team).
Fungsi dan Cirinya :
Chief Programmer :
· Bertanggung jawab secara total/penuh untuk sistem dimana team bekerja
· Harus seorang ahli
· Seorang programmer yang sangat produktif
· Bertanggungjawab dalam mendesain, coding, dan mengintegrasikan bagian yang
kritis dalam sistem
· Memberikan perintah kerja pada bagian back-up dan support programmers.
Back-up Programmers :
· Seorang programmer senior yang bertanggungjawab dalam memberikan dukungan
penuh pada chief programmer
· Harus bisa mengambil alih tugas chief programmer setiap saat
Support Programmers:
· Diperlukan pada saat proyek besar yang tidak bisa dikerjakan oleh chief programmer
dan back-up programmer saja.
· Menyediakan dukungan
· Bekerja dalam pembuatan coding dan uji coba modul tingkat rendah ( testing lowerlevel)
Librarian (penyedia data) :
· Bertanggungjawab dalam perawatan program production library.
· Menyediakan input dan mengumpulkan keluaran untuk para programmer, file
output dari hasil kompilasi dan ujicoba, mempertahankan agar source code dan
object-code library tetap up to date.
Sruktur “ The Chief Programmer team “ ini di desain untuk mengurangi kebutuhan
proses informasi antara anggota team dan untuk meningkatkan kapasitas dari proses
informasi.

Penyesuaian Tim (Adaptives Teams).
Struktur ini diperuntukan untuk melayani 2 kebutuhan, yaitu:
1. Keinginan organisasi untuk meningkatkan kualitas program
2. Memenuhi kebutuhan sosial/ psikologi dari setiap anggota programmer dalam team.
Perbedaan dari struktur ini dengan struktur sebelumnya adalah:
· Adaptive team tidak punya tigkat otoritas, dimana kepemimpinan dalam team ada
di tangan para anggota.
· Dalam Adaptive team, tugas diberikan pada anggota dari team daripada ditentukan
lewat posisi.
· Adaptive team tidak mempunyai aturan formal librarian (penyedia data)
dalam mengkoordinasikan fungsi team.

Desentraliasi Pengendalian Tim (Controlled-Decentralized Teams)
Struktur ini mempunyai junior programmer yang akan melaporkan hasil program pada
senior programmer, kemudian oleh senior programmer dilaporkan juga pada ketua proyek.
Dengan struktur ini, manfaat/keuntungan dari struktur sebelumnya akan didapatkan.
Keuntungannya : dapat memecahkan masalah yang kompleks, dimana struktur dari grup
ini akan memfasillitasi pemecahan masalah.
Kerugian : strukur ini tidak bisa bekerja dengan baik apabila tugas dari programmer
tersebut tidak bisa di bagi-bagi, dan dengan waktu deadline yang sangat
ketat.

Pengelolaan Kelompok Sistem Programming
Para programmer sering diklasifikasikan menurut aplikasi programmer atau sistem
programmer. Dahulu, programmer membangun dan merawat program untuk system
aplikasinya. Tetapi kini, membangun dan merawat sistem software. Seperti sistem operasi,
sistem manajemen database, dan komunikasi software.

Mengontrol Masalah
Mengontrol sistem programmer adalah tugas yang berat, mereka biasanya memiliki
keahlian yang tinggi dan sering bekerja sendiri atau ada di dalam grup yang kecil. Dengan
menerapkan kontrol secara tradisional pada aktivitas mereka seperti pemisahan tugas,
sangatlah sulit. Mereka biasanya bekerja pada situasi yang kritis.

Mengukur Sistem Kontrol
Meskipun sulit unuk mengontrol sistem programmer, beberapa hal ini dapat di
implementasikan untuk mengontrolnya:
1. Pekerjakan staf sistem programming yang mempunyai kualitas yang tinggi.
2. Pisahkan tugas seluas mungkin, contohnya tanggung jawab untuk desain dan coding
sistem program dipisah dari tanggung jawab untuk uji coba program.
3. Buat metode dokumen standar
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 agar aktivitas yang tidak diinginkan / sesuai dengan tugasnya tidak
terjadi.
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.


ANALISIS KINERJA SISTEM - MANAJEMEN KONTROL PROGRAMMING - 5 Tahapan Pengembangan Program dan Keterlibatan Auditor pada Masing-Masing Tahap



Nama : Irfan Nur Rakhman
NPM : 13115431
Kelas : 4KA07


MANAJEMEN KONTROL PROGRAMMING
5 tahapan pengembangan program dan keterlibatan auditor pada masing-masing tahap

1. Perencanaan (Planning)

Tugas utama dari manajemen dalam tahap ini adalah untuk memperkirakan kebutuhan
besarnya sumber daya (khususnya jam kerja) yang dibutuhkan dalam pengembangan,
pengadaan, dan penerapan software. Jika, sebagai contoh, s/w 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. Auditor bertugas untuk membuat rencana terbaik  dalam pembuatan software.

2. Pengendalian (Control)

Pada tahap kontrol ini, ada dua tujuan utama yaitu :
1. Untuk memonitor kemajuan dan beberapa tahap pada siklus hidup s/w agar tidak
bertentangan dengan rencana awal.
2. Mengontrol tugas pengembangan, pengadaan dan implementasi s/w, agar s/w dapat di
produksi secara autentik, akurat dan lengkap.
Seorang auditor harus mempunyai dua perhatian khusus pada kendali, pada tahap kontrol ini
yaitu:
1. Auditor harus dapat mengevaluasi apakah fungsi dari aktivitas kontrol dapat diterapkan
juga pada software yang berbeda.
2. Seorang auditor harus dapat mengumpulkan bukti apakah prosedur dari suatu kontrol
sudah dijalankan dengan benar dan dapat dipercaya.

3. Perancangan (Design)

Dalam tahap desain, seorang programmer bertugas untuk menspesifikasikan struktur dan
operasi dari program untuk menemukan artikulasi yang dibutuhkan selama tahap proses
informasi sistem desain dari pengembangan sistem.
Selama tahap ini, perhatian utama seorang auditor adalah untuk menentukan apakah
programmer menggunakan suatu tipe khusus dari pendekatan sistematik untuk desain.
Auditor harus mengubah keinginannya berdasarkan beberapa faktor seperti ukuran dan bahan
dari suatu program.
Seorang auditor juga dapat memperoleh 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 desain, jika ya, bagaimana menggunakannya.
Auditor juga dapat mengamati apakah programmer menggunakan pendekatan sistematik
untuk mendesain program.
Mereka juga dapat meninjau dokumentasi program, apakah memiliki struktur chart sebagai
bukti programmer menggunakan pendekatan yang sistematik untuk mendesain.

4. Pengkodean (Coding)

Tahap koding (pengetikan / penulisan program) dilakukan pada saat s/w akan dibuat atau
dimodifikasi. Selama tahap ini, programmer akan menulis dan mendokumentasikan source
code (program sumber) dalam bahasa pemrograman untuk mengimplementasikan desain
program.
Auditor perlu mencari bukti yang benar dengan cara uji coba oleh manajemen program dalam
memilih strategi implementasi modul dan integrasi. Khususnya pada program yang besar,
penggunaan strategi yang salah (jelek) 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. Mereka juga
dapat menguji dokumentasi program untuk memperoleh bukti tipe strategi yang telah di
adopsi (di pilih).
Strategi Coding
Menurut konvensi (kesepakatan) program terstruktur, terdapat tiga dasar struktur utama
dalam struktur kontrol yaitu (lihat gbr.5.5) :
1. Urutan sederhana (simple sequence - SEQUENCE)
2. Pemilihan dengan seleksi (selection based on a test – IF-THEN-ELSE) dan
3. Pengulangan kondisi (conditional repetition-DO WHILE)
Jika konvensi pemrograman terstruktur di penuhi, dapat dipastikan bahwa para programmer
akan membuat source-code yang tingkat kesalahannya kecil, mudah untuk dimengerti dan
mudah untuk dirawat.
Auditor dapat mencari bukti untuk memastikan apakah manajemen programming di jamin di
buat 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 mengecek apakah programmer dalam membuat programnya menyediakan
fasilitas otomatis sebagai alat bantu untuk mereka. Beberapa tipe penggunaan fasilitas koding
otomatis anatara lain :
· Shorthand preprocessor, memungkinkan programmer untuk menulis kode secara singkat,
jugadapat menerjemahkan kode singkat ini dalam sintak yang lebih lengkap, contoh
COBOL.
· Decision-table preprocessor, memindahkan bentuk teks program ke dalam bentuk sourcecodemenggunakan
bahasa pengolahan compiler.
· Copy facility, memungkinkan penggunaan kode secara berulang
· Editor, yang memungkinkan kode di ciptakan, di format, dan dimodifikasi secara mudah.
· User-interface management system, memungkinkan desain dari implementasi yang
cepat,seperti windows, icons, menus, dan dialog boxes.
· CASE tools, berisi bermacam-macam fasilitas yang dapat membantu proses koding.

5. Pengetesan (Testing)

Software testing adalah aktivitas-aktivitas yang bertujuan untuk mengevaluasi atribut-atribut atau kemampuan sebuah program atau sistem dan penentuan apakah sesuai dengan hasil yang diharapkan. Testing adalah proses pemeriksaan program dengan tujuan tertentu dalam menemukan kesalahan sebelum diserahkan ke pengguna.
Verification: Apakah kita membangun produk dengan benar, Software seharusnya sesuai dengan spesifikasinya. Gunakan proses software yang bagus. Validation: “Apakah kita membangun produk yang benar, Software seharusnya melakukan apa yang pengguna benar-benar butuhkan.
Tahapan Testing
Terdapat cukup banyak pendekatan yang dilakukan untuk melakukan testing. Salah satu definisi testing adalah “sebuah proses yang melakukan pertanyaan terhadap sebuah produk untuk dinilai”, di mana “pertanyaan” merupakan segala sesuatu yang diberikan kepada produk sebagai pengujian.
Beberapa tahapan testing yang umum dilalui oleh aplikasi adalah sebagai berikut:
Unit/ComponentTesting.
Terbagi atas testing terhadap unit dan component. Unit testing merupakan proses testing, di mana Anda melakukan testing pada bagian basic dari kode program. Contohnya adalah memeriksa kode program pada event, procedure, dan function. Unit Testing meyakinkan bahwa masing-masing unit tersebut berjalan sebagaimana mestinya.Pada Unit Testing, Anda memeriksa bagian kode program secara terpisah dari bagian yang lain. Anda dapat langsung melakukan Unit Testing setiap kali sebuah kode unit (event, procedure, function) selesai dibuat. Anda dapat memeriksa kode unit dengan menjalankannya baris per baris untuk memastikan bahwa proses yang dilakukan berjalan sebagaimana yangAndainginkan.

IntegrationTesting.
Setelah Anda melakukan Unit/Component Testing, langkah berikutnya adalah memeriksa bagaimana unit-unit tersebut bekerja sebagai suatu kombinasi, bukan lagi sebagai suatu unit yang individual. Sebagai contoh, Anda memiliki sebuah proses yang dikerjakan oleh dua function, di mana satu function menggunakan hasil output dari function yang lainnya. Kedua function ini telah berjalan dengan baik secara individu pada Unit Testing. Pada tahap Integration Testing, Anda memeriksa hasil dari interaksi kedua function tersebut, apakah bekerja sesuai dengan hasil yang diharapkan. Anda juga harus memastikan bahwa seluruh kondisi yang mungkin terjadi dari hasil interaksi antarunit tersebut menghasilkanoutputyangdiharapkan.

SystemTesting.
Mencakup testing aplikasi yang telah selesai didevelop. Karena itu, aplikasi harus terlihat dan berfungsi sebagaimana mestinya terhadap end-user atau pengguna akhir. Untuk itu, testing dilakukan dengan menggunakan data yang menggambarkan data yang digunakan oleh pengguna sesungguhnya terhadap aplikasi. Jika aplikasi Anda di-develop untuk lingkungan yang besar,
Anda dapat melakukan testing pada dua komputer yang berbeda. Komputer yang Anda gunakan sebagai komputer testing harus terlebih dahulu dikonfigurasi hanya dengan:
a. Operating system yang dibutuhkan.
b. Driver yang diperlukan oleh aplikasi.
c. Aplikasi yang dites.
Dengan menggunakan konfi gurasi yang paling minimal dan sederhana, maka dapat membantu Anda untuk memastikan bahwa permasalahan yang timbul selama testing berlangsung adalah merupakan kesalahan aplikasi, dan bukan kesalahan yang berasal dari aplikasi atau software lain.

AcceptanceTesting.
Seperti Integration Testing, Acceptance Testing juga meliputi testing keseluruhan aplikasi. Perbedaannya terletak pada siapa yang melakukan testing. Pada tahap ini, end-user yang terpilih melakukan testing terhadap fungsi-fungsi aplikasi dan melaporkan permasalahan yang ditemukan. Testing yang dilakukan merupakan simulasi penggunaan nyata dari aplikasi pada lingkungan yang sebenarnya. Proses ini merupakan salah satu tahap final sebelum pengguna menyetujui dan menerima penerapan sistem aplikasi yang baru. Karena itu pada tahap ini sudah tidak difokuskan untuk mengangkat permasalahan kecil seperti kesalahan pengetikan, ataupun kosmetik aplikasi. Hal-hal minor seperti di atas sudah seharusnya ditangani selama Unit/Component Testing dan Integration Testing.

RegressionTesting.
Merupakan bagian penting dari masing-masing tahap proses testing. Regression Testing mencakup pengujian ulang terhadap unit, component, proses, atau keseluruhan aplikasi setelah perbaikan suatu kesalahan dilakukan.Regression Testing memastikan permasalahan yang terjadi telah ditanggulangi, dan tidak terdapat permasalahan baru yang timbul sebagai efek perbaikan tersebut. Selain itu, tahap ini tidak hanya berguna untuk melakukan pengujian aplikasi, tetapi dapat juga digunakan untuk melakukan pemantauan kualitas dari output yang dihasilkan. Sebagai contoh, Regression Testing memantau ukuran file, waktu yang dibutuhkan untuk melakukan suatu tes, waktu yang dibutuhkan untuk melakukan kompilasi,dan lain sebagainya.
Auditor bertugas melakukan segala percobaan dan test sebelum software dibuat seutuhnya.

6. Pengoperasian dan Pemeliharaan (Operation and Maintenance)

Dalam sudut pandang Sistem Audit, perhatian utama pada operasional program
adalah bagaimana performance program tersebut dapat dimonitor setiap saat.
Seseorang harus bertanggung jawab untuk mengidentifikasi apabila program perlu
perawatan, kemungkinan lain adalah identifikasi dari kebutuhan perawatan mungkin
tidak terjadi. Akibatnya, bisa terjadi kekeliruan pada database program, kegagalan dalam
pencapaian keinginan user, atau operasi program tidak efisien.
Mekanisme formal dalam monitoring status operasional program sangat diperlukan,
ketika pengguna dari program adalah seluruh anggota organisasi yang terdiri dari berbagai
macam latar belakang.
Ada 3 macam tipe dari perawatan (maintenance) yang diperlukan agar program tetap
beroperasi:
1. Repair-maintenance-errors, perawatan dengan cara memperbaiki kesalahan.
2. Adaptive maintenance-users needs, perawatan dengan mengadaptasi pada keinginan
user.
3. Perfective maintenance, perawatan dengan maksud agar diperoleh program yang
sempurna.
Perhatian utama seorang auditor pada fase operation & maintenance adalah untuk
memastikan bahwa fase ini berjalan dengan efektif dan pelaporan secara berkala dapat
dilakukan, serta proses perawatan bisa di kontrol dengan baik.
Auditor harus bisa mencari bukti bawa manajemen telah meninjau sistem dengan
baik dan bertanggungjawab didalam monitoring status dari operasional program.
Caranya dengan melakukan interview (wawancara), observasi, tinjauan pada dokumen
yang menunjukkan bahwa sistem telah beroperasi dengan baik. Selanjutnya mereka harus
fokus pada kualitas dari kontrol proses maintenance.