Wednesday, December 12, 2007

ANALISIS RESIKO



Setelah diketahui bahwa resiko dapat mempengaruhi pengembangan maka diperlukan cara untuk menentukan tingkat kepentingan dari masing-masing resiko. Beberapa resiko secara relatif tidak terlalu fatal (misal resiko keterlambatan penyerahan dokumentasi) sedangkan beberapa resiko lainnya berdampak besar. (misal resiko keterlambatan penyerahan software). Beberapa resiko sering terjadi (salah satu anggota tim sakit sehingga tidak bisa bekerja selama beberapa hari). Sementara itu resiko lainnya jarang terjadi (misal kerusakan perangkat keras yang dapat mengakibatkan sebagian program hilang).

Probabilitas terjadinya resiko sering disebut dengan risk likelihood; sedangkan dampak yang akan terjadi jika resiko tersebut terjadi dikenal dengan risk impact dan tingkat kepentingan resiko disebut dengan risk value atau risk exposure. Risk value dapat dihitung dengan formula :

risk exposure = risk likelihood x risk impact


Idealnya risk impact diestimasi dalam batas moneter dan likelihood dievaluasi sebagai sebuah probabilitas. Dalam hal ini risk exposure akan menyatakan besarnya biaya yang diperlukan berdasarkan perhitungan analisis biaya manfaat. Risk exposure untuk berbagai resiko dapat dibandingkan antara satu dengan lainnya untuk mengetahui tingkat kepentingan masing-masing resiko.

Akan tetapi, estimasi biaya dan probabilitas tersebut sulit dihitung, subyektif , menghabiskan waktu dan biaya. Untuk mengatasi hal ini maka diperlukan beberapa pengukuran yang kuantitatif untuk menilai risk likelihood dan risk impact, karena tanpa ini sulit untuk membandingkan atau meranking resiko tersebut untuk berbagai keperluan. Akan tetapi, usaha yang dilakukan untuk medapatkan sebuah estimasi kuantitatif yang baik akan menghasilkan pemahaman yang mendalam dan bermanfaat atas terjadinya suatu permasalahan.

Beberapa manajer resiko mempergunakan sebuah metode penilaian yang sederhana untuk menghasilkan ukuran yang kuantitatif pada saat mengevaluasi masing-masing resiko. Beberapa manajer memberikan kategori pada likelihood dan impact dengan high, medium atau low. Akan tetapi bentuk ini tidak memungkinkan untuk menghitung risk exposure. Sebuah pendekatan yang lebih baik dan populer adalah memberikan skor pada likelihood dan impact dengan skala tertentu misal 1-10. Jika suatu resiko kemungkinan besar akan terjadi diberi skor 10, sedangkan jika kecil jika kemungkinan terjadinya kecil maka akan diberi nilai 1.

Penilaian likelihood dan impact dengan skala 1-10 relatif mudah, akan tetapi kebanyakan manajer resiko akan berusaha untuk memberikan skor yang lebih bermakna, misal skor likelihood 8 akan dipertimbangkan dua kali likelihood dengan skor 4.

Hasil pengukuran impact , dapat diukur dengan skor yang serupa, harus dimasukkan pada perhitungan total risk dari proyek tersebut. Untuk itu harus melibatkan beberapa biaya potensial seperti :


· Biaya yang diakibatkan keterlambatan penyerahan atas jadwal yang sudah ditentukan.
· Biaya yang berlebihan dikarenakan harus menambah sumber daya atau dikarenakan mempergunakan sumber daya yang lebih mahal.
· Biaya yang tidak terlihat pada beberapa komponen kualitas atau fungsionalitas sistem.

Tabel.1 berikut ini memperlihatkan contoh hasil evaluasi nilai resiko. Perhatikan bahwa resiko yang bernilai tertinggi tidak selalu akan menjadi resiko yang pasti terjadi maupun akan menjadi resiko dengan potensi impact yang terbesar.
Tabel 1 – Contoh evaluasi nilai risk exposure


Prioritas Resiko
Pengelolaan resiko melibatkan penggunaan dua strategi :
· Risk exposure dapat dikurangi dengan mengurangi likelihood atau impact
· Pembuatan rencana kontingensi berkaitan dengan kemungkinan resiko yang akan terjadi.

Sembarang usaha untuk mengurangi sebuah risk exposure atau untuk melaksanakan sebuah rencana kontingensi akan berhubungan dengan biaya yang berkaitan dengan usaha tersebut. Merupakan hal yang penting untuk menjamin bahwa usaha ini dilaksanakan dengan cara yang paling efektif dan diperlukan cara untuk memprioritaskan resiko sehingga usaha yang lebih penting dapat menerima perhatian yang lebih besar.

Estimasi nilai likelihood dan impact dari masing-masing usaha tersebut akan menentukan nilai risk exposure. Setelah risk exposure dapat dihitung maka resiko dapat diberi prioritas high , medium atau low sesuai dengan besar kecilnya nilai risk exposure.

Risk exposure yang berdasarkan pada metode penilaian perlu diberikan beberapa perhatian. Hasil evaluasi pada tabel 1, contoh, tidak memperlihatkan resiko R5 adalah dua kali lebih penting dibandingkan R6. Pada kasus ini, kita tidak bisa mengintepretasikan nilai risk exposure secara kuantitatif disebabkan nilai tersebut didasarkan pada metode penilaian yang non-cardinal. Pada kasus kedua, nilai exposure yang terlalu berjauhan akan mampu untuk membedakan antara resiko tersebut.

Akan tetapi risk exposure akan memungkinkan kita untuk memperoleh suatu ranking sesuai dengan kepentingannya. Pertimbangkan resiko pada tabel 1, R3 dan R4 merupakan resiko yang paling penting dan kita dapat mengklasifikasikannya dengan high risk. Tingkat kepentingan yang berbeda dapat membedakan antara skor exposure satu dan dua ini dengan exposure tertinggi berikutnya yaitu R2. R2 dan R5 mempunyai skor yang hampir sama dan dapat dikelompok pada resiko dengan prioritas medium. Dua resiko lainnya, R1 dan R6 mempunyai nilai exposure yang rendah sehingga dapat dikelompokan pada prioritas rendah.

Dalam kenyataannya, secara umum ada beberapa faktor lain, selain nilai risk exposure, yang harus diperhitungkan pada saat menentukan prioritas resiko.

Kepercayaan terhadap penilaian resiko
Beberapa penilaian risk exposure relatif kurang. Untuk diperlukan investigasi lebih lanjut sebelum tindakan diambil.


Penggabungan Resiko
Beberapa resiko saling bergantung dengan lainnya. Dalam hal ini maka beberapa resiko tersebut perlu dianggap sebagai satu resiko.

Jumlah Resiko
Perlu batas jumlah resiko yang dapat dipertimbangkan secara efektif dan dapat diambil tindakannya oleh seorang manajer proyek. Untuk itu perlu dibatasi ukuran daftar prioritas.

Biaya Tindakan
Beberapa resiko, yang suatu saat dapat dikenali, dapat dikurangi atau dicegah segera dengan biaya atau usaha yang sedikit tanpa menganggap nilai resikonya. Untuk resiko lainnya perlu dilakukan perbandingan antara biaya yang diperlukan dengan benefit yang diperoleh dengan mengurangi resiko tersebut. Satu metode untuk melaksanakan perhitungan ini adalah dengan menghitung risk reduction leverage (RRL) dengan mempergunakan persamaan sebagai berikut:


