10
Oct
08

Software Engineer Sebagai Sebuah Profesi

Apa yang dimaksud dengan Profesi?

Profesi adalah suatu bentuk pekerjaan yang mengharuskan pelakunya memiliki pengetahuan tertentu yang diperoleh melalui pendidikan formal dan dan ketrampilan tertentu yang didapat melalui pengalaman kerja pada orang yang terlebih dahulu menguasai ketrampilan tersebut, dan terus memperbaharui ketrampilannya sesuai dengan perkembangan teknologi.

Tidak semua pekerjaan adalah profesi, contohnya pekerjaan staf administrasi tidak masuk dalam golongan profesi karena untuk bekerja sebagai staf administrasi seseorang bisa dari berbagai latar belakang pendidikan, pengetahuan dan pengalaman, sedangkan akuntan merupakan profesi karena seseorang yang bekerja sebagai akuntan haruslah berpendidikan akuntansi dan memiliki pengalaman kerja beberapa tahun di kantor akuntan.

Pada profesi yang melibatkan hajat hidup orang banyak, gelar keprofesionalan tersebut harus didapatkan melalui pengujian oleh organisasi profesional yang diakui secara nasional atau internasional, dan hanya kandidat yang lulus yang berhak menyandang gelar profesi ini dan melakukan pekerjaan untuk profesi ini. Contoh yang paling jelas adalah profesi dokter (kesehatan manusia) di Indonesia, hanya sarjana kedokteran yang menjadi anggota dari IDI boleh melakukan praktek kedokterannya.

Organisasi keprofesian ini mengatur keanggotaan, membuat kebijakan etika profesi yang harus diikuti oleh semua anggota, memberi sanksi bagi anggota yang melanggar etika profesi, dan membantu anggota untuk dapat terus memperbaharui pengetahuannya sesuai dengan perkembangan teknologi.

Apakah Software Engineer sebuah profesi?

Bila dimasukkan dalam definisi profesi di atas, Software Engineer bisa digolongkan sebagai sebuah profesi. Deskripsi kerja dari seorang Software Engineer adalah melakukan aktivitas engineering (analisa, rekayasa, spesifikasi, implementasi, dan validasi) untuk menghasilkan produk berupa perangkat lunak yang digunakan untuk memecahkan masalah pada berbagai bidang.

Untuk bisa melaksanakan tugas sebagai Software Engineer seseorang harus memiliki latar belakang pendidikan tertentu yang memberikan bekal untuk melakukan kerja dengan baik dan benar. Selain itu setelah lulus dari pendidikan, seorang Software Engineer juga dituntut untuk memiliki pengalaman cukup dalam pekerjaan ini melalui keikutsertaannya sebagai pekerja magang dalam proyek. Software Engineer juga harus terus memperbaharui pengetahuan dan ketrampilannya sesuai dengan perkembangan teknologi komputer yang cepat.

Profesi Software Engineer sejauh ini belum memiliki organisasi profesi. Organisasi profesi Software Engineer yang mungkin diperlukan adalah tidak diperlukan untuk menyeleksi keanggotaannya, namun yang penting adalah bisa memberikan kualifikasi yang jelas tentang apa Software Engineering itu, siapa Software Engineer itu, dan membantu anggotanya untuk memperbaharui pengetahuan dan ketrampilannya. Namun belakangan ini pengesahan profesi Software Engineer oleh organisasi profesi mulai dirasakan perlu karena banyak bidang kerja profesi ini yang bersinggungan dengan hajat hidup orang banyak.

Apa karakteristik yang dimiliki Software Engineer sebagai profesi?

· Kompetensi, yaitu suatu sifat yang selalu menuntut profesional Software Engineer untuk memperdalam dan memperbaharui pengetahuan dan ketrampilannya sesuai dengan tuntutan profesinya. Seorang Software Engineer tidak boleh berhenti belajar karena dunia software engineering terus berkembang dan berubah dengan cepat. Profesi Software Engineer tidak melekat seumur hidup, hanya sepanjang seseorang terus mengikuti tuntutan profesinya. Dan ini sesuai dengan etika profesi yang berlaku umum bahwa hanya profesional yang berkompeten yang berhak melakukan pekerjaan di bidangnya.

· Tanggung jawab pribadi: yaitu kesadaran untuk membebankan hasil pekerjaannya sebagai tanggung jawab pribadi. Seorang Software Engineer untuk itu harus mengenal kemampuan dirinya, sehingga bisa mempertanggungjawabkan semua pekerjaan yang dilakukannya secara moral: selalu merekomendasikan apa adanya, melakukan pekerjaan yang menjadi bidang kompetensinya, dan mendahulukan kepentingan umum.

Mengutip Tanri Abeng, untuk menjadi profesional harus memenuhi 3 syarat yaitu:

1. menguasai ilmu secara mendalam dalam bidangnya,

2. mampu mengkonversikan ilmu menjadi ketrampilan, dan

3. selalu berpikir positif dengan menjunjung tinggi etika dan integritas profesi.

Pendidikan formal apa yang diperlukan seorang Software Engineer?

Kemampuan yang perlu dimiliki seorang Software Engineer supaya dapat melaksanakan tugas dan tanggung jawabnya secara baik dan benar adalah:

· metodologi pengembangan perangkat lunak: analisa masalah, perancangan sistem yang ada dan yang akan dibangun, meng-kode-kan disain menjadi perangkat lunak.

· Mengelola kelompok kerja

