Minggu, 27 Maret 2016

Etika dan Profesionalisme sebagai Programmer

2.1              Programmer

Profesi programmer/developer adalah profesi yang paling sering terdengar, karena profesi ini sudah ada sejak diciptakannya komputer itu sendiri. Profesional dalam bidang software development dan consulting umumnya pernah meniti karir sebagai seorang programmer. Keahlian dalam algoritma dan penguasaan terhadap salah satu atau beberapa bahasa memprograman mutlak diperlukan oleh seorang programmer. Programer adalah profesi inti dan tulang punggung dalam software development karena tidak akan terwujud sebuah software aplikasi tanpa adanya programmer, sedangkan tanpa didukung profesi lainnya, seorang programmer dapat membuat sebuah aplikasi yang berguna walaupun dengan cakupan terbatas.
Berdasarkan jenis programming dan output yang dihasilkan, programmer sendiri ada beberapa macam yaitu:
1.      Hardware Programmer
Hardware programmer sebenarnya adalah bagian dari hardware engineer. Sesuai namanya,
mereka melakukan programming secara low level terhadap hardware, misalnya mikrokontroler, embeded sistem, PLC atau device lainnya. Pada awal diciptakannya komputer, programmer jenis ini lebih dominan karena cara memprogram komputer waktu itu mirip dengan cara memprogram mikrokontroller saat ini. Bahasa yang digunakan dulunya adalah bahasa mesin tetapi saat ini cenderung digunakan bahasa assembly dan C.
2.      System Programmer
Dalam pekerjaannya, system programmer menggunakan low level dan medium level language. Biasanya mereka dipekerjakan dalam pengembangan sistem operasi dan modul-modul pendukungnya. Para pengembangan driver untuk periferal dan programming dalam SIM/UIM card juga digolongkan ke programmer jenis ini. Perbedaan system programmer dengan hardware programmer adalah: System programmer bekerja pada tahap pengembangan suatu platform / sistem operasi atau yang terkait erat dengannya untuk dijadikan sebagai landasan (platform) bagi pengembangan selanjutnya, sedangkan hardware programmer bekerja pada tahap implementasi suatu produk agar sesuai dengan requirement end user. Programmer jenis ini biasa menggunakan bahasa Assembly, C/C++ dan kemungkinan C# dikemudian hari bila sistem operasi yang menggunakan managed code (.Net) benar-benar diluncurkan.
3.      Application Programmer
Bagi yang sering mendengar profesi “Application Developer”, “Software Developer”, “Web Developer”, “Enterprise Developer” atau “Developer” saja, profesi-profesi tersebut tergolong sebagai Application programmer. Programmer jenis inilah yang paling banyak dan populer di dunia kerja terutama di Indonesia. Hal ini disebabkan karena aplikasi adalah jenis software yang paling banyak di gunakan.
Perbedaan istilah “application” dengan “software”. Singkatnya, dalam dunia IT, yang disebut application sudah pasti adalah sebuah software, sedangkan software belum tentu sebuah application. Software yang bukan termasuk aplikasi contohnya adalah operating system, device driver, protocol dll. Sedangkan yang dikenal sebagai aplikasi adalah software seperti office suite, image editor, games, sistem informasi retail/swalayan, sistem informasi pendidikan, sistem informasi hotel/retaurant, sistem informasi manajeman gudang, sistem informasi logistik, ERP (Enterprise Resource Planning), SCM (Suply Chain Managemant), CRM (Customer Relationship Managemant) , sistem bank, sistem airline dan masih banyak lainnya.
Dalam pekerjaannya, application programmer menggunakan high level language seperti Java, C#, Visual Basic (VB), VB.Net, Delphi, PHP dll. Dengan menggunakan high level language, proses pengembangan akan lebih mudah dan lebih cepat. Hal ini sesuai dengan tuntutan kebutuhan customer yang terus berkembang dengan cepat.
Dalam hal cakupan keahlian yang dibutuhkan, secara kasar jenis aplikasi dapat dibagi menjadi:
·         Desktop Application (aplikasi yang berwujud Windows Form, WPF, XWindows atau jenis GUI lainnya yang berjalan di O/S masing-masing)
·         Web Application (aplikasi yang user interface-nya berwujud HTML dan diakses dengan web browser,  biasa dikembangkan dengan framework PHP, ASP.Net, Java, Spring, Ruby on Rails dll )
·         Database Application (aplikasi yang memerlukan akses ke database menggunakan teknologi sepertiADO.Net, OLEDB, ODBC, JDBC, ORM, Hibernate dll)
·         Distributed Application (aplikasi terdistribusi/server service seperti Web Service, J2EE, WCF, COM+ dll)
Walaupun digolongkan dalam ke empat macam keahlian tersebut, seringkali seorang application programmer harus memiliki keahlian di beberapa jenis aplikasi untuk dapat menghasilkan aplikasi yang berguna. Contohnya: Web programmer harus memiliki kemampuan dalam web application dan database application untuk dapat mengembangkan aplikasi web yang memerlukan database sebagai penyimpanan data. Tidak sedikit pula programmer yang memiliki keahlian di seluruh jenis aplikasi sehingga sering disebut disebut enterprise application developer.

