Pages

Minggu, 02 Oktober 2011

Pelanggaran dan Penyalahgunaan kemampuan Programming

Adapun beberapa pelanggaran yang umum dan sering terjadi adalah sebagai berikut :
  • Pelanggaran Copyright

    Pelanggaran ini merupakan pelanggaran dimana seorang programmer menggunakan ulang kode dengan hak cipta orang lain atau perusahaan lain dan menjual atau mengkomersilkan kembali kode tersebut dengan mengatas namakan hak cipta programmer tersebut. Untuk pelanggaran ini seorang programmer bisa diberikan sanksi berupa sanksi Hukum baik hukum pidana atau pun hukum perdata.
  • Pembuatan Virus Komputer

    Pelanggaran ini merupakan pelanggaran dimana seorang programmer dengan sengaja membuat sebuah Program Virus, dan menyebarkannya ke semua komputer di dunia melalui jaringan internet. Untuk kasus ini bisa dibilang cukup sulit, dikarenakan banyak programmer pembuat virus tersebut menginisialkan nama aslinya sehingga sulit untuk melacak keberadaannya.

    Untuk pelanggaran ini, bisa diberikan sanksi berupa sanksi Hukum bila programmer tersebut terbukti dan tertangkap membuat program virus tersebut.
  • Pembuatan Software Cracking

    Untuk pelanggaran yang satu ini merupakan pelanggaran dimana seorang programmer membuat sebuah Aplikasi yang memungkinkan menjadikan Software berbayar menjadi Free alias Gratis.

    Untuk pelanggaran ini, bisa diberikan sanksi berupa sanksi Hukum karena melanggar hak cipta dari pengembang software asli.
  • Hacking

    Merupakan pelanggaran yang cukup banyak ditemui sekarang ini. Banyak sekali website-website yang terkena hacking oleh para hacker-hacker dunia. Dan tidak hanya merubah tampilan halaman sebuah website saja, kadang juga beberapa hacker ada yang membuat Server dari hosting website tersebut Down alias Hank dan tidak bisa beroperasi selama beberapa jam atau menit.

    Untuk pelanggaran tersebut belum ada sanksi yang jelas, dan sedikit sulit untuk menangkap tersangka Hacker tersebut karena menggunakan nama inisial. Untuk di Indonesia sudah ada UU yang menangani masalah tersebut yaitu UU ITE.
  • Carding

    Pelanggaran ini merupakan pelanggaran seorang programmer dimana programmer tersebut mengumpulkan data Kartu Kredit atau Akun Bank dari seseorang dan kemudia disalahgunakan dengan memindahkan sejumlah uang atau menggunakan uang hasil pengumpulan data tersebut.

    Untuk pelanggaran ini bisa dikenakan Sanksi Hukum dan masuk kedalam kategori Hukum Pidana maupun Perdata bila pelaku tertangkap dan terdapat bukti yang menguatkan.

Itulah beberapa pelanggaran yang sering terjadi pada dunia Programmer. Masih banyak pelanggaran lainnya yang tidak dapat saya sampaikan. Mungkin anda bisa mencarinya di Google.. :)

Sikap Programmer terhadap klien

Ada beberapa hal yang harus dimiliki seorang programmer dalam menghadapi klien :
  1. Mempunyai sikap & kepribadian baik, komunikatif, mudah beradaptasi dengan lingkungan kerja, cekatan & fleksibel. 
  2. Mampu bekerja berorientasi jadwal, mengatur pekerjaan multiple project dan bekerja sama dalam team. 
  3. Membuat kontrak kerja dengan klien. 
  4. Menyukai dan mengerti dasar-dasar pemrograman.

Kewajiban Seorang Programmer

 Seorang Programmer memiliki beberapahal yang wajib diketahui dan dipahami, yaitu :
  1. Memahami konsep dasar sistem operasi. Kebanyakan dari programmer Indonesia biasanya membuat aplikasi di atas sistem operasi, sehingga banyak yang berpendapat bahwa tidak perlu memahami cara kerja sistem operasi. 
  2. Memahami konsep dasar jaringan. Sebuah aplikasi tidak dapat berjalan sendiri. Aplikasi tersebut pasti harus berhubungan dengan internet, melayani banyak pengguna.
  3. Memahami konsep dasar relational database. Setiap aplikasi pasti memiliki sebuah database dalam penyimpanan datanya untuk itu programmer khususnya Database Programmer ditekankan menguasai relational database. 
  4. Karena sekarang jaman internet, maka wajib memahami protokol HTTP, FTP, POP3, SMTP, SSH. Protokol HTTP sekarang adalah protokol yang paling banyak digunakan di internet. 
  5. Karena sekarang jaman globalisasi, maka wajib memahami Unicode. Unicode itu penting supaya aplikasi kita tetap bisa diinstal di komputer mana saja. 
  6. Lebih dari satu bahasa pemrograman. Pemahaman lebih dari satu bahasa itu penting agar wawasan programmer lebih terbuka. Bahwa tidak ada bahasa yang one-fit-all. 
  7. Cara menggunakan Version Control. Dalam dunia kerja, penggunaan version control adalah wajib. Ini standar (de facto) internasional. Jika mempunyai project opensource, baik di Sourceforge, Apache, Codehaus, dan semua hosting project opensource, pasti programmer akan diberikan version control.

