Trends Profesi Software Engineer.

August 2, 2009 by didik26s12pribadi60

INTRODUCTION.

Bagi setiap orang yang telah memasuki dunia kerja khususnya bagi yang telah mengantongi sertifikat atau ijazah dari pendidikan ,yang telah dia jalani dengan serius, adalah bekerja sebagai professional sesuai dengan bidang yang dia pelajari.

Untuk memeberikan gambaran mengenai lapangan kerja dan kecenderungan profesi, dibawah ini saya sampaikan profesi yang diminati atau terpopuler pada setiap bidang yang ada di Negara maju (USA). Penetapan Urutan didasari pada pertumbuhan , gaji, tingkat stress, flexibititas jam dan linkungan kerja , creatifitas, kemudahan masuk, dan kelanjutan kerja pada bidangnya. Pada masa atau decade ini 10 profesi yang paling top menurut  Money magazine   adalah sebagai berikut:

  1. Software engineer
  2. College professor
  3. Financial adviser
  4. Human-resources manager
  5. Physician assistant
  6. Market research analyst
  7. Computer/IT analyst
  8. Real estate appraiser
  9. Pharmacist
  10. Psychologist

Dari sekian bidang atau profesi yang ada, rangking tertinggi atau yang paling top adalah profesi software engineer.  Bagi sebagian orang profesi software engineer merupakan profesi yang familiar, sedangkan bagi banyak orang profesi ini masih merupakan profesi yang membingungkan atau belum jelas apa kerjaannya. Hal ini disebabkan begitu banyaknya jenis pekerjaan yang ditangani oleh profesi ini. Agar gambaran tentang profesi software engineer ini dengan mudah dipahami oleh banyak pihak perlu dilakukan penguraian tugas dan cakupan pekerjaan software engineer secara lebih lugas dan mudah dimengerti.

AREA KERJA  SOFTWARE ENGINEER.

Dalam prakteknya seorang software engineer dapat bekerja area mana saja termasuk area yang bukan engineering seperrti perbangkan dan lainnya, namun  bila seorang software engineer seharusnya bekerja sesuai dengan bidang study yang dipelajarinya maka mereka harus bekerja pada bidang yang berkaitan  dengan kegiatan yang ada dalam proses software engineering.

Bidang kerja software engineer yang  sesuai dengan area cakupan dari Area software engineering menurut  The Software Engineering Body of Knowledge (SWEBOK) dikelompokkan menjadi 10 knowledge areas yaitu:

  1. Software requirements
  2. Software design
  3. Software construction
  4. Software testing
  5. Software maintenance
  6. Software configuration management
  7. Software engineering management
  8. Software engineering process
  9. Software engineering tools and methods
  10. Software quality

PROFESI SOFTWARE ENGINEERING DARI MASA KE MASA.

Profesi bidang software engineering atau lebih spesifik profesi software engineer berkembang dari era  ke era sesuai dengan perkembangan teknologi yang berkaitan dengan software computer atau secara lebih luas perkembangan bidang teknologi informasi.

Pada periode awal digunakannya computer dikenal profesi coder, karena pada era itu pemrograman computer masih menggunakan kode yang berorientasi pada bahasa mesin seperti assembler, dan sejenisnya.

Pada periode berikutnya dikenal profesi pemrogram computer atau programmer, designer, dan system analist  yang dikelompokkan menjadi junior sampai senior (atau yang tingkat I, II, III), dan profesi bidang software lainnya.  Pada era ini pemrograman computer sudah menggunakan bahasa pemrograman yang sebagian besar berorientasi pada prosedur seperti cobol, fortran, ADA, LISP, dll.  Profesi designer dan system analist pada era ini berkaitan dengan pembuatan pemodelan system , pembuatan struktur data dan specifikasi program, sedangkan pemrogram berkaitan dengan penulisan program sesuai dengan ahasa pemrograman yang digunakan.

Era berikutnya adalah era dimana pemrograman  yang menggunakan window sebagai bentuk tampilan atau user interfaces. Profesi pemrogram computer pada era ini banyak berhubungan dengan pemrograman yang berorientasi pada visual seperti Visual basic, visual cobol, dll, yang mempunyai kemampuan orientasi kepada object.  Designer banyak berhubungan dengan design window atau form tampilan yang didukung oleh Tools untuk membangun UI.

