tak-tik-tak-tik ^_^

Pengujian Aplikasi dengan AutoIt

Pengujian perangkat lunak menurut Galin adalah proses formal yang dilakukan oleh tim khusus pengujian dimana suatu unit perangkat lunak, beberapa unit perangkat lunak yang terintegrasi atau paket perangkat lunak yang diperiksa secara keseluruhan dengan menjalankan program pada komputer.

Salah satu perangkat lunak yang dapat digunakan untuk menguji aplikasi adalah AutoIt. AutoIt adalah suatu interpreter yang freeware untuk otomasi pengujian software di Windows,  dan merupakan alternatif dari ScriptIt yang merupakan bawaan dari Windows NT. ScriptIt digunakan untuk membuat script batch yang digunakan untuk mengotomatisasi pekerjaan administrator di lingkungan Windows NT.

AutoIt merupakan software yang khusus dikembangkan untuk melakukan otomasi. Tetapi penggunaannya bisa dikembangkan untuk membuat program yang digunakan untuk melakukan pengujian software yang diotomasi, sehingga proses pengujian secara manual tidak perlu lagi dilakukan. Penguji bisa juga melakukan penjadwalan kepada komputer, untuk menjalankan file script yang berisi urutan pengujian program yang dilakukan.

Fasilitas otomasi program di lingkungan Windows NT ini sudah ada sejak 1998. AutoIt merupakan software baru beberapa tahun. Tetapi tetap dikembangkan, sedangkan ScriptIt sudah tidak dikembangkan. AutoIt awalnya ditujukan untuk keperluan “roll-out” untuk mengotomatiskan dan mengkonfigurasi ratusan PC, namun seiring jalan berkembang menjadi sebuah bahasa scripting yg mumpuni yang mendukung banyak expression, user-function, loop, dan sebagainya. Continue reading

IT Forensics

Pengenalan IT Forensics

IT Forensics memiliki beberapa definisi, antara lain :

  • Definisi sederhana, yaitu penggunaan sekumpulan prosedur untuk melakukan pengujian secara menyeluruh suatu sistem komputer dengan mempergunakan software dan tool untuk memelihara barang bukti tindakan kriminal.
  • Menurut Judd Robin, yaitu penerapan secara sederhana dari penyidikan komputer dan teknik analisisnya untuk menentukan bukti-bukti hukum yang mungkin.
  • Secara umum IT Forensics adalah ilmu yang berhubungan dengan pengumpulan fakta dan bukti pelanggaran keamanan sistem informasi serta validasinya menurut metode yang digunakan (misalnya metode sebab-akibat).

IT forensik dapat mengamankan dan menganalisa bukti digital dengan cara menjabarkan keadaan terkini dari suatu artefak digital. Istilah artefak digital dapat mencakup sebuah sistem komputer, media penyimpanan (harddisk, flashdisk, CD-ROM), sebuah dokumen elektronik (misalnya sebuah email atau gambar), atau bahkan sederetan paket yang berpindah melalui jaringan komputer. IT forensik dapat digunakan untuk mendapatkan fakta-fakta obyektif dari sebuah insiden / pelanggaran keamanan sistem informasi. Fakta-fakta tersebut setelah diverifikasi akan menjadi bukti-bukti (evidence) yang akan digunakan dalam proses hukum. Selain itu IT forensik dapat digunakan untuk mengamankan dan menganalisa bukti digital.

Beberapa alasan lain mengapa perlu digunakan IT forensik adalah:

  1. Dalam kasus hukum, teknik komputer forensik sering digunakan untuk menganalisis sistem komputer milik terdakwa (dalam kasus pidana) atau milik penggugat (dalam kasus perdata).
  2. Untuk memulihkan data jika terjadi kegagalan atau kesalahan hardware atau software.
  3. Untuk menganalisa sebuah sistem komputer setelah terjadi perampokan, misalnya untuk menentukan bagaimana penyerang memperoleh akses dan apa yang penyerang itu lakukan.
  4. Untuk mengumpulkan bukti untuk melawan seorang karyawan yang ingin diberhentikan oleh organisasi.
  5. Untuk mendapatkan informasi tentang bagaimana sistem komputer bekerja untuk tujuan debugging, optimasi kinerja, atau reverse-engineering.