REbefore adalah nilai risk exposure semula, REafter adalah nilai risk exposure yang diharapkan setelah diambil tindakan dan risk reducation cost (RRC) adalah biaya untuk implementasi tindakan pengurangan resiko. Risk reduction cost harus dinyatakan dengan unit yang sama dengan nilai resiko yaitu nilai moneter yang diperlukan atau dengan nilai skor. Jika nilai yang diharapkan ternyata lebih besar maka RRL yang lebih besar memperlihatkan bahwa kita perlu berharap untuk meningkatkan rencana pengurangan resiko disebabkan reduksi risk exposure yang diharapkan lebih besar dibandingkan dengan biaya rencana.

Monday, November 5, 2007

ESTIMASI BIAYA DAN USAHA PROYEK

Metrik Software
Ukuran merupakan factor utama untuk menentukan biaya, penjadwalan, dan usaha. Kegagalan dari perkiraan ukuran yang tepat akan mengakibatkan penggunaan biaya yang berlebih atau keterlambatan penyelesaian proyek.
Estimasi ukuran software merupakan suatu aktifitas yang komplek dan sukar berdasarkan pada beberapa alas an seperti kemampuan programmer, factor lingkungan dan sebagainya. Tetapi karena tindakan ini harus dilakukan dan untuk mendapatkannya dengan mengukur ukuran proyek menggunakan ukuran seperti jumlah baris program (Source lines of code/SLOC) dan Function Points.

1. Ukuran jumlah baris program (SLOC)
SLOC merupakan ukuran yang kurang akurat dan merupakan sebuah topik yang menimbulkan perdebatan selama bertahuntahun, dipandang sebagai sebuah ukuran untuk mengestimasi biaya dan waktu, tidak dapat dipastikan bahwa dua program yang mempunyai SLOC sama akan membutuhkan waktu implementasi yang sama walaupun keduanya diimplemenatsikan dengan kondisi pemrograman yang standard. Meskipun metode ini kurang akurat dan merupakan metodologi yang belum diterima secara luas, tetapi metrik dengan orientasi ukuran ini merupakan kunci pengukuran dan banyak estimasi software yang menggunakan model ini.
Secara virtual tidak mungkin untuk menghitung SLOC dari dokumen requirement awal. SLOC pengukurannya didasarkan pada bahasa pemrograman tertentu, oleh karena itu muncul banyak masalah dalam membuat standard pengukuran dengan teknik SLOC. Ukuran lain yang ada untuk mengukur besaran software adalah ukuran yang berorientasi fungsi dan ukuran yang berorientasi object. Metode ini merupakan metode yang lebih konsisten dan diterima secara luas.

2. Metrik yang berorientasi fungsi (Function Point)

Pendekatan yang berorientasi fungsi mengukur fungsionalitas aplikasi untuk mengestimasi ukuran software dan selanjutnya digunakan untuk estimasi biaya dan usaha yang diperlukan untuk mengembangkan system. Pendekatan ini diusulkan oleh Albrecht yang disebut sebagai metrik Function Points. Metrik ini diperoleh dari keterhubungan dasar antara domain informasi software dan kompleksitas software (Gambar 1). Function Points biasanya
digunakan dalam mengukur system informasi manajemen (SIM). Pada metodologi ini software dapat diklasifikasikan menjadi 5 domain yaitu:
• Jumlah data input pengguna
• Jumlah data output pengguna
• Jumlah data permintaan pengguna
• Jumlah file
• Jumlah file interface luar
Kemudian hitung nilai fungsi proyek yang mungkin pada setiap katagori dan kemudian setiap nilai perhitungan dikalikan dengan factor kompleksitas sebagai berikut:
• Sederhana (simple)
• Rata-rata (average)
• Komplek (complex)
Untuk menghitung Unadjusted Function Points digunakan tabel berikut berdasarkan kriteria dari setiap kategori.


Untuk menghitung function point digunakan persamaan berikut:

FP = count total * [0.65 * 0.01 * sum(Fj)]

Dimana count total adalah total yang diperoleh dari table function point analisis sum(Fj) adalah jumlah dari 14 faktor kompleksitas yang bernilai 0 s/d 5.




Pendekatan Model



Pendekatan model yang digunakan dalam menghitung besaran proyek adalah model function point (FP). Dibandingkan dengan pendekatan berbasis ukuran baris (LOC/Line Of Code). Pendekatan FP lebih independen terhadap bahasa pemrograman sehingga bisa diterapkan pada jenis aplikasi yang berbeda baik aplikasi database yang non-procedural, sistem informasi berbasis web, maupun aplikasi penghitungan, misalnya payroll. Pendekatan ini juga lebih mudah diprediksi daripada LOC karena parameternya dihitung berdasarkan data yang lebih diketahui, misalnya prediksi jumlah input dan ouput.
Meskipun FP dianggap memiliki kelemahan dalam subyektifitas data yang dimasukkan tetapi beberapa kriteria, misalnya untuk menentukan kategori sederhana atau kompleks, telah ditetapkan secara numerik untuk lebih memastikan obyektivitas data. Disamping itu, hasil perhitungan FP juga sering dianggap tidak memiliki arti yang mudah dipahami dibandingkan dengan LOC yang besarannya menunjukkan jumlah ukuran coding. Akan tetapi, hasil akhir FP dapat dikonversikan ke dalam LOC berdasarkan jenis bahasa pemrograman yang dipakai.

Jumlah usaha didapatkan dari waktu pengerjaan dikalikan dengan jumlah personel yang terlibat dalam pengerjaan proyek. Analisa regresi linear selanjutnya dilakukan terhadap beberapa sampel jumlah FP terhadap jumlah usaha/effort. Dari analisa tersebut akan didapatkan suatu persamaan, yakni:

Effort = a + b* FP

Konstanta a dan b yang didapat tersebut akan menjadi model bagi penentuan usaha (i.e jumlah biaya dan personel yang diperlukan) jika diketahui jumlah function point yang dapat dihitung dari kebutuhan pengguna (requirement definition).

Monday, September 17, 2007

Microsoft Project



Manajemen Proyek

Sebelum kita membahas apa itu manajemen proyek, kta harus memahami dulu pengertian proyek. Proyek merupakan rangkaian tugas atau aktifitas yang memiliki suatu tujuan tertentu yang harus diselesaikan sesuai dengan waktu, biaya dan spesifikasi yang telah ditetapkan.
Manajemen proyek adalah pengelolaan suatu proyek yang mencakup proses pelingkupan, perencanaan, penyediaan staff, pengorganisasian, dan pengontrolan suatu proyek.

Microsoft Project 2003

Berdasarkan survei dinyatakan bahwa Microsoft Project merupakan suatu alat bantu atau tools yang menduduki peringkat pertama sebagai alat bantu dalam mendukung manajemen proyek. Hal ini merupakan implikasi dari kehandalan software aplikasi tersebut menangani manajement proyek.

MS Project adalah merupakan tools yang dapat membantu peyusunan perencanaan dan pemantauan jadwal suatu proyek. Tools tersebut sangat membantu dalam perhitungan jadwal suatu proyek secara terperinci kegiatan demi kegiatan yang merupakan keluaran dari Microsoft.
MS. Project membatu melakukan perencanaan dan dan pemantauan terhadap penggunaan sumberdaya. Aplikasi tersebut juga dapat mencatat kebutuhan tenaga kerja pada setiap sector kegiatan, mencatat jam kerja para pegawai, jam lembur, dan perhitungan pengeluaran biaya tenaga kerja pada beberapa kegiatan. Tools ini juga dapat menyajikan laporan pada setiap posisi sesuai perkembangan yang terjadi pada proyek.


