BAB 2 LANDASAN TEORI 2.1 Software Engineering 2.1.1

advertisement
BAB 2
LANDASAN TEORI
2.1 Software Engineering
2.1.1 Pengertian Software Engineering
Software Engineering adalah sebuah disiplin engineering yang memperhatikan
semua aspek produksi software mulai dari tahap awal spesifikasi sistem sampai
perawatan sistem setelah sistem telah berjalan. Dalam definisi ini ada dua kata kunci :
1. Disiplin engineering. Para insinyur mengaplikasikan teori, metodologi, dan alat-alat
yang mereka miliki sebagaimana diperlukan, tetapi kadangkala mereka juga mencari
solusi baru suatu permasalahan meskipun tidak ada teori/metodologi yang mendukung.
2. Semua aspek produksi software. Software engineering tidak hanya terfokus pada halhal teknis pengembangan software tapi juga aktivitas-aktivitas seperti manajemen
proyek dan pengembangan teori, metodologi, dan alat untuk mendukung pengembangan
software.
Secara umum, software engineers mengadopsi pendekatan sistematis dan
terorganisir dalam pekerjaan mereka, mengingat ini merupakan teknik yang paling
efektif. Tapi engineering itu sendiri berfokus pada penyeleksian metode-metode yang
sesuai dengan masalah yang dihadapi dan terkadang suatu pendekatan yang kurang
formal ternyata lebih cocok untuk penyelesaian masalah. Hal ini berlaku terutama pada
konteks pengembangan sistem berbasis web yang memerlukan pencampuran antara
keahlian software (teknikal) dan desain grafis. (Sommervile, 2006 : 7)
6
7
2.1.2 Waterfall Model
Waterfall Model merupakan sebuah metodologi dalam pengembangan software
yang alurnya sekuensial seperti sebuah air terjun.
Gambar 2.1 Linear Sequential Model
Ada lima tahapan dalam waterfall model, yaitu : (Pressman, 2010 : 39)
a. Komunikasi
Proses mempelajari berbagai masalah bisnis yang direncanakan untuk dicari
solusinya. Tahap ini menentukan masalah bisnisnya, mengidentifikasi berbagai
penyebabnya, menspesifikasi solusi, dan mengidentifikasi kebutuhan informasi
yang harus dipenuhi solusi.
b. Perencanaan
Tahap ini berfokus pada perencanaan untuk tiga bagian utama, yaitu estimating
(perkiraan) misalnya untuk perkiraan biaya, waktu, tenaga kerja, scheduling
(penjadwalan), dan tracking (pengawasan) terhadap perkembangan proyek.
c. Modelling
Proses membuat perancangan-perancangan seperti rancangan sistem , rancangan
layar, rancangan basis data, dsb.
8
d. Konstruksi
Proses pembuatan software secara teknis, yaitu menulis baris-baris kode bahasa
pemrograman tertentu yang nantinya akan membentuk sebuah software .
e. Peluncuran
Software yang telah dibuat dan dianggap memenuhi kriteria yang diharapkan
akan di-implementasi. Setelah di-implementasi, pihak pengembang software
(atau pihak yang bertanggung jawab) harus memastikan adanya dukungandukungan terhadap penggunaan software yang telah di-implementasi. Dukungan
ini misalnya berupa customer support , maintenance, dsb.
2.1.3 Unified Modelling Language (UML)
Unified Modeling Language (UML) adalah tujuan umum dari bahasa pemodelan
visual untuk sebuah sistem. UML dirancang untuk menggabungkan praktek terbaik saat
ini dalam pemodelan teknik dan rekayasa perangkat lunak. (Arlow, 2002 : 5)
Pada dasarnya UML merupakan sebuah tools (alat) yang digunakan untuk
membuat permodelan dan representasi sistem dengan menggunakan teknik analisis dan
desain berbasis objek.
2.1.3.1 Use Case Diagram
Sebuah use case diagram menampilkan hubungan antara aktor dan use case
dalam suatu sistem. (Ambler, 2005 : 33)
Pedoman penulisan use case :
•
Gunakan strong verb
9
•
Beri nama use case dengan domain terminology
•
Berikan kesan pengurutan waktu pelaksaan dalam pengurutan use case
Gambar 2.2 Use Case Diagram
2.1.3.2 Use Case Spesification
Use case specification dapat disebut juga sebagai scenario. Use case
specification menjabarkan urutan-urutan langkah aksi yang dilakukan dalam suatu usecase. (Ambler, 2005 : 40)
2.1.3.3 Activity Diagram
Activity diagram merupakan model ekuivalen untuk pengembangan berorientasi
objek dari flowchart dan flow diagram yang digunakan dalam pengembangan terstruktur.
(Ambler, 2005 : 113)
Pada dasarnya, activity diagram merupakan gambaran lain dari use case
specification. Activity diagram menggambarkan urutan alur kerja suatu use case dalam
bahasa awam, sehingga mudah dimengerti oleh pihak non-teknikal.
10
Gambar 2.3 Activity Diagram
2.1.3.4 Conceptual Class Diagram
Conceptual class diagram merupakan sebuah diagram yang menggambarkan
relasi-relasi class dalam suatu use case. Use case yang dimaksud di sini bukanlah use
case keseluruhan namun poin (digambarkan berbentuk oval dalam use case diagram).
(Ambler, 2005 : 55)
2.1.3.5 Sequence Diagram
Sequence diagram berguna untuk : (Ambler, 2005 :80)
•
Validasi dan menjelaskan logika dan alur suatu aktivitas
•
Detect bottlenecks within an object oriented design
11
Gambar 2.4 Sequence Diagram
2.1.3.6 Class Diagram
Class diagram menampilkan classes dari suatu sistem, hubungan antar class
tersebut, serta atribut dan operasi dari masing-masing class.
Class diagram berguna untuk : (Ambler, 2005 : 47)
•
Eksplorasi domain concept dalam bentuk domain model
•
Menganalisa requirement dalam bentuk model konseptual
•
Menggambarkan desain dari object oriented software
Apabila conceptual class diagram menggambarkan relasi antar class dari suatu use
case/sequence, maka class diagram menggambarkan relasi class secara keseluruhan
sistem.
12
Gambar 2.5 Class Diagram
2.2 Database (Basis Data)
2.2.1 Pengertian Database
Berikut beberapa pengertian tentang basis data, yaitu : (Indrajani, 2011 : 2)
•
Kumpulan terpadu dari elemen data logis yang saling berhubungan. Basis data
mengonsolidasi banyak catatan yang sebelumnya disimpan dalam file terpisah.
•
Merupakan suatu kumpulan data yang berhubungan secara logis dan deskripsi
data tersebut, yang dirancang untuk memenuhi informasi yang dibutuhkan oleh
suatu organisasi. Artinya, basis data merupakan tempat penyimpanan data yang
besar, di mana dapat digunakan oleh banyak pengguna. Seluruh item basis data
tidak lagi dimiliki oleh satu departemen melainkan seluruh sumber daya
perusahaan yang dapat digunakan bersama.
13
2.2.1 DBMS (Database Management System)
(Database Management Sistem (DBMS) adalah perangkat lunak komputer
khusus yang disediakan dari vendor-vendor komputer yang digunakan untuk membuat,
mengakses, mengontrol, dan mengelola database. (Whitten, 2004 : 20)
Keuntungan dari DBMS adalah: (Indrajani, 2011 : 9)
1. Mengontrol redundansi data
2. Konsistensi data
3. Informasi lebih dari sejumlah data yang sama
4. Pemakaian data bersama
5. Meningkatnya integritas data
6. Meningkatnya keamanan database
7. Meningkatnya standardisasi
8. Meningkatnya skala ekonomi
9. Keseimbangan konflik kebutuhan
10. Meningkatnya akses data dan tanggapan
11. Meningkatnya produktivitas
12. Meningkatnya pemeliharaan data karena independensi data
13. Meningkatnya konkurensi data
14. Meningkatnya service backup dan recovery
2.2.2 ERD (Entity Relationship Diagram)
ERD (Entity Relationship Diagram) merupakan sebuah model diagram yang
menggambarkan hubungan objek-objek dalam suatu database. (Connoly, 2005 : 342)
Dengan kata lain, ERD merupakan representasi logik dari suatu basis data.
14
Gambar 2.6 ER Diagram
2.2.3 Microsoft SQL Server
SQL server adalah produk utama Microsoft dalam bidang basis data, mulai dari
SQL Server Express yang ditujukan untuk kelas bawah sampai SQL Server Enterprise
Edition yang ditujukan bagi semua kelas pengguna. SQL Server hanya dapat dijalankan
pada sistem operasi produksi Microsoft (misalnya Windows). Transact-SQL pada SQL
Server juga kompatibel dengan ODBC, OLE DB, dan ADO.NET. (Taylor, 2011 : 247)
2.3 .NET Framework
.NET Framework merupakan sebuah software framework yang dikembangkan
Microsoft dan berjalan pada sistem operasi berbasis Windows. Program yang ditulis
untuk .NET Framework dieksekusi dalam lingkungan software yang biasa disebut CLR
(Common Language Runtime). CLR merupakan sebuah aplikasi mesin virtual yang
menyediakan servis seperti sekuritas, manajemen memori, dan penanganan eksepsi.
CLR dan class library bersama-sama membentuk .NET .
15
Programmer membuat software dengan menggabungkan source code mereka
dengan .NET Framework dan class libraries yang dimiliki .NET. Saat ini, bahasa yang
umum digunakan untuk membuat aplikasi .NET adalah VB (Visual Basic) dan C#.
Untuk bisa menjalankan aplikasi berbasis .NET , pada sistem yang akan digunakan
haruslah telah ter-install .NET Framework sesuai versi yang digunakan oleh aplikasi
tersebut.
2.4 Object/Relational Mapper
Peran O/RM (Object Relational Mapper) adalah menjembatani jarak antara
model relasional (database) dan model berorientasi objek. Menggunakan mapping files
atau atribut dalam suatu objek bisnis, sebuah framework O/RM dapat digunakan untuk
memaksa objek bisnis ke database dan mengambilnya via API (Application
Programming Interface) dari framework ORM dengan sedikit atau tanpa SQL. (Millet,
2009 : 2)
2.4.1 NHibernate
NHibernate adalah port dari framework Hibernate yang popular digunakan untuk
Java. Hibernate telah beredar bertahun-tahun dan telah terbukti sebagai komponen yang
tangguh (robust). ORM berkembang lambat di dunia .NET. tapi seiring waktu banyak
pengembang yang mulai melihat keuntungan dari mengautomasi Data Access Layer
mereka. (Millet, 2009 : 2)
16
2.5 Web Portal
Sebuah portal menyediakan konten suatu aplikasi kepada user melalui sebuah
tampilan layar yang konsisten. (ORACLE)
2.6 Performance Testing
Performance testing merupakan sebuah testing secara umum untuk menentukan
performa suatu sistem dari segi responsiveness dan stabilitas ketika sistem berada dalam
tekanan tertentu. Dalam penulisan skripsi ini, penulis menggunakan 2 tools untuk
pengujian performa web yang dibuat yaitu YSlow dan PageSpeed.
2.6.1 YSlow
YSlow merupakan sebuah add-on bagi Mozilla Firefox maupun Google Chrome
yang dikembangkan oleh Yahoo dan berguna untuk menganalisa halaman web dan
menyarankan cara-cara untuk meningkatkan performanya berdasarkan aturan-aturan yg
telah ditetapkan dan diimplementasi YSlow. Adapun fitur-fitur utama dari YSlow
adalah :
•
Mengukur halaman web berdasar set aturan yang telah ada atau set aturan yang
dibuat user
•
Memberikan saran-saran untuk peningkatan performa
•
Merangkum komponen halaman
•
Menampilkan statistik halaman
17
2.6.2 PageSpeed
PageSpeed merupakan add-on (untuk Mozilla Firefox maupun Google Chrome)
yang dikembangkan Google dan berguna untuk menganalisa performa halaman web.
Perbedaan mendasar PageSpeed dan YSlow adalah YSlow menampilkan hasil analisa
per komponen dengan grade A-F , sementara PageSpeed menampilkan skor 1-100 untuk
setiap halaman. PageSpeed menggunakan set aturan yang telah ditetapkan, adapun
aturan-aturan tersebut adalah sebagai berikut : (GoogleDevelopers)
•
Optimize caching
Sebagian besar halaman web menggunakan sumber daya/komponen yang
berubah-ubah, seperti dokumen CSS , Javascript, dsb. Komponen-komponen ini
memerlukan waktu untuk diunduh melewati jaringan, sehingga secara
keseluruhan mempengaruhi kecepatan akses halaman web. HTTP caching
memungkinkan komponen-komponen tersebut untuk disimpan, atau biasa
disebut cached, berdasar browser atau proxy. Dengan metode ini, ketika
pengguna mengakses suatu halaman, maka browser akan me-load komponen
yang tersimpan (cached) secara lokal dan tidak perlu mengunduh komponennya
secara langsung dari server, sehingga mengurangi waktu loading halaman web
bersangkutan.
•
Minimize round trip times
Round-trip time (RTT) merupakan waktu yang dibutuhkan klien untuk mengirim
request dan server untuk memberikan respon melewati jaringan, tidak termasuk
waktu yang dibutuhkan untuk transfer data. Lebih jelasnya, RTT melibatkan
waktu yang dibutuhkan bagi request untuk dikirim dan dikembalikan lagi
18
melalui kabel, tapi tidak termasuk waktu yang dibutuhkan untuk sepenuhnya
mengunduh byte data. Sebagai contoh, apabila suatu browser menginisiasi
koneksi pertama kalinya ke sebuah web server, terjadi minimal 3 kali RTT :
sekali untuk resolusi nama DNS, sekali untuk pengaturan koneksi TCP , dan
sekali untuk HTTP request dan byte pertama dari HTTP response.
•
Minimize payload size
Jumlah data yang dikirim dalam setiap respon server dapat menambah latency
signifikan pada aplikasi, terutama pada area dimana bandwith-nya terbatas.
Minimasi ukuran payload pada sumber daya dinamis dan statis dapat
mengurangi latency jaringan secara signifikan. Selain itu, untuk scripts yang tercached, pengurangan ukuran byte dokumen bersangkutan mempercepat waktu
yang dibutuhkan oleh browser untuk mengeksekusi dan me-render halaman web.
•
Minimize request overhead
Setiap kali klien mengirimkan sebuah HTTP request, klien harus mengirim
semua associated cookies yang telah diset untuk domain bersangkutan.
Umumnya pengguna memiliki koneksi internet yang asimetris, dimana rasio
koneksi i jauh lebih besar daripada upload. Contohnya, sebuah HTTP header
request sebesar 500 byte dapat menghabiskan waktu yang setara untuk
mengunduh sebuah data HTTP response sebesar 10KB. Cara terbaik untuk
menurunkan waktu request klien adalah dengan mengurangi jumlah byte yang diupload sebagai request header data.
19
•
Optimize browser rendering
Begitu sumber daya telah diunduh ke klien, browser masih harus me-load ,
interpretasi, dan render kode HTML, CSS, dan Javascript. Memformat kode dan
halaman dalam cara-cara yang mengeksploitasi karakteristik browser yang
digunakan dapat meningkatkan performa pada sisi klien.
Download