IT Forensik mulai digunakan pada tahun 2002. Diperkirakan terdapat sekitar 544 juta orang terkoneksi secara online. Meningkatnya populasi orang yang terkoneksi dengan internet akan menjadi peluang bagi munculnya kejahatan komputer dengan beragam variasi kejahatannya. Dalam hal ini terdapat sejumlah tendensi dari munculnya berbagai gejala kejahatan komputer, antara lain: Continue reading

Peraturan dan Regulasi (Bag.2)

Pada tulisan sebelumnya telah dibahas tentang Perbandingan cyber law, Computer Crime Act (Malaysia), dan Council of Europe Convention on Cyber Crime. Sekarang masuk pada bagian kedua. Disini akan dijelaskan tentang UU No.19 ( hak cipta ), UU No.36 (telekomunikasi), serta RUU tentang informasi dan transaksi elektronik (ITE).

UU No.19 tentang Hak Cipta

Ketentuan Umum

Hak cipta (lambang internasional: ©, Unicode: U+00A9) adalah hak eksklusif Pencipta atau Pemegang Hak Cipta untuk mengatur penggunaan hasil penuangan gagasan atau informasi tertentu dengan tidak mengurangi pembatasan-pembatasan menurut peraturan perundang-undangan yang berlaku.
Hak cipta berlaku pada berbagai jenis karya seni atau karya cipta atau “ciptaan”. Ciptaan tersebut dapat mencakup puisi, drama, serta karya tulis lainnya, film, karya-karya koreografis (tari, balet, dan sebagainya), komposisi musik, rekaman suara, lukisan, gambar, patung, foto, perangkat lunak komputer, siaran radio dan televisi, dan (dalam yurisdiksi tertentu) desain industri.
Ciptaan tentunya lahir dari yang namanya pencipta. Pencipta itu sendiri adalah seorang atau beberapa orang secara bersama-sama yang atas inspirasinya melahirkan suatu Ciptaan berdasarkan kemampuan pikiran, imajinasi, kecekatan, keterampilan, atau keahlian yang dituangkan ke dalam bentuk yang khas dan bersifat pribadi.
Pencipta sebagai Pemilik Hak Cipta, atau pihak yang menerima hak tersebut dari Pencipta, atau pihak lain yang menerima lebih lanjut  hak dari  pihak yang menerima hak tersebut adalah Pemegang Hak Cipta. Izin yang diberikan oleh Pemegang Hak Cipta kepada pihak lain untuk mengumumkan dan/atau memperbanyak Ciptaannya dengan persyaratan tertentu menggunakan izin lisensi. Dalam undang-undang itu sendiri, pengertian hak cipta adalah “hak eksklusif bagi pencipta atau penerima hak untuk mengumumkan atau memperbanyak ciptaannya atau memberikan izin untuk itu dengan tidak mengurangi pembatasan-pembatasan menurut peraturan perundang-undangan yang berlaku” (UU 19/2002 pasal 1).

Continue reading

Peraturan dan Regulasi (Bag.1)

Artikel tentang Peraturan dan Regulasi ini terbagi dalam 2 bagian. Di bagian pertama ini akan dibahas tentang Perbandingan Cyber Law, Computer Crime Act (Malaysia), dan Council of Europe Convention on Cyber Crime.

Sebelumnya, mari kita pahami terlebih dahulu definisi masing-masing dari peraturan dan regulasi.

Peraturan adalah sesuatu yang disepakati dan mengikat sekelompok orang/ lembaga dalam rangka mencapai suatu tujuan dalam hidup bersama.

Regulasi adalah “mengendalikan perilaku manusia atau masyarakat dengan aturan atau pembatasan.” Regulasi dapat dilakukan dengan berbagai bentuk, misalnya: pembatasan hukum diumumkan oleh otoritas pemerintah, regulasi pengaturan diri oleh suatu industri seperti melalui asosiasi perdagangan, Regulasi sosial (misalnya norma), co-regulasi dan pasar. Seseorang dapat, mempertimbangkan regulasi dalam tindakan perilaku misalnya menjatuhkan sanksi (seperti denda).

Setelah memahami definisi di atas, mari kita masuk ke pembahasannya.

A. Perbandingan Cyber Law

Cyberlaw adalah hukum yang digunakan di dunia cyber (dunia maya), yang umumnya diasosiasikan dengan internet. Cyberlaw dibutuhkan karena dasar atau fondasi dari hukum di banyak negara adalah “ruang dan waktu”. Sementara itu, internet dan jaringan komputer mendobrak batas ruang dan waktu ini.

