Jumat, 29 Maret 2013

PENDAHULUAN

1.1. PENGERTIAN REKAYASA PERANGKAT LUNAK
Istilah Rekayasa Perangkat Lunak (RPL) secara umum disepakati sebagai
terjemahan dari istilah Software Engineering. Istilah Software Engineering mulai
dipopulerkan tahun 1968 pada Software Engineering Conference yang
diselenggarakan oleh NATO. Sebagian orang mengartikan RPL hanya sebatas
pada bagaimana membuat program komputer. Padahal ada perbedaan yang
mendasar antara perangkat lunak (software) dan program komputer.
Perangkat lunak adalah seluruh perintah yang digunakan untuk
memproses informasi. Perangkat lunak dapat berupa program atau prosedur.
Program adalah kumpulan perintah yang dimengerti oleh komputer sedangkan
prosedur adalah perintah yang dibutuhkan oleh pengguna dalam memproses
informasi (O’Brien, 1999).

1.2. TUJUAN REKAYASA PERANGKAT LUNAK
Secara umum tujuan RPL tidak berbeda dengan bidang rekayasa yang
lain. Secara lebih khusus kita dapat menyatakan tujuan RPL
adalah :
a. Memperoleh biaya produksi perangkat lunak yang rendah.
b. Menghasilkan perangkat lunak yang kinerjanya tinggi, andal dan tepat
waktu.
c. Menghasilkan perangkat lunak yang dapat bekerja pada berbagai jenis
platform.
d. Menghasilkan perangkat lunak yang biaya perawatannya rendah.

1.3. RUANG LINGKUP
- Software requirements berhubungan dengan spesifikasi kebutuhan dan
persyaratan perangkat lunak.
- Software design mencakup proses penentuan arsitektur, komponen,
antarmuka, dan karakteristik lain dari perangkat lunak.
- Software construction berhubungan dengan detil pengembangan perangkat
lunak, termasuk algoritma, pengkodean, pengujian, dan pencarian
kesalahan.
- Software testing meliputi pengujian pada keseluruhan perilaku perangkat
lunak.
- Software maintenance mencakup upaya-upaya perawatan ketika perangkat
lunak telah dioperasikan.
- Software configuration management berhubungan dengan usaha perubahan
konfigurasi perangkat lunak untuk memenuhi kebutuhan tertentu.
- Software engineering management berkaitan dengan pengelolaan dan
pengukuran RPL, termasuk perencanaan proyek perangkat lunak.
- Software engineering tools and methods mencakup kajian teoritis tentang
alat bantu dan metode RPL.
- Software engineering process berhubungan dengan definisi, implementasi,
pengukuran, pengelolaan, perubahan dan perbaikan proses RPL.
- Software quality menitikberatkan pada kualitas dan daur hidup perangkat
lunak.

1.4. REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU KOMPUTER
- Berdasarkan pengelompokkan Denning (2000) dan Wikipedia (2007), RPL
merupakan sub-bidang ilmu komputer yang setara dengan sub-bidang lainnya.
Sedangkan menurut ACM (Association for Computing Machinery), RPL
merupakan bagian dari Section D (Perangkat Lunak). Meskipun terlihat terpisahpisah,
namun dalam penerapannya, sub-bidang RPL selalu membutuhkan
dukungan dari sub-bidang lain, terutama sub-bidang Algoritma dan Struktur
Data, Bahasa Pemrograman, Basis Data, Sistem Operasi dan Jaringan, dan
Sistem Informasi.

