Selasa, 08 Mei 2012

Mengapa belajar informatika?

Kemaren pagi dan (malam) saya men-tweet tentang beberapa permasalahan yang "menggalaukan" saya sebagai seorang dosen kelimuan informatika. Kegalauan ini dikarenakan dari hasil pengamatan saya di beberapa universitas tempat saya mengajar, adanya suatu gejala dimana para mahasiswa yang belajar ilmu komputer/informatika, makin tidak bisa melakukan analisis dan disain terkait software development. Tulisan ini kemudian saya buat untuk mengingatkan kita, mengapa belajar programming languages?

Belajar programming languages pada level sarjana S1 (undergraduate) sebenarnya bukan sekedar menjadi "tukang ketik", "tukang sambung kabel" ataupun menjadi "programmer" biasa. Salah satu kompetensi yang diharapkan dimiliki oleh undergraduate students, terkait software engineering sebenarnya adalah mampu melakukan proses analisis dan disain untuk menyelesaikan masalah dan mengembangkan keilmuan. Kompetensi ini DIMULAI dengan membangun kerangka konsep berpikir yang terkait teori dan konteks bahasa pemrograman. Jadi bukan sekedar langsung melakukan coding.

Terkait hal ini saya mentweet:
With studying the programming-language concepts, we can: 
1) increased capacity to express ideas
2) Improved background for choosing appropriate language;
3) Increased ability to learn new languages
4) Better understanding of the significance of implementation
5) Increased ability to design new language 
6) Overall advancement of computing 

Kemudian saya lanjutkan dengan mentweet hal hal berikut ini:
1) scra umum, dpt saya ungkapkan mengapa prodi teknik informatika cenderung hny meluluskan kualitas setingkat "tempat kursus komputer?
2) Krn prodi2 teknik informatika d @provsulut TIDAK memiliki mata kuliah sprti "Concepts of Programming Language"
3) Mahasiswa2 *cenderung* hny lsg diperkenalkan pada "how to" syntax dan semantics C/C++, Java atau MySQL, bukan "why"
4) Tanpa diberikan pemahaman konsep dan konteks programming language; termasuk sejarah dan asal syntax & semantics language tsb
5) Akibatny adlh mahasiswa2 prodi teknik informatika, hny dididik utk menjadi "tukang bangunan" "tukang-sambung-kabel" "tukang-servis"
6) Mnrt saya, kapasitas lulusan perguruan tinggi yg hny menghasilkan lulusan level "tukang2", tak ubahnya dgn Tempat Kursus Komputer / SMK
7) Kompetensi Inti seorang sarjana sbnrnya adalah kemampuan utk menganalisis masalah, mendisain solusi dan implementasi solusi dlm "real-world"
8) Disamping turut mengembangkan ilmu, dgn melakukan riset-berkelanjutan terkait isu2 terkini demi kemaslahatan umat manusia

Banyak yang memberi tanggapan via REPLY terkait tweet saya ini, bahkan hingga menjelang pagi pun, masih ada akun yang memberi tanggapan. Saya yakin dengan banyaknya tanggapan yang diberikan, menunjukkan adanya "kekuatiran" yang sama, yang dirasakan oleh berbagai lapisan masyarakat, terkait dengan tren makin menurunnya kompetensi seorang sarjana teknik informatika.

Senin, 07 Mei 2012

Audit Aplikasi


Berikut ini saya paparkan sebuah contoh tentang Laporan Dokumen Audit Aplikasi.

AUDIT SISTEM APLIKASI
1. Tujuan Audit Sistem Aplikasi
Audit Sistem Aplikasi pada Seksi Pelayanan Penilaian KPKNL Manado bertujuan untuk:
a. Untuk memastikan pengendalian input (input controls) yg ada pada sistem aplikasi telah berjalan dgn baik.
b. Untuk memastikan validasi dan authorisasi terhadap dokumen sumber.
c. Untuk memastikan entry data dilakukan dengan benar dan sesuai dengan dokumen sumber.
2. Objek  Audit
Sistem Aplikasi pada Seksi Pelayanan Penilaian KPKNL Manado.
3. Kriteria atau Pembanding
Pengendalian Input (input controls) seharusnya memiliki:
a. Source document controls.
b. Validation Controls.
c. Input error correction.
d. Terdapat pemisahan antar bagian.
e. Penggunaan bahasa, desain warna dan tampilan layar harus mudah dimengerti oleh user (user friendly).
f. Penyimpanan dokumen sumber berdasarkan periode dan jenis dokumen.
g. Menu-menu dalam sistem aplikasi harus efektif penggunaannya.
 4. Instrumen Audit: Kuesioner