· Mengelola sumber daya: merencanakan, mengadakan, mengawasi, dan mengoptimalkan pemanfaatannya

· Komunikasi

Untuk itu berarti seorang Software Engineer harus memiliki pendidikan formal tingkat sarjana yang merupakan gabungan dari bidang:

  • Computer science: terutama dalam perangkat keras
  • Engineering: terutama dalam pendekatan/metode analisa pemecahan masalah
  • Industrial engineering: terutama dalam optimasi proses dan sumber daya
  • Management: terutama dalam mengelola manusia dan kelompok kerja, manajemen proyek
  • Social science: terutama dalam pendekatan manusia dan komunikasi

Dari uraian di atas jelas bahwa profesi Software Engineer tidak semata mengandalkan pengetahuan dalam ilmu komputer.

Rekomendasi untuk pengembangan profesi Software Engineer di Indonesia.

Di Indonesia profesi Software Engineer belum terdefinisikan, masih dicampur adukkan dengan profesi lainnya. Di dalam pengembangan perangkat lunak dikenal 2 aktor yang terlibat yaitu System Analyst dan Programmer. System Analyst melakukan analisa terhadap masalah dan kebutuhan organisasi dalam mengelola orang, metode, dan teknologi untuk mengatasi masalah tersebut. Programmer merencanakan keperluan penggunaan perangkat keras dan lunak yang sesuai dengan solusi yang direkomendasikan oleh System Analyst, dan memastikan kebenarannya sesuai dengan spesifikasi.

Bidang kerja Software Engineer meliputi bidang kerja System Analyst dan Programmer yaitu mencakup semua fase dalam software development life cycle: analisa sistem, analisa kebutuhan perangkat lunak, perancangan sistem, pembuatan dan perawatan perangkat lunak, ditambah dengan tugas dari manager proyek yaitu perencanaan dan pengelolaan proyek. Dari definisi ini jelas perbedaan antara ketiga pekerjaan di atas.

Infrastruktur yang perlu dipersiapkan untuk pengembangan profesi Software Engineer di Indonesia adalah:

· Lembaga pendidikan tinggi yang mengelola program studi Software Engineering: berarti perlu dibentuk badan khusus untuk merancang kurikulum program studi ini sesuai dengan definisi pekerjaan dan kebutuhan industri pemakai profesi ini. Oleh karena itu perlu dilibatkan para praktisi yang ada untuk memberi masukan yang pas.

· Industri yang mendukung pemakaian profesional Software Engineer: berarti pihak industri sudah harus bis membedakan antara berbagai profesi yang ada di area pengembangan perangkat lunak, sehingga bisa diketahui profesi mana yang sebetulnya dibutuhkan oleh pihak industri sendiri. Dengan demikian juga berarti bahwa profesi Software Engineer memang ‘exist’ sebagai profesi, bukan sebagai ciptaan pihak akademisi saja.

· Organisasi Profesi Software Engineer yang dikelola oleh para profesional: yang berperan untuk membantu para Software Engineer membuat definisi profesi, kebijakan etika profesi, dan sebagai komunitas yang mengkomunikasikan berbagai topik antar anggota.

· Tersedianya materi bacaan atau alat komunikasi yang membantu profesional Software Engineer memperbaharui pengetahuan dan ketrampilannya.

Keempat infrastruktur ini pembentukannya harus berjalan secara paralel, karena pengalaman di satu bagian akan bisa menjadi masukan perbaikan untuk bagian lainnya.

07
Jun
08

JAVA OOP

Menguasai  Object Oriented Programming (OOP) dengan Java

Inheritance berdasarakan kamus bahasa Inggris berarti warisan. Dalam konsep OOP, sesuai dengan artinya Inheritance adalah pewarisan atribut atau method pada sebuah class yang diperoleh dari sebuah class yang terdefinisi sebelumnya. Sebagai contoh, sebuah kelas Rumah Mewah  akan mewarisi atribut atau method dari kelas Rumah. Begitu juga dengan kelas RumahSederhana. Kelas RumahMewah dan RumahSederhana disebut subkelas, atau kelas anak, dari kelas Rumah, yang disebut superkelas, atau kelas induk.
Seluruh subkelas akan mewarisi (inherits) atribut atau method dari superkelasnya. Dengan begitu, semua subkelas dari superkelas yang sama akan memiliki atribut atau method yang sama. Namun, masing-masing subkelas bisa menambah sendiri atribut atau methodnya. Misalkan, pada kelas Rumah tidak terdapat variabel  kolamRenang, namun subkelas RumahMewah memiliki variabel tersebut. Contoh lain misalnya kelas Rumah tidak memiliki metode nyalakanAlarm, namun rumah mewah memiliki metode itu.

Mengapa mengunakan inheritance? Untuk menggunakan kembali kode yang sudah ada
Cara untuk mewarisi suatu kelas adalah dengan menggunakan keyword extends.

class Rumah {
public void pintu() {
System.out.println(“Buka Pintu”);
}
}
class RumahMewah extends Rumah {
public void pintuAlarm() {
System.out.println(“Bunyi teeeeeet..”);
}
}
public class Rumahku {
public static void main (String[] args) {
RumahMewah alarm = new RumahMewah();
alarm.pintu();
alarm.pintuAlarm();
}
}

class RumahMewah extends Rumah.

dalam kasus ini, RumahMewah mempunyai method dari class RumahMewah, dan Rumah




March 2017
M T W T F S S
« Oct    
 12345
6789101112
13141516171819
20212223242526
2728293031