7 BAB II LANDASAN TEORI Pada bab ini akan dijelaskan mengenai

advertisement
BAB II
LANDASAN TEORI
Pada bab ini akan dijelaskan mengenai teori penunjang yang mendukung Tugas
Akhir.
2.1 Framework
2.1.1. Pengertian Framework
Menurut Oxford English Dictionary framework mempunyai arti struktur
dasar yang melandasi sebuah sistem. Sehingga keseluruhan sistem bergerak
berdasarkan kerangka struktur dasar yang telah dibentuk sebelumnya.
Menurut Pressman (2005, p282), framework merupakan kerangka kode
yang dapat disempurnakan dengan classes yang spesifik atau dengan fungsi yang
telah dirancang untuk mengatasi masalah yang dihadapi.
Dapat disimpulkan bahwa framework biasanya bersifat object oriented dan
merupakan suatu sistem desain yang dapat digunakan kembali. Tujuan
dari
penggunaan framework adalah mengurangi pembuatan kembali kode yang sama
sehingga seorang programmer dapat memfokuskan waktunya untuk pengerjaan
bagian lainnya.
2.1.2. Keuntungan dalam menggunakan framework
a.
Penggunaan skrip yang telah dibuat, dites dan digunakan oleh programmer
lain, sehingga dapat meningkatkan reabilitas skrip dan mengurangi waktu
pengujian pemrograman.
b.
Framework yang dikembangkan oleh para ahli, biasanya bukan hanya
menyiapkan fungsionalitas, tetapi juga mempertimbangkan aspek keamanan,
karena secara langsung sudah ada pada komponen framework itu sendiri
c.
Framework dapat mengarahkan programmer untuk menggunakan pola
pemecahan masalah yang telah terbukti bisa digunakan untuk menyelesaikan
masalah spesifik yang telah dihadapi oleh programmer lain.
7
2.1.3. Kekurangan framework
a.
Para programmer mungkin akan menemukan batasan-batasan ketika
merancang aplikasi menggunakan framework.
b.
Kemungkinan akan membutuhkan waktu yang lama dan menambah biaya
development apabila framework yang digunakan belum terdokumentasi
dengan baik dan kurang support.
2.1.4. MVC (Model View Controller)
Arsitektur Model-View-Controller (MVC) adalah suatu istilah untuk
memisahkan komponen-komponen atau penulisan source code dari satu aplikasi
agar menjadi lebih cepat dan lebih mudah dipelihara serta dikembangkan. Ide
dasar dari MVC adalah untuk memisahkan antara model, view dan controller pada
bagian-bagian dalam suatu web aplikasi. MVC berhubungan erat dengan arsitektur
dari Web Framework.
Gambar 2.1. MVC
(https://netbeans.org/images_www/articles/70/javaee/ecommerce/design/mvcmodel.png)
Diagram di atas menunjukan interaksi antara ketiga komponen yang
terdapat dalam pola MVC.
8
2.1.4.1. Model
Pola MVC memiliki layer yang disebut dengan model yang mewakili struktur
data dari sebuah aplikasi web dan berhubungan langsung dengan tugas-tugas CRUD
(create, read, update, delete) pada database. Oleh karena itu, sebuah model harus
terdiri dari beberapa properti untuk mewakili data tertentu, terdiri dari logika
bisnis (contoh: aturan validasi) untuk memastikan data yang dipresentasikan
memenuhi permintaan desain yang diberikan. Disamping itu, sebuah model juga
harus terdiri dari kode untuk memanipulasi data.
Beberapa kelebihan dalam pendekatan ini antara lain penempatan detail
dari data dan operasi pada area yang ditentukan (model) sehingga tidak tersebar
dalam keseluruhan lingkup aplikasi. Hal ini memberikan keuntungan dalam proses
maintenance aplikasi. kelebihan yang lain yaitu dengan pemisahan total antara
data dengan implementasi interface, komponen model dapat digunakan kembali
oleh aplikasi lain yang memiliki kegunaan yang hampir sama.
2.1.4.2. View
Komponen grafis menyediakan representasi proses internal aplikasi dan
menuntun alur interaksi user terhadap aplikasi berdasarkan pada data dalam
model. View adalah satu-satunya layer yang berinteraksi dengan user. Oleh karena
itu, view harus meliputi kode presentasi seperti HTML, kode PHP yang mudah
untuk melakukan format dan interpretasi data. Disamping itu, view sebaiknya tidak
mencakup kode yang menampilkan rangkaian database secara eksplisit.
Penggunaan layer view memiliki beberapa kelebihan antara lain
memudahkan penggabungan divisi desain dalam development team. Divisi desain
dapat berkonsentrasi pada style, look, feel dan sebagainya, dalam aplikasi tanpa
memperhatikan lebih pada detail yang lain. Disamping itu dengan memiliki layer
view yang terpisah, ketersediaan multiple interface dalam aplikasi dapat
dimungkinkan. Jika inti dari aplikasi terletak pada bagian lain (dalam model),
multiple interface dapat disebut (swing, web, console) secara keseluruhan memiliki
tampilan yang berbeda namun dapat mengeksekusi tampilan model sesuai
fungsionalitas yang diharapkan.
9
2.1.4.3. Controller
Layer terakhir dari arsitektur MVC adalah layer controller. Layer ini
menyediakan detail alur program. Layer ini bertanggung jawab atas penampungan
event yang dibuat oleh user dari view, berinteraksi dengan model, dan memberikan
instruksi kepada view untuk melakukan pembaharuan dan mengatur tampilan agar
sesuai dengan data yang dibuat user.
Kelebihan penggunaan layer controller secara terpisah antara lain adalah
dengan menggunakan komponen terpisah untuk menampung detail dari transisi
layer, komponen view dapat didesain tanpa harus menaruh perhatian berlebih pada
bagian lain. Hal ini memudahkan team pengembang multiple interface bekerja
secara terpisah dari yang lain secara simultan. Interaksi antar komponen view
terabstraksi dalam controller.
Kelebihan lainnya adalah dengan menggunakan layer terpisah yang
melakukan update terhadap komponen model, detail tersebut dihapus dari layer
presentasi. Layer presentasi kembali pada fungsi utamanya untuk menampilkan
data kepada user. Detail tentang bagaimana data dari user mengubah ketetapan
aplikasi disembunyikan oleh controller. Hal ini memisahkan dengan jelas antara
presentation logic dengan business logic.
2.2. YII Framework
2.2.1. Sejarah Yii Framework
Yii framework merupakan gagasan dari pendirinya Qiang Xue pada tanggal 1
Januari 2008. Sebelum menciptakan Yii framework Qiang Xue sebelumnya telah
mengembangkan dan maintenace Prado framework.
Setelah bertahun-tahun Qiang Xue mengembangkan Prado. Qiang Xue
banyak menerima berbagai berbagai masukan dari user yang berpengalaman dalam
pengembangan framework,
akhirnya memutuskan untuk membuat framework
yang lebih mudah, dapat diperluas dengan mudah (extensible) dan lebih efisien.
Dan akhirnya pada 3 Desember 2008, Yii 1.0 resmi dirilis. sampai sekarang YII
sudah mencapai versi v1.1.12 rilis pada 30 Desember 2012.
10
2.2.2. Pengertian Yii Framework
Yii adalah framework (kerangka kerja) PHP berbasis-komponen, berkinerja tinggi
untuk pengembangan aplikasi web berskala-besar. Yii menyediakan reusability
maksimum dalam pemrograman web dan mampu meningkatkan kecepatan
pengembangan secara signifikan. Nama Yii (dieja sebagai /i:/) singkatan dari "Yes
It Is!".
Menurut [Jeffery Winesett, 2010] untuk membuat atau mengembangkan
aplikasi dengan yii maka diperlukan pengetahuan tentang PHP dan OOP (object
oriented programming).
Yii Framework memiliki segudang fitur yang dapat mempermudah dalam
pekerjaan, meskipun usinya masih tergolong muda dibandingkan dengan
framework lain karena dimulai pada tahun 2008.
2.2.3. Fitur Yii Framework
Yii mempunyai dua buah kode generator yaitu yiic dan gii. Yiic adalah
kode generator masih menggunakan command line yiic. Sedangkan Gii adalah
kode generator yang berbasis web. Yii sudah dilengkapi dengan sebuah kode
generator berbasis web yang disebut Gii dari versi 1.1.2. pada saat membuat
kerangka dasar aplikasi web, maka dengan mengetik sebaris perintah pada yiic
maka yiic akan membuatkannya. Apabila sudah merancang database lengkap
dengan tabel-tabel, maka sudah dapat langsung membuat sistem tampilannya
insert, update dan delete dengan menggunakan Gii. Artinya di sini langsung dapat
membuat aplikasi dasar tanpa perlu koding.
Berikut beberapa fitur lainnya dari Yii:
1.
Yii Framework menggunakan pola MVC, pola standar pengembangan
aplikasi yang memisahkan model, view, controller.
2.
Menggunakan database abstraction layer seperti Data Access Objects (DAO)
dan Active Record, Query Builder, Database Migration untuk memudahkan
interaksi dengan database dan menghindari komplesitas menulis pernyataan
SQL yang berulang-ulang.
3.
Memiliki layer cache untuk cache data, halaman, sebagian, dan keseluruhan
aplikasi sehingga dapat meningkatkan performa dengan beragam pilihan
11
media cache. Penggunaan media cache seperti database, APC (Alternative
PHP Cache), memcache, dan sebagainya dengan mudah diatur tanpa
melakukan perubahan besar pada kode.
4.
Fitur penanganan error dan logging, sehingga memudahkan pengembang
dalam melakukan debugging aplikasi dalam masa pengembangan aplikasi.
5.
Widget, seperti pada Prado memiliki komponen pada Yii memiliki widget
yaitu semacam kontrol yang memiliki fungsi tertentu seperti autocomplete,
datapicker, table, dan lain-lain. Menggunakan JQuery sebagai javascript
client side.
6.
Modular dan mudah ditambahkan dengan dukungan extension dan komponen
tambahan sehingga beragam fitur tambahan dengan mudah dimasukkan.
2.3. PHP
PHP (Hypertxt Preprocessor) adalah sebuah bahasa pemrograman yang berbentuk
scripting, sistem kerja program ini adalah sebagai interpreter bukan sebagai
compiler. PHP menurut Syafii (2004 : v) merupakan bahasa pemrograman berbasis
web yang terbukti sangat reliable penggunaannya dan mempunyai dukungan yang
kuat.
2.4. MySQL
Pendapat Sukarno (2006, hal:3) mengenai pengertian MySQL adalah merupakan
perangkat lunak untuk sistem manajemen database (database management
system). Karena sifatnya yang open source dan memiliki kamampuan menampung
kapasitas yang sangat besar, maka MySQL menjadi database yang sangat popular
dikalangan programmer web.
MySQL adalah merupakan software database yang bebas berlisensi GPL
atau General Public License yang open source. Mulanya MySQL hanya berjalan
di system operasi linux namun pada saat MySQL versi 3.22 tahun 1998-1999
sudah tersedia diberbagai platform termasuk windows. Ini terjadi karena MySQL
menjadi semakin populer dan dilirik banyak orang karena kestabilan dan
kecepatan yang meningkat.
12
2.5. Pemrograman Berorientasi Objek (PBO)
Object oriented programming adalah sebuah metode pemrograman dimana
pengembang aplikasi tidak hanya mendefinisikan variabel yang berisi state dari
sebuah struktur data, tetapi juga mendefinisikan fungsi untuk menunjukkan
behavior yang diaplikasikan pada struktur data. Dalam hal ini, struktur data
merupakan objek. Suatu objek dapat saling berkomunikasi satu sama lain dengan
menggunakan fungsi yang ada di dalamnya tanpa perlu mengetahui internal state
masing-masing objek (data encapsulation) (Webopedia, n.d).
Salah satu keuntungan dari object oriented programming dibandingkan
procedural programming adalah memungkinkan pengembang aplikasi untuk
membuat fungsi yang tidak perlu diubah ketika sebuah objek dengan tipe berbeda
ditambahkan. Seorang pengembang aplikasi hanya perlu membuat objek baru yang
mewarisi beberapa fungsi atau tipe data dari objek yang sudah ada (inheritance).
Hal ini membuat object oriented programming mudah dalam pengembangannya
(Webopedia, n.d).
2.5.1 Konsep Pemrograman Berorientasi Objek (PBO)
Menurut Bennett, McRobb, dan Farmer (2006), dalam bukunya “Object-Oriented
System Analysis And Design Using UML”, terdapat beberapa konsep dalam object
oriented programming, antara lain yaitu :
1.
Objek
Objek terdiri dari state dan behavior. Sebuah objek menyimpan state pada
variabel dan menunjukkan behavior melalui fungsi. Fungsi bertugas
mengubah internal state dan melayani komunikasi antara satu objek dengan
objek lainnya (Oracle, n.d).
2. Kelas
Kelas adalah sekumpulan objek yang memiliki state dan behavior yang sama.
3.
Instance
Instance adalah objek tunggal yang memiliki nilai state yang secara
keseluruhan berbeda dengan objek lain.
13
4.
Generalisasi
Generalisasi adalah konsep yang mengelompokkan state dan behavior yang
sama dari beberapa class menjadi class tersendiri. Berikut adalah ciri-ciri dari
generalisasi :
a. Inheritance
Mekanisme untuk mengimplementasikan generalisasi dalam bahasa
pemrograman berorientasi objek. Class yang memiliki state dan behavior
dari hasil pengelompokkan disebut superclass sedangkan class yang
memiliki state dan behavior yang unik karena pengelompokkan disebut
subclass.
b. Operasi transitif
Operasi yang menurunkan state dan behavior dari superclass ke subclass.
c.
Disjoint nature
Aspek dimana class harus memiliki state dan behaviour yang unik dari
class lain yang satu level.
5.
Message passing
Message passing adalah komunikasi yang dilakukan objek untuk meminta
informasi tertentu dari objek lain dengan menggunakanfungsi dari objek lain..
2.6. Model Waterfall
Menurut Pressman (2010, p39) model waterfall adalah model klasik yang bersifat
sistematis, berurutan dam mambangun software. Berikut fase-fase dalam model
waterfall menurut pressman.
Gambar 2.2. Waterfall Model
(Sumber : Roger S. Pressman, Software Engineering : A Practitioner’s Approach
7th edition, 2010)
14
1. Communication
Pada tahap ini merupakan langkah menganalisis kebutuhan perangkat lunak,
dan tahap untuk pengumpulan data melakukan pertemuan dengan customer
serta mencari referensi tambahan dari jurnal, buku, artikel dan internet.
2. Planning
Pada tahap ini merupakan lanjutan dari proses commucation (analysis
requirement).. Tahapan ini akan menghasilkan dokumen user requirement atau
bisa dikatakan sebagai data yang berhubungan dengan keinginan user dalam
pembuatan software, termasuk rencana yang akan dilakukan.
3. Modelling
Pada tahap ini akan menerjemahkan syarat kebutuhan ke sebuah perancangan
software yang dapat diperkirakan sebelum diimplementasikan atau sebelum
dibuat coding. Proses ini berfokus pada rancangan struktur data, arsitektur
software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini
akan menghasilkan dokumen yang disebut software requirement.
4. Construction
Pada tahap ini merupakan proses membuat kode. Coding atau pengkodean
merupakan penerjemahan desain dalam bahasa yang bisa dikenali oleh
komputer. Programmer akan menerjemahkan transaksi yang diminta oleh user.
Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan
suatu software, artinya penggunaan komputer akan dimaksimalkan dalam
tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap
sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan
terhadap sistem tersebut untuk kemudian bisa diperbaiki.
5. Deployment
Pada tahap ini bisa dikatakan final dalam pembuatan sebuah software atau
sistem. Setelah melakukan analisis, desain dan pengkodean maka sistem yang
sudah jadi akan digunakan oleh user. Kemudian software yang telah dibuat
harus dilakukan pemeliharaan secara berkala.
15
2.7. Unified Modeling Language (UML)
Menurut Britton dan Doake, (2005, p13), Unified Modeling Language (UML)
adalah
satu
kumpulan diagram,
yang
dirancang
secara
khusus
untuk
pengembangan berorientasi objek, dan telah menjadi standar industri untuk
pemodelan sistem berorientasi objek.
2.7.1. Use-Case Diagram
Menurut Britton dan Doake, (2005, p40) Use-Case Diagram adalah diagram yang
secara grafis menggambarkan interaksi antara user dengan sistem.
1.
Use-case
Use-case digambarkan dalam bentuk elips dengan label nama use-case.
Penulisan nama use-case menggunakan kata kerja yang menegaskan bahwa
use case mewakili proses.
Gambar 2.3. Use-Case
2.
Actor
Figur berbentuk tongkat diberi label nama aktor. Tujuannya, adalah untuk
memanfaatkan
nama
aktor
tersebut
agar
mudah
untuk
mengidentifikasikannya. Figur tersebut juga digunakan untuk aktor yang
bukan manusia, misalnya komputer.
Gambar 2.4. Actor
3.
System Boundary
Garis yang digambarkan mengitari use-case untuk memisahkan use-case
dengan actor. Dapat diberi label untuk mengindikasikan domain diagram.
16
Gambar 2.5. Use-Case Diagram
4.
Relationship
Garis yang menghubungkan actor dengan use-case. Garis tersebut
menunjukkan actor yang berkaitan dengan use-case yang digunakan.
Hubungan ini dikenal juga sebagai asosiasi komunikasi. Hubungan yang
digunakan dalam diagram use-case:
a.
Communication Associations
Merupakan hubungan antara actor dan use-case, dimana tiap actor dapat
berhubungan dengan banyak use-case dan tiap use-case dapat
berhubungan dengan banyak actor.
Gambar 2.6. Associations
b. Inheritance
Merupakan hubungan dimana salah satu entitas mewarisi karakteristik
dari entitas lain.
user
sales
Gambar 2.7. Inheritance
17
5.
Use-Case Descriptions
Merupakan dokumen narasi yang menjelaskan secara umum, fungsi yang
dibutuhkan dalam use-case. Use-case descriptions menjelaskan tujuan dari
use-case dan gambaran umum dari peristiwa yang biasa terjadi. Dengan kata
lain, deskripsi harus ditulis sedemikian rupa sehingga meliputi urutan setiap
kejadian dan skenario yang berkaitan dengan use-case.
2.7.2. Class Diagram
Menurut Britton dan Doake, (2005, p117) Class Diagram merupakan pusat dari
analisis dan desain berorientasi objek yang mendefinisikan struktur keseluruhan
sistem dan struktur dari setiap objek dalam sistem. Class diagram digunakan untuk
membuat model class, hubungan antar class, dan juga untuk membuat model class
dengan tingkat struktur yang lebih tinggi yang terdiri dari koleksi class yang
dikelompokkan dalam kelas paket.
1.
Visibility
Merupakan kemampuan untuk membatasi akses fitur tertentu dari model atau
program. Terdapat tiga level visibility dalam UML yaitu:
a.
Public
Dinotasikan dengan simbol “+”. Atribut public dan methods public dapat
diakses dan digunakan oleh class lain.
b.
Protected
Dinotasikan dengan simbol “#”. Atribut protected dan methods protected
dapat diakses dan digunakan oleh class itu sendiri dan turunan dari class
tersebut.
c.
Private
Dinotasikan dengan simbol “-“. Atribut private dan methods private dapat
diakses dan digunakan oleh class tersebut sendiri.
2.
Multiplicity
Multiplicity berfungsi untuk menunjukkan angka dari objek dari masing-masing
class yang diperbolehkan untuk berpartisipasi dalam asosiasi.
18
Contoh
Arti
Notasi
Tepat 2
Jumlah yang tepat
2
5
Tepat 5
Banyak
0 atau lebih
0..*
1..*, *
1 atau lebih, banyak
1 sampai 9, 0 sampai 5
Kisaran tertentu
1..9, 0..5
2 atau 7 atau 9
Pilihan
2,7,9
3.
Unidirectional
Unidirectional adalah hubungan satu arah. Dimana arah tujuannya diindikasikan
melalui tanda anak panah. Sedangkan hubungan dua arah, dapat digambarkan
dengan garis dengan anak panah di kedua ujung garis, atau garis tanpa anak panah.
Gambar 2.8. Contoh hubungan satu arah
Gambar 2.9. Contoh hubungan dua arah
4.
Composition
Composition adalah hubungan agregasi yang kuat, dimana dalam hubungan
composition, seluruh objek memiliki kepemilikan eksklusif atas bagian-bagiannya
dimana objek bagian hanya dapat berpartisipasi dalam satu agregasi. Bagian
tersebut hidup dan mati dengan keseluruhan objek, dengan kata lain, apabila objek
dihapus, bagian-bagian yang lain akan ikut terhapus.
Gambar 2.10. Composition
Contoh Class Diagram:
Customer
-custId
-name
-address
+findCustomer()
Bike
0..*
1..*
#bike
-type
-dailyHireRate
-deposit
+findBike()
Gambar 2.11. Class Diagram
19
2.7.3. Activity Diagram
Menurut Britton dan Doake, (2005, p201) Activity Diagram menggambarkan
secara detail proses yang kompleks. Dalam activity diagram, semua state adalah
aktivitas, dan transisi diantaranya dipicu oleh selesainya sebuah aktivitas, bukan
oleh sebuah peristiwa eksternal.
Berikut merupakan elemen yang digunakan dalam diagram activity:
1.
Initial node
Digambarkan dalam sebuah lingkaran penuh, yang menandakan mulainya
proses.
Gambar 2.12. Initial Node
2.
Tindakan
Digambarkan dalam bentuk persegi panjang dengan ujung yang membulat,
yang merepresentasikan langkah individual.
Click Confirm
Gambar 2.13. Tindakan
3.
Aliran
Tanda anak panah dalam diagram mengindikasikan perkembangan dari
tindakan yang dilakukan.
Gambar 2.14. Aliran
4.
Keputusan
Berbentuk belah ketupat, dengan satu aliran yang masuk, dan dua atau lebih
aliran yang keluar. Aliran yang keluar diberi tanda untuk mengindikasikan
kondisi.
Gambar 2.15. KeputusanMerge
20
Berbentuk belah ketupat dengan dua atau lebih aliran yang masuk dan satu
aliran yang keluar.
Gambar 2.16. Merge
5.
Aktivitas final
Digambarkan dengan sebuah lingkaran penuh didalam lingkaran kosong yang
menandakan berakhirnya suatu proses.
Gambar 2.17. End State
2.8. Software Testing Fundamentals
Menurut Pressman (2010, p482) tujuan dari pengujian adalah untuk menemukan
dan memperbaiki sebanyak mungkin kesalahan dalam program sebelum
menyerahkan program kepada customer. Salah satu pengujian yang baik adalah
pengujian yang memiliki probabilitas tinggi dalam menemukan kesalahan.
2.8.1 Pengujian Black-Box
Pengujian black box merupakan pengujian yang dilakukan tanpa pengetahuan
detail dari sistem atau komponen yang diuji.
Menurut Pressman (2010, p495) pengujian black box disebut juga
pengujian behavioral atau pengujian partisi. Pengujian black box berfokus pada
kebutuhan fungsional pada perangkat lunak. Dalam pengujian black box,
perekayasa perangkat lunak dapat menggunakan serangkaian kondisi masukan
yang sepenuhnya memerikasa keseluruhan kebutuhan fungsional untuk suatu
program.
Pengujian black box bukan merupakan alternative dari teknik white box,
tetapi merupakan pendekatan komplementer yang kemungkinan besar mampu
mengungkap kesalahan kelas yang berbeda daripada metode white box.
21
Pengujian black box untuk menemukan kesalahan dalam kategori sebagai berikut;
1.
Fungsi yang hilang atau tidak benar.
2.
Kesalahan pada antar muka (interface).
3.
Kesalahan pada struktur data atau akses eksternal database.
4.
Kesalahan pada kinerja atau perilaku.
5.
Kesalahan inisialisasi dan terminasi.
Pengujian ini dirancang untuk menjawab pertanyaan sebagai berikut:
1. Bagaimana validasi fungsi yang akan diuji?
2. Bagaimana perilaku dan kinerja sistem yang diuji?
3. Apa kelas input akan membuat kasus uji yang baik?
4. Apakah sistem sensitive terhadap nilai input tertentu?
5. Bagaimana batas-batas kelas data yang terisolasi?
6. Kecepatan dan volume data seperti apa yang dapat ditolerir sistem?
7. Efek apakah yang akan menspesifikasikan kombinasi data dalam sistem
operasi?
22
Download