Untuk contoh instrumen Audit Kuesioner dapat diunduh disini.
5. Temuan Audit atas Pengendalian Input
Adapun temuan audit yang dihasilkan dari pengendalian masukan adalah:
  1. Entri data dilakukan oleh karyawan tetap dan berwenang yang ditunjuk oleh pimpinan.
  2. Proses penginputan data telah terjadwal yaitu tanggal 5-10 setiap bulannya.
  3. Saat penginputan, akan muncul error message apabila ada kesalahan input dan data tersebut tidak disimpan kedalam database.
  4. Tidak terdapat menu help dalam sistem aplikasi. Karena karyawan yang bertugas untuk menginput diharapkan telah menguasai prosedur operasi sistem aplikasi.
  5. Untuk menangani proses entry data, telah ditunjuk petugas khusus.
  6. Untuk menghapus (delete) dan mengubah (update) data, ada petugas tertentu yang memiliki otoritas untuk melakukannya.
  7. Sistem aplikasi telah menggunakan bahasa, tampilan serta tata letak yang baik dan memudahkan pengguna.
  8. Kesalahan input data dapat diatasi dengan fitur delete yang dimiliki program.
  9. Sebelum operasi data disimpan, pengguna dalam hal ini petugas input data akan menerima notifikasi yang berupa konfirmasi.
  10. Sistem aplikasi tidak menyediakan fitur Warning atau peringatan apabila belum dilakukan back-up data.
  11. Semua data yang dimasukkan dalam sistem aplikasi berasal dari dokumen sumber.
  12. Petugas memiliki check-list input data sehingga meminimalisir kesalahan saat proses pemasukkan data dalam sistem.
  13. Pada bagian bawah form isian data, terdapat tombol-tombol operasi (save, delete, cancel) yang memudahkan pengguna.
  14. Organisasi telah melakukan pengarsipan baik dalam bentuk soft maupun hard copy terhadap dokumen sumber yang digunakan.
  15. Pada organisasi ini kepala seksi juga menjalankan tugas sebagai pengawas (supervisor) entry data.
  16. Metode peng-input-an data pada sistem aplikasi mendukung pemrosesan waktu nyata. Hal ini mendukung peng-update-an data.
  17. Infrastruktur yang memadai serta kebutuhan sumber daya program cukup minimal, hal tersebut menghasilkan waktu respon yang cepat dalam setiap pemasukkan data.
  18. Dalam setiap pemasukkan data, petugas entry akan meminta persetujuan dari kepala seksi.
  19. Apabila terjadi perubahan data manual, petugas akan memastikan dahulu sifat perubahan yang terjadi sebelum diputuskan akan memasukkannya pada sistem aplikasi atau tidak.
  20. Fasilitas / fitur-fitur yang ada pada program telah dirancang sesuai dengan kebutuhan pengguna sehingga tidak ditemukan adanya menu yang tidak efektif.
  21. Antarmuka pengguna hanya akan memunculkan pesan kesalahan apabila terjadi kesalahan pemasukkan data.
  22. Fasilitas-fasilitas menu pada sistem aplikasi telah memenuhi kebutuhan pengguna.
6. Paparan Resiko dan Rekomendasi
Untuk Resiko dan Rekomendasi dapat dilihat pada Gambar dibawah ini:

Berdasarkan penilain resiko dan pengendalian(dalam matriks) yang ada diperoleh jumlah penilaian 6 poin (positif), maka disimpulkan bahwa tingkat efektivitas pengendalian masukan (Input Controls) Sistem Aplikasi adalah baik. Artinya tingkat resiko maupun kemungkinan dampak akibatnya masih lebih kecil dari desain pengendalian maupun kemungkinan dampak akibatnya masih lebih kecil dari desain pengendalian maupun efektivitas pelaksanaannya, dengan kata lain tingkat resiko sudah lebih baik. Meskipun terjadi kelebihan pengendalian, tetap setiap pengendalian tersebut dirancang untuk mengantisipasi resiko-resiko yang mungkin terjadi, baik resiko yang sering terjadi maupun yang jarang terjadi atau sama sekali tidak pernah terjadi.