Era yang paling akhir adalah system berbasis web, pemrogram computer pada era ini banyak bekerja dengan menggunakan bantuan “development Tools” sehingga pada era ini seorang pemrogram,  designer aplikasi computer dikenal dengan “Developer”. Designer pada era ini banyak berhubungan dengan kegiatan pembuatan User Interface secara sangat dominan. Pemrograman aplikasi dilakukan dengan menggunakan bahasa pemrograman yang berbasis object dengan   kemapuan berbasis Web. Hal lain yang menonjol pada era ini adalah semua system harus bersifat terbuka (open system) yang artinya setiap system harus bersifat saling berkomunikasi dengan system yang lainnya dengan berbagai cara.

PROFESI SOFTWARE ENGINER.

beberapa profesi utama yang berkaitan dengan software aplikasi komputer antara lain software engineer, software, architect, dan software developer. Namun masih terjadi kesimpang siuran mengenai profesi software engineer, software architect, developer, dan sebutan lain terkait profesi yang berhubungan dengan software aplikasi computer.

Untuk menghidari kesimpangsiuran dan/atau kerancuan terhadap profesi tersebut diatas akan di coba untuk mencari definisi untuk tentang software engineer, software architect, dan software developer.

Software engineer:

Sofware engineer didefinisikan oleh IEEE software engineering body of knowledge  tahun 2004 atau SWEBOK 2004 sebagai:

(1) The application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.

(2) The study of approaches as in (1).

Software Architect:

Software architect menurut  Adrew anguelo merupakan penamaan ulang (renaming) dari profesi lama system engineering. Sebelum memahami tentang software architect kita lihat dulu mengenai profesi system engineering yang oleh SWEBOK 204 didefinisikan sebagai:

“Systems engineering is an interdisciplinary approach and means to enable the realization of successful systems. It focuses on defining customer needs and required functionality early in the development cycle, documenting requirements, then proceeding with design synthesis and system validation while considering the complete problem: operations performance, test, manufacturing, cost and schedule, training and support and disposal.”

Sedangkan profesi software architect merupakan derivative dari profesi yang dahulu dikenal dengan system engineer yang oleh Andrew angualo didefinisikan sebagai:

a software architect is responsible for ensuring that complete consideration of such aspects as requirements, designs, topology, hardware, cost, schedules, and training of a project are encompassed in the end result.

Software developer:

Sebutan profesi Software developer muncul pada era aplikasi Web based yang pada era ini banyak bermunculan “development tools” dan Integrated development environment – IDE, yang dikembangkan oleh perusahaan software besar untuk mendukung pengembangan software aplikasi berbasis web.

Dari definisi diatas dapat disimpulkan bahwa profesi software enginer mencakup setiap aspek yang ada dalam SDLC dan bersifat systematic, disciplined, quantifiable.

TREND TERAKHIR PROFESI SOFTWARE ENGINEER.

Sesuai dengan perkembangan teknologi terkait software engineering yang ada saat ini, dimana hampir semua software aplikasi bersifat web-based, dan bersifat terbuka, maka profesi software engineering, akan mengikuti trend yanga ada. Profesi yang ada dan popular saat ini dapat berupa:

Profesi software engineer yang berkaitan dengan development Web application:

  • Web application designer,
  • web application developer,
  • Web content manager,
  • Dll.

Profesi software engineer yang terkait dengan testing:

  • Test case developer,
  • Test engineer,
  • Software quality engineer,
  • Dll.

Profesi software engineer yang terkait dengan operasi , maintenance, dan lainnya:

  • Software application support engineer,
  • Software configuration,
  • Application integrator,
  • Data integrator,
  • Business process engineer,
  • Data warehouse engineer
  • Data mining engineer
  • Business intelligent, Dll.

KESIMPULAN.

Trend profesi software engineer dari tahun ke tahun pada dasarnya sama, namun berkembang terus menerus sesuai dengan perkembangan teknologi yang terkait dengan aplikasi dan metodologi pengembangannya.

Akibat dari perkembangan aplikasi dan metodologi tersebut diatas dapat memunculkan sebutan atau title profesi baru, namun pada  dasarnya merupakan penamaan ulang (renaming) profesi yang telah ada untuk jenis teknologi dan metodologi yang  baru.

Dengan munculnya berbagai software platform dan  tools yang bervariasi dan adanya tuntutan saling berkomunikasi antar platform maka diperlukan profesi software engineer yang berhubungan dengan system integrator.

OOP Basic Concept: bagian 1

January 5, 2009 by didik26s12pribadi60

A. Class.

Class adalah suatu cetakan atau konsep model yang berisi penjelasan / deskrisi mengenai  sesuatu . Karena class ini merupakan model, jadi tergantung dari sesuatu yang akan dimodelkan. Dari model ini selanjutnya dapat digunakan untuk membuat atau membangun bentuk atau benda asli yang dimodelkan, yang nanti akan disebut sebagai object.