1.5. REKAYASA PERANGKAT LUNAK DAN DISIPLIN ILMU LAIN
Cakupan ruang lingkup yang cukup luas, membuat RPL sangat terkait
dengan disiplin bidang ilmu lain. Tidak saja dengan sub-bidang dalam disiplin
ilmu komputer namun dengan beberapa disiplin ilmu lain di luar ilmu komputer.
- Bidang ilmu manajemen meliputi akutansi, finansial, pemasaran,
manajemen operasi, ekonomi, analisis kuantitatif, manajemen sumber daya
manusia, kebijakan dan strategi bisnis.
- Bidang ilmu matematika meliputi aljabar linier, kalkulus, peluang, statistik,
analisis numerik dan matematika diskrit.
- Bidang ilmu manajemen proyek meliputi semua hal yang berkaitan dengan
proyek, seperti ruang lingkup proyek, anggaran, tenaga kerja, kualitas,
manajemen resiko, dan penjadwalan proyek.
- Bidang ilmu manajemen kualitas meliputi pengembangan sistem kualitas,
manajemen resiko dan keandalan, perbaikan kualitas, dan metode-metode
kuantitatif.
- Bidang ilmu ergonomika menyangkut hubungan (interaksi) antara manusia
dengan komponen-komponen lain dalam sistem komputer.
- Bidang ilmu rekayasa sistem meliputi teori sistem, analisis biayakeuntungan,
pemodelan, simulasi, proses dan operasi bisnis.

1.6. PERKEMBANGAN REKAYASA PERANGKAT LUNAK
Meskipun baru dicetuskan pada tahun 1968, namun RPL telah memiliki
sejarah yang cukup panjang. Dari sisi disiplin ilmu, RPL masih relatif muda dan akan terus berkembang.
Arah perkembangan yang saat ini sedang dikembangkan antara lain meliputi : Agile Software Development, Experimental Software Development, Model-Driven
Software Development dan Software Product Lines.

1.7. PROFESI DAN SERTIFIKASI
Profesi sebagai seorang Software Engineer mungkin masih terasa asing di
telinga orang Indonesia. Sebagian besar orang Indonesia mungkin lebih familiar
dengan sebutan Ahli Teknologi Informasi, Analis Sistem Informasi,
Programmer, Operator atau sebutan profesi lainnya. Hal ini karena adanya
kerancuan tentang istilah RPL seperti telah disebutkan di awal bab. Namun di
negara-negara yang maju dalam bidang teknologi informasi, sebutan Software
Engineer telah mulai banyak digunakan

1.8. REKAYASA PERANGKAT LUNAK DAN PEMECAHAN MASALAH
Secara konsep, rekayasa perangkat lunak memiliki kedekatan dengan
prinsip-prinsip pemecahan masalah. Pemahaman tentang masalah, strategi dan
proses pemecahan masalah, serta pendekatan sistem pada pemecahan masalah
akan sangat membantu proses rekayasa perangkat lunak.

1.8.1. Masalah dan Gejala
Masalah (problem) adalah perbedaan antara kondisi yang terjadi dan
kondisi yang diharapkan atau boleh juga diartikan sebagai perbedaan antara
kondisi sekarang dengan tujuan yang diinginkan.
Gejala adalah tanda/petunjuk terjadinya suatu masalah.

1.8.2. Tipe-tipe Masalah
- Masalah pemenuhan standar
Tipe masalah dalam kelompok ini adalah masalah-masalah yang
berhubungan dengan pencapaian standar yang telah ditentukan dalamsebuah organisasi. Biasanya tujuan seperti ini berlaku dalam jangka
yang relative panjang.
- Masalah pemilihan alternative
Masalah dalam kelompok ini berhubungan dengan bagaimana memilih
solusi terbaik dari berbagai alternative berdasarkan kriteria-kriteria
tertentu. Permasalahan ini seringkali kita jumpai dalam kehidupan
sehari-hari, seperti bagaimana memilih sekolah yang tepat, memilih
lokasi tempat tinggal, memilih bidang pekerjaan. Masing-masing
alternatif dan kriteria memiliki bobot yang telah disepakati.
- Masalah pemenuhan kepuasan konsumen
Pada organisasi-organisasi yang bersifat profit (mencari keuntungan),
masalah-masalah pada kelompok ini merupakan tipe yang seringkali
muncul. Konsumen memiliki berbagai macam keinginan yang satu sama
lain berbeda. Memenuhi seluruh keinginan konsumen sangat tidak
mungkin dan sangat memberatkan sebuah organisasi. Oleh karena itu
perlu dicari pemecahan yang sama-sama menguntungkan, baik bagi
konsumen maupun organisasi tersebut.
- Masalah pencapaian tujuan
Tipe ini mirip dengan tipe pertama (masalah pemenuhan standar). Yang
berbeda adalah, pada tipe ini tujuan yang ingin dicapai dapat berubahubah
dan bersifat jangka pendek.