Controlling


Salah satu fase dalam siklus manajemen adalah fase pengontrolan. Fase pengontrolan merupakan fase untuk memonitor dan mengontrol kemajuan proyek, Intensitas pencatatan sangat tergantung dari tingkat kerumitan dan besar kecilnya suatu proyek.

Pencapaian sasaran yang telah ditetapkan tidaklah cukup hanya dengan organisasi dan kepemimpinan yang handal serta motifasi bekerja yang tinggi. Tanpa disertai dengan pengawasan dan pengendalian, maka mustahil proyek dapat berjalan dengan baik.

Tujuan pengawasan dan pengendalian adalah memantau, mengkaji mengadakan koreksi, dan membimbing agar yang telah ditetapkan bisa terlaksana sesuai dengan perencanaan. Pelaksanaan proyek berlangsung dengan sangat cepat sehingga bila tidak dilakukan pengawasan dan pengendalian yang cukup akan mengakibatkan terjadinya penyimpangan yang sulit untuk diperbaiki. Sistem pengendalian yang realistis perlu dilengkapi dengan metode yang dapat segera memberikan petunjuk atau mengungkapkan adanya penyimpangan (varian).

Penyimpangan

Mengidentifikasi penyimpangan berarti menganalisa data-data pelaporan pelaksanaan kegiatan pada waktu tertentu dan membandingkannya dengan yang telah direncanakan. Pewrbedaan pada jadwal berarti penyimpangan terhadap waktu, sedangkan perbedaan terhadap biaya berarti penyimpangan terhadap anggaran. Macam penyimpangan yang sering ditemui dalam melaksanakan proyek adalah :
Penyimpangan waktu terhadap jadwal
Penyimpangan biaya terhadap anggaran.
Tanggal mulai terhadap rencana.
Tanggal selesai terhadap rencana.
Jumlah sumber daya terhadap anggara.

Konsep nilai hasil

Selain dapat menunjukkan prestasi kegiatan, earned value concept dapat pula memperkirakan keadaan masa depan proyek. Proyeksi masa depan proyek merupakan informasi yang sangat berguna bagi pengelolaan maupun pemilik, karena dengan informasi tersebut dapat disusun langkah-langkah selanjutnya.

Konsep nilai hasil atau earned value consept adalah menghitung besarnya biaya yang menurut anggaran sesuai dengan kegiatan yang telah diselesaikan.

Mengitegrasi Anggaran dan Jadwal

Metode kurva S bertujuan mengetahui nilai kegiatan yang telah diselesaikan. Dengan demikian, tercermin kemajuan pelaksanaan kegiatan yang direncanakan dalam kontrak. Berbeda dengan metode earned value yang mengidentifikasi antara biaya yang dikeluarkan dengan yang direncanakan. Metode tersebut memadukan unsur-unsur prestasi, biaya, dan jadwal.
Analisa dengan metode tersebut memerlukan indikator-indikator sebagai berikut:
ACWP (Actual Cost of Work Performance) yaitu jumlah biaya yang sesungguhnya terpakai untuk kegiatan yang telah dilaksanakan dalam kurun waktu tertentu.
BCWP (Bubgeted Cost of Work Performance) yaitu jumlah anggaran yang yang senilai untuk kegiatan yang telah dilaksanakan.
BCWS (Bubgeted Cost of Work Scheduled) yaitu anggaran yang direncanakan untuk kegiatan yang dilaksankan.

Analisa Penyimpangan Jadwal dan Biaya

Melalui indikator di atas, kinerja pengelolaan biaya dan jadwal dapat diklsifikasikan sebagai berikut:
Perbedaan Jadwal (Schedule Variance), SV = BCWP-BCWS
Schedule Variance = 0, proyek tepat waktu
> 0, lebih cepat
< cv =" BCWP-" variance =" 0,"> 0, biaya lebih kecil/hemat
< spi =" BCWP/BCWS" spi =" 1,"> 1, proyek lebih cepat
< cpi =" BCWP/ACWP" cpi =" 1,"> 1, biaya proyek lebih kecil
< etc =" (BAC-BCWP)/CPI">Mempercepat Waktu Penyelesaian

Waktu yang disediakan oleh pemilik proyek terkadang sangat terbatas. Hal tersebut dikarenakan keterlambatan dalam perencanaan atau keperluan mendesak untuk segera menyelesaikan poroyek. Hal lain bisa karena perubahan situasi pasar. Setelah kegiatan berlangsung beberapa waktu, pemilik ingin mempercepat penyelesaian proyek agar produksi yang dihasilkan dapat mengisi pasar mendahului saingannya. Kekurangan waktu juga dapat terjadi karena kendala-kendala lapangan.

Percepatan Jadwal

Untukdapat menyelesaikan proyek dengan waktu yang tersedia, jadwal pelaksanaan pada kegiatan-kegiatan yang berada pada lintasan kritis perlu dipercepat. Cara terbaik untuk mempercepat selesainya suatu kegiatan adalah dengan menambah sumber daya sehingga produktivitas perharinya meningkat. Akan tetapi keterbatasan sumberdaya seringkali menjadi hambatan yang sangat serius. Ada beberapa langkah yang diambil untu dapat mempercepat proyek tanpa menambah sumberdaya yang telah ada.

- Tanpa Tambahan Biaya
Untu dapat menyelesaikan kegiatan lebih cepat, biasanya biaya tambahan yang dibutuhkan lebih besar dari harga standar. Akan tetapi ada beberapa cara/kiat untuk mempercepat jadwal proyek tanpa menambah biaya, yaitu mengatur kembali jadwal yang terlambat.

- Kegiatan Tumpang Tindih
Setiap kegiatan di dalam proyek memiliki hubungan ketergantungan, dimana sebuah kegiatan tidak berarti bila tidak bermanfaat bagi kegiatan lainnya. Penghubung tugas memerlukan hubungan malai – selesai (finish to start) antar tugas yang dipilih. Jika suatu kegiatan selesai, kegiatan berikutnya bisa dimulai. Akan tetapi aturan dasar tersebut akan banyak menghabiskan waktu. Pemendekan waktu dapat dilakukan dengan penumpukan kegiatan sehingga akan mempercepat waktu tunggu dimulainya suatu tugas. Usaha menyusun kembali urutan kegiatan yang mengikuti logika ketergantungan akan dipermudah dengan mencoba menjawab pertanyaan-pertanyaan berkut:
Kegiatan apa yang harus dimulai terlebih dahulu
Kegiatan apa yang berikutnya akan dikerjakan
Adakah kegiatan-kegiatan yang dapat berlangsung sejajar
Pelukah kegiatan tertentu menunggu kegiatan yeng lain.

-Memutus atau Memindahkan Hubungan Ketergantungan.
Hubungan ketergantungan antar kegiatan terkadang juga berdasarkan pemanfaatan tenaga kerja bukan secara teknis. Hubungan ketergantungan yang demikian dapat diputuskan atau memindahkannya apabila ketergantungan tersebut dapat menyebabkan keterlambatan.

