Senin, 12 November 2012

SOFTWARE ENGINEERING


PENJELASAN SOFTWARE ENGINEERING

Arti Software Engineering adalah Ilmu yang mempelajari tehnik pembuatan software yang baik dengan pendekatan tehnik (Engineering ap­proach)

Menurut Fritz Badar, software engineering adalah disiplin ilmu yang menerapkan prinsip-prinsip engineering agar mendapatkan software yang ekonomis yang dapat dipercaya dan bekerja lebih efisien pada mesin yang se­benarnya.
Software engineering  terdiri dari 3 elemen kunci, yaitu :
  1. Metode, 
  2. Peralatan (tools),
  3. Prosedur,
yang memungkinkan manajer mengontrol proses pengembangan software dan memberikan praktisi dasar yang baik untuk pembentukan software berkualitas tinggi.

YANG DIPELAJARI DALAM SOFTWARE ENGINEERING

1.      Metode Software Enginnering
Metode software engineering memberikan tehnik-tehnik bagaimana membentuk software. Metode ini terdiri dari serangkaian tugas :
1.  Perencanaan & estimasi proyek
2. Analisis kebutuhan sistem dan software
3.  Desain struktur data
4. Arsitektur program dan prosedur algoritma
5.  Coding
6. Testing dan pemeliharaan
2.      Peralatan Software Engineering
Peralatan software engineering memberikan dukungan atau semiautomasi untuk metode. Contohnya :
- CASE (Case Aided Software Engineering), yaitu suatu software yang menggabungkan software, hard­ware, dan database software engineering untuk menghasilkan suatu lingkungan software engineering.
- Database Software Engineering, adalah sebuah struktur data yang berisi informasi penting tentang analisis, desain, kode dan testing.
- Analogi dengan CASE pada hardware adalah : CAD, CAM, CAE
3.      Prosedur Software Engineering
Terdiri dari :
1. urut-urutan di mana metode tersebut diterapkan
2.  dokumen
3. laporan-laporan
4. formulir-formulir yang diperlukan
5.  mengontrol kualitas software
6. mengkoordinasi perubahan yang terjadi pada software

Dalam penguasaan atas model software engineering atau software engineering paradigma, dikenal ada 3 metode yang luas dipergunakan, yaitu :

1.      Classic Life Cycle Pradigm - Model Water Fall - Model Siklus Hidup Klasik

A.     System Engineering and Analysis
Karena software merupakan bagian terbesar dari sistem, maka pekerjaan dimulai dengan cara menerap­kan kebutuhan semua elemen sistem dan mengalokasikan sebagian kebutuhan tersebut ke software. Pandangan terhadap sistem adalah penting, terutama pada saat software harus berhubungan dengan ele­men lain, seperti :
1.  Hardware
2. Software
3. Database
B.     Analisis kebutuhan software
Suatu proses pengumpulan kebutuhan software untuk mengerti sifat-sifat program yang dibentuk soft­ware engineering, atau analis harus mengerti fungsi software yang diinginkan, performance dan inter­face terhadap elemen lainnya. Hasil dari analisis ini didokumentasikan dan direview / dibahas / ditinjau bersama-sama customer.
C.     Design
Desain software sesungguhnya adalah proses multi step (proses yang terdiri dari banyak langkah) yang memfokuskan pada 3 atribut program yang berbeda, yaitu :
1.   Struktur data
2. Arsitektur software
3.  Rincian prosedur
Proses desain menterjemahkan kebutuhan ke dalam representasi software yang dapat diukur kualitasnya sebelum mulai coding. Hasil dari desain ini didokumentasikan dan menjadi bagian dari konfigurasi software.
D.     Coding
Desain harus diterjemahkan ke dalam bentuk yang dapat dibaca oleh mesin
E.      Testing
Segera sesudah objek program dihasilkan, pengetesan program dimulai. Proses testing difokuskan pada logika internal software. Jaminan bahwa semua pernyataan atau statements sudah dites dan lingkungan external menjamin bahwa definisi input akan menghasilkan output yang diinginkan.
F.      Maintenance
Software yang sudah dikirim ke customer data berubah karena

2.      Prototype Paradigm