7. Lesson-learned dan Kesimpulan
  1. Kedepannya, akan lebih maksimal apabila dilakukan pemisahan tanggungjawab antara pengawas entry data dan Kepala Seksi Pelayanan dan Penilaian.
  2. Sistem aplikasi didesain kembali dengan memperhatikan masalah pada pemasukan data dengan nomor surat / nomor laporan yang sama.
  3. Mengantisipasi tertundanya pekerjaan apabila terjadi mutasi pegawai di bagian entry data, sebaiknya sistem aplikasi dilengkapi dengan menu help.
8. Matriks Penilaian Resiko dan Pengendalian
Untuk Matriks Penilaian Resiko dan Pengendalian dapat dilihat pada Gambar dibawah ini:



Audit SI dengan CObIT


Sebagai dosen pengampu mata kuliah Audit Sistem Informasi, maka saya sering menugaskan mahasiswa untuk melakukan audit SI dengan studi kasus yang nyata. Berikut adalah sebuag contoh Laporan Audit Sistem Informasi berdasarkan framework CObIT.

BAGIAN I
GAMBARAN UMUM AUDIT
I.1. TENTANG PERUSAHAAN/ORGANISASI
KPKNL Manado dibentuk berdasarkan Peraturan Menteri Keuangan Nomor 135/PMK.01/2006 tentang Organisasi dan Tata Kerja Instansi Vertikal Direktorat Jenderal Kekayaan Negara sebagai tindak lanjut dari adanya reorganisasi di lingkungan Departemen Keuangan. 
Pada awal berdirinya, Kantor Pelayanan Kekayaan Negara dan Lelang (KPKNL) Manado bernama Kantor Pelayanan Pengurusan Piutang dan Lelang (KP2LN) Manado. KP2LN Manado dibentuk berdasarkan Keputusan Menteri Keuangan Nomor: 445/KMK.01/2001 tanggal 23 Juli 2001 tentang Organisasi dan Tata Kerja Kantor Wilayah Direktorat Jenderal Piutang dan Lelang Negara sebagaimana telah diubah dengan Keputusan Menteri Keuangan Nomor: 425/KMK.01/2002.
Kantor Pelayanan Kekayaan Negara Manado terdiri dari 7 sub bagian, yaitu:
Seksi Pengelolaan Kekayaan Negara,
Seksi Pelayanan Penilaian, 
Seksi Piutang Negara,
Seksi Hukum dan Informasi,
Seksi Pelayanan Lelang, dan
Sub Bagian Umum.
Seksi Pelayanan Penilaian berfungsi mengelola dan menjadwalkan penilaian dan studi kelayakan terhadap inventaris negara. Dan untuk meningkatkan kinerjanya, maka Seksi Pelayanan Penilaian mengimplementasikan Sistem Informasi Manajemen dalam membantu proses kerja mereka.
I.2. TUJUAN PELAKSANAAN AUDIT
Pelaksanaan audit pada Seksi Pelayanan Penilaian, Kantor Pelayanan Kekayaan Negara Cabang Manado bertujuan untuk mengumpulkan serta mengevaluasi bukti-bukti untuk menentukan apakah sistem aplikasi yang digunakan telah telah dapat melindungi asset milik organisasi, mampu menjaga integritas data, dapat membantu pencapaian tujuan organisasi secara efektif, serta menggunakan sumber daya yang dimiliki secara efisien.
Selain itu, pada kesempatan ini kegiatan audit dilaksanakan dengan tujuan memperdalam wawasan serta memperkaya pengalaman mahasiswa Audit Sistem Informasi, Teknik Informatika Universitas Sam Ratulangi tahun ajaran 2010/2011.
I.3. RUANG LINGKUP AUDIT
Pelaksanaan Audit Sistem Informasi di Seksi Pelayanan Penilaiaian, Kantor Pelayanan Kekayaan Negara Cabang Manado melingkupi:
1. Pelaksaan audit dengan menggunakan kerangka kerja COBIT.
2. Pelaksaan Audit Sistem Aplikasi terhadap Pengendalian Masukan (Input Control).
I.4. SASARAN PELAKSANAAN AUDIT
1. Rencana Strategis (RENSTRA) Teknologi Informasi / IT Blueprint / Project Plan.
2. Tata kelola Teknologi Informasi yang meliputi: pembagian tugas dan tanggungjawab serta pelaksanaannya di lapangan.
I.5. STANDAR PEMBANDING SECARA UMUM
1. Organisasi yang menggunakan teknologi informasi dalam proses bisnisnya haruslah memiliki rancangan yang jelas dalam hal investasi, penggunaan, pengawasan, serta pengembangan aspek-aspek teknologi informasi yang dimilikinya.
2. Secara ideal organisasi memiliki tata kelola teknologi informasi yang pada akhirnya akan berdampak pada pelaksanaan tugas dan tanggungjawab divisi TI serta penerapan rencana strategis teknologi informasi.
3. Antarmuka aplikasi sesuai bagi pengguna yang dalam hal ini pegawai Seksi Pelayanan Penilaiaian, Kantor Pelayanan Kekayaan Negara Cabang Manado. Antarmuka harus memiliki tata letak yang tidak membuat pengguna bingung, serta paduan warna yang tepat.
4. Sistem aplikasi memiliki dokumentasi yang terintegrasi (menu help) untuk memudahkan pengguna.
5. Otorisasi sebelum melakukan peng-input-an data.
6. Dokumentasi / catatan / log kegiatan input data, dokumen sumber, beserta pengarsipannya.
I.6. WAKTU PELAKSANAAN AUDIT
Audit dilaksanakan pada hari Selasa, tanggal 7 Juni 2011 mulai pukul 09.00 s/d 11.05 waktu setempat.
I.7. PELAKSANA AUDIT
Kegiatan audit ini dilaksanakan oleh 
1. Stanley Karouw, ST., MTI
2. Febrianto Rompis (07 0213 059)
3. Daniel Febrian Sengkey (08 0213 015)