1.8.3. Pemecahan Masalah
Pemecahan masalah adalah sebuah proses dimana suatu situasi diamati
kemudian bila ditemukan ada masalah dibuat penyelesaiannya dengan cara
menentukan masalah, mengurangi atau menghilangkan masalah atau mencegah
masalah tersebut terjadi.
Tahapan kritis dari proses pemecahan masalah adalah Pendefinisian Masalah.
Secara umum proses pemecahan masalah dapat dilakukan dengan
empat tahapan utama yaitu :
• Memahami dan mendefinisikan masalah
Bagian ini merupakan bagian yang sangat penting karena menjadi awal dari
seluruh proses pemecahan masalah. Tujuan pada bagian ini adalah
memahami masalah dengan baik dan menghilangkan bagian-bagian yang
dirasa kurang penting.
• Membuat rencana untuk pemecahan masalah
Pada bagian ini ada dua kegiatan penting yaitu :
a) mencari berbagai cara penyelesaian yang mungkin diterapkan
b) membuat rencana pemecahan masalah
Penyelesaian suatu masalah biasanya tidak hanya satu tapi mungkin bisa
beberapa macam. Sebagai ilustrasi, apabila kita berada di kota Surabaya
dan ingin pergi ke Jakarta, maka banyak cara yang mungkin bisa dilakukan,
misalnya kita bisa menempuh dengan angkutan darat, laut atau udara.
Dengan angkutan darat kita bisa menggunakan kereta api, bus atau
angkutan yang lain. Jalurnya pun kita bisa lewat jalur utara, tengah atau
selatan. Jadi banyak sekali cara penyelesaian yang bisa kita kembangkan.
Masing-masing mempunyai karakteristik sendiri-sendiri. Dari sekian banyak
penyelesaian ini kita harus memilih satu yang berdasarkan persyaratan
tertentu merupakan cara yang paling baik untuk menyelesaikan
permasalahan. Setelah terpilih, maka kita dapat membuat rencana kasar
(outline) penyelesaian masalah dan membagi masalah dalam bagian-bagian
yang lebih kecil. Rencana kasar (outline) penyelesaian masalah hanya berisi
tahapan-tahapan utama penyelesaian masalah.
• Merancang dan menerapkan rencana untuk memperoleh cara penyelesaian
Pada bagian ini rencana kasar penyelesaian masalah diperbaiki dan
diperjelas dengan pembagian dan urutan rinci yang harus ditempuh dalam
penyelesaian masalah.
• Memeriksa dan menyampaikan hasil dari pemecahan masalah
Bagian ini bertujuan untuk memeriksa apakah akurasi (ketepatan) hasil dari
cara yang dipilih telah memenuhi tujuan yang diinginkan. Selain itu juga
untuk melihat bagaimana daya guna dari cara yang dipilih yang dipilih.

BAB 2 METODE REKAYASA PERANGKAT LUNAK

Umumnya ada empat notasi yang sering digunakan dalam DFD seperti
tampak Gambar 2.8.
1.
External Entity melambangkan sumber data (dari mana
data berasal) atau penerima informasi (tujuan akhir
dari data). Contoh external entity antara lain
konsumen yang memesan suatu produk, manajer yang
mengevaluasi laporan penjualan mingguan, dan lainlain.