Semakin banyak munculnya kasus “CyberCrime” di Indonesia, seperti pencurian kartu kredit, hacking beberapa situs, menyadap transmisi data orang lain, misalnya email, dan memanipulasi data dengan cara menyiapkan perintah yang tidak dikehendaki ke dalam programmer komputer. Maka dibuatlah sebuah regulasi konten, yaitu :
  1. Keamanan nasional : instruksi pada pembuatan bom, produksi obat/racun tidak sah, aktivitas teroris.
  2. Protection of minors (Perlindungan pelengkap) : abusive forms of marketing, violence, pornography
  3. Protection of human dignity(Perlindungan martabat manusia) : hasutan kebencian rasial, diskriminasi rasial.
  4. Keamanan ekonomi : penipuan, instructions on pirating credit cards, scam, cybercrime.
  5. Keamanan informasi : Cybercrime, Phising
  6. Protection of Privacy
  7. Protection of Reputation
  8. Intellectual Property

Continue reading

Kriteria Manajer Proyek Yang Baik

Manajer Proyek (Project Manager) adalah seseorang yang bertindak sebagai pimpinan dalam suatu proyek. PM  sangat berperan penting dalam adanya suatu proyek, karena kegagalan dan keberhasilan dari proyek tersebut di tentukan oleh PM itu sendiri.

Dan tugas seorang manager adalah bagaimana mengintegrasikan berbagai macam karakteristik, budaya, pendidikan dan lain sebagainya kedalam suatu tujuan organisasi yang sama dengan cara melakukan mekanisme penyesuaian.
Adapun mekanisme yang diperlukan untuk menyatukan variabel diatas adalah sebagai berikut:

  • Pengarahan (direction) yang mencakup pembuatan keputusan, kebijaksanaan, supervisi, dan lain-lain.
  • Rancangan organisasi dan pekerjaan.
  • Seleksi, pelatihan, penilaian, dan pengembangan.
  • Sistem komunikasi dan pengendalian.
  • Sistem reward.

Berikut ini penjelasan kriteria manajer yang baik menurut pendekatannya kepada landasan Pancasila yaitu sebagai berikut :

  1. Bertaqwa kepada Tuhan Yang Maha Esa, dengan selalu bertaqwa kepada Tuhan Yang Maha Esa, maka sifat-sifat yang baik dari seorang manajer akan terjamin dalam pelaksanaannya.
  2. Ing ngarso sung tulodho, memberi suri teladan kepada para bawahannya dalam lingkungan organisasinya, dengan contoh/pelaksanaan kerja secara riil.
  3. Ing madya mangun karso,seorang manajer harus mampu membangkitkan semangat kerja para bawahannya, berusaha dan berpikir sendiri dan memberi kesempatan dan memupuk kemampuan bawahannya untuk dapat berkembang.
  4. Tut wuri handayani, seorang manajer harus mampu mendorong para bawahannya agar berani berjalan di depan dan sanggup bertanggung jawab, berjalan di depan artinya mengambil prakarsa dalam melaksanakan tugas tertentu.
  5. Waspodo purbo waseso, selalu waspada, sanggup mengawasi dan memberi koreksi kepada para bawahannya.
  6. Ambek paromo arto, dapat memilih dengan tepat mana yang harus didahulukan.
  7. Prasojo, sederhana atau tidak berlebih-lebihan.
  8. Setyo, bersikap loyal baik terhadap tugas maupun terhadap sesama anggota organisasi secara timbal balik (vertikal dan horizontal) yang didasari oleh semangat kekeluargaan / kesetiakawanan.
  9. Gemi nastiti, mampu mengatasi penggunaan/pengeluaran segala sesuatu kepada yang benar-benar diperlukan (tidak bersifat boros).
  10. Beloko, bersedia untuk dikoreksi oleh pihak lain dan berani mempertanggung jawabkan atas segala tindakannya.
  11. Legowo, berjiwa besar dan ikhlas apabila suatu saat untuk menyerahakan segala tanggung jawabnya dan kedudukannya kepada generasi berikutnya (regenerasi).

Hal tersebut memang tidak mengherankan karena posisi Manajer Proyek memegang peranan kritis dalam keberhasilan sebuah proyek terutama di bidang teknologi informasi. Ada 3 (tiga) karakteristik yang dapat digunakan untuk mengukur tingkat kualifikasi seseorang untuk menjadi Manajer Proyek yaitu:

1. Karakter Pribadinya

  • Memiliki pemahaman yang menyeluruh mengenai teknis pekerjaan dari proyek yang dikelola olehnya.
  • Mampu bertindak sebagai seorang pengambil keputusan yang handal dan bertanggung jawab.
  • Memiliki integritas diri yang baik namun tetap mampu menghadirkan suasana yang mendukung di lingkungan tempat dia bekerja.
  • Asertif
  • Memiliki pengalaman dan keahlian yang memadai dalam mengelola waktu dan manusia.

2. Karakteristik Kemampuan Terkait dengan Proyek yang Dikelola

  • Memiliki komitmen yang kuat dalam meraih tujuan dan keberhasilan proyek dalam jadwal, anggaran dan prosedur yang dibuat.
  • Pelaksanakan seluruh proses pengembangan proyek IT sesuai dengan anggaran dan waktu yang dapat memuaskan para pengguna/klien.
  • Pernah terlibat dalam proyek yang sejenis.
  • Mampu mengendalikan hasil-hasil proyek dengan melakukan pengukuran dan evaluasi kinerja yang disesuaikan dengan standar dan tujuan yang ingin dicapai dari proyek yang dilaksanakan.
  • Membuat dan melakukan rencana darurat untuk mengantisipasi hal-hal maupun masalah tak terduga.
  • Membuat dan menerapkan keputusan terkait dengan perencanaan.
  • Memiliki kemauan untuk mendefinisikan ulang tujuan, tanggung jawab dan jadwal selama hal tersebut ditujukan untuk mengembalikan arah tujuan dari pelaksanaan proyek jika terjadi jadwal maupun anggaran yang meleset.
  • Membangun dan menyesuaikan kegiatan dengan prioritas yang ada serta tenggat waktu yang ditentukan sebelumnya.
  • Memiliki kematangan yang tinggi dalam perencanaan yang baik dalam upaya mengurangi tekanan dan stres sehingga dapat meningkatkan produktifitas kerja tim.
  • Mampu membuat perencanaan dalam jangka panjang dan jangka pendek.

3. Karakteristik Kemampuan Terkait dengan Tim yang Dipimpin

  • Memiliki kemampuan dan keahlian berkomunikasi serta manajerial.
  • Mampu menyusun rencana, mengorganisasi, memimpin, memotivasi serta mendelegasikan tugas secara bertanggung jawab kepada setiap anggota tim.
  • Menghormati para anggota tim kerjanya serta mendapat kepercayaan dan penghormatan dari mereka.
  • Berbagi sukses dengan seluruh anggota tim.
  • Mampu menempatkan orang yang tepat di posisi yang sesuai.
  • Memberikan apresiasi yang baik kepada para anggota tim yang bekerja dengan baik.
  • Mampu mempengaruhi pihak-pihak lain yang terkait dengan proyek yang dipimpinnya untuk menerima pendapat-pendapatnya serta melaksanakan rencana-rencana yang disusunnya.
  • Mendelegasikan tugas-tugas namun tetap melakukan pengendalian melekat.
  • Memiliki kepercayaan yang tinggi kepada para profesional terlatih untuk menerima pekerjaan-pekerjaan yang didelegasikan darinya.
  • Menjadikan dirinya sebagai bagian yang terintegrasi dengan tim yang dipimpinnya.
  • Mampu membangun kedisiplinan secara struktural.
  • Mampu mengidentifikasi kelebihan-kelebihan dari masing-masing anggota tim serta memanfaatkannya sebagai kekuatan individual.
  • Mendayagunakan setiap elemen pekerjaan untuk menstimulasi rasa hormat dari para personil yang terlibat dan mengembangkan sisi profesionalisme mereka.
  • Menyediakan sedikit waktu untuk menerima setiap ide yang dapat meningkatkan kematangan serta pengembangan dirinya.
  • Selalu terbuka atas hal-hal yang mendorong kemajuan.
  • Memahami secara menyeluruh para anggota tim yang dipimpinnya dan mengembangkan komunikasi efektif di dalamnya.

Referensi :

COCOMO

Apakah COCOMO itu?

COCOMO atau Constructive Cost Model adalah model algoritma estimasi biaya perangkat lunak yang dikembangkan oleh Barry Boehm pada tahun 1981. Model ini menggunakan dasar regresi formula, dengan parameter yang berasal dari data historis dan karakteristik proyek-proyek saat ini.