Keterampilan Yang Harus Dimiliki Programer

Beberapa Keterampilan yang harus dimiliki oleh seorang programmer, antara lain :
  1. Memahami kode sumber sebuah program, dari yang sederhana hingga relatif kompleks, adalah keterampilan yang harus dimiliki oleh seorang programmer. 
  2. Implementasi sebuah algoritma yang memodifikasi sebentuk struktur data dalam sebuah program dapat kita adaptasikan ke dalam program yang kita buat sendiri dengan konteks dan struktur data yang sama sekali berbeda.
  3. Melanjutkan pengelolaan, menyesuaikan, mengembangkan dan (bila perlu) merombaknya untuk menyesuaikan program dengan kebutuhan pengguna tanpa mengorbankan kemudahan perawatan di masa mendatang. 
  4. Memiliki kemampuan sebagaimana dijelaskan dalam point 1. dan 2. untuk program yang ditulis dan didokumentasikan oleh programmer lain.
  5. Membaca program untuk memperkaya perkakas yang dimiliki seorang

Faktor yang mempengaruhi produk dan produktifitas seorang Programmer

Adapun faktor-faktor yang mempengaruhi produk dan produktifitas seorang Programmer  tersebut meliputi :
  1. Komunikasi team. Meningkatnya ukuran produk yang dihasilkan akan menurunkan produktivitas programmer akibat meningkatnya kerumitan antara komponen-komponen program dan akibat meningkatnya komunikasi yang perlu dilakukan antara programmer, manajer,dan pelanggan. 
  2. Kerumitan produk. Tiga level kerumitan produk : program aplikasi, program utility, program level sistem. 
  3. Notasi yang tepat. Bahasa pemrograman menetapkan notasi (baca : token, reserve word) baku, terutama untuk hal-hal yang berkaitan dengan matematika. penetapan notasi antar programer (baca : perancang produk) harus dilakukan sehingga dapat dimengerti dengan jelas. 
  4. Kendali perubahan Perubahan terhadap produk harus tetap meminta persetujuan manajer sebagai penanggung jawab proyek. Dampak perubahan harus dapat ditelusuri, diuji, dan didokumentasikan. 
  5. Tingkat teknologi. Peran penggunaan teknologi dalam proyek perangkat lunak misalnya menyangkut bahasa pemrograman, lingkungan mesin yang digunakan, teknik pemrograman, dan penggunaan tools tertentu. Bahasa pemrograman modern menyediakan fasilitas penyesuaian pendefinisisan dan penggunaan data, konstruksi aliran kendali, fasilitas modular, dan concurent programming.
  6. Pendekatan sistematis. Sistem menetapkan teknik dan prosedur baku. pembakuan dalam pengembangan dan pemeliharaan perangkat lunak masih belum mantap. 
  7. Tingkat keandalan. Setiap produk harus mempunyai keandalan standar. Peningkatan keandalan dihasilkan melalui perhatian yang sangat besar pada tahap analisa. Peningkatan keandalan akan menurunkan produktivitas. 
  8. Pemahaman permasalahan. Pelanggan adalah penyumbang utama terhadap kegagalan dalam memahami masalah adalah : a) Tidak memahami permasalahan perusahaannya. b) Tidak mengerti kemampuan dan keterbatasan komputer. c) Tidak mempunyai pengetahuan dasar tentang logika dan algoritma. d) Software engineer tidak memahami lapangan aplikasi, gagal mendapatkan informasi kebutuhan pelanggan karena pelanggan bukan seorang end user. 
  9. Persyaratan keterampilan. Berbagai keterampilan harus ada dalam sebuah proyek perangkat lunak, misalnya: a) Keterampilan berkomunikasi dengan pelanggan untuk memastikan keinginannya dengan sejelas-jelasnya. b)  Kemampuan dalam pendefinisian masalah dan perancangan. c) Kemampuan implementasi dengan penulisan program yang benar. d) Kemampuan debugging secara deduktif dengan kerangka “what if ”.         e) Dokumentasi. f) Kemampuan bekerja dengan pelanggan. g) Semua keterampilan tersebut harus senantiasa dilatih. 
  10. Fasilitas dan sumber daya. Fasilitas non teknis yang tetap perlu diperhatikan yang berkaitan dengan motivasi programmer misalnya : mesin yang baik, serta tempat yang tenang, atau ruang kerjanya dapat ditata secara pribadi. 
  11. Pelatihan yang cukup. Banyak programmer yang dilatih dalam bidang-bidang : ilmu komputer, teknik elektro, akuntansi, matematika, tetapi jarang yang mendapat pelatihan dalam bidang teknik perangkat lunak. 
  12. Ketersediaan waktu. Berbagai keterampilan harus ada dalam sebuah proyek perangkat lunak, misalnya :  a) Keterampilan berkomunikasi dengan pelanggan untuk memastikan keinginannya dengan sejelas-jelasnya. b) Kemampuan dalam pendefinisian masalah dan perancangan. c) Kemampuan implementasi dengan penulisan program yang benar.       d) Kemampuan debugging secara deduktif dengan kerangka “what if ”. e) Dokumentasi. f) Kemampuan bekerja dengan pelanggan. g) Semua keterampilan tersebut harus senantiasa dilatih. 
  13. Kemampuan manajemen. Seringkali manajer proyek tidak mempunyai, atau hanya sedikit mengetahui, latar belakang teknik perangkat lunak. Di sisi lain terjadi promosi jabatan menjadi manajer dimana yang berpromosi tidak atau kurang mempunyai kemampuan manajemen. Sasaran yang tepat Sasaran utama dari teknik perangkat lunak adalah pengembangan produk-produk perangkat lunak yang tepat untuk digunakan.