2.
Proses adalah serangkaian langkah yang dilakukan
untuk memanipulasi data, misalnya pengumpulan,
pengurutan, pemilihan, pelaporan, peringkasan, analisis
dan lain-lain.

3.
Data store adalah tempat untuk menyimpan data untuk
digunakan kemudian. Nama yang pada data store ini
merupakan abstraksi dari data yang disimpan. Namun
detil / item data apa saja yang ada, bagaimana cara
akses, atau bagaimana mengorganisasinya tidak
dijelaskan dalam notasi ini.

4.
Data flow menunjukkan aliran data dari satu tempat ke
tempat lain. Perpindahan data ini dapat dari external
entity ke proses, antar proses satu dengan yang lain,
dari proses ke data store. Dalam penggambarannya
setiap data flow harus diberi label yang menunjukkan
data apa yang mengalir.

contoh dari DFD


DFD dari sebuah restaurant

Tabel 2.1. Aturan-aturan dalam DFD
1. Umum
• input-input ke suatu process akan selalu berbeda dengan outputoutputnya
• obyek obyek (External Entity, Process, Data Storage, dan Data Flow)
yang ada pada suatu DFD selalu memiliki nama yang unik

2. External Entity
• nama yang dipakai pada External Entity selalu menggunakan kata
benda
• data tidak boleh mengalir secara langsung dari External Entity yang
satu ke External Entity yang lain

3. Process
• nama yang dipakai pada Process selalu menggunakan kata kerja
• tidak ada Process yang hanya menghasilkan output
• tidak ada Process yang hanya menerima input

4. Data Storage
• nama yang dipakai pada Data Storage selalu menggunakan kata
benda
• data tidak boleh mengalir secara langsung dari Data Storage yang
satu ke Data Storage yang lain
• data tidak boleh mengalir secara langsung dari External Entity ke
Data Storage demikian juga sebaliknya.

5. Data Flow
• nama yang dipakai pada Data Flow selalu menggunakan kata benda
• Data Flow di antara dua notasi hanya memiliki satu arah aliran
• Percabangan (fork) menunjukkan adanya data yang persis sama yang
mengalir dari suatu tempat ke dua atau lebih tempat yang lain
• Penggabungan (join) menunjukkan adanya data yang persis sama
yang mengalir dua atau lebih tempat menuju satu tempat yang lain
• Data Flow menuju Data Storage berarti terjadi update data
• Data Flow dari Data Storage berarti terjadi pembacaan / pengambilan
data

ALGORITMA PEMROGRAMAN DASAR

5.1. VARIABEL, KONSTANTA DAN TIPE DATA
Variabel, konstanta dan tipe data merupakan tiga hal yang akan selalu kita
jumpai ketika kita membuat program. Bahasa pemrograman apapun dari yang
paling sederhana sampai yang paling kompleks, mengharuskan kita untuk
mengerti ketiga hal tersebut.

5.1.1. Variabel
Variabel adalah tempat dimana kita dapat mengisi atau mengosongkan
nilainya dan memanggil kembali apabila dibutuhkan. Setiap variabel akan
mempunyai nama (identifier) dan nilai.
Aturan-aturan variabel :
• Nama variabel harus diawali dengan huruf.
• Tidak boleh menggunakan spasi pada satu nama variabel. Spasi bisa
diganti dengan karakter underscore (_).
• Nama variabel tidak boleh mengandung karakter-karakter khusus,
seperti : .,+, -, *, /, <, >, &, (, ) dan lain-lain.
• Nama variabel tidak boleh menggunakan kata-kata kunci d bahasa
pemrograman