Pada tahun 1981, Barry Boehm mendesain COCOMO untuk memberikan estimasi jumlah Person-Months untuk mengembangkan suatu produk software. Referensi pada model ini dikenal dengan nama COCOMO 81.
Pada tahun 1990, muncul suatu model estimasi baru yang disebut dengan COCOMO II. Secara umum referensi COCOMO sebelum 1995 merujuk pada original COCOMO model yaitu COCOMO 81, kemudian setelah itu merujuk pada COCOMO II.

Model estimasi COCOMO telah digunakan oleh ribuan project manager suatu proyek perangkat lunak, dan berdasarkan pengalaman dari ratusan proyek sebelumnya. Tidak seperti model estimasi biaya yang lain, COCOMO adalah model terbuka, sehingga semua detail dipublikasikan, termasuk :

  • Dasar persamaan perkiraan biaya.
  • Setiap asumsi yang dibuat dalam model.
  • Setiap definisi.
  • Biaya yang disertakan dalam perkiraan dinyatakan secara eksplisit

Perhitungan paling fundamental dalam COCOMO model adalah penggunaan Effort Equation (Persamaan Usaha) untuk mengestimasi jumlah dari Person-Months yang dibutuhkan untuk pengembangan proyek. Sebagian besar dari hasil-hasil lain COCOMO, termasuk estimasi untuk Requirement dan Maintenance berasal dari persamaan tersebut.

Dalam perkembangannya, COCOMO memiliki 3 jenis implementasi, yaitu :

1. Basic COCOMO (COCOMO I 1981)

Menghitung dari estimasi jumlah LOC (Lines of Code). Pengenalan COCOMO ini diawali di akhir tahun 70-an. Sang pelopor, Boehm, melakukan riset dengan mengambil kasus dari 63 proyek perangkat lunak untuk membuat model matematisnya. Model dasar dari model ini adalah sebuah persamaan sebagai berikut :

effort = C * size^M

ket :
effort = usaha yang dibutuhkan selama proyek, diukur dalam person-months;
c dan M = konstanta-konstanta yang dihasilkan dalam riset Boehm dan tergantung pada penggolongan besarnya proyek perangkat lunak
size = estimasi jumlah baris kode yang dibutuhkan untuk implementasi, dalam satuan KLOC (kilo lines of code).

COCOMO berlaku untuk tiga kelas proyek perangkat lunak:

  • Organik proyek : “kecil” tim dengan pengalaman “baik” bekerja dengan “kurang dari kaku” persyaratan.
  • Semi-terpisah proyek : “sedang” tim dengan pengalaman bekerja dicampur dengan campuran persyaratan kaku kaku dan kurang dari.
  • Embedded proyek : dikembangkan dalam satu set “ketat” kendala (hardware, software, operasional).

2. Intermediate COCOMO (COCOMO II 1999)

Menghitung dari besarnya program dan cost drivers (faktor-faktor yang berpengaruh langsung kepada proyek), seperti: perangkat keras, personal, dan atribut-atribut proyek lainnya. Selain itu pada jenis ini, COCOMO mempergunakan data-data historis dari proyek-proyek yang pernah menggunakan COCOMO I, dan terdaftar pengelolaan proyeknya dalam COCOMO database. yang dijabarkan dalam kategori dan sub-kategori sebagai berikut :

a. Atribut produk (product attributes) :

1. Reliabilitas perangkat lunak yang diperlukan (RELY)
2. Ukuran basis data aplikasi (DATA)
3. Kompleksitas produk (CPLX)

b. Atribut perangkat keras (computer attributes)

1. Waktu eksekusi program ketika dijalankan (TIME)
2. Memori yang dipakai (STOR)
3. Kecepatan mesin virtual (VIRT)
4. Waktu yang diperlukan untuk mengeksekusi perintah (TURN)

c. Atribut sumber daya manusia (personnel attributes)

1. Kemampuan analisis (ACAP)
2. Kemampuan ahli perangkat lunak (PCAP)
3. Pengalaman membuat aplikasi (AEXP)
4. Pengalaman penggunaan mesin virtual (VEXP)
5. Pengalaman dalam menggunakan bahasa pemrograman (LEXP)

d. Atribut proyek (project attributes)