- Saling Tukar Tenaga Kerja
Penambahan tenaga kerja pada kegiatan yang berada pada lintasan kritis dapat mempercepat selesainya proyek. Akan tetapi, keterbatasan tenaga kerja selalu menjadi kendala. Cara lain untuk menambah tenaga kerja pada kegiatan lintasan kritis adalah dengan mengambil atau memindahkan tenaga kerja yang berada pada kegiatan yang tidak kritis. Akibat hal tersebut, kegiatan yang dipindah tenaga kerjanya menjadi tertunda. Selama kegiatan tersebut tertunda dalam batas waktu luang (free float) tidaklah menjadi masalah. Metode saling tukar tenaga kerja dapat dipakai bila tenaga kerja yang dipertukarkan memiliki keahliah yang sama. Akan tetapi bila keahliannya berbeda, mereka tidak dapat dipertukarkan.

- Membeli Waktu dengan Biaya
Kegiatan-kegiatan dapat diselesaikan dengan biaya normal dan waktu normal pula, Jika ingin diselesaikan dengan waktu dipercepat, maka biaya akan meningkat. Proses mempercepat waktu dikenal dengan cresh program. Cara tersebut dapat dilakukan apabila penambahan jumlah sumber daya ( tenaga kerja, material,peralata,biaya) tidak menjadi kendala.

- Penambahan Sumber Daya Berkualitas
Penambahan sumber daya yang kualitasnya lebih baik dapat mempercepat waktu kegiatan, namun biaya penggunaan sumber daya tersebut berbeda dengan biaya sumber daya yang normal. Prosedur untuk mempersingkat waktu dengan penambahan sumber daya adalah sebagai berikut:
Tentukan lintasan kritis yang sangat berpengaruh terhadap waktu akhir proyek
Tentukan biaya normal masing-masing kegiatan
Menghitung penambahan (slope) masing-masing kegiatan
Mempercepat kegiatan pada lintasan kritis yang penambahan biayanya paling murah

Penambahan Waktu Kerja atau Lembur

Penambahan tenaga kerja seringkali menjadi hambatan. Hal tersebut disebabkan sulitnya mencari tenaga kerja yang terampil atau sesuai dengan kebutuhan. Keterbatasan ruang kerja untuk menyelesaikan kegiatan juga mengakibatkan tidak efektifnya penambahan tenaga kerja. Metode yang dapat dilakukan untuk mengantisipasi keterlambatan proyek adalah dengan penambahan jam kerja atau lembur, dimana penurunan kinerja dan penambahan biaya tenaga kerja pada penambahan waktu tetap ditoleransi.
Pelaksanaan metode lembur harus terlebih dahulu memenuhi kriteria-kriteria berikut:
- bersedianya pekerja untk lembur
- adanya ijin dari owner/pemilik proyek
- tersedianya sarana untuk melaksanakan kerja lembur

Semoga uraian da atas dapat bermanfaat bagi para pembaca, terutama bagi para penelola proyek

Tuesday, September 11, 2007

MANAJEMEN PROYEK PERANGKAT LUNAK

1. Konsep Manajemen Proyek
Manajemen proyek perangkat lunak ditekankan pada tiga faktor, yaitu : manusia, masalah dan proses. Dalam pekerjaan perangkat lunak faktor manusia sangat berperan penting dalam suksesnya manajemen proyek. Pentingnya faktor manusia dinyatakan dalam model kematangan kemampuan manajement manusia (a people management capability maturity model/ PM-CMM) yang berfungsi untuk meningkatkan kesiapan organisasi perangkat lunak dalam menyelesaikan masalah dengan melakukan kegiatan menerima, memilih, kinerja manajemen, pelatihan, kompensasi, pengembangan karier, organisasi dan rancangan kerja serta pengembangan tim.
1.1. Dasar-Dasar Organisasional
Organisasi adalah sistem yang saling mempengaruhi dan salaing bekerja sama antara orang yang satu dengan orang yang lain dalam suatu kelompok untuk mencapai suatu tujuan tertentu yang telah disepakati bersama. Organisasi merupakan sistem maka terdiri dari beberapa elemen yaitu :
1. Orang, dalam organisasi harus ada sekelompok orang yang bekerja dan salah satunya ada yang memimpin organisasi tersebut.
2. Tujuan, dalam organisasi harus ada tujuan yang harus dicapai, baik dalam jangka pendek maupun jangka panjang.
3. Posisi, setiap orang yang ada dalam suatu organisasi akan menempati posisi atau kedudukannya masing-masing.
4. Pekerjaan, setiap orang yang ada dalam organisasi tersebut mempunyai pekerjaan (job) masing-masing sesuai dengan posisinya.
5. Teknologi, untuk mencapai tujuan organisasi membutuhkan teknologi untuk membantu dalam pengolahan data menjadi suatu informasi.
6. Struktur, struktur organisasi merupakan pola yang mengatur pelaksanaan pekerjaan dan hubungan kerja sama antar setiap orang yang ada dalam organisasi tersebut.
7. Lingkungan luar, merupakan elemen yang sangat penting dan akan mempengaruhi keberhasilan suatu organisasi, misalnya adanya kebijakan pemerintah tentang organisasi.

Prinsip-prinsip organisasi adalah nilai-nilai yang digunakan sebagai landasan kerja bagi setiap orang yang ada dalam organisasi tersebut untuk mencapai keberhasilan tujuan yang telah disepakati. Prinsip-prinsip yang ada dalam organisasi meliputi :
1. tujuan organisasi yang jelas
2. tugas yang dilakukan harus jelas
3. pembagian tugas yang adil
4. penempatan posisi yang tepat
5. adanya koordinasi dan integrasi

Manajemen dalam organisasi terdiri dari tiga tingkatan pembuat keputusan manajemen yaitu : manajemen tingkat bawah (operasional), manajemen tingkat menengah (perencanaan dan kontrol manajerial) dan manajemen tingkat atas (strategik). Setiap level memiliki tanggung jawabnya sendiri-sendiri dan semuanya bekerja sama dalam mencapai tujuan dan sasaran.
1. Manajemen tingkat bawah (operasional)
· Manajer operasional membuat keputusan berdasarkan aturan-aturan yang telah
ditetapkan sebelumnya dan menghasilkan hal-hal yang dapat diprediksikan bila
diterapkan dengan benar.
· Manajer operasi adalah pembuat keputusan yang
pekerjaannya lebih jelas sehingga dapat mempengaruhi implementasi dalam jadwal
kerja, kontrol inventaris, penerimaan, dan pengontrolan proses-proses seperti
produksi.
· Manajer operasi membutuhkan informasi internal yang repetitif,
dan sangat tergantung pada informasi yang memuat tentang kinerja terbaru dan
merupakan pengguna on-line terbesar, sumberdaya-sumberdaya informasi real-time.

2. Manajemen tingkat menengah (perencanaan dan kontrol manajerial)
· Manajer tingkat menengah membuat perencanaan jangka pendek dan mengontrol keputusan-keputusan tentang bagaimana sumberdaya bisa dialokasikan dengan baik untuk memenuhi tujuan-tujuan organisasional, dan meramalkan kebutuhan-kebutuhan sumberdaya dimasa datang untuk
· meminimalkan problem-problem pegawai yang dapat membahayakan produktivitas.
· Manajer tingkat menengah sangat tergantung pada informasi internal dan membutuhkan sangat besar informasi real- time agar dapat melakukan pengontrolan dengan tepat dan informasi terbaru atas kinerja yang diukur sesuai standar.