Kode Etik Programmer


Programmer Komputer adalah profesi yang bertugas untuk membuat sebuah program melalui bantuan bahasa pemrograman yang dapat digunakan untuk menyelesaikan permasalahan melalui otomasi dengan bantuan perangkat lunak atau software.  Tugas inti dari seorang programmer sama seperti tugas sebuah program itu sendiri. Sebuah program itu didesain dan dikembangkan agar mampu membatu manusia sebagi pengguna (user) dalam mengatasi kegiatan kesehariannya. Jadi, tugas seorang programmer komputer adalah menolong manusia menyelesaikan kegiatan sehari-harinya dengan bantuan komputer.  Dari hal tersebut, terlihat jelas bahwa seorang programmer komputer merupakan orang yang sangat berjasa kepada masyarakat, seperti halnya dokter, perawat,  akuntan dan lainnya.
Seperti halnya seorang dokter, pengacara , atau bidang lainnya, programmer komputer juga memiliki kode etik.  Kode etik merupakan sesuatu hal yang harus menjadi bagian dari seorang programmer komputer. Kode etik bersumber dari kode etik yang digunakan dalam perkumpulan programmer internasional.  Adapun kode etik programmer komputer antara lain :
  1. Programmer komputer tidak boleh membuat atau mendistribusikan (menyebarkan) Malware.
  2. Programmer komputer tidak boleh membuat kode sebuah program yang sulit untuk diikuti atau ditelusuri dengan sengaja
  3. Programmer komputer tidak boleh membuat dokumentasi yang membingungkan atau tidak akurat dengan sengaja
  4. Programmer komputer tidak boleh menggunakan ulang kode yang mempunyai hak cipta, kecuali telah membeli atau meminta izin
  5. Tidak boleh mencari keuntungan tambahan dari proyek yang didanai oleh pihak kedua tanpa izin
  6. Tidak boleh mencuri software  khususnya development tools
  7. Tidak boleh mencela atau mempermalukan profesi programmer komputer
  8. Tidak dengan sengaja membuat atau mengenalkan bug, dan kemudia mengklaim untuk fixing bug, atau memberikan stimulasi untuk update versi terakhir
  9. Tidak boleh menulis kode yang dengan sengaja menjatuhkan kode programmer lain untuk mengambil keuntungan dalam menaikkan status
  10. Tidak boleh mengambil keuntungan dari pekerjaan orang lain
Dari beberapa kode etik  programmer yang dibsebutkan diatas, dapat dijadikan sebagai “Golden Rule” yaitu “Memperlakukan orang lain sebagaimana kamu ingin diperlakukan.