Seringkali seorang customer sulit menentukan input yang lebih terinci, proses yang diinginkan dan output yang diharapkan. Tentu saja ini menyebabkan developer tidak yakin dengan efisiensi alogoritma yang di­buatnya, sulit menyesuaikan sistem operasi, serta interaksi manusia dan mesin yang harus diambil. Dalam hal seperti ini, pendekatan prototype untuk software engineering merupakan langkah yang terbaik. Proto­type sebenarnya adalah suatu proses yang memungkinkan developer membuat sebuah model software.

3.      Fourth Generation Tehnique Paradigm - Model tehnik generasi   ke 4 / 4GT

Istilah Fourth Generation Technique (4GT) meliputi seperangkat peralatan software yang memungkinkan seorang developer software menerapkan beberapa karakteristik software pada tingkat yang tinggi, yang ke­mudian menghasilkan source code dan object code secara otomatis sesuai dengan spesifikasi yang ditentu­kan developer. Saat ini peralatan / tools 4GT adalah bahasa non prosedur untuk :
- DataBase Query
- Pembentukan laporan ( Report Generation )
- Manipulasi data
Definisi dan interaksi layar (screen)
- Pembentukan object dan source ( Object and source generation )
- Kemampuan grafik yang tinggi, dan
- Kemampuan spreadsheet
Keterangan gambar :
Model 4GT untuk software engineering dimulai dengan rangkaian pengumpulan kebutuhan. Idealnya, seorang customer menjelaskan kebutuhan-kebutuhan yang selanjutnay diterjemahkan ke dalam proto­type. Tetapi ini tidak dapat dilakukan karena customer tidak yakin dengan apa yang diperlukan, tidak jelas dalam menetapkan fakta-fakta yang diketahui dan tidak dapat menentukan informasi yang diing­inkan oleh peralatan 4GT.
Untuk aplikasi kecil adalah mungkin bergerak langsung dari langkah pengumpulan kebutuhan ke im­plementasi yang menggunakan bahasa non prosedur fourth generation (generasi ke 4). Tetapi untuk proyek besar, pengembangan strategi desain sistem tetap diperlukan, sekalipun kita menggunakan 4GL. Penggunaan 4GT tanpa desain untuk proyek besar akan menyebabkan masalah yang sama yang ditemui dalam pengembangan software yang menggunakan pendekatan konvensional.
  Implementasi yang menggunakan 4GL memungkinkan developer software menjelaskan hasil yang diing­inkan yang kemudian diterjemahkan ke dalam bentuk source code dan object code secara otomatis.
- Langkah yang terakhir adalah mengubah implementasi 4GT ke dalam sebuah product. Selanjutnya de­veloper harus melakukan pengetesan, pengembangan dokumentasi dan pelaksanaan semua aktifitas lainnya yang diwujudkan dalam model software engineering.

Masalah yang dihadapi dalam model 4GT adalah adanya sebagian orang yang beranggapan bahwa :
A.     peralatan 4GT tidak semudah penggunaan bahasa pemrograman,
B.     source code yang dihasilkan oleh peralatan ini tidak efisien,
C.     pemeliharaan sistem software besar yang dikembangkan dengan 4GT masih merupakan tanda tanya.

KURIKULUM SOFTWARE ENGINEERING

Tingkat I : Mempersiapkan siswa menjadi Stand Alone Programmer
Semester 1:
1.      Mengoperasikan Sistem Operasi
2.      Menginstalasi software
3.      Mengubah konfigurasi software
4.      Menyiapkan dan melakukan survey untuk menentukan kebutuhan data
Semester 2:
1.      Mengoperasikan software bahasa pemograman level 1
2.      Konversi data level 1
3.      Menguji program level 1

Tingkat II: Mempersiapkan siswa menjadi Multi User Programmer
Semester 3:
1.      Mengoperasikan sistem operasi jaringan komputer berbasis teks
2.      Mengoperasikan sistem operasi jaringan komputer berbasis GUI
3.      Melakukan perancangan pengumpulan data
4.      Melakukan desain dan perancangan software
5.      Melakukan pengkodean program

