Rekayasa perangkat lunak adalah sebuah disiplin dimana dalam

advertisement
10
“Rekayasa perangkat lunak adalah sebuah disiplin dimana dalam
menghasilkan perangkat lunak bebas dari kesalahan dan dalam pengiriman
anggaran tepat waktu serta memuaskan keinginan pemakai.”
2. Menurut Fritz Bauer :
“Rekayasa perangkat lunak adalah penetapan dan penggunaan prinsip
rekayasa dalam rangka memperoleh perangkat lunak yang dapat dipercaya
dan dapat bekerja secara efisien pada mesin nyata.”
3. Menurut IEEE 610.12 :
“Rekayasa perangkat lunak adalah sebuah studi pendekatan dan aplikasi
secara sistematis, disiplin pengembangan operasi dan pemeliharaan
perangkat lunak yang kesemuanya itu merupakan aplikasi rekayasa yang
berkaitan dengan perangkat lunak.”
Dari ketiga pengertian tersebut, arti yang diberikan Fritz Bauer sangat sesuai
dengan tujuan dan sasaran dari rekayasa perangkat lunak. Pernyataan Stephen R.
Schach terbatas pada menanggulangi kekurangan yang terjadi jika tidak
menerapkan rekayasa perangkat lunak. Pengertian yang diberikan IEEE 610.12
paling baik dalam menyampaikan wujud dari rekayasa perangkat lunak.
Rekayasa perangkat lunak merupakan ilmu yang penting untuk diperdalam
karena teknologi ini memberikan stabilitas, kontrol, dan organisasi aktifitas yang
jika tidak terkontrol dapat menjadi sangat kacau.
11
Ada beberapa tujuan dilakukan rekayasa perangkat lunak. Tujuan tersebut
antara lain:
1. Untuk membangun software yang benar dan benar sebuah software (Right
Software and Software Right).
2. Untuk membangun software yang tepat (correct).
3. Dikelola dengan baik untuk pemeliharaan kebenarannya (correctness).
2.2.
Data Synchronization
Data synchronization merupakan proses penyeragaman data yang dapat
terjadi antara dua sumber atau lebih. Penyeragaman data ini dapat berjalan secara
berkesinambungan dan dari waktu ke waktu baik dari target penyimpanan data
maupun sebaliknya.
Data
synchronization
dapat
berupa
file
maupun
database.
File
synchronization biasanya digunakan untuk backup hard drive secara eksternal.
Dapat juga berupa database synchronization yang akan digunakan pada
pembuatan aplikasi penjualan ini. Sedangkan model data synchronization dapat
digolongkan menjadi dua macam, yakni:
1. Wholesale transfer. Dalam kasus ini, data akan ditransfer ke salah satu
host untuk perbandingan local.
2. Timestamp synchronization. Dalam kasus ini, perubahan data akan
ditandai dengan perubahan waktu pada data. Dimana penyeragaman akan
dilakukan berdasarkan waktu update data tersebut.
12
2.2.1
Mode Operasi Database Synchronizer
Dalam database synchronizer, dikenal beberapa mode operasi yang
digunakan, diantaranya adalah:
1. Database to files
Mode ini akan mengambil database yang sudah ada dan menghasilkan
skema untuk setiap objek yang diindikasikan. Setiap objek yang berhasil
diindikasikan akan menunjukkan table statis dari database. Untuk dapat
menjalankan mode operasi ini, diperlukan koneksi ke database lokal dan
hak akses penuh ke lokasi file tertentu/folder sebagai target operasi.
2. Database to database
Mode ini akan mengambil database yang sudah ada untuk dijadikan
sebagai sumber saat mengupdate data dan skema pada database target.
Dengan demikian database target akan memiliki data dan skema yang
sama dengan database sumbernya.
3. Files to database
Mode ini merupakan penyederhanaan dari mode operasi yang kedua
diatas. Dimana pada mode operasi ini akan dibuat perbandingan
sementara pada satu / lebih file yang telah dikodekan, untuk kemudian
mensikronkan database target berdasarkan file ini. Koneksi ke database
lokal diperlukan pada mode operasi ini. Pada file yang telah dibuat ini,
dapat ditentukan fungsi atau batasan yang dapat dimodifikasi sesuai
kebutuhan yang diharapkan pada database target. Mode operasi ini
disebut juga sebagai mode operasi manual.
13
Beberapa mode operasi diatas dapat membantu dalam pengembangan
aplikasi yang memiliki fitur untuk mensikronkan database. Namun untuk aplikasi
berbasis web, seperti yang kita ketahui kebanyakan host hanya membuka port
tertentu saja untuk setiap koneksi share IP/domain nya. Hal ini mengakibatkan
database target tidak dapat di remote secara online dari luar jaringan yang telah
ditentukan/dibatasi. Sehingga mode operasi yang kedua, yakni database to
database tidak dapat diterapkan pada proses pembuatan aplikasi ini.
Port koneksi database menggunakan 3306 dan port koneksi share
IP/domain yang biasanya dapat diakses adalah port 80 untuk akses publik, port 21
untuk akses FTP (File Transfer Protocol), dan port 22 untuk akses SSH (Secure
Shell).
2.3.
Extensible Markup Language (XML)
XML merupakan bahasa markup (campuran) untuk keperluan umum yang
disarankan W3C untuk membuat dokumen markup keperluan pertukaran data
antar system yang beraneka ragam. XML merupakan kelanjutan dari HTML
(Hyper Text Markup Language) yang merupakan bahasa standar dalam Internet.
XML didesign untuk mampu menyajikan data secara ringkas dan sesuai
dengan kebutuhan saja. Karena kemampuannya dalam menggambarkan isi dari
sebuah dokumen, maka XML juga dapat digunakan untuk menggambarkan
sembarang konten database, namun dengan tetap memperhatikan struktur dan cara
yang telah distandarkan.
14
2.3.1
Keunggulan XML
Keunggulan XML dapat disederhanakan sebagai berikut:
1. Pintar (Intelligence). XML dapat menangani berbagai tingkat (level)
kompleksitas.
2. Dapat beradaptasi. Dapat mengadaptasi untuk membuat bahasa sendiri.
Seperti
Microsoft
membuaat
bahasa
MSXML
atau
Macromedia
mengembangkan MXML.
3. Mudah pemeliharaannya.
4. Sederhana. XML lebih sederhana.
5. Mudah dipindah-pindahkan (Portability). XML mempunyai kemudahan
perpindahan (portabilitas) yang lebih bagus.
2.3.2 Peranan XML Dalam Proses Sikronisasi Database
Seperti yang dijelaskan pada bagian mode operasi sikronisasi database
diatas, maka diperlukanlah sebuah file yang dijadikan sebagai media dalam proses
sikronisasi database ini. File ini akan dihasilkan oleh sistem dan digunakan
sebagai sumber data yang bersifat sementara.
Menciptakan file update database dalam format XML bertujuan agar server
pusat maupun server cabang dapat membaca untuk selanjutnya akan digunakan
sebagai data perbandingan yang terbaru. Dimana server pusat membaca data
update terbaru berupa penjualan perhari dari server cabang. Sedangkan server
cabang akan membaca update data harga, PPN dan diskon dari server pusat.
Untuk lebih spesifik, penulis membagi proses ini kedalam 2 (dua) proses, yakni:
15
1. Server cabang membaca konten XML ke server pusat berupa update data,
PPN dan diskon serta meng-upload konten XML ke server pusat
menggunakan koneksi FTP atau SSH.
2. Server pusat membaca konten XML yang telah diupload dari server
cabang berupa update data penjualan sesuai tanggal transaksi dan mengenerate konten XML data PPN dan diskon barang.
Sebagai gambaran awal, contoh konten XML dapat dilihat pada kode baris
dibawah ini:
<?xml version="1.0"?>
<note>
<to>[email protected]</to>
<from>[email protected]</from>
<heading>Perihal: seminar nasional</heading>
<body>Jangan lupa hadiri seminar budaya nasional hari ini di Sabuga</body>
</note>
2.4.
MySQL
MySQL adalah sistem database yang berjalan sebagai server multi-user
yang dapat digunakan untuk mengakses sejumlah database. Nama MySQL
diambil dari nama pengembang pertamanya yakni Michael Widenius, yang dapat
didistribusikan secara gratis dibawah lisensi GNU Public. Beberapa aplikasi blog
menggunakan MySQL sebagai databasenya seperti Wordpress, Drupal, dan
16
Joomla. MySQL juga banyak digunakan pada aplikasi berbasis web berskala
besar termasuk Wikipedia, Google dan Facebook.
2.5.
Aplikasi berbasis web
Word Wide Web (WWW), lebih dikenal dengan web, merupakan salah satu
layanan yang didapat oleh pemakai komputer yang terhubung ke internet.
Web pada awalnya adalah ruang informasi dalam internet, dengan
menggunakan teknologi hypertext, pemakai dituntun untuk menemukan informasi
dengan mengikuti link yang disediakan dalam dokumen web yang ditampilan
dalam browser web.
Sejalan dengan perkembangan teknologi informasi, aplikasi web selain
digunakan untuk mendapatkan informasi juga digunakan sebagai sarana untuk
mempermudah pekerjaan seorang administrator jaringan dalam mengelola
jaringan komputer, biasanya aplikasi berbasis web digunakan sebagai alat bantu
dalam mengkonfigurasi server pada jaringan komputer. Berikut adalah beberapa
alasan kenapa aplikasi berbasis web digunakan:
1. Akses informasi mudah.
2. Mempermudah dalam mengkonfigurasi server.
3. Informasi mudah didistribusikan.
4. Bebas platform, dalam hal ini informasi atau pengeksekusian aplikasi
dapat dikerjakan atau disajikan oleh web browser pada sistem operasi
mana saja karena adanya standar dokumen berbagai tipe data dapat
disajikan.
17
Prinsip dasar cara kerja dari aplikasi berbasis web adalah sebagai berikut :
1. Aplikasi web disimpan dalam dokumen yang disebut dengan halamanhalaman web (web pages).
2. Web page kemudian disimpan dalam komputer yang disebut dengan web
server, komputer web server ini akan melayani permintaan dari client
yang akan menggunakan aplikasi web.
3. Komputer client melakukan eksekusi aplikasi melalui web browser yang
terdapat pada komputer client dengan memasukkan alamat dari aplikasi
web yang ditempatkan di web server.
Pada Gambar 2.1 diperlihatkan cara kerja dari sebuah aplikasi yang berbasis web.
Gambar 2.1 Cara kerja aplikasi berbasis web
2.6.
Barcode Scanner / Barcode Reader
.Barcode scanner merupakan perangkat alat elektronik yang digunakan
untuk membaca cetakan kode barcode. Barcode scanner terdiri dari cahaya infra
18
merah, lensa dan sebuah sensor cahaya optik yang berguna menterjemahkan
impuls ke dalam rangkaian listrik. Hampir semua rangkaian pada barcode scanner
dilengkapi sirkuit untuk menganalisa data gambar barcode yang disediakan oleh
sensor dan mengirimkan konten barcode ke dalam scanner melalui output port.
Teknik penggunaan barcode scanner dapat digolongkan berdasarkan
metode scanningnya, yakni:
4. Pen or wand-type readers: membutuhkan seorang operator untuk
menyentuhkan pena secara merata ke gambar barcode.
5. Semi-automatic handheld readers: operator harus mendekatkan barcode
scanner ke gambar barcode dengan posisi terdekat.
6. Fix-mount readers for automatic reading: dalam hal ini tidak dibutuhkan
operator, hanya saja posisi gambar barcode scanner harus diatur
berdekatan dengan sistematik, sehingga dapat terbaca dengan tepat.
7. Reader gates for automatic scanning: posisi gambar barcode harus berada
dibawah gerbang pemindai dalam waktu tertentu, untuk meng-capture
kode dengan akurat.
19
Gambar 2.2 Barcode scanner / barcode reader dengan gagang tangan
2.7.
Local Area Network
Local Area Network (LAN) adalah sejumlah komputer yang saling
dihubungkan bersama di dalam satu areal tertentu yang tidak begitu luas, seperti
di dalam satu kantor atau gedung. Secara garis besar terdapat dua tipe jaringan
atau LAN, yaitu jaringan Peer to Peer dan jaringan Client-Server. Pada jaringan
peer to peer, setiap komputer yang terhubung ke jaringan dapat bertindak baik
sebagai workstation maupun server. Sedangkan pada jaringan Client-Server,
hanya satu komputer yang bertugas sebagai server dan komputer lain berperan
sebagai workstation. Ciri-ciri jaringan komputer:
1. Berbagi perangkat keras (hardware).
2. Berbagi perangkat lunak (software).
3. Berbagi saluran komunikasi (internet).
20
4. Berbagi data dengan mudah.
5. Memudahkan komunikasi antar pemakai jaringan.
LAN tersusun dari beberapa elemen dasar yang meliputi komponen
hardware dan software, yaitu :
1. Komponen Fisik
Personal Computer (PC), Network Interface Card (NIC), Concentrator ,
kabel, konektor, topologi jaringan.
2. Komponen Software
Sistem operasi jaringan, Network Adapter Driver, Protokol Jaringan.
2.8.
Sistem Operasi Ubuntu
Ubuntu merupakan sistem operasi komputer berbasis Debian GNU / Linux
Terdistribusi. Kata Ubuntu sendiri diambil dari bahasa Afrika Selatan, yang
memiliki makna ideologi “kemanusiaan untuk orang lain” dan dapat
didistribusikan secara bebas sebagai perangkat lunak.
Ubuntu dirilis pertama kali pada 20 Oktober 2004, dan diperbaharui pada
setiap enam bulan sekali untuk menciptakan sistem operasi yang up-to-date.
Karena Ubuntu fokus pada kegunaannya, maka sistem operasi Ubuntu dapat
diinstall menggunakan Live-CD tanpa perlu menyediakan ruang khusus pada hard
drive atau tanpa perlu me-restart komputer.
Pada kasus ini, penulis menggunakan Ubuntu 9.04 (Jaunty Jackalope)
sebagai server pusat. Dimana didalamnya akan terinstall beberapa servis untuk
kebutuhan aplikasi. Seperti Apache Web Server, PHP dan MySQL.
21
2.9.
Personal Home Pages (PHP)
PHP adalah salah satu bahasa Server-side yang didesain khusus untuk
aplikasi web. PHP dapat disisipkan diantara bahasa HTML dan karena bahasa
Server side, maka bahasa PHP akan dieksekusi di server, sehingga yang
dikirimkan ke browser adalah “hasil jadi” dalam bentuk HTML, dan kode PHP
anda tidak akan terlihat.
PHP dahulunya merupakan proyek pribadi dari Rasmus Lerdorf (dengan
dikeluarkannya PHP versi 1) yang digunakan untuk membuat home page
pribadinya. Versi pertama ini berupa kumpulan script perl. Untuk versi keduanya,
Rasmus menulis ulang script-script PERL tersebut menggunakan bahasa C,
kemudian menambahkan fasilitas untuk Form HTML dan koneksi MySQL.
Setelah mengalami perkembangan oleh suatu kelompok open source(termasuk
Rasmus), maka mulai versi 3 nya, PHP telah menampakkan keunggulannya
sebagai salah satu bahasa server scripting yang handal. Melalui perkembangan
yang pesat ini banyak fasilitas yang ditambahkan dan oleh kelompok ini PHP
disebut sebagai "PHP: Hypertext Preprocessor" . Sintak yang digunakan berasal
dari bahasa C , Java maupun Perl.
PHP merupakan bahasa script yang digunakan untuk membuat halaman
web yang dinamis. Dinamis berarti halaman yang akan ditampilkan dibuat saat
halaman itu diminta oleh client. Mekanisme ini menyebabkan informasi yang
diterima client selalu yang terbaru. Semua script PHP dieksekusi pada server
dimana script tersebut dijalankan. Oleh karena itu, spesifikasi server lebih
22
berpengaruh pada eksekusi dari script PHP daripada spesifikasi client. Namun
tetap diperhatikan bahwa halaman web yang dihasilkan tentunya harus dapat
dibuka oleh browser pada client. Dalam hal ini versi dari html yang digunakan
harus didukung oleh browser client.
PHP termasuk dalam Open Source Product. Jadi anda dapat merubah
source code dan mendistribusikannya secara bebas. PHP juga diedarkan secara
gratis. PHP juga dapat berjalan diberbagai web server seperti Apache, IIS dan lain
sebagainya.
2.10. Apache Web Server
Apache merupakan web server yang paling banyak dipergunakan di
Internet. Program ini pertama kali didesain untuk sistem operasi lingkungan
UNIX. Namun demikian, pada beberapa versi berikutnya Apache mengeluarkan
programnya yang dapat dijalankan di Windows. Berdasarkan sejarahnya, Apache
dimulai oleh veteran developer National Center for Supercomputing Application
(NCSA) httpd. Saat itu pengembangan NCSA httpd sebagai web server mengalami
stagnasi. Rob Mc Cool meninggalkan NCSA dan memulai sebuah proyek baru
bersama para webmaster lainnya, menambal bug, dan menambahkan fitur pada
NCSA httpd. Mereka mengembangkan program ini lewat mailing list. Dengan
berpijak pada NCSA httpd versi 1.3, Team Apache mengeluarkan rilis pertama
kali secara resmi Apache versi 0.6.2.
Nama Apache diambil dari kata “A Patchy Web Server”, server perbaikan
yang penuh dengan tambalan (patch). Tambalan yang dimaksud adalah
23
penambahan fitur dan penambalan bug dari NCSA httpd Versi 1.3. Saat ini Apache
dipergunakan secara luas. Hal ini disebabkan karena programnya yang gratis,
dengan kinerja relatif stabil. Dalam pengembangannya pun
mempergunakan
sistem bazaar, yakni tiap orang dibuka kesempatan seluas-luasnya untuk dapat
memberikan
kontribusi
dalam
mengembangkan
program.
Kontribusi
dikomunikasikan lewat mailing list.
Apache mempunyai program pendukung yang cukup banyak. Hal ini
memberikan layanan yang cukup lengkap bagi penggunanya. Beberapa dukungan
Apache :
1. Kontrol Akses. Kontrol ini dapat dijalankan berdasarkan nama host atau
nomor IP.
2. Common Gateway Interface (CGI) , yang paling terkenal untuk digunakan
adalah Practical Extraction and Report Language (Perl) didukung oleh
Apache dengan menempatkannya sebagai modul (mod_perl).
3. Personal Home Page (PHP Hypertext Processor) : program dengan
metode semacam CGI, yang memproses teks dan bekerja di server.
Apache mendukung PHP dengan menempatkannya sebagai salah satu
modulnya (mod_php). Hal ini membuat kinerja PHP menjadi lebih baik
4. Secure Socket Layer (SSL) : adalah mekanisme pembungkus data yang
berlalu-lalang antara client dan server dengan suatu enkripsi data. Apache
mendukung SSL dengan menempatkannya sebagai salah satu modulnya
(mod_ssl).
Download