5.1.2. Konstanta
Konstanta adalah variabel yang nilai datanya bersifat tetap dan tidak bisa
diubah. Jadi konstanta adalah juga variabel bedanya adalah pada nilai yang
disimpannya. Jika nilai datanya sepanjang program berjalan tidak berubahubah,
maka sebuah varibel lebih baik diperlakukan sebagai konstanta. Pada
sebuah kode program, biasanya nilai data dari konstanta diberikan langsung di
bagian deklarasi konstanta. Sedangkan untuk variabel biasanya hanya
ditentukan nama variabel dan tipe datanya tanpa isian nilai data. Aturan
penamaan variabel juga berlaku untuk penamaan konstanta. Demikian juga
aturan penetapan tipe data.

5.1.3. Tipe Data
Tipe data adalah jenis data yang dapat diolah oleh komputer untuk
memenuhi kebutuhan dalam pemrograman komputer. Setiap variabel atau
konstanta yang ada dalam kode program, sebaiknya kita tentukan dengan pasti
tipe datanya. Ketepatan pemilihan tipe data pada variabel atau konstanta akan
sangat menentukan pemakaian sumberdaya komputer (terutama memori
komputer). Salah satu tugas penting seorang programmer adalah memilih tipe
data yang sesuai untuk menghasilkan program yang efisien dan berkinerja tinggi.
Ada banyak tipe data yang tersedia tergantung jenis bahasa pemrograman
yang dipakai yaitu:
1. Tipe data numeric
Tipe data numeric digunakan pada variabel atau konstanta untuk
menyimpan nilai dalam bentuk bilangan atau angka. Semua bahasa
pemrograman menyediakan tipe data numeric, hanya berbeda dalam jenis
numeric yang diakomodasi.

2. Character
Bersama dengan tipe data numeric, character merupakan tipe data yang
paling banyak digunakan. Tipe data character kadang disebut sebagai char atau
string. Tipe data string hanya dapat digunakan menyimpan teks atau apapun
sepanjang berada dalam tanda petik dua (“…”) atau petik tunggal (‘…’).
Perhatikan contoh berikut.

3. Boolean
Tipe data Boolean digunakan untuk menyimpan nilai True/False
(Benar/Salah). Pada sebagian besar bahasa pemrograman nilai selain 0
menunjukkan True dan 0 melambangkan False. Tipe data ini banyak digunakan
untuk pengambilan keputusan pada struktur percabangan dengan IF … THEN
atau IF … THEN … ELSE.

4. Array
Array atau sering disebut sebagai larik adalah tipe data yang sudah
terstruktur dengan baik, meskipun masih sederhana. Array mampu menyimpan
sejumlah data dengan tipe yang sama (homogen) dalam sebuah variabel. Setiap
lokasi data array diberi nomor indeks yang berfungsi sebagai alamat dari data
tersebut. Penjelasan tentang array akan disampaikan lebih detil pada bagian lain
dari bab ini.

5. Record atau Struct
Seperti halnya Array, Record atau Struct adalah termasuk tipe data
komposit. Record dikenal dalam bahasa Pascal/Delphi sedangkan Struct dikenal
dalam bahasa C++. Berbeda dengan array, tipe data record mampu
menampung banyak data dengan tipe data berbeda-beda (heterogen). .
Sebagai ilustrasi array mampu menampung banyak data namun dengan satu tipe
data yang sama, misalnya integer saja. Sedangkan dalam record, kita bisa
menggunakan untuk menampung banyak data dengan tipe data yang berbeda,
satu bagian integer, satu bagian lagi character, dan bagian lainnya Boolean.
Biasanya record digunakan untuk menampung data suatu obyek. Misalnya,
siswa memiliki nama, alamat, usia, tempat lahir, dan tanggal lahir. Nama akan
akan menggunakan tipe data string, alamat bertipe data string, usia bertipe data
single (numeric), tempat lahir bertipe data string dan tanggal lahir bertipe data
date.

6. Image
Image atau gambar atau citra merupakan tipe data grafik. Misalnya
grafik perkembangan jumlah siswa SMK, foto keluarga kita, video perjalanan dan
lain-lain. Pada bahasa-bahasa pemrograman modern terutama yang berbasis
visual tipe data ini telah didukung dengan sangat baik.