mudah untuk memahaminya dapat diilustrasikan sbb:

Bayangkan sebuah pakaian (baju/kaos) yang kita pakai. Sebelum suatu pabrik atau penjahit membuat pakaian, harus dibuat dulu model pakaian tersebut dalam bentuk gambar/patron/mal atau lainnya, dan diberi nama agar model tersebut dapat diidentifikasi. Agar model baju yang dibuat baik dan mudah dipahami, maka harus dijelaskan sifat dari dari baju yang dimodelkan yang meliputi ukuran lingkar badan, linkar leher, panjang lengan, panjang baju, ukuran saku, jml kancing, dan lain sebagainya. Sifat-sifat tersebut diatas disebut property dari model . Setelah jadi model diatas akan mempunyai nama, dan properties, yang menjelaskan model tersebut. Kemudian model tersebut digunakan sebagai dasar untuk melakukan pemotongan kain dan menjahitnya

Contoh:

Nama model:  Baju; Property model: ukuran lingkar badan, linkar leher, panjang lengan, panjang baju, ukuran saku, jml kancing, posisi saku, dan lain sebagainya.

Contoh Class pada java:

1.  Class dengan nama=  Sesuatu, tanpa atribut / property.

class Sesuatu {    }

2. Class dengan nama = orang, dengan  atribut nama, tinggi, berat, warnaKulit, jenisRambut.

class  orang {
String nama;
Int tinggi;
Int berat;
String warnaKulit;
String jenisRambut;
}

3. class dengan nama= Baju,  dengan atribut ukuran lingkar badan, linkar leher, panjang lengan, panjang baju, ukuran    saku, jml kancing, posisi Saku.

class  Baju {
int  lingkarBadan;
int linkarLeher;
int  panjangLengan;
int  panjangBaju;
int  ukuranSaku;
int     jmlKancing;
String posisiSaku;
}

B. Object.

Object adalah sesuatu atau benda yang dihasilkan dari model atau cetakan yang dinamakan class. Pada kasus model diatas object-nya adalah Baju yang dihasilkan dari model (patron/ mal) baju. Jml Object yang dibangun dapat tergantug dari kebutuhan (bisa >= 0).

Instantiate (Pembentukan) object.

Proses pembuatan atau pembentukan object dengan class  yang telah dibuat dinamakan proses instansiasi (instantiate). Dalam contoh diatas proses instansiasi merupakan pembuatan pakaian (kaos/ baju) dari model Baju yang telah dibuat.

Contoh pembuatan object:

Baju bajuku = new Baju;

Arti dari perintah diatas kurang lebih sebagai berikut: buat object bajuku dari class  Baju.

Pada bahasa java, pemanggilan object harus dilakukan melalui class main, sehingga program java lengkapnya adalah sebagai berikut:

class  BajuTidur {
int  lingkarBadan;
int linkarLeher;
int  panjangLengan;
int  panjangBaju;
int  ukuranSaku;
int     jmlKancing;
String posisiSaku;
}
public class BajuTidurBeraksi{
public static void main (String[] args) {
// membuat object bajuku dari class baju
BajuTidur Bajuku = new BajuTidur();
// menampilkan paramater dilaya
System.out.println(“contoh aplikasi java untuk class BajuTidur, dengan properties :”);
System.out.println(“lingkarBadan “);
System.out.println(“linkarLeher “);
System.out.println(“panjangLengan “);
System.out.println(“panjangBaju “);
System.out.println(“ukuranSaku “);
System.out.println(“jmlKancing “);
System.out.println(“posisiSaku “);
System.out.println(” “);
}
}

Contoh aplikasi java sedrhana lainnya:

KendaraanBeraksi.java

/* menampilkan nama class dan property denngan nama KendaraanBeraksi, mempunyai class kendaraan, mempunyai **property: jmlRoda, Warna, tahunBuat. */

class kendaraan {
int jmlRoda;
String warna;
int tahunBuat; }
public class KendaraanBeraksi {
public static void main(String[] args) {
kendaraan kendaraanku = new kendaraan();
System.out.println(“kendaraan ku Mempunyai property: “);
System.out.println(“Jumlah Roda”);
System.out.println(“Warna”);
System.out.println(“Tahun buat”);
}
}

OrangBeraksi.java (disertai pengisian variable)

