12 BAB 2 LANDASAN TEORI 2.1 Perangkat Lunak 2.1.1 Definisi Perangkat Lunak Menurut Pressman (2001, p6), Perangkat lunak didefinisikan sebagai berikut : 1. Perintah (program komputer) yang bertujuan untuk menjalankan suatu fungsi yang diinginkan saat dieksekusi. 2. Struktur data yang memungkinkan program memanipulasi informasi, dan 3. Dokumen yang menggambarkan bagaimana suatu program bekerja dan kegunaan dari program tersebut. 2.1.2 Karakteristik Perangkat Lunak Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen sistem fisik. Dengan Demikian, perangkat lunak memiliki ciri yang berbeda dari perangkat keras : 1. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. Meskipun banyak kesamaan di antara pabrik perangkat keras dan perangkat lunak, aktivitas keduanya secara mendasar sangat berbeda. Dalam aktivitas tersebut kualitas yang tinggi dicapai melalui perancangan yang baik, tetapi di dalam fase pembuatan perangkat keras, selalu saja ditemukan masalah kualitas yang tidak mudah untuk disesuaikan dengan perangkat lunak. Kedua
45
Embed
BAB 2 LANDASAN TEORI 2.1 Perangkat Lunak 2.1thesis.binus.ac.id/doc/Bab2/2011-1-00292-if 2.pdf · Bila suatu komponen perangkat keras telah usang, komponen dapat diganti ... 7. Perangkat
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
12
BAB 2
LANDASAN TEORI
2.1 Perangkat Lunak
2.1.1 Definisi Perangkat Lunak
Menurut Pressman (2001, p6), Perangkat lunak didefinisikan sebagai berikut :
1. Perintah (program komputer) yang bertujuan untuk menjalankan suatu fungsi
yang diinginkan saat dieksekusi.
2. Struktur data yang memungkinkan program memanipulasi informasi, dan
3. Dokumen yang menggambarkan bagaimana suatu program bekerja dan
kegunaan dari program tersebut.
2.1.2 Karakteristik Perangkat Lunak
Perangkat lunak lebih merupakan elemen logika dan bukan merupakan elemen
sistem fisik. Dengan Demikian, perangkat lunak memiliki ciri yang berbeda dari
perangkat keras :
1. Perangkat lunak dibangun dan dikembangkan, tidak dibuat dalam bentuk
yang klasik.
Meskipun banyak kesamaan di antara pabrik perangkat keras dan perangkat
lunak, aktivitas keduanya secara mendasar sangat berbeda. Dalam aktivitas
tersebut kualitas yang tinggi dicapai melalui perancangan yang baik, tetapi di
dalam fase pembuatan perangkat keras, selalu saja ditemukan masalah
kualitas yang tidak mudah untuk disesuaikan dengan perangkat lunak. Kedua
13
aktivitas itu tergantung pada manusia, tetapi hubungan antara penerapan yang
dilakukan manusia dengan usaha yang diperoleh sangat berbeda. Kedua
aktivitas itu membutuhkan konstruksi sebuah “produk”, tetapi pendekatan
yang dipakai berbeda.
Biaya untuk perangkat lunak dikonsentrasikan kepada pengembangan. Hal ini
berarti proyek perangkat lunak tidak dapat diatur seperti pengaturan proyek
pemanufakturan.
2. Perangkat lunak tidak rentan terhadap pengaruh linkungan
Seiring dengan berjalannya waktu, perangkat keras sudah mulai menjadi
usang ketika terkena pengaruh penumpukan debu, getaran, ketidakhati-
hatian, suhu tinggi, dan beberapa kerusakan lainnya yang disebabkan oleh
lingkungan, sedangkan perangkat lunak tidak rentan terhadap pengaruh
lingkungan yang merusak yang menyebabkan perangkat keras menjadi usang.
Bila suatu komponen perangkat keras telah usang, komponen dapat diganti
dengan suku cadangnya, namun tidak ada suku cadang bagi perangkat lunak.
Setiap kegagalan perangkat lunak menggambarkan kesalahan dalam
perancangan atau proses di mana rancangan diterjemahkan ke dalam kode
mesin yang dapat dieksukusi. Demikianlah, pemeliharaan perangkat lunak
menjadi lebih kompleks daripada pemeliharaan perangkat keras.
3. Perangkat lunak merupakan satu kesatuan yang lengkap (kompleks) dan tidak
dapat dirakit secara terpisah
Setelah masing-masing komponen diseleksi, perangkat keras dapat dipesan
secara terpisah, berbeda dengan perangkat lunak. Memang memungkinkan
14
untuk memesan perangkat lunak secara terpisah, tetapi tetap merupakan satu
kesatuan yang lengkap, bukan sebagai komponen yang dapat dipasangkan ke
dalam program-program yang baru.
Sebuah komponen perangkat lunak harus dirancang dan dilaksanakan
sehingga dapat digunakan kembali dalam program yang berbeda (can be
reused). Komponen modern yang memungkingkan untuk digunakan kembali
merangkum, baik data dan pengolahan yang diterapkan pada data,
memungkinkan Software Engineer untuk membuat aplikasi baru dari bagian
yang dapat digunakan kembali.
2.1.3 Aplikasi Perangkat Lunak
Area perangkat lunak berikut menunjukkan luasnya potensi dari perangkat lunak
(Pressman, 2001, pp9-11) :
1. Perangkat Lunak Sistem
Perangkat lunak sistem adalah program yang bertujuan untuk melayani
progran – program lainnya.
2. Perangkat Lunak Real-Time
Perangkat lunak real-time adalah program yang menyediakan data kepada
pihak yang membutuhkan saat data tersebut dibutuhkan. Waktu untuk data
dibutuhkan tergantung pada untuk apa perangkat lunak tersebut dibuat,
misalnya tiap detik, tiap mikrodetik, dsb.
15
3. Perangkat Lunak Bisnis
Perangkat lunak bisnis dikembangkan untuk mengakses satu atau lebih
database besar yang berisi informasi bisnis.
4. Perangkat Lunak Teknik dan Ilmu Pengetahuan
Perangkat lunak teknik dan ilmu pengetahuan mempunyai ciri khas
menggunakan “number crunching” algorithms. Perangkat lunak ini
memiliki jangkauan aplikasi mulai dari astronomi sampai vulkanologi, dari
analisis otomotif sampai dinamika orbit pesawat ruang angkasa, dan dari
biologi molekuler dampai pabrik yang sudah diotomatisasi.
5. Embedded Software
Embedded software adalah perangkat lunak yang ditanamkan (embedded)
pada suatu alat elektronik untuk mengontrol hasil, kerja, serta sistem untuk
keperluan konsumen dan pasar industri. Embedded software ada dalam read-
only memory. Embedded software dapat melakukan fungsi yang terbatas
serta fungsi esoterik (misal keypad control untuk microwave) atau
memberikan kemampuan kontrol dan fungsi yang penting (contohnya, fungsi
digital dalam sebuah automobil seperti kontrol bahan bakar, penampilan
dashboard, sistem rem, dll)
6. Perangkat Lunak Komputer Personal
Perangkat lunak komputer personal merupakan perangkat lunak yang
dikembangkan untuk digunakan pada komputer personal. Pengolah kata,
multimedia, hiburan, manajemen database, aplikasi keuangan bisnis dan
16
personal, jaringan eksternal atau akses database hanya merupakan beberapa
saja dari ratusan aplikasi yang ada.
7. Perangkat Lunak Berbasis Web
Halaman web yang diambil oleh browser adalah perangkat lunak yang
menggabungkan instruksi yang dieksekusi (contohnya, CGI, HTML, Perl,
Java) dan data (contohnya, hypertext dan berbagai format visual dan audio).
Pada dasarnya, jaringan menjadi komputer besar yang menyediakan sumber
daya perangkat lunak yang hampir tak terbatas, yang dapat diakses oleh
siapa saja dengan modem.
8. Perangkat Lunak Kecerdasan Buatan
Perangkat lunak kecerdasaran buatan (Artificial Intelligent (AI)) adalah
perangkat lunak yang menggunakan algoritma non-numeris untuk
memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau
analisis secara langsung. Tujuan utama dari AI adalah memungkinkan
komputer untuk bekerja semirip mungkin dengan manusia.
2.2 Rekayasa Piranti Lunak
2.2.1 Definisi Rekayasa Perangkat Lunak
Rekayasa piranti lunak adalah pengembangan dan penggunaan prinsip – prinsip
pengembangan yang tepat untuk menghasilkan perangkat lunak yang dapat diandalkan,
dapat bekerja dengan baik pada mesin nyata, dan juga ekonomis. (Pressman, 2001, p20).
.
17
2.2.2 Fase Umum Rekayasa Perangkat Lunak
Menurut Pressman (2001, p22) , Usaha yang berhubungan dengan Rekayasa
Perangkat Lunak dapat dikategorikan ke dalam tiga fase umum dengan tanpa
mempedulikan area aplikasi, ukuran proyek, atau kompleksitasnya, yaitu sebagai
berikut:
1. Fase Definisi (Definition Phase)
Pada fase ini, hal – hal yang dilakukan oleh pengembang perangkat lunak
adalah mengidentifikasi informasi apa yang akan diproses, fungsi, dan proses
kerja yang dibutuhkan, mendefinisikan bagaimana sistem berjalan,
menggambarkan interface yang akan dibangun, batasan desain yang ada, dan
mendefinisikan kriteria – kriteria yang jelas untuk mengukur kesuksesan
sistem yang dibangun. Kebutuhan (Requirement) adalah kunci dari sistem
dan perangkat lunak yang didefinisikan.
2. Fase Pengembangan (Development Phase)
Fase ini merupakan masa mendefinisikan bagaimana data dikonstruksikan,
bagaimana fungsi-fungsi diimplementasikan sebagai arsitektur perangkat
lunak, bagaimana detail prosedur akan diimplementasikan, bagaimana
interface diimplementasikan pada perangkat lunak, bagaimana rancangan
akan diterjemahkan ke dalam bahasa pemrograman (atau bahasa non-
prosedural), dan bagaimana pengujian akan dilakukan. Metode yang
digunakan dalam fase pengembangan ini bervariasi, namun terdapat tiga
tugas teknis khusus yang harus selalu ada, yakni perancangan perangkat
lunak, pembuatan kode, dan pengujian perangkat lunak.
18
3. Fase Pemeliharaan (Maintenance Phase)
Fase pemeliharaan lebih difokuskan pada perubahan (change) pada perangkat
lunak yang telah selesai dikembangkan yang dihubungkan dengan koreksi
kesalahan, penyesuaian yang dibutuhkan ketika lingkungan perangkat lunak
berkembang, dan perubahan sehubungan dengan perkembangan yang
disebabkan oleh perubahan kebutuhan pelanggan. Fase ini mengaplikasikan
lagi langkah-langkah pada fase definisi dan fase pengembangan, tetapi tetap
tergantung pada konteks perangkat lunak yang ada. Ada empat tipe
perubahan yang terjadi selama masa fase pengembangan, yaitu :
- Koreksi
Walaupun sudah melewati proses pengujian dan kontrol kualitas terbaik
sekalipun, perangkat lunak tidak bebas dari kesalahan saat diberikan
kepada pengguna. Pemeliharaan korektif bertujuan memperbaiki cacat
atau kerusakan.
- Adaptasi
Dari waktu ke waktu, lingkungan original (contoh : CPU, sistem operasi,
aturan-aturan bisnis, karakteristik produk eksternal) di mana perangkat
lunak dikembangkan akan terus berubah. Pemeliharaan adaptif bertujuan
untuk menyesuaikan perangkat lunak kepada perubahan pada kebutuhan
fungsional original.
- Perkembangan (Enhancement)
Saat perangkat lunak dipakai, pemakai/ pelanggan dapat memikirkan dan
mengajukan fungsi-fungsi tambahan yang memberi mereka keuntungan.
19
Pemeliharaan perkembangan bertujuan memperluas dan menambahkan
fungsi perangkat lunak untuk mengakomodasi permintaan tambahan dari
pelanggan/pengguna.
- Pencegahan
Keadaan perangkat lunak semakin memburuk sehubungan dengan waktu,
dan karena itu, Preventive Maintenance yang sering juga disebut
Rekayasa Perangkat Lunak, harus dilakukan untuk memungkinkan
perangkat lunak melayani kebutuhan para pemakainya. Pada dasarnya,
preventive maintenance bertujuan melakukan perubahan pada program
komputer sehingga bisa menjadi lebih mudah untuk dikoreksi,
disesuaikan, dan dikembangkan dengan teknologi baru.
2.2.3 Model Proses Perangkat Lunak
Model proses untuk Rekayasa Perangkat Lunak dipilih berdasarkan sifat aplikasi
dan proyeknya, metode dan alat-alat bantu yang akan dipakai, dan kontrol serta
penyampaian yang dibutuhkan. Perkembangan perangkat lunak bisa dianggap sebagai
lingkaran pemecahan masalah dimana terdapat empat keadaan berbeda, yaitu status quo,
definisi masalah, perkembangan teknis memecahkan masalah di keseluruhan aplikasi
dari banyak teknologi, dan integrasi pemecahan menyampaikan hasil (contoh :
dokumen, program, data, fungsi bisnis baru, produk baru) kepada siapa yang
membutuhkan pertama kali.
20
2.2.3.1 Model Air Terjun (Waterfall Model)
“Proses model yang terkadang disebut sebagai classic lifecycle atau model
sekuensi linear ini mengusulkan sebuah pendekatan kepada perkembangan perangkat
lunak yang sistematik dan sekuensial yang mulai pada tingkat kemajuan sistem pada
seluruh analisis, desain, kode, pengujian, dan pemeliharaan.” (Pressman 2001, p28).
Gambar 2.1 Gambar Model Waterfall Menurut Pressman
Dimodelkan setelah siklus rekayasa konvensional model ini melingkupi aktivitas-
aktivitas sebagai berikut:
1. Rekayasa dan pemodelan sistem/ informasi
Aktivitas ini menyangkut pengumpulan kebutuhan pada tingkat sistem
dengan sejumlah kecil analisis serta desain tingkat puncak, juga mencakup
pengumpulan kebutuhan pada tingkat bisnis strategis dan tingkat area bisnis.
2. Analisis kebutuhan perangkat lunak
Proses pengumpulan kebutuhan diintensifkan dan difokuskan, khususnya
pada perangkat lunak. Untuk memahami sifat program yang dibangun,
perekaya perangkat lunak (analis) harus memahami domain informasi,
tingkah laku, unjuk kerja, dan antarmuka yang diperlukan. Kebutuhan baik
analisis desain kode tes
Permodelan sistem Informasi
21
untuk sistem maupun perangkat lunak didokumentasikan dan dilihat lagi
dengan pelanggan.
3. Desain
Desain perangkat lunak sebenarnya adalah proses multi langkah yang
berfokus pada empat atribut sebuah program berbeda; struktur data, arsitektur
perangkat lunak, representasi interface, dan detail (algoritma) procedural.
Proses desain menerjemahkan syarat/ kebutuhan ke dalam sebuah
representasi perangkat lunak yang dapat diperkirakan demu kualitas sebelum
pemunculan kode, desain menjadi bagian dari konfigurasi perangkat lunak.
4. Generasi kode
Desain harus diterjemahkan ke dalam bentuk mesin yang bisa dibaca,
langkah pembuatan kode melakukan tugas ini. Jika desain dilakukan dengan
cara yang lengkap, pembuatan kode dapat diselesaikan secara mekanis.
5. Pengujian
Setelah kode dibuat, pengujian program dimulai. Proses pengujian berfokus
pada logika internal perangkat lunak, memastikan bahwa semua pernyataan
sudah diuji, dan pada eksternal fungsional, yaitu mengarahkan pengujian
untuk menemukan kesalahan-kesalahan dan memastikan bahwa input yang
dibatasi akan memberikan hasil aktual yang sesuai dengan hasil yang
dibutuhkan.
6. Pemeliharaan
Perangkat lunak akan sangat mungkin mengalami perubahan setelah
disampaikan kepada pelanggan, hal itu dapat terjadi karena kesalahan-
22
kesalahan ditemukan, karena perangkat lunak harus disesuaikan untuk
mengakomodasi perubahan-perubahan di dalam lingkungan eksternalnya,
atau karena pelanggan membutuhkan perkembangan fungsional atau unjuk
kerja. Pemeliharaan perangkat lunak mengaplikasikan lagi setiap fase
program sebelumnya dan tidak membuat baru lagi.
2.3 Aplikasi Berbasis Web
Aplikasi adalah sebuah program atau sekumpulan program atau software yang
dibuat untuk end user. Aplikasi berbasis Web merupakan e-application.
Menurut Kadir (2004, p3), “Aplikasi Web adalah suatu aplikasi yang dapat
membentuk halaman-halaman Web berdasarkan permintaan pemakai.”
Berbagai contoh aplikasi Web :
• Mesin pencari atau search engine (contoh : google, yahoo search)
• Toko Online (contoh : bookpool, amazon, dll)
• Lelang Online (contoh : eBay)
• Perbankan (contoh : klikbca)
• Situs-situs berita (contoh : detik.com, cnn, kompas, dll)
• Layanan Akademis Perguruan Tinggi (contoh : binusmaya.binus.ac.id)
Berbeda dengan Aplikasi berbasis desktop, yang menjalankan fungsinya secara
langsung pada masing-masing komputer, Aplikasi Web merupakan salah satu contoh
aplikasi client/ server. Client mewakili computer yang digunakan oleh seorang pemakai
yang hendak menggunakan aplikasi, sedangkan server mewakili computer yang
menyediakan layanan aplikasi. Ciri khas yang lain pada penggunaan aplikasi Web,
23
pemakai menggunakan perangkat lunak yang dinamakan perambah atau Web Browser
atau sering disebut browser saja, misalnya Internet Explorer dan Mozilla Firefox untuk
mengakses aplikasi Web.
- Adaptive Web
Menurut Peter Brusilovksy,dkk (2007, p3) adaptive web adalah sebuah website
yang dapat merepresentasikan informasi sesuai dengan tingkah laku user, misalnya saat
user bernavigasi dari satu halaman ke halaman lain, sistem dapat memanipulasi link
(mengurutkan, menutupi) untuk menyediakan dukungan navigasi yang adaptif.
Gambar 2.2 Arsitektur Aplikasi Berbasis Web
Middleware adalah perangkat lunak yang menerjemahkan kode-kode khusus
untuk dapat berinteraksi dengan program database melalui bantuan Web server.
Web Server adalah sebuah perangkat lunak server yang berfungsi menerima
permintaan HTTP atau HTTPS dari klien yang dikenal dengan web browser dan
mengirimkan kembali hasilnya dalam bentuk halaman-halaman web yang umumnya
24
berbentuk dokumen HTML. Web server digunakan untuk menyimpan halaman website
atau homepage. Contoh : Apache, IIS.
Web browser adalah suatu perangkat lunak yang digunakan untuk menampilkan
halaman-halaman website atau informasi dari web server. Contoh : Internet Explorer,
Mozilla Firefox.
Pada dasarnya, pemrograman web dibedakan menjadi dua kelompok, yaitu
client-side programming dan server-side programming. Perbedaan utamanya terletak