1. Penggunaan sistem pemrograman modern(MODP)
2. Penggunaan perangkat lunak (TOOL)
3. Jadwal pengembangan yang diperlukan (SCED)

COCOMO II EFFORT EQUATION

Model COCOMO II ini membuat estimasi dari usaha yang dibutuhkan (diukur dari Person-Month) berdasarkan keutamaan dalam estimasi anda akan ukuran proyek perangkat lunak (yang diukur dalam ribuan SLOC atau KSLOC) :

Effort = 2,94 * EAF * (KSLOC)E

ket:
EAF = Effort Adjustment Factor yang berasal dari Cost Drivers adalah produk dari effort multipliers yang terhubung pada masing-masing cost drivers untuk proyek.
E = Eksponen yang berasal dari Scale Drivers.

COCOMO II SCHEDULE EQUATION

COCOMO II Schedule Equation memprediksi jumlah bulan yang dibutuhkan untuk menyelesaikan proyek perangkat lunak anda. Durasi dari proyek berdasarkan pada usaha yang diprediksi oleh effort equation :

Duration = 3,67 * (Effort)SE

Dimana :
Effort = usaha dari COCOMO II effort equation.
SE = eksponen scheduled equation yang berasal dari Scale Drivers.

COCOMO II memiliki 3 model berbeda, yakni:
a) The Application Composition Model
Sesuai untuk pembangunan proyek dengan tools GUI-builder yang modern. Berdasar pada Object Points baru.
b) The Early Design Model
Model ini dapat digunakan untuk mendapat estimasi kasar biaya dan durasi dari suatu proyek sebelum menentukan arsitektur keseluruhan proyek tersebut. Model ini menggunakan sekumpulan kecil cost driver baru dan persamaan estimasi baru. Berdasar pada Unadjusted Function Points atau KSLOC.
c) The Post-Architecture Model
Ini adalah model COCOMO II yang paling detail. Digunakannya setelah membentuk arsitektur proyek secara menyeluruh. Model ini memiliki cost driver baru, aturan penghitungan baris yang baru, dan persamaan baru.

3. Advance COCOMO

Memperhitungkan semua karakteristik dari intermediate di atas dan cost drivers dari setiap fase (analisis, desain, implementasi, dsb) dalam siklus hidup pengembangan perangkat lunak. Model rinci kegunaan yang berbeda upaya pengali untuk setiap driver biaya atribut tersebut. Sensitif pengganda tahap upaya masing-masing untuk menentukan jumlah usaha yang dibutuhkan untuk menyelesaikan setiap tahap.

Pada COCOMO rinci, upaya dihitung sebagai fungsi dari ukuran program dan satu set driver biaya yang diberikan sesuai dengan tiap tahap siklus hidup rekayasa perangkat lunak. Fase yang digunakan dalam COCOMO rinci perencanaan kebutuhan dan perancangan perangkat lunak, perancangan detil, kode dan menguji unit, dan pengujian integrasi.

Referensi :

Alasan Menggunakan Software Open Source (+Kelebihan dan Kekurangannya)

 

Open Source adalah sebuah sistem baru dalam mendistribusikan perangkat lunak kepada pengguna dengan memberikan program dan source code nya secara gratis. Bahkan pengguna dapat mempelajari dan melakukan modifikasi untuk membuat software tersebut sesuai dengan kebutuhan mereka.

Isu-isu keamanan yang dihadapi sistem open source, mencakup beberapa filosofi keamanan umum dan bagaimana membuat lebih aman sistem tersebut dari para penyusup. Beberapa pengguna komputer yang merupakan anggota dari komunitas pengguna Open Source Software (OSS) dan free software berpendapat bahwa kode program mereka lebih aman karena kelemahan kode program mereka lebih mudah ditemukan dan diperbaiki oleh pemakai program tersebut. Sementara itu, komunitas hak-hak kepemilikan berpendapat bahwa pembukaan akses ke kode program pada OSS akan memudahkan bagi beberapa kelompok tertentu untuk menyerang program tersebut.

Fitur-fitur utama dari karakteristik open source adalah kebebasan user untuk:

  1. Menggunakan software sesuai keinginannya.
  2. Memiliki software yang tersedia sesuai kebutuhan.
  3. Mendistribusikan software kepada user lainnya.

