BAB 2 LANDAS AN TEORI
2.1 Teori Umum 2.1.1
Software M enurut Pressman (2001, p6), “Software is (1) instructions (computer programs) that when executed provide desired features, function, and performance; (2) data structures that enable the programs to adequately manipulate information; and (3) documents that describe the operation and use of the programs”. Dalam bahasa Indonesia, software adalah (1) perintah (program komputer) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan. (2) struktur data yang memungkinkan program memanipulasi informasi secara proporsional, dan (3) dokumen yang menggambarkan operasi dan kegunaan program. Software memiliki ciri yang berbeda dari hardware (Pressman, 2002, pp10-13): 1. Software dibangun dan dikembangkan, tidak dibuat dalam bentuk yang klasik. 2. Software tidak pernah usang. 3. Sebagian besar software dibuat secara custom-built, serta tidak dapat dirakit dari komponen yang sudah ada.
7
8 Aplikasi software dapat berwujud (Pressman, 2002, pp16-18): 1. Software Sistem Software sistem merupakan sekumpulan program yang ditulis untuk melayani program-program yang lain. Banyak software sistem (misal kompiler, editor, dan utilitas pengatur file) memproses strukturstruktur informasi yang lengkap namun tetap. Aplikasi-aplikasi sistem yang lain (komponen sistem operasi, driver, prosesor telekomunikasi) memproses secara luas data yang bersifat tetap. Di dalam setiap kasus tersebut, area software sistem ditandai dengan eratnya interaksi dengan perangkat keras komputer; penggunaan oleh banyak pemakai; operasi konkuren yang membutuhkan penjadwalan, tukar menukar sumber, dan pengaturan proses yang canggih; struktur-struktur data yang kompleks, serta interface eksternal ganda. 2. Real-Time Software Program-program yang memonitor/menganalisis kejadian dunia nyata pada saat terjadinya disebut perangkat lunak real-time. Elemenelemen perangkat lunak real-time mencakup komponen pengumpul data yang mengumpulkan dan memformat informasi dari lingkungan eksternal, sebuah komponen analisis yang mentransformasi informasi pada saat dibutuhkan oleh aplikasi, sebuah komponen kontrol/output yang memberi respon kepada lingkungan eksternal, serta sebuah komponen monitor yang mengkoordinasi semua komponen lain agar respon real-timenya (khususnya melalui jangkauan dari 1 milidetik sampai 1 menit) dapat tetap terjaga. Perlu dicatat di sini bahwa real-
9 time berbeda dengan interaksi atau timesharing. Sistem real-time harus merespon di dalam suatu rentang waktu yang tetap. Waktu respon sebuah sistem interaktif (atau timesharing) secara normal dapat diperpanjang tanpa memberikan resiko kerusakan pada hasil. 3. Software Bisnis Pemrosesan informasi bisnis merupakan area aplikasi perangkat lunak yang paling luas. Sistem diskrit (contohnya payroll, account receivable/payable, inventory, dll) telah mengembangkan perangkat lunak sistem informasi manajemen (M IS) yang mengakses satu atau lebih database besar yang berisi informasi bisnis. Aplikasi dalam area ini menyusun kembali struktur data yang ada dengan suatu cara tertentu untuk memperlancar operasi bisnis atau pengambilan keputusan manajemen. Sebagai tambahan ke dalam aplikasi pengolahan data konvensional, aplikasi software bisnis juga meliputi perhitungan client/server serta penghitungan interaktif (misal pemrosesan transaksi point-of-sale). 4. Software Teknik dan Ilmu Pengetahuan Perangkat lunak teknik dan ilmu pengetahuan ditandai dengan algoritma number crunching. Perangkat lunak ini memiliki jangkauan aplikasi mulai dari astronomi sampai vulkanologi, dari analisis otomotif sampai dinamika orbit pesawat ruang angkasa, dan dari biologi molekuler sampai pabrik yang sudah diotomatisasi. Tetapi aplikasi yang baru di dalam area teknik/ilmu pengetahuan sedang bergerak menjauhi algoritma numeris yang konvensional. Computer-aided
10 design, simulasi sistem, dan aplikasi interaktif yang lain, sudah mulai memakai ciri-ciri perangkat lunak sistem genap dan real-time. 5. Embedded Software Produk pintar telah menjadi bagian yang umum bagi hampir semua konsumen dan pasar industri. Embedded Software ada dalam read-only memory dan dipakai untuk mengontrol hasil serta sistem untuk keperluan konsumen dan pasar industri. 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. Software Komputer Personal Pasar software komputer personal telah berkembang selama dekade terakhir.
Pengolah kata, spreadsheet,
grafik komputer,
multimedia, hiburan, manajemen database, aplikasi keuangan bisnis dan personal, jaringan eksternal atau akses database hanya merupakan beberapa saja dari ratusan aplikasi yang ada. 7. Software Kecerdasan Buatan Software kecerdasan
buatan
(Artificial Intelligent (AI))
menggunakan algoritma non-numeris untuk memecahkan masalah kompleks yang tidak sesuai untuk perhitungan atau analisis secara langsung. Area kecerdasan buatan yang aktif adalah sistem pakar, disebut juga sistem berbasis ilmu pengetahuan. Tetapi area aplikasi
11 lainnya untuk software kecerdasan buatan adalan pengakuan pola (image and voice), pembuktian teorema dan permainan game. Di tahuntahun terakhir, cabang software kecerdasan buatan yang baru, yang disebut dengan artificial neural network, telah berkembang. Jaringan syaraf mensimulasi struktur proses-proses otak (fungsi syaraf biologis) dan kemudian membawanya kepada software kelas baru yang dapat mengenali pola-pola yang kompleks serta belajar dari pengalamanpengalaman masa lalu.
2.1.2
Proses Software Proses software menentukan pendekatan yang digunakan ketika software dikembangkan, tetapi pengembangan software juga meliputi teknologi yang mempopulasikan proses, metode teknis, serta tools (Pressman, 2002, pp27-29). IEEE [IEEE93] telah mengembangkan definisi mengenai rekayasa software: Rekayasa software: (1) Aplikasi dari sebuah pendekatan kuantifiabel, disiplin, dan sistematis kepada pengembangan, operasi, dan pemeliharaan software; yaitu aplikasi dari rekayasa software. (2) Studi tentang pendekatan-pendekatan seperti pada (1).
Gambar 2.1 Lapisan Rekayasa Software (Pressman, 2005, p54)
12 Rekayasa software merupakan sebuah teknologi yang dibentangkan. Banyak pendekatan keteknikan (termasuk rekayasa software) yang harus berada pada sebuah komitmen dasar menuju kualitas. Batu landasan yang menopang rekayasa software adalah quality focus. Fondasi untuk rekayasa software merupakan bentangan process. Proses-proses rekayasa software adalah perekat yang menjaga bentangan-bentangan teknologi secara bersama-sama dan memungkinkan perkembangan software komputer yang tepat waktu dan rasional. Proses-proses tersebut membatasi kerangka kerja untuk serangkaian area proses kunci (key process key/KPAs) [PAU93] yang
harus
dibangun
demi
keefektifan
penyampaian
teknologi
pengembangan software. Area proses kunci ini membentuk dasar bagi kontrol manajemen proyek software serta membangun konteks di mana metode teknis diaplikasikan, produk usaha (model, dokumen, data, laporan, form, dan lain-lain) dihasilkan, fondasi dibangun, kualitas dijamin, dan perubahan
diatur
secara
rapi.
M etode-metode
rekayasa
software
memberikan teknik untuk membangun perangkat lunak. M etode-metode itu menyangkut serangkaian tugas yang luas yang menyangkut analisis kebutuhan, konstruksi program, desain, pengujian, dan pemeliharaan. Rekayasa software mengandalkan pada serangkaian prinsip dasar yang mengatur setiap area teknologi dan menyangkut aktivitas pemodelan serta teknik-teknik deskriptif yang lain. Tools rekayasa software memberikan topangan yang otomatis ataupun semi-otomatis pada proses-proses dan metode-metode yang ada. Ketika tools diintegrasikan sehingga informasi yang diciptakan oleh satu
13 tool bisa digunakan oleh yang lain, sistem untuk menopang perkembangan software yang disebut computer-aided software engineering (CASE) terbangun. CA SE menggabungkan software, hardware, dan database rekayasa software (repositori yang berisi informasi penting tentang analisis, desain,
konstruksi program,
serta pengujian)
untuk
menciptakan
lingkungan rekayasa software yang analog dengan CAD/CAE (computeraided design/computer-aided engineering) untuk hardware.
2.1.3
Model Proses Software Proses software adalah sekumpulan aktivitas terstruktur yang dibutuhkan untuk mengembangkan sistem software, yang meliputi spesifikasi, desain, validasi dan evolusi. Salah satu model proses software dalam rekayasa perangkat adalah Linear Sequential Model/Waterfall Model. M odel ini adalah model klasik yang bersifat sistematis dan berurutan dalam membangun software. Fase-fase dalam waterfall model:
Gambar 2.2 Waterfall Model (Pressman, 2001, p29)
14 a. System/information engineering and modeling M eliputi dua tahap, yaitu analisis dan desain dari sistem. System engineering and analysis meliputi pengumpulan kebutuhan untuk selanjutnya dianalisis dan dibuat desain. b. Software requirements analysis Programmer harus mengerti dengan baik mengenai sistem seperti apa yang diinginkan oleh client. c. Design Terdiri dari langkah proses yang berfokus pada empat atribut dari suatu
program,
yaitu:
struktur
data,
arsitektur
software,
penggambaran interface dan detail prosedural. Proses desain menerjemahkan kebutuhan client menjadi penggambaran software secara garis besar yang kualitasnya bisa dinilai sebelum dimulainya coding. d. Code Generation Desain yang telah dibuat akan diterjemahkan ke dalam bahasa pemrograman. e. Testing Dari tahap testing bisa diketahui mengenai letak kesalahan coding yang mengakibatkan tidak terciptanya sistem yang diinginkan oleh client.
15 f. Support Support/maintenance diperlukan karena permintaan client yang berubah maupun karena faktor eksternal (perubahan sistem operasi atau device). Linear Sequential Model merupakan model tertua dan paling banyak digunakan dalam software engineering. Namun, ada beberapa kekurangan dari model ini: 1. Perubahan sulit dilakukan karena sifatnya yang kaku dan dapat membuat bingung tim proyek. 2. Linear Sequential Model memerlukan kebutuhan yang lengkap sejak dimulainya proyek. 3. Client harus sabar karena versi proyek yang dapat bekerja baru bisa dilihat saat proyek akan berakhir.
2.1.4
Database Database adalah sekumpulan data yang terhubung secara logis, dan deskripsi dari data tersebut dirancang untuk memenuhi kebutuhan informasi dari suatu organisasi (Connolly, 2002, p14).
2.1.5
Database Management System (DBMS ) M enurut Connolly (2002, p16), Database Management System (DBM S) adalah sistem software yang memungkinkan user untuk menentukan, membuat, memelihara, dan mengontrol akses ke database.
16 DBM S adalah software yang berinteraksi dengan aplikasi program user dan database. DBM S memberikan beberapa kemudahan: 1. M emungkinkan user untuk mendefinisikan database, biasanya melalui Data
Definition
Language (DDL).
DDL memungkinkan user
menentukan tipe dan struktur data beserta constraint dari data yang akan disimpan. 2. M emungkinkan user untuk melakukan insert, update, delete, dan menampilkan data dari database, biasanya melalui Data Manipulation Language (DM L). Karena mempunyai pusat penyimpanan data beserta deskripsinya, DM L dapat menyediakan fasilitas pemanggilan data secara umum, yang disebut dengan query language. 3. M enyediakan akses dalam database. Contohnya antara lain: a. M enyediakan sistem keamanan yang mencegah user yang tidak berkepentingan mengakses database. b. M engatur konsistensi data yang disimpan. c. Pengendalian concurrency dalam sistem sehingga memungkinkan pembagian akses database. d. M enyediakan recovery yang dapat melakukan restore pada kondisi sebelumnya yang diakibatkan oleh kegagalan hardware atau software. e. M enyediakan user-accesible catalog yang berisi deskripsi-deskripsi data pada database.
17 2.1.6
Delapan Aturan Emas Dalam perancangan user interface, terdapat aturan-aturan yang disebut dengan Delapan Aturan Emas (Shneiderman, 2005, p74): 1. Berusaha untuk konsisten; 2. M enyediakan usability universal; 3. M emberikan umpan balik yang informatif; 4. M erancang dialog yang memberikan penutupan (keadaan akhir); 5. M emberikan pencegahan kesalahan dan penanganan kesalahan yang sederhana; 6. M emungkinkan pembalikan aksi yang mudah; 7. M endukung pusat kendali internal (internal locus of control); 8. M engurangi beban ingkatan jangka pendek;
2.2 Teori Khusus Teori-teori khusus membahas tentang informasi yang lebih berfokus pada judul dan isi penulisan tugas akhir ini. 2.2.1
Sistem Editorial M enurut Kamus Besar Bahasa Indonesia, editorial: e.di.to.ri.al (Kom) 1 a mengenai atau berhubungan dengan editor atau pengeditan: pekerjaan -; 2 n artikel dalam surat kabar yang mengungkapkan pendirian editor atau pimpinan surat kabar (majalah) tersebut mengenai beberapa pokok masalah; tajuk rencana. Sedangkan pengertian kata sistem, menurut Kamus Besar Bahasa Indonesia: sis.tem n 1 perangkat unsur yang secara teratur saling berkaitan
18 sehingga membentuk suatu totalitas: -- pencernaan makanan, pernapasan, dan peredaran darah dalam tubuh; - telekomunikasi; 2 susunan yang teratur dari pandangan, teori, asas, dan sebagainya: -- pemerintahan negara (demokrasi, totaliter, parlementer, dan sebagainya); 3 metode: -pendidikan (klasikal, individual, dan sebagainya); kita bekerja dengan – yang baik; - dan pola permainan kesebelasan itu banyak mengalami perubahan. Dapat ditarik kesimpulan dari pengertian di atas bahwa sistem editorial adalah perangkat yang berhubungan dengan pengeditan suatu majalah atau tabloid.
2.2.2
Intranet Intranet adalah konsep LAN yang mengadopsi teknologi internet dan mulai diperkenalkan pada akhir tahun 1995. Atau bisa dikatakan intranet adalah LAN yang menggunakan standar komunikasi dan segala fasilitas Internet, diibaratkan sebagai internet dalam lingkungan lokal. Umumnya juga terkoneksi ke internet sehingga memungkinkan pertukaran informasi dan data dengan jaringan intranet lainnya (Internetworking) melalui backbone internet (Sembada, 2008).
2.2.3
PHP M enurut
buku
PHP
dan MySQL untuk
Pemula,
bahasa
pemrograman PHP (Programming Hypertext Processor) adalah bahasa pemrograman yang bekerja dalam sebuah web server. Script-script PHP
19 yang dibuat harus tersimpan dalam sebuah server dan dieksekusi atau diproses dalam server tersebut. Penggunaan program PHP memungkinkan sebuah website menjadi lebih interaktif dan dinamis. Data yang dikirim oleh pengunjung website akan diolah dan disimpan dalam database web server dan bisa ditampilkan kembali apabila diakses. Beberapa keunggulan yang dimiliki oleh PHP: 1. PHP bersifat free atau gratis. 2. Beberapa server seperti Apache, M icrosoft IIS, PWS, AOLserver, phttpd, fhttph, dan Xitami mampu menjalankan PHP. 3. Tingkat akses PHP lebih cepat serta memiliki tingkat keamanan yang tinggi. 4. Beberapa database yang sudah ada, baik yang bersifat free/gratis ataupun komersial, sangat mendukung akses PHP, di antaranya MySQL, PostgreSQL, mSQL, Informix, dan M icrosoftSQL server. 5. PHP mampu berjalan di Linux sebagai platform sistem operasi utama bagi PHP, tetapi dapat juga berjalan di FreeBSD, Unix, Solaris, Windows, dan yang lainnya.
2.2.4
MySQL M enurut buku Dasar Pemrograman Web Dinamis M enggunakan PHP, MySQL adalah salah satu jenis database server yang sangat terkenal. Kepopulerannya disebabkan MySQL menggunakan SQL (Structur Query Language) sebagai bahasa dasar untuk mengakses database-nya. Selain itu,
20 MySQL bersifat open source dan bisa digunakan pada berbagai platform (kecuali untuk jenis Enterprise, yang bersifat komersial). MySQL termasuk jenis RDBM S (Relational Database Management System). Karena itu, istilah seperti tabel, baris, dan kolom digunakan pada MySQL. Pada MySQL, sebuah database, mengandung satu atau sejumlah tabel. Tabel terdiri atas sejumlah baris dan setiap baris mengandung satu atau beberapa kolom.
2.2.5
OOP Object Oriented
Programming (OOP) atau dikenal dengan
Pemrograman Beriorientasi Obyek. Dalam OOP, dikenal beberapa karakteristik, yaitu: 1. Inheritance (pewarisan sifat). 2. Polymorphism (kemampuan obyek untuk mengambil bentuk berbeda). 3. Encapsulation (pembungkusan data dan operasi ke dalam obyek atau class).
2.2.6
jQuery M enurut Chaffer dan Swedberg (2009, p7), jQuery merupakan sekumpulan library yang menyediakan lapisan abstraksi umum untuk scripting web secara umum dan yang hampir berguna di dalam setiap situasi scripting. Dikembangkan pertama kali oleh John Resig yang membuat perkembangan dari Prototype Behavious library pada Agustus 2005. Lalu,
21 penelitiannya dibuat sebagai framework dan secara resmi framework ini dikeluarkan dengan nama jQuery pada 14 Januari 2006. Fitur–fitur inti dari jQuery adalah sebagai berikut : 1. M engakses elemen di dalam dokumen. Tanpa JavaScript Library, banyak kode baris harus di tulis melewati pohon
Document Object Model (DOM), dan menentukan
bagian terntentu dari struktur dokumen HTM L. M ekanisme pemilihan yang kuat dan efisien ditawarkan di jQuery
untuk
menerima
bagian yang tepat dari dokumen yang akan diperiksa atau dimanipulasi. 2. M emodifikasi tampilan dari suatu halaman web. CSS menawarkan metode yang kuat untuk mempengaruhi cara dokumen dikelola, tetapi tidak dapat bertahan lama, karena tidak semua web browser mendukung standar yang sama. Dengan jQuery, pengembang dapat menangani celah ini, mengandalkan dukungan standar yang sama di semua browser. Selain itu, jQuery dapat mengubah class atau style properties yang diterapkan pada sebagian dokumen bahkan setelah halaman tersebut telah dikelola. 3. M engubah isi dokumen. jQuery dapat memodifikasi isi dari dokumen itu sendiri dengan beberapa penekanan tombol. Teks dapat diubah, gambar dapat dimasukkan atau ditukar, daftar dapat disusun ulang, atau keseluruhan struktur dari HTM L dapat ditulis ulang dan ditambahkan. Semuanya dapat dengan mudah dilakukan dengan menggunakan Application Programming Interface (API).
22 4. M enanggapi interaksi user. jQuery library menawarkan cara elegan untuk menangani berbagai kejadian, seperti user menekan sebuah link, tanpa menganggu kode HTM L itu sendiri dengan penganganan kejadian (event handler). Pada saat yang sama, penanganan event API menghilangkan inkonsistensi browser yang menjadi masalah pada pengembang web. 5. Adanya perubahan animasi yang dibuat untuk dokumen. Untuk secara efektif mengimplementasikan perilaku interaktif, seorang designer juga harus memberikan umpan balik visual kepada pengguna. jQuery library memfasilitasi ini dengan cara menyediakan berbagai efek seperti memudar dan terhapus, serta toolkit untuk merancang yang baru. 6. M enerima informasi dari server tanpa me-refresh halaman. Pola kode ini telah dikenal sebagai Asynchronous JavaScript And XML (AJAX), yang membantu pengembangan web menjadi responsif, kaya akan fitur. jQuery library menghilangkan kompleksitas browser khusus melalui proses ini, mengijinkan pengembang untuk fokus pada fungsional akhir server. 7. M enyederhakan tugas umum JavaScript. Selain semua fitur dokumen-spesifik jQuery, jQuery Library menyediakan perangkat tambahan untuk dasar konstruksi JavaScript seperti iterasi dan manipulasi array.
23 2.2.7
UML Unified Modeling Language (UM L) adalah bahasa spesifikasi standar untuk mendokumentasikan, menspesifikasikan, dan membangun sistem perangkat lunak. UM L merupakan suatu bahasa yang digunakan untuk
menentukan,
memvisualisasikan,
membangun,
dan
mendokumentasikan suatu sistem informasi. UM L dikembangkan sebagai suatu alat untuk analisis dan desain berorientasi objek oleh Grady Booch, Jim Rumbaugh, dan Ivar Jacobson. Namun demikian UM L dapat digunakan untuk memahami dan mendokumentasikan setiap sistem informasi. Penggunaan UM L dalam industri terus meningkat. Ini merupakan standar terbuka yang menjadikannya sebagai bahasa pemodelan yang umum dalam industri peranti lunak dan pengembangan sistem. UM L (Lethbridge dan Laganiere, 2002, p151) dapat juga diartikan sebuah bahasa grafik standar yang digunakan untuk memodelkan perangkat lunak berbasis objek (a standart graphical language for modeling objectoriented software). UM L pertama kali dikembangkan pada pertengahan 1990an dengan kerja sama antara James Rumbaugh, Grady Booch dan Ivan Jacobson, yang masing-masingnya telah mengembangkan notasi mereka sendiri di awal 1950an. UM L terdiri dari berbagai tipe diagram, antara lain:
24 1.
Class Diagram, yang mendeskripsikan kelas dan hubungan antar kelas.
Gambar 2.3 Class Diagram (Pressman, 2001, p589) 2.
Use Case Diagram, yang menjabarkan kebutuhan fungsional dan operasional sistem.
Gambar 2.4 Use Case Diagram (Pressman, 2001, p582)
25 3.
State Chart Diagram, yang menunjukkan
bagaimana sistem
berkelakuan secara internal.
Gambar 2.5 State Chart Diagram (Pressman, 2001, p647)