Semester 4:
1.      Melakukan back up data
2.      Melakukan restore data
3.      Mengoperasikan software aplikasi basis data
4.      Membuat query data
5.      Menguji Program

Tingkat III: Mempersiapkan siswa menjadi Web Programmer
Semester 5:
1.      Membangun interface dengan bahasa pemograman berorientasi objek
2.      Melakukan pengkodean program
3.      Mengoperasikan bahasa pemograman berbasis web
4.      Membangun program aplikasi remote data interaktif

PELUANG KERJA SEBAGAI SOFTWARE ENGINEERING

Profesi ini di tahun sebelum 1990 an tidak banyak di lirik kebanyakan orang di karenakan sistem kerjanya yang terlalu monoton yang selalu berkutat dengan algoritma dan hanya mengelola data pada tahapan lokal, serta tidak banyak menjajikan untuk penghasilan yang bergengsi, software engineer di anggap hanya sebagai alat untuk membantu perusahaan dalam menjalankan roda bisnisnya dengan cara membuat aplikasi yang di inginkan oleh perusahaan, serta mengelola data pada tahapan lokal saja.

Tetapi setelah era 1990an banyak bermunculan milyader –milyader baru yang berasal dari latar belakang profesi software engineer atau pengembang software engineer seperti , Bill gates CEO Microsoft corporate yang menguasai pasar software di dunia, Waren Buffet CEO Oracel software, Michael Dell CEO Dell corporate, dan masih banyak lagi yang lainnya, dan di amerika setelah badai krisis melanda system perekonomian negeri tersebut, warga negaranya mulai menjadi melirik peluang baru untuk bisa eksis dalam menjalankan roda perekonomian, banyak yang memulai menjadi tenaga ahli dalam software engineer, kerena keahlian ini hanya sedikit kompetitornya dan nilai income yang di dapat juga cukup menjanjikan, maka tidak heran kalau sekarang di amerika tenaga ahli bidang software engineer mempunyai nilai tersendiri di masyarakat amerika ini bisa terlihat dalam data berikut ini :

1.      Human resource management S1 $49,96 (atau sekitar Rp. 518,335) per jamnya
2.      Software engineering S1 $ 42,26 (atau sekitar Rp. 438,448)
3.      Fashion Design S1 $ 34,33 (atau sekitar Rp. 352,750)
4.      Administrasi Pendidikan S2 $30 (atau sekitar Rp. 311,250)
5.      Accounting S1 / S2 $31,65 atau sekitar Rp. 328,368.75 per jam


hasmapsa.staff.gunadarma.ac.id/Downloads/files/1503/RPL1.DOC
 

Senin, 01 Oktober 2012

ETIKA PROFESI


ETIKA PROFESI


PROFESI DIBIDANG TEKNOLOGI INFORMASI