3. Manajemen tingkat atas (strategik)
· Manajer strategik membuat keputusan-keputusan yang akan membimbing manajer operasional dan manajer tingkat menengah.
· Manajer strategik bekerja di lingkungan pembuat keputusan yang sangat tidak pasti. Membutuhkan informasi yang bersifat strategis, karena tugas kesehariannya adalah pengarahan dan perencanaan.
· Informasi yang strategis diperlukan untuk menilai tingkat keberhasilan organisasi menjalankan tugas dan tujuan organisasi.
· Membutuhkan informasi internal (agar bisa beradaptasi dengan perubahan-perubahan yang terjadi dengan cepat) dan informasi eksternal (untuk mengetahui peraturan pemerintah,kebijakan perekonomian, kondisi pasar dan strategi perusahaan-perusahaan pesaing).

2. Kebijakan dan Perencanaan Proyek Perangkat lunak
Suatu perangkat lunak dapat dikembangkan karena adanya kebijakan dan perencanaan telebih dahulu. Tanpa adanya perencanaan sistem yang baik, pengembangan sistem tidak akan dapat berjalan sesuai dengan yang diharapkan. Tanpa adanya kebijakan pengembangan sistem oleh manajemen puncak, maka pengembangan sistem tidak akan mendapat dukungan dari manajemen puncak tersebut.
2.1. Kebijakan Sistem
Kebijakan untuk mengembangkan perangkat lunak dilakukan oleh manajemen puncak karena manajemen menginginkan untuk meraih kesempatan-kesempatan yang ada yang tidak dapat diraih oleh sistem yang lama atau sistem lama mempunyai kelemahan (masalah)
2.2. Perencanaan Sistem
Perencanaan sistem menyangkut estimasi sumberdaya (kebutuhan-kebutuhan fisik dan tenaga kerja) dan biaya. Perencanaan sistem terdiri dari : perencanaan jangka pendek (periode 1–2 tahun) dan jangka panjang (periode sampai 5 tahun).
Perencanaan sistem biasanya ditangani oleh staf perencanaan sistem, departemen pengembangan sistem atau depertemen pengolahan data.
2.3. Proses Perencanaan Sistem
Proses perencanaan sistem dapat dikelompokkan dalam tiga proses utama, yaitu :
1. Merencanakan proyek-proyek sistem
Tahapan proses perencanaan sistem yaitu :
· Mengkaji tujuan, perencanaan strategi dan taktik perusahaan
· Mengidentifikasi proyek-proyek sistem
· Menetapkan sasaran proyek-proyek sistem
· Menetapkan kendala proyek-proyek sistem (mis. Batasan biaya, waktu, umur ekonomis, peraturan yang berlaku)
· Menetukan prioritas proyek-proyek sistem
· Membuat laporan perencanaan sistem
· Meminta persetujuan manajemen