Kebebasan yang tak terbatas bagi tiap orang untuk mengakses kode program merupakan pedang bermata dua bagi software itu sendiri. Hal ini disebabkan karena kebebasan ini memberikan informasi tentang kelemahan software. Kemudian, yang terjadi adalah eksploitasi kelemahannya. Para hacker akan menggunakan kelemahan ini untuk melakukan hal-hal yang dapat merugikan pengguna software tersebut. Akibatnya akan lebih buruk jika software tersebut merupakan software yang vital bagi pengguna karena akan memungkinkan terjadinya penipuan, pencurian identitas, pencurian informasi, dan sebagainya.

Beberapa keuntungan dari software open source, yaitu:

  1. Adanya hak untuk mendistribusikan modifikasi dan perbaikan pada kode.
  2. Ketersediaan source code dan hak untuk memodifikasi.
  3. Tidak disandera vendor, open source menggunakan format data terbuka, sehingga data menjadi transparan dan bisa dengan bebas diproses di sistem komputer yang berbeda-beda, sambil tetap menjaga keamananya. Dengan demikian, konsumen tidak lagi terikat pada kemauan vendor untuk dapat menggunakan data-datanya.
  4. Banyaknya tenaga (SDM) untuk mengerjakan proyek, proyek open source biasanya menarik banyak developer, misalnya pengembangan web server Apache menarik ribuan orang untuk ikut mengembangkan dan memantau.
  5. Kesalahan (bugs, error) lebih cepat ditemukan dan diperbaiki, hal ini dikarenakan jumlah developer-nya sangat banyak dan tidak dibatasi. Visual inspection (eye-balling) merupakan salah satu metodologi pencarian bugs yang paling efektif. Selain itu, source code yang tersedia membuat setiap orang dapat mengusulkan perbaikan tanpa harus menunggu dari vendor.
  6. Kualitas produk lebih terjamin, hal ini dikarenakan evaluasi dapat dilakukan oleh banyak orang sehingga kualitas produk dapat lebih baik. Namun, hal ini hanya berlaku untuk produk open source yang ramai dikembangkan orang. Tidak selamanya open source dikembangkan oleh banyak orang, karena bisa juga dilakukan oleh individual.
  7. Hemat biaya, sebagian besar developer ini tidak dibayar. Dengan demikian, biaya dapat dihemat dan digunakan untuk pengeluaran yang tidak dapat ditunda, misal membeli server untuk hosting web.
  8. Tidak mengulangi development, pengulangan (re-inventing the wheel) merupakan pemborosan. Adanya source code yang terbuka membuka jalan bagi seorang programmer untuk melihat solusi-solusi yang pernah dikerjakan oleh orang lain. Namun, pada kenyataannya tetap banyak pengulangan.
  9. User dapat memodifikasi dan mengunci agar hanya kalangan terbatas yang dapat membaca kode dan memodifikasinya.
  10. Mencegah software privacy yang melanggar hukum.

Beberapa kerugiannya adalah :

  1. Kurangnya SDM yang dapat memanfaatkan open source, ketersediaan source code yang diberikan dapat menjadi sia-sia, jika SDM yang ada tidak dapat menggunakannya. SDM yang ada ternyata hanya mampu menggunakan produk saja, Jika demikian, maka tidak ada bedanya produk open source dan yang propriertary dan tertutup.
  2. Tidak adanya proteksi terhadap HaKI, kebanyakan orang masih menganggap bahwa open source merupakan aset yang harus dijaga kerahasiannya. Hal ini dikaitkan dengan besarnya usaha yang sudah dikeluarkan untuk membuat produk tersebut. Karena sifatnya dapat di-abuse oleh orang-orang untuk mencuri ide dan karya orang lain.
  3. Kesulitan dalam mengetahui status project.
  4. Tidak ada garansi dari pengembangan.
  5. Limitasi modifikasi oleh orang – orang tertentu yang membuat atau memodifikasi sebelumnya.
  6. Untuk beberapa platform, contohnya JAVA yang memiliki prinsip satu tulis dan bisa dijalankan dimana saja, akan tetapi ada beberapa hal dari JAVA yang tidak competible dengan platform lainnya. Contohnya J2SE yang SWT – AWT bridge-nya belum bisa dijalankan di platform Mac OS.
  7. Open Source digunakan secara sharing, dapat menimbulkan resiko kurangnya diferensiasi antara satu software dengan yang lain, apabila kebetulan menggunakan beberapa open Source yang sama.

Referensi :


Follow

Get every new post delivered to your Inbox.