Ø  GAMBARAN UMUM PEKERJAAN DIBIDANG TEKNOLOGI INFORMASI
Secara umum, pekerjaan dibidang teknologi informasi setidaknya terbagi dalam 4 kelompok sesuai bidangnya
a.    Kelompok pertama, mereka yang bergelut didunia perangkat lunak (software), baik mereka yang merancang system operasi database maupun system aplikasi, pada lingkungan ini terdapat pekerjaan-pekerjaan seperti misalnya :
·  Sistem analis, meruakan orang yang bertugas menganalisa system yang akan diimplementasikan, mulai dari menganalisa system yang ada, kelebihan dan kekurangannya, sampai studi kelayakandan desai system yang akan dikembangkan.
·     Programmer, merupakan orang yang bertugas mengimplementasikan rancangan system analis, yaitu membuat program (baik aplikasi maupun system operasi) sesuai dengan system yang dianalisa sebelumnya .
·    Web Designer, merupakan orang yang melakukan kegiatan perencanaan, termasuk studi kelayakan, analisi dan desain terhadap suatu proyek pembuatan aplikasi berbasis web.
·         Web Programer, merupakan orang yang bertugas mengimplementasikan rancangan web designer, yaitu membuat program berbasis web sesuai dengan desain yang telah dirancang sebelumnya.
·         Dan lain lain
b.  Kelompok kedua, mereka yang bergelut dibidang perangkat keras (hardware). pada lingkungan ini terdapat pekerjaan-pekerjaan seperti :
·   Technical engineer, orang yang berkecimpung dalam bidang teknik, baik dalam pemeliharaan maupun dalam perbaikan perangkat system computer.
·   Networking engineer, orang yang berkecimpung dalam bidang teknis jaringan computer dari maintenance sampai pada troubleshootingnya.
·         Dan lain lain
c.  Kelompok tiga, mereka yang berkecimpung dalam operasiaonal sisteminformasi. pada lingkungan ini terdapat pekerjaan-pekerjaan seperti :
·    EDP Operator, orang orang yang bertugas mengoperasikan program-program yang berhubungan dengan elektronik data processing dalam lingkungan sebuah perusahaan atauorganisasi lainnya.
·   System administrator, orang yang bertugas melakukan administrasi dalam system, melakukan pemeliharaan system, memiliki kewenangan mengatur hak akses terhadap system, serta hal-hal yang berhubungan dengan pengaturan operasional dalah sebuah system.
·   Mis director, orang yang memliki wewenang paling tinggi dalam sebuah sisem informasi, melakukan manajemen terhadap sisem tersebut secara keseluruhan baik perangkat keras, perangkat lunak maupun sumber daya manusianya.
d. Kelompok empat, mereka yang berkecimpung di pengembangan bisnis teknologi informasi.pada bagian inipekerjaan diidentifikasikan oleh pengelompokan kerja diberbagai sector diindustri teknologi informasi.
Ø  PROFESI DIBIDANG TI SEBAGAI PROFESI
Untuk mengatakan apakah suatu pekerjaan termasuk profesi atau bukan, kriteria tersebut harus diuji. Demikian juga dengan pekerjaan dibidang computer. Sebagai contoh, akan dikaji apakah pekerjaan software engineer bias digolongkan sebagai sebuah profesi. Software engineer melakukan aktifitas engineering (analisa, rekayasa, spesifikasi, implementasi, dan validasi) untukmenghasilkan produk berupa perangkat lunak yang digunakan untuk memecahkan masalah diberbagai bidang.
Kemudian, untuk bias melaksanakan tugas sebagai software engineer, seseorang harus memiliki latar belakang pendidikan tertentu yang memberikan bekal untuk melakukan pekerjaan dengan baik dan benar. Selain itu , setelah lulus dari pendidikan , seorang engineer software juga dituntut harus memiliki pengalaman cukup dalam pekerjaan ini melalui keikutsertaannya sebagai pekerja magang dalam proyek.
Julius Hermawan (2003), mencatat dua karakteristik yang dimiliki software engineer sehingga pekerjaan itu layak disebut sebuah profesi. Dua karakteristik itu adalah kompetensi dan adanya tanggung jawab pribadi.
Seorang software engineer perlu terus mengembangkan bidang ilmu dan pengembangan perangkat lunak misalnya:
a.      Bidang ilmu metodologi pengembangan perangkat lunak.
b.      Manajemen sumber daya
c.       Mengelola kelompok kerja
d.      Komunikasi
Seorang software engineer idealnya merupakan seseorang yang memiliki pendidikan formal setingkat sarjana atau diploma dengan ilmu yang merupakan gabungan dari bidang-bidang seperti :
a.      Ilmu Komputer (Computer science)
Menurut CSAB (Computing Science Acceditation Board) definisiilmu computer adalah ilmu pengetahuan yang berhubungan dengan computer dan komputasi.
b.      Teknik Rekayasa (Engineering)
Ilmu tentang rekayasa adalah ilmu yang mempelajari analisa, rekayasa,spesifikasi, dan validasi untuk menghasilkan produk yang digunakan untukmemecahkan masalah dalam berbagai bidang .
c.       Teknik Industri (Industrial Engineering)
Teknik Industri merupakan bidang teknikilmu yang mempelajaririset operasi, perencanaan produksi, pengendalian kualitas, serta optimasi proses dan sumber daya untuk mencapai keberhasilan proses industry.
d.      Ilmu Manajemen.
Ilmu manajemen merupakan ilmu yang sangan dibutuhkan terutama dalam mengelola manusia dan kelompok kerja serta melakukan manajemen proyek.
Ø  PEKERJAAN DIBIDANG TI STANDAR PEMERINTAHAN
Institusi Pemerintah telah melakukan klasifikasi pekerjaan dalam bidang teknologi Informsi sejak 1992. Pegawai Negeri Sipil yang bekerja dibidang teknologi informasi, disebut sebagai Pranata Komputer. Pranata Komputer adalah Pegawai Negeri Sipil yang diberi tugas, wewenang, tanggung jawab serta hak untuk membuat, merawat, dan mengembangkan system dan atau program pengolahandengan computer.
No
Jabatan Pranata Komputer
Pangkat
Golongan
1
Asisten Prenata Komputer Madya
Pengatur Muda tingkat I
II/b
2
Asisten Prenata Komputer
Pengatur
II/c
3
Ajun Pranata Komputer Muda
Pengatur tingkat I
II/d
4
Ajun Pranata Komputer Madya
Pengatur Muda
III/a
5
Ajun Pranata Komputer
Pengatur Muda tingkat I
III/b
6
Ahli Pranata Komputer Pratama
Penata
III/c
7
Ahli Pranata Komputer Muda
Penata tingkat I
III/d
8
Ahli Pranata Komputer Utama Madya
Pembina
IV/a
9
Ahli Pranata Komputer Utama Pratama
Pembina tingkat I
IV/b
10
Ahli Pranata Komputer Utama muda
Pembina Utama Muda
IV/c
11
Ahli Pranata Komputer Utama Madya
Pembina Utama
IV/d