class orang {
String nama;
int tanggalLahir;
int bulanLahir;
String jenisKelamin;}
public class OrangBeraksi {
public static void main(String[] args){
//
orang orangku = new orang();
//
orangku.nama=”Didik S Pribadi”;
orangku.tanggalLahir=26;
orangku.bulanLahir=12;
orangku.jenisKelamin=”Pria”;
//
System.out.println(“Nama             : “+orangku.nama);
System.out.println(“Tanggal Lahir    : “+orangku.tanggalLahir);
System.out.println(“Bulan Lahir      : “+orangku.bulanLahir);
System.out.println(“Jenis Kelamin    : “+orangku.jenisKelamin);
}
}

C. Method.

Disamping nama, dan property, salah satu karakteristik utama class/object  yang menjelaskan operasi atau emampuan yang dapat dilakukan oleh class/object. Class dapat mempunyai perilaku yang menggambarkan operasi yang dapat ilakukan oleh class yang dibuat. Perilaku ini selanjutnya disebut method.

Contoh class dengan method:
1. class dengan nama=bukuTulis, dengan attribut warnaSampul, jmlHalaman, dengan method ditulis, dibaca.

Class bukuTulis{
String warnaSampul;
Int jmlHalaman;
Void  ditulis() {
}
Void dibaca() {
}
}

2. Class dengan nama = orang, dengan attribut nama, umur, dan dengan method BerjalanMaju, BerjalanMundur, BerjalanKesampingKiri, BerjalanKesampingKanan, Berdiri, Duduk.

class orang {
String nama;
Int umur;
Void BerjalanMaju() {
}
Void BerjalanMundur() {
}
Void BerjalanKesampingKiri() {
}
Void BerjalanKesampingKanan() {
}
Void Berdiri() {
}
Void Duduk() {
}
}

Sebagai illustrasi lanjut perhatikan televisi yang anda miliki dirumah.   Operasi  yang dapat dilakukan terhadap televisi tersebut  antara lain dihidupkan, dimatikan, volume dibesarkan, volume dikecilkan, warna diterangkan, warna diredupkan.

Jika televisi tersebut sebagai object, maka televisi tersebut mempunyai method berikut:
* hidupkan,
* matikan,
* besarkan,
* kecilkan,
* terangkan,
* redupkan.

Dari penjelasan diatas kita dapat tuangkan object televisi dan operasinya ke dalam bahasa pemrograman java sbb:

TelevisiBeraksi.java

// contoh class dengan method
class televisi {
int ukuran;
int thnProduksi;
String merek;
// method
void Matikan(String par1)

{
System.out.println(“Method mematikan TV”);
System.out.println(“TV sedang “+par1);

}
void Hidupkan(String par2)

{
System.out.println(“Method menghidupkan TV”);
System.out.println(“TV sedang “+par2);

}
void Besarkan(String par3)

{
System.out.println(“Method membesarkan volume suara TV”);
System.out.println(“TV sedang “+par3);

}
void Kecilkan(String par4)

{
System.out.println(“Method mengecilkan volume suara TV”);
System.out.println(“TV sedang “+par4);

}
void Terangkan(String par5)

{
System.out.println(“Method menerangkan gambar TV”);
System.out.println(“TV sedang “+par5);

}
void Redupkan(String par6)

{
System.out.println(“Method meredupkan gambar TV”);
System.out.println(“TV sedang “+par6);

}

}
public class TelevisiBeraksi

{
public static void main(String[] args)

{
// membuat object
televisi televisiku = new televisi();
// memanggil  method
televisiku.Matikan(“dimatikan”);
televisiku.Hidupkan(“dihidupkan”);
televisiku.Besarkan(“dibesarkan”);
televisiku.Kecilkan(“dikecilkan”);
televisiku.Terangkan(“diterangkan gambarnya”);
televisiku.Redupkan(“diredupkan gambarnya”);
}
}

BukuBeraksi.java (dengan method)

Class BukuTulis {
String warnaSampul;
Int jmlHalaman;

Void  InfoBuku() {
System.out.println(“Warna sampul buku :”+warnaSampul);
System.out.println(“Jumlah Halaman       :”+ jmlHalaman);
}
System.out.println(“Method buku ditulis”);

}
Void  Ditulis() {
System.out.println(“Method buku ditulis”); }
Void Dibaca() {
System.out.println(“Method buku dibaca”);

}
}

Public  class BukuBeraksi {
Public static main (String[] args) {
BukuTulis mybuku = new BukuTulis();
mybuku.Ditulis();
mybuku.Dibaca();
mybuku.warnaSampul=”Biru”;
mybuku.jmlHalaman=25;
mybuku.info();

}
}

Hello world!

January 5, 2009 by didik26s12pribadi60

Welcome to WordPress.com. This is your first post. Edit or delete it and start blogging!