Berikut ini adalah beberapa artifak yang dikumpulkan selama pelaksanaan Audit!
1. Hasil Kuesioner (dapat diunduh disini)
2. Dokumen Hasil Penilaian Fakta (dapat diunduh disini)
3. Laporan Temuan (dapat dilihat pada Gambar dibawah)



Membangun Aplikasi e-Commerce


Perkembangan teknologi menjadikan saluran distribusi global untuk produk, jasa, lapangan pekerjaan bidang manajerial dan profesional semakin bersaing. Dampak yang ditimbulkan antara lain mengubah perekonomian, struktur pasar dan industri, produk dan jasa serta aliran distribusinya, segmentasi pasar, nilai bagi konsumen, perilaku konsumen, lapangan pekerjaan dan pasar tenaga kerja.

Salah satu dari teknologi itu adalah internet. Kemampuan dan keandalan internet  memberikan banyak kemudahan bagi berbagai aspek kehidupan. Internet  dapat menjadi sumber informasi dan sarana komunikasi yang murah dan cepat. 

Salah satu aplikasi yang menggunakan dan memanfaatkan teknologi internet adalah Electronic Commerce (e-Commerce) atau perdagangan secara elektronik adalah perdagangan yang dilakukan dengan memanfaatkan jaringan telekomunikasi terutama internet. 

Ada banyak bentuk perdagangan secara elektonik yang dilakukan saat ini, antara lain  internet  banking, pembelian dan penyedian barang, toko online dan sebagainya. Dalam proyek ini kami sebagai tim pengembang akan membuat e-Commerce dengan spesifik Toko Online Handphone. Yang menjadi tempat studi kasus yaitu Toko Handphone SentralFone. SentralFone adalah toko handphone yang menjual handphone, komponen, dan jasa servis handphone di kota Manado tepatnya di area Megamas. Dengan adanya aplikasi e-Commerce manfaat yang diberikan cukup banyak antara lain proses penjualan produk bisa secara online dan 24 jam sehingga antara pembeli dan penjual tidak perlu berhadapan langsung.

Alur Proses Bisnis e-Commerce dari Studi Kasus


Beberapa persyaratan aplikasi (user requirements) yang muncul saat wawancara:

a. Business Need
  1. Adanya laporan bulanan.
  2. Bisa melihat daftar barang yang ingin dibeli.
  3. Memudahkan pembeli dalam mencari jenis barang yang diinginkan.
  4. Proses pembayaran dilakukan melalui transfer via rekening.
  5. Menggunakan forum untuk memudahkan komunikasi antara pembeli dan penjual.
  6. Menggunakan bahasa Indonesia.
b. Functionality
  1. Fitur dalam menggolongkan barang berdasarkan jenis, sehingga bisa lebih memudahkan dalam pencarian spesifikasi dari suatu jenis barang.
  2. Membuat fitur Search untuk memudahkan pembeli dalam mencarim barang yang diinginkan.
  3. Fitur live chating untuk saling obrol antara penjual dan pembeli.
  4. Fitur laporan bulanan dan tahunan, yang berisi jumlah barang yang terjual, barang masih ada dan barang yang baru masuk.
c. Non-Functional
  1. Penggunaan bahasa Indonesia.
  2. Desain inteface harus menarik.
d. Expected Value
Manfaat Tangible:
  1. Meningkatkan akurasi pengontrolan jumlah barang yang masuk dan keluar sampai 80%.
  2. Mengurangi pemakaian waktu dalam mencari suatu jenis barang tertentu sampai 70%.
  3. Mengurangi biaya promosi sampai Rp. 1.100.000 per bulan.
  4. Mengurangi biaya print dan fotocopy Rp. 600.000 per bulan.
Manfaat Intangible:
  1. Meningkatkan kemudahan dalam pencarian suatu jenis barang.
  2. Meningkatkan tingkat kepuasan konsumen.
  3. Meningkatkan pelayanan terhadap konsumen.
e. Special Issues or Constraints
Proyek harus selesai waktu yang telah ditentukan yaitu bulan April.


Iterasi Jacobi

MODUL 6 Iterasi Jacobi
BAB I
TUJUAN DAN DASAR TEORI

I.1 Tujuan
1) Menguasai iterasi Jacobi yang digunakan dalam komputasi numerik.
2) Memahami algoritma pemrograman untuk merancang program iterasi Jacobi.
3) Menerapkan algoritma untuk perancangan dan pembuatan program iterasi Jacobi.

I.2 Dasar Teori
Metode iterasi Jacobi merupakan salah satu bidang analisis numerik yang digunakan untuk menyelesaikan permasalahan persamaan linear dan sering dijumpai dalam berbagai disiplin ilmu. Metode iterasi Jacobi merupakan salah satu metode tak langsung, yaitu bermula dari suatu hampiran penyelesaian awal dan kemudian berusaha memperbaiki hampiran dalam tak berhingga dengan langkah konvergen. Metode iterasi Jacobi ini digunakan untuk menyelesaikan persamaan linear berukuran besar dan proporsi koefisien nolnya besar. Metode ini ditemukan oleh matematikawan yang berasal dari Jerman, Carl Gustav Jakob Jacobi. Penemuan ini diperkirakan pada tahun 1800-an.
Jika merubah Sistem Persamaan Linear, maka dapat ditulis sebagai berikut
Ax = B
Kemudian, diketahui bahwa A = D + (L + U), dimana D merupakan matriks diagonal, L merupakan matriks segitiga bawah, dan U merupakan matriks segitiga atas. Setelah itu, persamaan diatas dapat diubah menjadi:
 
Dx | (L | U)x = b

Kemudian
x = D -1 [b – ( L | U ) x]

Jika ditulis dalam aturan iteratif, maka metode Jacobi dapat ditulis sebagai

x(k+1) = D -1 [b – ( L | U ) x(k)]
 
Dimana k merupakan banyaknya iterasi. Jika x(k) menyatakan hampiran ke-k penyelesaian Sistem Persamaan Linear, maka x(0) adalah hampiran awal.


BAB II
ALAT DAN BAHAN

II.1 Alat dan Bahan yang perlu dipersiapkan:
1) Buku Teks
2) Unit Pemroses
3) Aplikasi Pembuatan Program
            a. Notepad / Notepad++
            b. Aplikasi IDE C++ (Bloodsheed Dev C++)
            c. Mathematica
            d. Matlab
            e. IDE Visual Studio 2010
            f. Netbeans atau Eclipse


BAB III
PROSEDUR PERCOBAAN