7. Date Time
Nilai data untuk tanggal (Date) dan waktu (Time) secara internal
disimpan dalam format yang spesifik. Variabel atau konstanta yang
dideklarasikan dengan tipe data Date dapat digunakan untuk menyimpan baik
tanggal maupun jam. Tipe data ini masuk dalam kelompok tipe data composite
karena merupakan bentukan dari beberapa tipe data. Berikut ini contoh tipe
data dalam Visual Basic.



5.2. STRUKTUR ALGORITMA PEMROGRAMAN

5.2.1. Pengertian Algoritma

Algoritma adalah urutan langkah-langkah logis penyelesaian masalah
yang disusun secara sistematis. Masalah dapat berupa apa saja, dengan catatan
untuk setiap masalah, ada syarat kondisi awal yang harus dipenuhi sebelum
menjalankan algoritma. Konsep algoritma sering kali disetarakan dengan sebuah
resep. Sebuah resep biasanya memiliki daftar bahan atau bumbu yang akan
digunakan, urutan pengerjaan dan bagaimana hasil dari urutan pengerjaan
tersebut. Apabila bahan yang digunakan tidak tertera (tidak tersedia) maka
resep tersebut tidak akan dapat dikerjakan. Demikian juga jika urutan
pengerjaannya tidak beraturan, maka hasil yang diharapkan tidak akan dapat
diperoleh.
Algoritma yang berbeda dapat diterapkan pada suatu masalah dengan
syarat yang sama. Tingkat kerumitan dari suatu algoritma merupakan ukuran
seberapa banyak komputasi yang dibutuhkan algoritma tersebut untuk
menyelesaikan masalah. Umumnya, algoritma yang dapat menyelesaikan suatu
permasalahan dalam waktu yang singkat memiliki tingkat kerumitan yang
rendah, sementara algoritma yang membutuhkan waktu lama untuk
menyelesaikan suatu masalah membutuhkan tingkat kerumitan yang tinggi.

5.2.2. Cara Penulisan Algoritma
Ada tiga cara


1. Structured English (SE)
SE merupakan alat yang cukup baik untuk menggambarkan suatu
algoritma. Dasar dari SE adalah Bahasa Inggris, namun kita dapat
memodifikasi dengan Bahasa Indonesia sehingga kita boleh menyebutnya
sebagai Structured Indonesian (SI).Karena dasarnya
adalah bahasa sehari-hari, maka SE atau SI lebih tepat untuk
menggambarkan suatu algoritma yang akan dikomunikasikan kepada pemakai
perangkat lunak.

2. Pseudocode
Pseudocode mirip dengan SE. Karena kemiripan ini kadang-kadang SE
dan Pseudocode dianggap sama. Pseudo berarti imitasi atau tiruan atau
menyerupai, sedangkan code menunjuk pada kode program. Sehingga
pseudocode adalah kode yang mirip dengan instruksi kode program
sebenarnya. Pseudocode didasarkan pada bahasa pemrograman yang
sesungguhnya seperti BASIC, FORTRAN atau PASCAL. Pseudocode yang
berbasis bahasa PASCAL merupakan pseudocode yang sering digunakan.
Kadang-kadang orang menyebut pseudocode sebagai PASCAL-LIKE algoritma.

3. Flowchart
Flowchart atau bagan alir adalah skema/bagan (chart) yang
menunjukkan aliran (flow) di dalam suatu program secara logika. Flowchart
merupakan alat yang banyak digunakan untuk menggambarkan algoritma
dalam bentu notasi-notasi tertentu. Secara lebih detil bagian ini akan dibahas
pada bagian berikutnya.
Posted by Unknown On 05.56.00 No comments

0 komentar:

Posting Komentar

  • RSS
  • Delicious
  • Digg
  • Facebook
  • Twitter
  • Linkedin
  • Youtube