Tugas Programmer/Developer:
1.      Membangun/mengembangkan software terutama pada tahap construction dengan melakukan coding dengan bahasa pemprograman yang ditentukan
2.      Mengimplementasikan requiremant dan desain proses bisnis ke komputer dengan menggunakan algoritma /logika dan bahasa pemprograman
3.      Melakukan testing terhadap software bila diperlukan

Keahlian yang Diperlukan:
1.      Menguasai Algoritma dan logika pemprograman (ini penting sekali)
2.      Memahami metode, best practice dan tool/pemodelan pemprograman seperti OOP, design pattern, UML (kemampuan membaca dan menerapkan)
3.      Menguasai salah satu atau beberapa bahasa pemprograman populer seperti C++, VB, PHP, C#, Java, Ruby dll (untuk web developer perlu juga menguasai HTML, DHTML, CSS, JavaScript dan AJAX)
4.      Memahami RDBMS dan SQL (Structured Query Language)
5.      Menguasai bahasa Inggris (hal ini sangat penting saat ini karena bahasa en-US merupakan bahasa ibu di dunia IT)


2.2              Profesionalisme

Profesionalisme (profésionalisme) ialah sifat-sifat (kemampuan, kemahiran, cara pelaksanaan sesuatu dan lain-lain) sebagaimana yang sewajarnya terdapat pada atau dilakukan oleh seorang profesional. Profesionalisme berasal daripada profesion yang bermakna berhubungan dengan profesion dan memerlukan kepandaian khusus untuk menjalankannya, (KBBI, 1994). Jadi, profesionalisme adalah tingkah laku, kepakaran atau kualiti dari seseorang yang profesional (Longman, 1987).

2.2.1        Ciri-Ciri Profesionalisme

Seseorang yang memiliki jiwa profesionalisme senantiasa mendorong dirinya untuk mewujudkan kerja-kerja yang profesional. Kualiti profesionalisme didokong oleh ciri-ciri sebagai berikut:
1.      Keinginan untuk selalu menampilkan perilaku yang mendekati piawai ideal.
Seseorang yang memiliki profesionalisme tinggi akan selalu berusaha mewujudkan dirinya sesuai dengan piawai yang telah ditetapkan. Ia akan mengidentifikasi dirinya kepada sesorang yang dipandang memiliki piawaian tersebut. Yang dimaksud dengan “piawai ideal” ialah suatu perangkat perilaku yang dipandang paling sempurna dan dijadikan sebagai rujukan.
2.      Meningkatkan dan memelihara imej profesion
Profesionalisme yang tinggi ditunjukkan oleh besarnya keinginan untuk selalu meningkatkan dan memelihara imej profesion melalui perwujudan perilaku profesional. Perwujudannya dilakukan melalui berbagai-bagai cara misalnya penampilan, cara percakapan, penggunaan bahasa, sikap tubuh badan, sikap hidup harian, hubungan dengan individu lainnya.
3.      Keinginan untuk sentiasa mengejar kesempatan pengembangan profesional yang dapat meningkatkan dan meperbaiki kualiti pengetahuan dan keterampiannya.
4.      Mengejar kualiti dan cita-cita dalam profesion
Profesionalisme ditandai dengan kualiti darjat rasa bangga akan profesion yang dipegangnya. Dalam hal ini diharapkan agar seseorang itu memiliki rasa bangga dan percaya diri akan profesionnya.

2.2.2        Kode Etik Profesional