2. Mempersiapkan proyek-proyek sistem yang akan dikembangkan
Persiapan ini meliputi :
· Menunjuk team analis (dapat berasal dari departemen pengembangan yang ada atau dari luar perusahaan (konsultan)
· Mengumumkan proyek pengembangan sistem

3. Mendefinisikan proyek-proyek sistem yang dikembangkan
Melakukan studi untuk mencari alternatif pemecahan terbaik yang paling layak untuk dikembangkan. Tahapan yang dilakukan yaitu :
· Mengidentifikasi kembali ruang lingkup dan sasaran proyek sistem
· Melakukan studi kelayakan
· Menilai kelayakan proyek sistem
· Membuat usulan proyek sistem
· Meminta persetujuan manajemen

3. Perkiraan Proyek Perangkat lunak
Sekarang biaya merupakan elemen yang paling penting dan mahal dalam pengembangan sistem berbasis komputer. Perkiraan biaya yang salah atau kurang tepat dapat mengurangi keuntungan atau malah kerugian. Perkiraan biaya perangkat lunak dan usaha tidak dapat dihitung dengan tepat, karena banyak variabel (manusia, teknikal, lingkungan) yang mempengaruhinya.
Untuk mencapai perkiraan biaya dan usah yang dapat diandalkan, digunakan pilihan sebagai berikut :
Memperkirakan waktu yang paling lama dari pengerjaan proyek
Perkiraan berdasarkan pada proyek yang sama
Menggunakan teknik dekomposis
Menggunakan satu atau lebih model empiris

Memperkirakan waktu untuk menyelesaikan setiap kegiatan merupakan bagian yang paling sulit, untuk itu butuh pengalaman dalam memperkirakan waktu yang diperlukan. Penjadwalan tugas-tugas (kegiatan) dapat menggunakan :

1. Grafik Gantt
Merupakan suatu grafik dimana ditampilkan kotak-kotak yang mewakili setiap tugas (kegiatan) dan panjang masing-masing setiap kotak menunjukkan panjang relatif tugas-tugas yang dikerjakan.

2. Diagram PERT (Program Evaluation and Review Techniques)
Suatu program (proyek) diwakili dengan jaringan simpul dan tanda panah yang kemudian dievaluasi untuk menentukan kegiatan-kegiatan terpenting, meningkatkan jadwal yang diperlukan dan merevisi kemajuan-kemajuan saat proyek telah dijalankan. Diagram PERT lebih baik dari Gantt, karena :
- Mudah mengidentifikasi tingkat prioritas
- Mudah mengidentifikasi jalur kritis dan kegiatan-kegiatan kritis
- Mudah menentukan waktu kendur

3. Penjadwalan proyek berbasis komputer
Penggunakan PC untuk membuat jadwal proyek lebih praktis dan menguntungkan. Contoh program penjadwalan yaitu Ms Project, Symantec’s Timeline dan Computer Associates’ CA-Super Project.

Proses pengembangan perangkat lunak dikembangkan oleh pelaku-pelaku yang dapat dikatagorikan dalam 5 kelompok :
Manajer senior, yang bertugas mendefinisikan permasalahan-permasalahan bisnis dan sangat berpengaruh pada proyek tersebut.
Manajer proyek (teknik), yang merencanakan, memotivasi, mengorganisasi dan mengontrol orang-orang yang bekerja dalam proyek tersebut (praktisi).
Praktisi, adalah orang yang mempunyai kemampuan teknis yang dibutuhkan untuk mendapatkan produk perangkat lunak (program aplikasi).
Pelanggan, adalah orang yang membutuhkan perangkat lunak (PL) tersebut.
Pengguna akhir, orang yang berinteraksi dengan perangkat lunak (PL) yang dikaitkan dengan penggunaan produk.


Tuesday, June 19, 2007

Permasalahan Pada Software Testing


Keberhasilan suatu pengembangan software sangat ditentukan oleh hasil dari pengujian. Jika proses pengujian dapat dilakukan dengan baik, maka suatu software yang telah melewati pengujian akan memiliki kualitas yang dapat dipertanggungjawabkan.

Pekerjaan programmer adalah membuat program berdasarkan spesifikasi proses yang ditetapkan oleh perancang aplikasi. Hasil dari pekerjaan ini tentu adalah program yang dapat dijalankan, baik secara mandiri atau sebagai modul yang digunakan oleh modul atau program lain. Program yang dihasilkan, seharusnya terbebas dari kesalahan sintaks, tetapi juga harus bebas dari kesalahan logika. Untuk mengetahui bahwa program yang dibuat sudah terbebas dari kesalahan, maka harus dilakukan pengujian terhadap program tersebut.

Permasalahan
Permasalahan yang sering timbul dalam suatu proses pengembangan terutama dalam hal pengujian, contoh kasusnya adalah :


  • Programmer tidak melakukan pengujian dengan baik dan benar. Terkadang programmer hanya memperbaiki program, kemudian melakukan kompilasi. Jika kompilasi sudah tanpa kesalahan, programmer menganggap bahwa program telah benar.

  • Spesifikasi program dari perancang aplikasi tidak selalu disertai dengan kasus uji, sehingga sering kali pengujian dilakukan oleh programmer tidak seperti yang diharapkan. Jadi ala kadarnya.
Pengujian (testing)
Salah satu tahapan pengembangan software yang harus dilalui adalah pengujian. Pengujian program harus dilakukan pertama kali oleh pemrogram itu sendiri, setelah itu baru diserahkan dan dilakukan pengujian oleh penguji (tester) program. Umumnya, pengujian yang dilakukan oleh pengembang dilakukan pada tahap akhir dari proses pengembangan, setelah semua modul aplikasi dikembangkan.

User Acceptance Test (UAT) atau Uji Penerimaan Pengguna adalah suatu proses pengujian oleh pengguna yang dimaksudkan untuk menghasilkan dokumen yang dijadikan bukti bahwa software yang telah dikembangkan telah dapat diterima oleh pengguna, apabila hasil pengujian (testing) sudah bisa dianggap memenuhi kebutuhan dari pengguna. Hasil dari UAT adalah dokumen yang menunjukkan bukti pengujian, berdasarkan bukti pengujian inilah dapat diambil kesimpulan, apakah software yang diuji telah dapat diterima atau tidak.
Bahan untuk pengujian harus disiapkan oleh perancang aplikasi atau pengguna. Bahan untuk pengujian suatu modul program akan terdiri atas banyak data dan prosedur. Setiap data dan prosedur disebut sebagai kasus uji (test case).
Satu modul akan memiliki banyak kasus uji. Mengapa? Karena di dalam suatu program atau modul, pada umumnya, di dalamnya akan terdapat lebih dari satu prosedur atau fungsi. Setiap prosedur dan fungsi akan memiliki kegunaan sendiri, maka sudah seharusnya setiap fungsi atau prosedur harus diuji. Pengujian pada level prosedur atau fungsi disebut sebagai pengujian pada level unit.

Aspek pengujian meliputi:
pemeriksaan error, masih ada atau tidak
pemeriksaan apakah software telah sesuai dengan requirement atau belum
Untuk dapat melakukan pengujian dengan benar dan dapat dipertanggungjawabkan, maka harus disusun skenario untuk pengujian terlebih dahulu. Skenario pengujian adalah dokumen yang berisi persiapan dan langkah-langkah yang harus dilakukan untuk menguji software secara terinci. Langkah-langkah ini menunjukkan aspek-aspek software yang harus diuji.

Persiapan Pengujian Software
Pengujian software (software testing) membutuhkan persiapan, sebelum pengujian dilakukan. Mengapa? Karena proses testing harus dilakukan secara sistematis, tidak bisa secara sembarang, karena software yang dihasilkan harus bebas dari error, untuk mengurangi resiko kerugian yang akan diderita oleh penggunanya. Produk software harus menguntungkan penggunanya pada saat digunakan.

Berikut persiapan yang dapat dilakukan untuk dapat melakukan proses testing:

  • membuat checklist
    list yang akan ditest
    list requirement
    list rancangan
    list spesifikasi
    list manual, jika sudah ada - biasanya diperlukan untuk pengujian oleh user
  • pembuatan test case
    merupakan elemen dasar yang harus ditesting
    merupakan list yang independent
  • pembuatan grup test case
    kumpulan dari beberapa test case
    merupakan list yang akan memiliki status hasil test
  • pembuatan modul test
    pembuatan skenario testing
    terdiri atas beberapa grup test case
    diasosiasikan dengan fungsionalitas modul
    mengacu kepada dokumen requirement dan desain/spec program
  • pembuatan package testing
  • pembuatan produk test

Dengan dimilikinya checklist, kita akan dapat mengetahui progress dari kegiatan testing itu sendiri. Mana yang sudah selesai dilakukan test, mana yang belum. Mana yang sudah dilakukan test pun, bisa diketahui mana yang benar modulnya sudah selesai, dan mana yang belum selesai. Jadi tidak sekedar mengetahui mana yang sudah dan mana yang belum.

Proses Pengujian
Proses pengujian haruslah sistematis, dan jika mungkin dibantu dengan menggunakan software, yang bisa membantu dalam proses pengujian. Proses pengujian tidak harus dilakukan secara manual, tetapi juga harus bisa dilakukan dengan diotomatisasi.

Proses pengujian software dapat dibedakan menjadi:
pengujian manual (manual testing)
pengujian diotomatisasi (automated testing)
gabungan manual dan otomatis manual dan otomatis

Pengujian manual merupakan pengujian yang umum dilakukan oleh banyak tester. Proses pengujian manual membutuhkan suatu prosedur baku, ketekunan, dan ketelitian dari orang yang berperan sebagai penguji (tester). Mengapa? Karena proses pengujian merupakan proses yang berulang, dan bisa jadi sangat menjemukan.

Pengujian yang diotomatisasi merupakan proses pengujian yang menggunakan alat bantu, dalam hal ini software untuk pengujian (testing software). Proses pengujian dirancang agar dapat dilakukan oleh software. Kita bisa membuat program dengan software untuk pengujian, agar proses pengujian dapat dilakukan secara otomatis. Software pengujian sangat diperlukan untuk membantu proses pengujian yang sifatnya berulang dan banyak sekali.

Gabungan antara manual dan otomatis, merupakan proses pengujian yang ideal, karena tetap saja bahwa proses pengujian membutuhkan keputusan manusia sebagai penguji. Banyak pertimbangan dalam proses pengujian tidak bisa dimasukkan ke dalam software untuk pengujian yang diotomatisasi.

Suatu proses pengujian software (software testing process) memerlukan software yang bisa membantu proses pengujian.

Proses pengujian yang umum dilakukan adalah dengan menjalankan software aplikasi yang telah selesai dibuat oleh pemrogram. Kemudian aplikasi dicoba dari awal sampai dengan akhir dengan menggunakan langkah (skenario) dan data yang telah disiapkan.

Secara mudah dan sederhana, suatu aplikasi akan dianggap telah lulus pengujian, apabila setelah dicoba, aplikasi dapat merekam dan memroses data yang dimasukkan, kemudian menghasilan luaran sesuai dengan yang diharapkan, tanpa ada kesalahan sedikitpun.

Pengujian software tidak dilakukan oleh pemrogram saja, tetapi juga harus melibatkan pihak ketiga, pihak yang independent, yang akan memberikan justifikasi bahwa software aplikasi yang dibuat telah lulus dari pengujian.

Permasalahan yang sering timbul apabila hasil dari proses pengujian yang masih bermasalah, dalam artian bahwa software aplikasi belum lulus uji, adalah bagaimana menunjukkan di mana letak kesalahan yang menyebabkan software belum lulus uji.

Pada proses pengujian yang masih konvensional, manual, tanpa ada bantuan software pendukung untuk pengujian, penguji melaporkan hasil pengujiannya dengan menggunakan laporan secara lisan. Akibatnya adalah bahwa seringkali laporan kesalahan tersebut tidak dapat tersampaikan dengan baik, atau bahkan sering kali terlewatkan atau terlupakan sebagai bagian pekerjaan programmer yang harus memperbaikinya.

Pada tingkatan berikutnya, tester telah melakukan pengujian dengan memberikan laporan secara tertulis deskriptif. Pemrogram dapat menggunakan laporan ini untuk bekerja memperbaiki program, sehingga pemrogram bisa memiliki daftar modul yang harus diperbaiki. Pemrogram bisa memeriksa mana saja yang sudah dan mana yang belum diperbaiki. Masalh masih timbul, karena secara deskriptif, kesalahan yang ada tidak dapat dibayangkan di mana letaknya.

Pada tingkatan berikutnya, penguji harus menggunakan software yang dapat merekam gambar dari kesalahan yang terjadi. Penguji dapat melakukan capture (menangkap dan menyimpan) screen yang menunjukkan program yang diuji pada saat ‘error’. Dengan adanya gambar yang menunjukkan kesalahan, pemrogram dapat langsung mengetahui di mana letak kesalahannya.

Proses capture screen dapat menggunakan fasilitas dari sistem operasi, jika pengguna menggunakan Windows, maka pengguna dapat dengan mudah melakukan penekanan tombol keyboard PrtSc (PrintScreen).

Akan tetapi seringkali terjadi, timbulnya kesalahan sewaktu-waktu. Pada kasus seperti ini, maka penguji harus dapat melakukan pengujian dengan melakukan proses pengujian secara lengkap terekam. Setiap langkah dari skenario diikuti dan direkam. Penguji dapat melaporkan kesalahan yang terjadi secara lebih lengkap. Pemrogram dapat mempelajari kejadian kesalahan dengan lebih teliti.

Jika kita lihat permasalahan di atas, maka kita membutuhkan suatu software yang bisa merekam proses pengujian dari awal sampai dengan akhir. Software untuk pengujian harus dapat membantu dari proses pembuatan skenario, pelaksanaan skenario, dan proses pelaporan hasil pengujian.

Untuk membantu mengelola skenario sampai dengan merekam proses dan hasil pengujian, maka kita dapat menggunakan software:


Testlink (http://testlink.org/) Software berbasis web yang digunakan untuk membuat membuat suatu daftar kasus uji yang akan didaftarkan pada setiap skenario dari komponen/modul dari suatu produk. Daftar kasus uji untuk setiap skenario untuk pengujian. Dari data inilah tester akan melakukan pengujian, dan menuliskan setiap pengujian yang dilakukan ke dalam daftar.

Bugzilla (http://www.bugzilla.org/) (Mantis - http://www.mantisbt.org) Software ini harus dihubungkan dengan Testlink, digunakan untuk melakukan perekaman data modul yang belum lulus uji, yang harus diperiksa dan diperbaiki oleh pemrogram. Pemrogram harus bekerja memperbaiki dan melaporkan hasil uji ini. Tester akan melihat data hasil uji dan perbaikan dari programmer, jika masih belum benar, tester akan menuliskan bahwa program masih tetap harus diperbaiki.
screen capture atau yang lebih baik adalah video capture - avi recorder

(http://www.bobyte.com/AviScreen/index.asp) Software ini sangat dibutuhkan untuk menyimpan bukti proses pengujian dilakukan. Apabila terjadi kesalahan, maka bagaimana terjadinya kesalahan untuk rekonstruksi akan dapat dilihat oleh pemrogram. Penggunaan video capture akan sangat bermanfaat, karena pemrogram dapat dengan mudah menjalankan video ini untuk melakukan rekonstruksi bagaimana kesalahan bisa terjadi, di mana dan kapan terjadi errornya.

Konsekuensi dari proses pengujian ini adalah kita harus memiliki space harddisk yang cukup memadai, untuk dapat merekam semua proses yang dilakukan selama proses pengujian. Jika pengujian telah selesai, maka rekaman hasil pengujian dapat dihapus, tetapi sebaiknya, sebelumnya dihapus terlebih dahulu.

Semoga Uraian ini dapat bermanfaat bagi para mengembang software

Monday, June 18, 2007

Cyber University,
Teknologi Informasi, dan
Perguruan Tinggi di Indonesia


Pendahuluan
Perkembangan teknologi informasi, dan Internet khususnya, telah menciptakan beberapa “produk” baru. Paling tidak, ada istilah-istilah baru yang mulai muncul seperti electronic commerce atau e-commerce, eBook, e-learning dan sejumlah kata dengan awalan e-. Selain kata-kata yang berawalan e-, muncul juga istilah yang menggunakan kata cyber, seperti cyberlaw dan cyber university. Tulisan ini akan bercerita sedikit mengenai cyber university. Kata cyber sendiri muncul dari kata cybernetics1, yang mana dia menjelaskan sebuah cara untuk mengendalikan (robot) dari jarak jauh. Jadi kata cyber memberikan konotasi “pengendalian” dan “jarak jauh”. Konsep cyber university terkait dengan hal lain seperti distance learning, cyber campus, virtual university, e-education, e-classes dan bentuk kelas jarak jauh lainnya yang memberikan gelar (degree) kepada pesertanya. Cyber university menggunakan komputer dan jaringan komputer (Internet, LAN, WAN) untuk melaksanakan kegiatan atau fungsinya. Dalam sebuah cyber university ada:

koleksi materi dalam format digital (silabus, buku teks, materi kuliah, pekerjaan rumah, latihan, ujian, bacaan referensi lainnya, eBooks)
bulletin / discussion board untuk diskusi secara asinkron (dimana orang tidak harus ada atau hadir pada saat yang sama)
chat room untuk melakukan diskusi secara real time (mode sinkron dimana orang yang hadirlah yang dapat berdiskusi)
cyber / virtual class


Cyber university di luar negeri
Di luar negeri, konsep kuliah jarak jauh sudah lama diterapkan dengan adanya program korespondensi. Mahasiswa dapat mengikuti program ini melalui surat konvensional. Penggunaan teknologi informasi dan Internet merupakan kelanjutan logis dari kuliah jarak jauh konvensional.
Cyber university berbeda dengan program korespondensi. Pada program cyber university, interaksi dan aktivitas bersama (collaboration) lebih banyak dilakukan dibandingkan dengan program korespondensi konvensional yang cenderung self pace. Untuk itu perlu ada perubahan (adjustment) pendekatan karena dia tidak langsung merupakan lanjutan yang linier dari program kulai jarak jauh korespondensi.


Cyber university di Indonesia
Di Indonesia sudah ada Universitas Terbuka (UT) yang menyelenggarakan program jarak jauh. Namun saya belum mengetahui kesuksesan (dan permasalahan) dari program UT ini. Jika pelaksanaan kuliah jarak jauh UT ini masih mengalami masalah, maka dapat diprediksi bahwa cyber university pun akan mengalami masalah. Sebelum kita “berlari” dengan cyber university, kita harus belajar “merangkak” dengan kuliah jarak jauh ini.
Ada beberapa permasalahan pendidikan di Indonesia yang berbeda dengan negara lain. Salah satu masalah yang besar adalah “kegilaan” kita terhadap gelar sehingga cara apapun ditempuh untuk mendapatkan gelar. Termasuk dalam cara tersebut adalah jual beli gelar. Ditakutkan bahwa cyber university ini hanya akan menjadi tempat jual beli gelar saja.
Banyak orang yang masih skeptis dengan cyber university di Indonesia. Kualitas pendidikan konvensional dengan tatap muka saja masih rendah, apalagi jika pendidikan dilakukan dari jarak jauh tanpa tatap muka. Mahasiswa pada universitas konvensional masih menghadapi kesulitan untuk menyerap ilmu. Apakah ini dikarenakan dosen pada universitas yang bersangkutan tidak pandai menjelaskan? Jika memang demikian, mungkin cyber university dapat membantu dengan memberikan pilihan atua memberikan suplemen dosen. Ataukah mahasiswa yang malas untuk berusaha dan belum dewasa dalam mengatur cara belajarnya (waktu belajar)? Jika ini masalahnya, maka cyber university tidak memecahkan masalah dan bahkan akan memperburuk situasi. Inti utama dari semuanya ini adalah adanya kekhawatiran bahwa cyber university ini tidak membawa manfaat malah menambah masalah. Kendala-kendala implementasi cyber university di Indonesia yang lebih rinci akan dibahas pada bagian yang terpisah.

Analogi Dunia Pendidikan dengan Dunia Musik
Untuk mencoba lebih mengerti tentang permasalahan yang akan terjadi dengan cyber university atau “pendidikan digital”, saya ingin mencoba menganalogikan dunia pendidikan dengan dunia musik. Analogi ini saya ambil karena ada beberapa persamaan, seperti misalnya materi musik dan materi pendidikan dapat dibuat dalam format digital dengan cara di-digital-kan (digitalized), atau persamaan dalam live show musik dan kuliah tatap muka. Banyak hal yang dapat dipelajari dari analogi ini.

Dunia Pendidikan Digital
Dunia pendidikan (digital) akan mengalami perjalan yang mirip dengan dunia musik. Secara umum dunia ini dimulai dengan live teaching dengan ermasalahan yang sama dengan live show seperti biaya yang mahal, jangkauan
pendidikan yang terbatas, terbatasnya jam kuliah, sulit mendapatkan materi (guru) yang berkualitas. Mau tidak mau, akan muncul “industri rekaman pendidikan”.

Peran Teknologi Informasi dalam Cyber University
Teknologi informasi beserta dengan teknologi komputer dan telekomunikasi merupakan pendukung terciptanya cyber university.

Komputer
Kemampuan komputasi (computing power) dari komputer meningkat dua (2) kali lipat setiap delapan belas (18) bulan sesuai dengan hukum Moore. Prosesor Intel Pentium IV sudah memiliki kemampuan yang lebih dari cukup untuk keperluan cyber university. Harganya pun sudah dapat dikatakan tidak terlalu mahal. Kemampuan ini akan terus meningkat dengan adanya miniaturisasi komponen dengan adanya nanotechnology. Dengan kata lain, teknologi sudah siap dan menanti untuk aplikasi.

Perangkat Pengakses Informasi
Perangkat pengakses informasi sudah tidak dibatasi lagi oleh komputer desktop. Laptop mulai hilang digantikan dengan notebook yang tipis dan ringan. Muncul juga perangkat Personal Digital Assistant (PDA) atau palm top yang dapat digenggam yang dapat mengakses informasi seperti layaknya sebuah komputer biasa. Belum lagi perangkat cellphone atau handphone yang juga mulai populer (dan sangat murah). Perangkat pengakses informasi sudah tersedia dan siap digunakan.

Penyimpanan Data
Teknologi penyimpanan data (storage) juga meningkat sehingga memungkinkan penyimpanan data dalam jumlah yang besar ke dalam sebuah perangkat dalam ukuran kecil. Harddisk saat ini berukuran MegaBytes (MB). Bahkan storage dalam ukuran TerraBytes (TB) juga sudah lazim digunakan pada data center. Storage besar ini memungkinkan kita menyimpan materi digital dari “rekaman kuliah”. Tidak ada lagi alasan kekurangan tempat penyimpanan.

Jaringan (Komputer)
Jaringan komputer atau networking mulai ada dimana-mana (ubiquitous). Perguruan tinggi mulai dilengkapi dengan Local Area Network (LAN) dan terhubung ke Internet. Akses Internet mulai banyak didapati di rumahrumah, kantor, dan warnet. Harga akses ke Internet pun mulai terjangkau.

eBooks dan perpustakaan digital
Materi tulisan dalam bentuk digital mulai muncul dalam bentuk eBooks. Pembaca eBook dalam bentuk hardware dan software mulai banyak tersedia. Buku-buku sudah dapat dibaca dalam bentuk elektronik. Bahkan sudah ada perpustakaan digital yang menyediakan buku untuk dipinjam dengan pembaca eBook melalaui jaringan komputer. Topik ini menjadi pembahasan sendiri

Kendala Penerapan Cyber University di Indonesia
Ada beberapa kendala dalam penerapan atau implementasi cyber university di Indonesia.
Kurangnya ketersediaan materi pengajaran dalam Bahasa Indonesia. Inisiatif beberapa cyber university di Indonesia lebih banyak menggunakan materi dari luar negeri. Bahkan ada cyber university yang sebenarnya hanya outlet bagi perguruan tinggi di luar negeri. Masih perlu inisiatif-inisiatif untuk membuat materi pengajaran dalam bentuk digital.
Kurangnya kemampuan berbahasa Inggris. Karena materi dalam bahasa Indonesia belum banyak, terpaksa kita akan banyak menggunakan materi dalam bahasa Inggris (seperti halnya penggunaan buku teks berbahasa Inggris yang saat ini kita lakukan). Untuk itu pemahaman bahasa Inggris merupakan salah satu kebutuhan. Mahasiswa diharapkan dapat mengerti bahasa Inggris.
Akses Internet belum merata dan masih relatif mahal di beberapa tempat. Meskipun trend yang adalah adalah akses Internet mulai menyebar dengan harga yang mulai murah, namun pada kenyataannya masih banyak tempat di Indonesia yang belum memiliki saluran telepon. Bahkan beberapa tempat di Indonesia masih belum miliki listrik.
Guru, dosen, atau staf pengajar belum siap. Bila pengajar belum siap, maka proses penyampaian materi kuliah akan terhambat. Masalah ini diharapkan dapat berangsur-angsur terselesaikan. Namun masalah ini tidak dapat hilang begitu saja tanpa ada usaha untuk menghilangkannya. Untuk itu perlu ada upaya untuk meningkatkan kemampuan guru, dosen, atau staf pengajar.
Proses belajar cara baru ini membutuhkan waktu untuk belajar. Ada learning process yang harus dilalui.
Perijinan. Siapa saja yang berhak menyelenggarakan cyber university? Hal ini terkait dengan standar mutu. Pemerintah akan menerapkan standar untuk menjaga mutu dari lulusan cyber university ini sehingga diperkirakan akan banyak “hambatan” di sisi perijinan.

Ancaman atau Kesempatan
Cyber university dapat menjadi ancaman (threat) atau kesempatan (opportunity) bagi perguruan tinggi di Indonesia. Jika tidak siap, maka cyber university ini dapat menjadi ancaman. Perguruan tinggi dari tempat lain (dan bahkan dari luar negeri) dapat datang ke tempat anda dan mengambil mahasiswa setempat. Hal ini merupakan ancaman berat bagi perguruan tinggi setempat. Namun untuk terjun langsung mengimplementasikan cyber university tidak mudah. Untuk itu fenomena cyber university ini perlu dicermati.
Paling tidak, cyber university dapat dimulai dengan sharring resources dari beberapa universitas. Materi pengajaran dapat dikembangkan bersamasama untuk mengurangi beban biaya. Kualitas dari perguruan tinggi masingmasing dapat ditingkatkan bersama-sama dengan mengambil pelajaran terbaik.

Penutup
Suka atau tidak suka, fenomena cyber university ini sudah muncul. Ada dampak positif dan negatif dari fenomena ini. Hal ini harus kita cermati bersama-sama. Jangan sampai cyber university lebih banyak menghasilkan masalah dibandingkan dengan manfaat. Misalnya, jangan sampai cyber university ini dijadikan tempat jual beli gelar. Mudah-mudahan tulisan singkat ini dapat memberikan wawasan terhadap fenomena cyber university.