III.1 Prosedur Umum
1) Memahami formulasi matematis Metode Iterasi Jacobi
2) Menulis Algoritma penyelesaian masalah (dengan menggunakan teks dan/atau flow chart)
3) Menulis pseudocode algoritma
4) Menguji pseducode algoritma penyelesaian masalah (misalnya dengan menggunakan prosedur Desk Check)
5) Melakukan kodifikasi
6) Menguji Program (misalnya dengan menggunakan prosedur Joel Test dan/atau tools seperti NUnit, NCover, NCoverExplorer dan TestDriven.NET, atau menggunakan prosedur pengujian langsung)
7) Membuat dokumentasi Praktikum (misalnya dengan menggunakan Version Control Subversion, Mercurial, Gita tau Veracity)

III.2 Prosedur Khusus
III.2.1 Contoh menulis program menggunakan IDE Bloodshed Dev C++
1)      Untuk menulis program baru caranya tekan CTRL+N atau pilih NEW lalu klik Source File terlebih dahulu sebelum mengetik program.
2)      Ketikkan program anda.
3)      Simpan program dengan menekan tombol CTRL+F12, pilih Save kemudian pada kotak dialog yang muncul ketikkan nama program pada tempat yang tersedia misalnya Contoh1.cpp, kemudian klik Save atau tekan <ENTER>
4)      Jalankan program dengan terlebih dahulu melakukan kompilasi. Hal ini dapat dilakukan sekaligus dengan mengklik Compile & Run (F9) pada menu bar ataulangsung menekan F9 pada keyboard.
5)      Bila kompilasi tidak berhasil dan memunculkan pesan error, periksa kembali kode program yang ada kemudian perbaiki kesalahan dan lakukan kembali langkah 3 dan 4.  
6)      Untuk membuka arsip yang ada, gunakan OPEN atau tekan CTRL+O pada keyboard.

III.2.2 Prosedur Uji Coba
Perhatikan penggalan program berikut
Lakukan langkah-langkah berikut:
1. Terdapat sebuah program dibawah
2. Pahami algoritma penyelesaian masalah pada program diatas!
3. Tuliskan program berdasarkan langkah-langkah algoritma penyelesaian masalah!
4. Jalankan program
5. Temukan kesalahan program
6. Membuat dokumentasi
7. Lakukan kembali langkah 4 hingga langkah 6
8. Tuliskan program yang sudah benar
9. Membuat dokumentasi laporan lengkap

Contoh Program:
#include <iostream>
#include <math.h>
using namespace std;
//Iterasi Jacobi
int main(){
int a, b, c, d, e, f, g, h, i, j, k, l, xb, yb, zb;
float x, xk, y, yk,z, zk, selisih_x, selisih_y, selisih_z;
char pil;
do
{
cout<<”Format: 4x – y + z = 7”<<endl;
cout<<” 4x – 8y + z = 21”<<endl;
cout<<” -2x + y + 5z = 15”<<endl;
cout<<”Harga awal:(1,2,2)”;
int n=1;
do {
xk=(7-(-4*y)-(1*z))/4;
yk=(-21-(4*x)-(1*z))/-8;
zk=(15-(-2*x)-(1*y))/5;
cout<<”x”<<n<<”: ”<<xk<<endl;
cout<<”y”<<n<<”: “<<yk<<endl;
cout<<”z”<<n<<”: “<<zk<<endl;
y=yk;
z=zk;
n++;
xb=x;
selisih_x=x-xb;
yb=y;
selisih_y=y-yb;
zb=z;
selisih_z=z-zb;
}
while((selisih_x>0.00001||selisih_x<-0.00001) \
||(selisih_y>0.00001||selisih_y<-0.00001) \
||(selisih_z>0.00001||selisih_z<-0.00001));
cout<<”\nApakah ingin diulang lagi?”;
cin>>pil;
cout<<endl;
}
while (pil==’Y’||pil=’y’);
return 0;
}

3.2.3 Saran
1. Pelajari buku teks dan sumber lainnya
2. Mintalah petunjuk dari dosen pengasuh, asisten laboratorium dan lainnya.
3. Lakukan dokumentasi dengan baik.
4. Belajarlah bekerja dalam kelompok.
5. Ikuti setiap langkah dari prosedur yang ada