Kode etik profesi merupakan norma yang ditetapkan dan diterima oleh sekelompok profesi, yang mengarahkan atau memberi petunjuk kepada anggotanya bagaimana seharusnya berbuat dan sekaligus menjamin mutu profesi itu dimata masyarakat. Apabila anggota kelompok profesi itu menyimpang dari kode etiknya, maka kelompok profesi itu akan tercemar di mata masyarakat. Oleh karena itu, kelompok profesi harus mencoba menyelesaikan berdasarkan kekuasaannya sendiri. Kode etik profesi merupakan produk etika terapan karena dihasilkan berdasarkan penerapan pemikiran etis atas suatu profesi.
Kode etik profesi dapat berubah dan diubah seiring perkembangan zaman. Kode etik profesi merupakan pengaturan diri profesi yang bersangkutan, dan ini perwujudan nilai moral yang hakiki, yang tidak dipaksakan dari luar. Kode etik profesi hanya berlaku efektif apabila dijiwai oleh cita-cita dan nilai-nilai yang hidup dalam lingkungan profesi itu sendiri. Setiap kode etik profesi selalu dibuat tertulis yang tersusun secara rapi, lengkap, tanpa catatan, dalam bahasa yang baik, sehingga menarik perhatian dan menyenangkan pembacanya. Semua yang tergambar adalah perilaku yang baik-baik.

2.3              Profesionalisme Programmer

Banyak dari masyarakat sekarang ini yang bekerja di bidang IT, dan mereka dituntut harus memilki basic tentang komputer dan mengetahui tentang perkembangan dunia IT. Dalam setiap aktivitasnya tidak sedikit yang mengalami kesulitan, karena tidak adanya sikap profesionalisme satu sama lain, maka dari itu, setiap masyarakat harus memiliki sikap profesionalisme.

Bentuk profesionalisme di bidang IT terutama Programer adalah:
·         Memilki sikap mandiri berdasarkan kemampuan yang di milikinya secara pribadi serta terbuka dan mau menghargai pendapat orang lain, serta cermat dalam memilih yang terbaik bagi diri dan perkembangan pribadinya, atau dengan kata lain adalah mandiri. Seorang pekerja dibidang IT terutama programmer harus memiliki sikap tidak tergantung dengan orang lain, terbuka, mau menerima dengan hati yang lapang atas pekerjaanya, saat dikritik tentang pekerja tersebut maupun saat mendapat saran dari orang lain, bahkan dapat komplain dari klien karena ada program yang dibuatnya tidak jalan karena beberapa factor, misalkan program yang dibuat kena virus,error, dan lain-lain.
·         Memiliki pengetahuan yang tinggi dan handal di bidang IT, Seorang programer harus mempunyai modal yang cukup salah satunya menguasai bahasa pemprograman, sehingga dalam pembuatan program tersebut benar-benar terjamin kualitasnya dan juga tidak asal-asalan, sehingga program tersebut dapat bermanfaat.
·         Menerapkan norma-norma yang berhubungan dengan IT yang telah diatur dalam kode etik, misalkan profesional atau developer dengan klien, antara para profesional dalam ruang lingkup itu sendiri, atau antara organisasi profesi serta organisasi profesi dengan pemerintah. Contohnya salah satu bentuk hubungan seorang programer dengan klien atau pengguna jasa, misalnya pembuatan sebuah program aplikasi yang dibuatnya.
·         Seorang programmer tidak dapat membuat suatu program semaunya sendiri, ada beberapa hal yang harus ia perhatikan seperti : untuk apa program tersebut dibuat dan nantinya digunakan oleh kliennya atau user, ia dapat menjamin keamanan sistem kerja program aplikasi tersebut dari pihak-pihak yang dapat mengacaukan sistem kerjanya.

Ciri-ciri profesionalisme yang dibutuhkan seorang IT:
-          Memiliki pengetahuan yang tinggi di bidang TI
-          Memiliki ketrampilan yang tinggi di bidang TI
-          Memiliki pengetahuan yang luas tentang manusia dan masyarakat, budaya, seni, sejarah dan komunikasi
-          Tanggap tehadap masalah client, paham terhadap isu-isu etis serta tata nilai kilen-nya
-          Mampu melakukan pendekatan multidispliner
-          Mampu bekerja sama (Team Work)
-          Bekerja dibawah disiplin etika
-          Mampu mengambil keputusan didasarkan kepada kode etik, bila dihadapkan pada situasi dimana pengambilan keputusan berakibat luas terhadap masyarakat

Sumber :
http://muaramasad.blogspot.com/2013/03/pengertian-etika-profesi-dan.html
http://www.totaltren.com/2015/01/mengenal-etika-programmer.html#axzz3WbwYGim3
http://okto.silaban.net/2011/07/general/gaji-senior-web-programmer/
http://aendeick.blogspot.co.id/2015/09/professionalisme-programmer.html