Ø  STANDARISASI PROFESI TI MENURUT SRIG-PS SEARCC
SEARCC ( South East Asia Regional Computer Confideration) merupakan suatu badan yang beranggotakan himpunan profesianal IT yang terdiri dari 13 negara. SEARCC dibentuk pada februari 1978 di Singapura oleh 6 ikatan computer dari Negara Negara tetangga seperti Hongkong, Indonesia, Malaysia, Philipina, Singapura dan Thailand.
Indonesia sebagai anggota SEARCC telah turut aktif serta dalam berbagai kegiatan yang dilaksanakanoleh SEARCC. Salah satunya adalah SRIG-PS (Spesial Regional Internet Groups on Profesional Standaritation), yang mencoba merumuskan standarisasi pekerjaanmdalam dunia teknologi informasi.


Dapat dilihat jenis pekerjaan dibidang TI yang direkomendasikan SRIGPS – SEARCC antara lain meliputi :
  1. Programmer
Merupakan bidang pekerjaan untuk melakukan pemrograman computer terhadap suatu system yang telah dirancang sebelumnya.
  1. Sistem Analist
Merupakan bidang pekerjaan untuk melakukan analisis dan desain terhadap sebuah system sebelum dilakukan implementasi atau pemrograman lebih lanjut.
  1. Project Manager
Merupakan pekerjaan untuk melakukan manajemen terhadap proyek-proyek berbasis system informasi. Level ini adalah level pengambil keputusan.
  1. Instructor
Berperan dalam melakukan bimbingan, pendidikan dan pengarahan baik terhadap anak didik maupun pekerja level dibawahnya.
  1. Specialist
Pekerjaan ini merupakan pekerjaan yang membutuhkan keahlian khusus. Pekerjaan spesialis menurut model SEARCC ini terdiri dari:
-          Data Comunication
-          Database
-          Quality Assurances
-          IS Audit
-          System Software Support
-          Distributed system
-          System Integration

Posisi programmer dan system analyst adalah dua dari beberapa posisi terdepan yang banyak di cari oleh perusahaan-perusahaan.
Jika lulusan TI lebih mengincar bidang kerja yang sesuai keahliannya, yaitu programmer dan system analyst, mereka harus memperhatikan kualifikasi utama, yaitu technical knowledge dan technical skill. Di samping dua posisi tersebut, posisi IT sales juga merupakan salah satu posisi yang banyak dicari perusahaan. Pada posisi sales, para professional dibidang teknologi informasi tentunya memiliki kelebihan dengan adanya penguasaan TI yang baik sebagai product knowledge.