BAB 2 LANDASAN TEORI
2.1
Teori Umum Pada teori umum dijabarkan landasan teori yang nantinya akan digunakan dalam proses pembuatan skripsi ini. Teori yang akan dibahas meliputi Interaksi Manusia dan Komputer, Unified Modeling Language (UML), Rekayasa Perangkat Lunak, dan Sistem Basis Data. 2.1.1
Interaksi Manusia dan Komputer Interaksi Manusia dan Komputer atau Human Computer Interaction (HCI) berkaitan dengan tampilan antarmuka atau interface yang digunakan oleh user untuk berinteraksi dengan komputer. Menurut Shneiderman dan Plaisant (2010: 88-89), terdapat Eight Golden Rules (8 Aturan Emas) yang digunakan sebagai pedoman perancangan interface aplikasi, yaitu: 1. Konsistensi Konsistensi tindakan harus terpenuhi dalam situasi yang sama, contohnya pemakaian warna, layout, huruf yang digunakan pada menu tampilan dan menu bantuan. 2. Melayani kebutuhan universal Mengetahui adanya perbedaan kebutuhan setiap user. Misalnya orang awam membutuhkan fitur berupa penjelasan mengenai suatu aplikasi, sedangkan untuk orang yang ahli dibutuhkan shortcut yang dapat mempermudah pekerjaannya. 6
7
3. Memberikan umpan balik yang informatif Adanya umpan balik untuk setiap tindakan yang dilakukan oleh user supaya user tersebut mengetahui dampak dari tindakannya. 4. Merancang dialog untuk bagian akhir Urutan dari tindakan yang dilakukan user hendaknya dikelompokkan ke dalam beberapa bagian seperti bagian awal, tengah, dan akhir. Misalnya pada bagian akhir, umpan balik yang informatif akan menunjukkan bahwa user telah melakukan tindakan dengan cara yang benar. 5. Mencegah kesalahan Sistem dirancang agar user tidak membuat kesalahan yang fatal. Jika nantinya user membuat kesalahan maka muncul pesan kesalahan serta instruksi untuk memperbaiki kesalahan tersebut melalui interface. 6. Mudah kembali ke tindakan sebelumnya Adanya fitur untuk kembali ke kondisi sebelumnya sehingga mengurangi kekhawatiran user. 7. Mendukung pengendalian internal User menginginkan bahwa merekalah yang berperan dalam pengendalian interface dan interface akan merespon sesuai dengan tindakan user. 8. Mengurangi beban memori jangka pendek Keterbatasan ingatan manusia untuk memproses informasi jangka pendek mengakibatkan perancang harus menghindari interface yang
8
mengharuskan user mengingat informasi dari satu bagian yang kemudian digunakan untuk bagian yang lain.
2.1.2
Unified Modeling Language (UML) Menurut Whitten dan Bentley (2007: 371), Unified Modeling Language (UML) merupakan sekumpulan aturan pemodelan yang digunakan untuk menjelaskan sistem software yang berhubungan dengan objek. Terdapat banyak diagram UML yang berfungsi sebagai acuan standar dalam hal perancangan suatu software. Salah satunya adalah UML 2.0 yang menggunakan diagram-diagram sebagai berikut: 1. Use Case
8. Communication
2. Activity
9. Interaction Overview
3. Class
10. Timing
4. Object
11. Component
5. State Machine
12. Deployment
6. Composite Structure
13. Package
7. Sequence Namun demikian, tidak semua diagram yang disebutkan di atas harus digunakan dalam perancangan suatu software. Apabila sistem dapat digambarkan dan dipahami dengan baik menggunakan beberapa diagram saja, maka dapat dikatakan cukup karena telah memenuhi tujuan dari UML.
9
2.1.2.1 Use Case Diagram Menurut Whitten dan Bentley (2007: 246), use case diagram adalah diagram yang merepresentasikan interaksi antara sistem, sistem eksternal, dan aktor. Dengan kata lain, use case diagram merepresentasikan siapa yang akan menggunakan sistem dan bagaimana user berinteraksi dengan sistem. Sebuah use case merepresentasikan sebuah tujuan dari sistem dengan menggambarkan urutan aktivitas dan interaksi user dalam mencapai tujuan. Use case digambarkan dengan sebuah bentuk elips dengan nama dari use case yang muncul dari atas, bawah, atau dalam elips.
Gambar 2.1 Contoh Use Case Diagram 1. Aktor Aktor adalah semua yang berinteraksi dengan use case di dalam sistem. Aktor direpresentasikan dengan sebuah stick figure yang berlabel nama peran aktor.
10
Gambar 2.2 Aktor pada Use Case Diagram Terdapat 4 (empat) tipe aktor, antara lain: a. Primary business actor Primary business actor adalah pihak yang mendapatkan hasil dari eksekusi use case. b. Primary system actor Primary system actor adalah pihak yang secara langsung berinteraksi dengan sistem. c. External server actor External server actor adalah pihak yang menanggapi permintaan dari use case. d. External receiver actor External receiver actor adalah pihak yang bukan merupakan primary actor tetapi mendapatkan hasil dari use case. 2. Relasi Relasi direpresentasikan sebagai garis di antara 2 (dua) simbol dalam use case diagram. Arti dari relasi tersebut berbeda tergantung tipe relasinya. Tipe relasi yang terdapat dalam use case diagram, antara lain:
11
a. Asosiasi Asosiasi adalah relasi antara aktor dengan use case. Direpresentasikan dengan sebuah garis dengan atau tanpa anak panah. Asosiasi dengan anak panah menjelaskan bahwa use case dilakukan oleh aktor, sedangkan asosiasi tanpa anak panah menjelaskan interaksi antara use case dengan external server atau receiver actor.
Gambar 2.3 Asosiasi pada Use Case Diagram b. Extends Sebuah use case mungkin saja memiliki lebih dari 1 (satu) tahap, sehingga kompleksitas use case tersebut meningkat. Langkah kompleks yang terdapat dalam use case tersebut bisa diekstrak menjadi use case baru yang dinamakan extension use case. Relasi antara use case dengan extension use case disebut extends. Relasi ini direpresentasikan dengan garis dengan anak panah berlabel “<<extends>>”.
12
Gambar 2.4 Extends pada Use Case Diagram c. Uses (atau Includes) Digunakan pada saat terdapat 2 (dua) atau lebih use case melakukan tahapan fungsionalitas yang sama. Tahapan yang sama ini dapat diekstrak menjadi use case baru yang dinamakan abstract use case dengan tujuan mengurangi berlebihnya use case. Relasi antara use case dengan abstract use case disebut uses atau includes. Relasi ini direpresentasikan dengan garis dengan anak panah berlabel “<<uses>>”.
Gambar 2.5 Uses pada Use Case Diagram d. Depends On Relasi use case ini menentukan use case mana yang harus dilakukan terlebih dahulu sebelum melakukan use case lain yang bersangkutan. Relasi ini digambarkan dengan garis dengan anak panah berlabel “<<depends on>>”.
13
Gambar 2.6 Depends On pada Use Case Diagram e. Inheritance Relasi ini digunakan pada saat 2 (dua) atau lebih aktor melakukan use case yang sama. Relasi ini digambarkan dengan garis dengan anak panah kosong.
Gambar 2.7 Inheritance pada Use Case Diagram
2.1.2.2 Sequence Diagram Menurut Whitten dan Bentley (2007: 659), sequence diagram adalah diagram yang menggambarkan model logika sebuah use case dengan menggambarkan interaksi dari pesan antar objek dalam urutan waktu tertentu.
14
Gambar 2.8 Contoh Sequence Diagram Elemen-elemen yang digunakan dalam sequence diagram, antara lain: Tabel 2.1 Tabel Elemen Sequence Diagram Simbol
Nama
Deskripsi
Aktor
Orang atau entitas yang berinteraksi dengan sistem.
Objek
Instansi dari sebuah class.
15
Aktivasi
Representasi dari lamanya waktu
pada
saat
objek
digunakan.
Pesan
Menyampaikan method dari setiap objek.
Self-call
Digunakan pada saat objek tersebut mengirimkan pesan ke objek itu sendiri.
Pesan
Merupakan hasil dari pesan
kembali
yang
(return)
objek.
Frame
Digunakan sebagai penanda
disampaikan
suatu
area pada diagram yang mengalami (looping),
perulangan seleksi
(alternative), atau memiliki aturan tertentu (optional).
2.1.2.3 Activity Diagram Menurut Whitten dan Bentley (2007: 390), activity diagram adalah diagram yang menggambarkan alur proses bisnis, langkah-langkah dalam sebuah use case, atau logika dari perilaku objek.
16
Gambar 2.9 Contoh Activity Diagram Elemen-elemen yang digunakan dalam activity diagram, antara lain: Tabel 2.2 Tabel Elemen Activity Diagram Simbol
Nama
Deskripsi
Initial
Merepresentasikan
Node
suatu proses.
Action
Merepresentasikan langkah suatu aktivitas,
yang
mulainya
ditampilkan
secara berurutan. Flow
Merepresentasikan arah proses dari tiap aktivitas.
17
Decision/ Merge
1. Decision Merepresentasikan kondisi untuk memilih satu di antara 2 (dua) atau lebih aktivitas. 2. Merge Merepresentasikan kondisi yang menggabungkan alur aktivitas yang sebelumnya dipisahkan oleh decision.
Fork/Join
1. Fork Merepresentasikan keadaan paralel, di mana 2 (dua) atau lebih actions berlangsung secara bersamaan. 2. Join Merepresentasikan berakhirnya proses paralel yang berasal dari suatu fork.
Activity
Merepresentasikan
Final
suatu proses.
berakhirnya
18
Swimlanes
Swimlanes digambarkan dengan membagi activity diagram ke dalam
bagian-bagian
yang
menampilkan aktivitas-aktivitas dari class atau actor tertentu. Suatu activity diagram dapat dibagi ke dalam beberapa partitions yang disebut swimlanes untuk melihat aktivitas apa yang dilakukan oleh actor tertentu, dan dapat terdiri dari twodimensional grid.
2.1.2.4 Class Diagram Menurut Whitten dan Bentley (2007: 400), class diagram merupakan gambaran mengenai struktur kelas-kelas beserta hubungan antar kelas yang menyusun suatu sistem. Setiap kelas digambarkan dengan sebuah kotak yang terbagi atas 3 (tiga) bagian, yaitu: 1. Nama kelas Nama kelas merupakan identitas dari setiap kelas. 2. Atribut kelas Atribut kelas menunjukkan informasi yang dimiliki oleh suatu kelas.
19
3. Operasi kelas Operasi kelas menunjukkan apa yang bisa dilakukan oleh suatu kelas.
Gambar 2.10 Struktur kelas Terdapat beberapa istilah yang digunakan dalam class diagram, yaitu: 1. Visibility Visibility berfungsi untuk menjelaskan sifat dari setiap atribut atau operasi yang berada dalam suatu kelas. Tabel 2.3 Tabel Penjelasan Visibility Visibility Private
Simbol
Deskripsi
-
Hanya dapat diakses oleh kelas yang mendefinisikan saja.
Protected
#
Dapat diakses oleh kelas yang mendefinisikan dan turunannya.
Public
+
Dapat diakses oleh semua kelas yang berhubungan.
20
2. Multiplicity Multiplicity berfungsi untuk menentukan nilai minimum dan maksimum hubungan antara kelas. Tabel 2.4 Tabel Penjelasan Multiplicity Multiplicity 0..1 1
Deskripsi Nol atau satu Tepat satu
0..*
Nol atau lebih
1..*
Satu atau lebih
m..n
Rentang yang spesifik
3. Asosiasi Asosiasi menggambarkan hubungan antar kelas. Hubungan antar kelas ini sekaligus menampilkan multiplicity yang dimiliki antar kelas. Asosiasi dibedakan menjadi 2 (dua) jenis, yaitu: a. Uni-directional Merupakan hubungan dimana pada kedua kelas yang terhubung, hanya salah satu kelas dari hubungan tersebut yang memiliki peran. Kelas yang berperan menunjuk ke kelas lain dengan menggunakan anak panah yang disebut navigability.
21
Gambar 2.11 Contoh Uni-directional b. Bi-directional Merupakan hubungan dimana kedua kelas yang terhubung saling memiliki peran dalam hubungan tersebut.
Gambar 2.12 Contoh Bi-directional 4. Generalisasi/Spesialisasi Generalisasi/spesialisasi adalah sebuah teknik dimana atribut dan method yang dimiliki beberapa kelas memiliki kesamaan dengan kelas lainnya. Kesamaan tersebut dapat dikumpulkan dan
membentuk
(generalisasi).
kelas
Sedangkan
baru
yang
kelas-kelas
disebut
supertype
yang
memiliki
kesamaan tersebut disebut dengan subtype (spesialisasi).
22
Gambar 2.13 Contoh Generalisasi/Spesialisasi 5. Agregasi Agregasi menunjukkan adanya relasi antara kelas yang lebih kecil merupakan bagian dari kelas yang lebih besar. Sifat dari agregasi ini adalah asimetris, dimana apabila kelas A adalah bagian dari kelas B, tidak berarti bahwa kelas B adalah bagian dari kelas A.
Gambar 2.14 Contoh Agregasi Bentuk lain dari agregasi adalah komposisi. Komposisi adalah relasi agregasi dimana suatu kelas yang lebih besar berperan secara penuh terhadap eksistensi dari kelas lain. Kelas lain tidak akan ada apabila kelas yang lebih besar tersebut tidak dibuat.
23
Gambar 2.15 Contoh Komposisi Selain itu menurut Whitten dan Bentley (2007: 648-649), dalam class diagram terdapat sedikitnya 3 (tiga) tipe kelas objek yang menyusun suatu sistem berorientasi objek, antara lain: 1. Entity class, yaitu kelas objek yang berisi informasi terkait bisnis dan impementasi dari kelas analisis. 2. Interface
class,
yaitu
kelas
objek
yang
mendukung
komunikasi antara aktor dan sistem. 3. Controller class, yaitu kelas objek yang mengandung logika aplikasi, serta menjadi kelas penghubung pesan-pesan yang terdapat pada kelas interface dan kelas entity.
2.1.2.5 Designing Relational Database Menurut Satzinger, Jackson, dan Burd (2005: 409), designing relational database merupakan perancangan database relational dari sebuah class diagram. Berikut tahapan-tahapan dalam mengubah sebuah class diagram menjadi database relational, antara lain:
24
1. Membuat tabel untuk setiap class. Merupakan tahapan pertama dalam membuat database relational dengan membuat tabel untuk setiap class pada class diagram. Nama atribut dari tabel akan disamakan dengan yang sudah didefinisikan dalam class diagram dan kamus data untuk mencegah kebingungan. 2. Memilih primary key untuk setiap tabel. Setelah membuat tabel untuk setiap class, tahapan selanjutnya adalah menentukan primary key untuk setiap tabel. Bila dalam sebuat tabel sudah ada sebuat atribut yang unik, maka atribut tersebut dapat dipilih sebagai primary key. 3. Menambahkan foreign key untuk menunjukkan hubungan oneto-one. Setiap foreign key menunjukkan hubungan antar tabel yang memiliki foreign key dengan tabel yang menggunakan key yang sama sebagai primary key. Saat menunjukkan hubungan one-to-one, foreign key tidak menjadi bagian dari primary key dari tabel tersebut. 4. Membuat tabel baru untuk menunjukkan hubungan many-tomany. Bila terdapat suatu hubungan many-to-many antar tabel, maka tabel tersebut harus dipisahkan menjadi beberapa tabel dan memiliki lebih dari satu primary key.
25
5. Merepresentasikan hirarki dari class. Hirarki dari class ditunjukkan dengan hubungan parent class dengan child class, dimana parent class menurunkan beberapa atau seluruh atribut dan method ke child class. Ada 2 (dua) cara untuk merepresentasikannya, yaitu: a. Mengkombinasikan seluruh tabel ke dalam sebuah tabel yang memiliki seluruh atribut dari semua child class. b. Menggunakan beberapa tabel untuk merepresentasikan child class dengan menggunakan primary key dari parent class sebagai primary key dari child class. 6. Mendefinisikan batasan referensi integritas. Pada tahapan ini dijelaskan sebuah hubungan konsisten antara nilai foreign key dengan primary key, yaitu setiap foreign key mereferensikan sebuah primary key dari tabel lain. Namun pada kondisi tertentu dapat terjadi sebuah foreign key yang muncul di suatu tabel dan berperan sebagai primary key pada tabel
yang bersangkutan, yang biasa disebut dengan
referencial integrity constraint. 7. Mengevaluasi kualitas skema dan membuat perbaikan bila diperlukan. Setelah pembuatan sekumpulan tabel, desainer database harus meninjau kualitas skema yang telah dibuat. Sebuah model data yang memiliki kualitas yang bagus harus mempunyai beberapa fitur seperti:
26
a. Keunikan suatu set baris pada tabel dan primary key. b. Data tidak redundan. c. Kemudahan dalam modifikasi data model di masa yang akan datang. 8. Memilih tipe data yang sesuai dan batasan nilai untuk setiap kolom bila diperlukan. Pada tahapan terakhir, setiap atribut yang termasuk ke dalam database relational diberi tipe data yang sesuai dan batasanbatasan yang diperlukan untuk setiap atribut.
2.1.3
Rekayasa Perangkat Lunak Menurut Pressman (2010: 13), rekayasa perangkat lunak atau software engineering adalah proses pembentukan dan penerapan prinsipprinsip perancangan yang ada untuk menghasilkan software yang ekonomis yang dapat diandalkan serta dapat bekerja secara efisien. Salah satu model pengembangan sistem yang terkenal adalah model Waterfall, yaitu model yang menekankan perencanaan yang matang di tahap awal dan memastikan kekurangan yang mungkin terjadi pada rancangan sebelum rancangan tersebut akan dikembangkan lebih lanjut lagi. Adapun tahapannya adalah sebagai berikut: 1. Communication Pada tahap ini dilakukan tahap awal proyek yaitu berkomunikasi dengan konsumen (dan beberapa pihak yang berkepentingan), dengan tujuan agar perancang dapat memahami keseluruhan isi proyek.
27
Selain itu dilakukan juga pengumpulan kebutuhan yang nantinya membantu menentukan fungsi dan fitur software. 2. Planning Pada tahap ini dibuat sebuah rencana proyek untuk membantu menentukan arah proyek ke depannya. Rencana proyek tersebut menjelaskan tugas-tugas yang harus dilakukan, resiko yang mungkin terjadi, sumber daya yang akan diperlukan, produk yang harus dihasilkan, serta jadwal pengerjaan software. 3. Modeling Pada tahap ini dilakukan perancangan model dimana perancang menerjemahkan kebutuhan sistem ke dalam bentuk representasi model. Tujuannya agar perancang lebih memahami masalah dan cara mengatasinya. 4. Construction Pada tahap ini rancangan akan diterjemahkan ke dalam bahasa mesin. Dilakukan proses coding dan uji aplikasi untuk mengecek apakah ada kesalahan yang terjadi. 5. Deployment Setelah proses construction selesai, hasilnya akan diberikan kepada konsumen agar dievaluasi. Hasil evaluasi tersebut akan menjadi umpan balik dari konsumen.
28
Gambar 2.16 Model Waterfall (Sumber: Roger S. Pressman, Software Engineering: A Practitioner’s Approach, 2010: 39)
2.1.4
Sistem Basis Data Menurut Connolly dan Begg (2010: 65), database adalah sekumpulan data yang terhubung secara logis beserta deskripsi dari data tersebut, yang dirancang untuk memenuhi kebutuhan informasi suatu organisasi. Database merupakan sebuah kesatuan yang dapat menampung data yang besar sehingga dapat digunakan bersama oleh banyak departemen dan user. Database tidak hanya berisi data operasional organisasi tetapi juga mendeskripsikan data tersebut. Oleh karena itu database disebut juga sebagai system catalog atau data dictionary atau metadata (data menjelaskan data).
29
2.1.4.1 Database Management System Menurut Connolly dan Begg (2010: 66), Database Management System (DBMS) adalah sebuah sistem software yang memungkinkan
user
untuk
mendefinisikan,
membuat,
memelihara, dan mengontrol akses ke dalam database. DBMS merupakan software yang berinteraksi dengan program aplikasi user dan database. Fasilitas-fasilitas yang disediakan oleh DBMS adalah sebagai berikut: 1. Memungkinkan user untuk mendefinisikan database melalui Data Definition Language (DDL) sehingga user dapat menentukan tipe data, struktur dan batasan-batasan dari data yang bisa disimpan dalam database. 2. Memungkinkan user untuk melakukan insert (menambah), update (memperbarui), delete (menghapus), dan retrieve (mengambil) data dari database, biasanya melalui Data Manipulation Languange (DML). 3. Menyediakan kontrol akses ke dalam database, contohnya: a. Security system, sistem dimana masing-masing user memiliki hak akses yang berbeda terhadap database. b. Integrity system, sistem yang memelihara konsistensi dari data yang disimpan. c. Concurrency control system, sistem yang memungkinkan satu atau lebih user untuk mengakses database secara bersamaan.
30
d. Recovery control system, sistem yang mengembalikan database ke kondisi sebelumnya jika terjadi kegagalan kerja dari hardware atau software. e. User-accessible catalog, yang bersisi deskripsi dari data di dalam database.
Gambar 2.17 DBMS environment (Sumber: Thomas Connolly dan Carolyn Begg, Database Systems: A Practical Approach to Design, Implementation, and Management, 2010: 68) Menurut Connolly dan Begg (2010: 68-71), DBMS mempunyai 5 (lima) komponen utama, antara lain: 1. Perangkat keras (Hardware) DBMS dan aplikasi memerlukan perangkat keras agar proses dapat berjalan. Perangkat keras dapat berupa komputer, sebuah
mainframe,
atau
sekumpulan
komputer
yang
terhubung dalam jaringan. Perangkat keras yang digunakan bergantung pada kebutuhan organisasi dan DBMS yang digunakan. Beberapa DBMS hanya bisa digunakan pada hardware atau sistem operasi tertentu saja.
31
2. Perangkat lunak (Software) Komponen perangkat lunak (software) terdiri dari software DBMS itu sendiri dan program aplikasi bersama dengan sistem operasi, termasuk software jaringan apabila DBMS tersebut menggunakan jaringan. 3. Data Data merupakan komponen yang paling penting dalam DBMS, khususnya dari sudut pandang end-user karena data merupakan
jembatan
antara
komponen
mesin
dengan
komponen manusia. Database berisi data operasional dan metadata. Struktur dari database disebut dengan schema. 4. Prosedur (Procedures) Prosedur mengacu pada instruksi dan aturan yang menentukan rancangan dan penggunaan dari database. User dari sistem dan staf yang mengatur database membutuhkan prosedur yang terdokumentasi yang berisi cara menjalankan sistem. 5. Orang (People) Orang merupakan komponen terakhir yang terlibat di dalam sistem,
contohnya:
data
administrator
dan
database,
perancang database, pengembang aplikasi, dan end-user.
2.1.4.2 Bahasa Database Menurut Connolly dan Begg (2010: 91-92), bahasa database dibagi menjadi 2 (dua) bagian, yaitu:
32
1. Data Definition Language Data Definition Language (DDL) merupakan bahasa yang memungkinkan Database Administrator (DBA) atau user untuk mendeskripsikan dan menamai entitas, atribut, dan relasi yang diperlukan untuk aplikasi, bersama dengan semua integritas yang terkait dan kendala keamanannya. DDL digunakan untuk membuat skema atau mengubah skema yang sebelumnya, tetapi tidak dapat melakukan manipulasi data. DDL menghasilkan kumpulan tabel yang disimpan dalam file khusus yang disebut system catalog. 2. Data Manipulation Languange Data Manipulation Languange (DML) adalah bahasa yang menyediakan kumpulan operasi untuk mendukung proses manipulasi data yang berada dalam database. Manipulasi data yang ada dalam database biasanya termasuk operasi untuk menambah data baru, modifikasi data, mengambil data, dan menghapus data.
2.1.4.3 Entity-Relationship Modeling Menurut Connolly dan Begg (2010: 371), EntityRelationship Modeling atau ER Model adalah pendekatan topdown untuk merancang database yang dimulai dengan identifikasi data penting (yang disebut entitas) dan relasi antar data yang harus terwakili dalam model tersebut.
33
1. Entity Types Konsep dasar dari ER Model adalah entity types, yaitu kumpulan objek dengan sifat (property) yang sama, yang diidentifikasi oleh perusahaan karena memiliki eksistensi yang independen. Artinya, keberadaannya dapat berupa fisik maupun abstrak. 2. Relationship Types Relationship type merupakan sekumpulan hubungan antara satu atau lebih tipe entitas. Setiap tipe relasi diberikan sebuah nama yang menjelaskan fungsinya. 3. Attributes Atribut adalah sifat (property) dari sebuah entitas atau relationship types. Contohnya, tipe entitas Staff dapat dideskripsikan dengan atribut staffNo, name, position, dan salary. 4. Keys a. Candidate key, adalah atribut-atribut yang nilainya dapat mengidentifikasikan setiap data dalam sebuah entitas. b. Primary key, adalah candidate key yang dipilih untuk secara unik mengindentifikasikan setiap data dalam sebuah entitas. c. Alternate
key,
adalah
merupakan primary key.
candidate
key
yang
bukan
34
d. Composite key, adalah candidate key yang terdiri dari dua atau lebih atribut. e. Foreign key, adalah atribut atau serangkaian atribut dalam sebuah relasi yang mencocokkan candidate key dari beberapa (mungkin semua relasi). 5. Multiplicity Multiplicity adalah jumlah (atau rentang) data dalam entitas yang mungkin dapat berelasi dengan sebuah data dalam entitas lain melalui relasi tertentu. -
One-to-One Relationships (1:1) Hubungan yang terjadi apabila setiap data dalam entitas A tepat berhubungan dengan satu data dalam entitas B.
-
One-to-Many Relationships (1:*) Hubungan yang terjadi apabila setiap data dalam entitas A berhubungan dengan lebih dari satu data dalam entitas B.
-
Many-to-Many Relationships (*:*) Hubungan yang terjadi apabila lebih dari satu data dalam entitas A berhubungan dengan lebih dari satu data dalam entitas B.
2.2
Teori Khusus Pada teori khusus berisi teori-teori yang berkaitan dengan aplikasi yang dibuat, meliputi kurikulum, Microsoft SQL Server, PHP, CodeIgniter, HTML, AJAX, JavaScript, JSON, dan jQuery.
35
2.2.1
Kurikulum Kurikulum adalah sebuah program yang disusun dan dilaksanakan untuk mencapai suatu tujuan pendidikan. Dengan kata lain kurikulum dapat diartikan sebuah program yang berupa dokumen program dan pelaksanaan program. Sebagai sebuah dokumen, kurikulum (curriculum plan) digambarkan dalam bentuk rincian mata kuliah, silabus, rancangan pembelajaran, sistem evaluasi keberhasilan. Sedangkan kurikulum sebagai sebuah pelaksanan program adalah bentuk pembelajaran yang nyata dilakukan (actual curriculum) (Anonim2, 2012). Penjabaran kurikulum tidak hanya berfokus pada proses pembelajaran
di
kelas/laboratorium/studio
saja
tetapi
dapat
dikembangkan dalam bentuk kegiatan informal lainnya yang menunjang tercapainya kompetensi lulusan. Dalam melakukan proses penyusunan kurikulum dapat disebabkan oleh adanya pembentukan program studi/program/peminatan menjawab
kebutuhan
baru,
masukan
industri
atau
dari
adanya
stakeholder
untuk
perkembangan
ilmu
pengetahuan. Namun seringkali perubahan sebuah kurikulum seringkali hanya terfokus
pada
pengubahan
dokumen
saja,
tetapi
pelaksanaan
pembelajaran, penciptaan suasana belajar, cara evaluasi atau perkiraan pembelajaran, sering tidak berubah. Sehingga dapat dikatakan perubahan kurikulum hanya pada tataran konsep atau mengubah dokumen saja. Ini bisa dilihat dalam sistem pendidikan yang lama dimana kurikulum diletakkan sebagai aspek input saja.
36
Tetapi dengan cara pandang yang lebih luas kurikulum dapat berperan sebagai berikut (Anonim2, 2012): 1. Kebijakan manajemen pendidikan tinggi untuk menentukan arah pendidikannya. 2. Filosofi yang akan mewarnai terbentuknya masyarakat dan iklim akademik. 3. Patron atau pola pembelajaran. 4. Atmosfer atau iklim yang terbentuk dari hasil interaksi manajerial pendidikan tinggi dalam mencapai tujuan pembelajarannya. 5. Rujukan kualitas dari proses penjaminan mutu. 6. Ukuran keberhasilan pendidikan tinggi dalam menghasilkan lulusan yang bermanfaat bagi masyarakat. Dengan uraian diatas, nampak bahwa kurikulum tidak hanya berarti sebagai suatu dokumen saja, namun mempunyai peran yang kompleks dalam proses pendidikan.
2.2.2
Microsoft SQL Server Microsoft SQL Server adalah sebuah server database yang lengkap dan menyediakan sekumpulan teknologi yang siap digunakan dalam perusahaan, serta fitur-fitur yang dapat membantu orang untuk mengolah informasi. Dengan ini, database dapat digunakan secara client server dalam lingkungan intranet bahkan internet. SQL Server mendukung integrasi internet, manajemen transaksi, serta fitur data warehouse. Untuk dapat mengakses data dari database user harus
37
melewati 2 (dua) tahap otentikasi, yaitu tahap pertama yang dilakukan oleh SQL Server dan tahap lainnya oleh Database Management System (Sivakumar, 2011: 60).
2.2.3
PHP PHP
(PHP
Hypertext
Preprocessor)
merupakan
bahasa
pemrograman yang banyak digunakan dan sesuai untuk pengembangan web serta dapat tertanam ke dalam HTML (Anonim3, 2012). Menurut Sunyoto (2007: 121), PHP memiliki beberapa kelebihan, antara lain: 1. Mudah dibuat dan dijalankan. 2. PHP mampu berjalan pada sistem operasi UNIX, Windows dan Macintosh. 3. PHP bisa didapatkan secara gratis. 4. PHP mampu berjalan pada web server, seperti Microsoft Personal Web Server, Apache, IIS, dan lain-lain. 5. PHP dapat diletakkan dalam tag HTML. PHP disisipkan dalam HTML dengan tag . Gambar berikut memberikan ilustrasi bagaimana script PHP dieksekusi:
38
Gambar 2.18 Cara Kerja PHP (Sumber: Andy Sunyoto, AJAX Membangun Web dengan Teknologi Asynchronouse JavaScript dan XML, 2007: 122) Berikut adalah contoh penggalan script PHP: "; echo "Hello World, Hello World
"; echo "Selesai.
" ?>
Hasilnya adalah:
2.2.4
CodeIgniter CodeIgniter adalah framework PHP yang mengandung kumpulan tool sederhana dan mudah digunakan untuk membangun fitur aplikasi web yang lengkap. CodeIgniter bersifat open source dan cocok bagi
39
pengembang yang ingin mengembangkan aplikasinya dalam waktu yang lebih singkat (Griffiths, 2010). CodeIgniter menyediakan struktur sederhana dan logis untuk mengakses libraries yang berisi banyak functions dan methods untuk membantu membangun sebuah aplikasi web yang kompleks dan dinamis. Beberapa kelebihan CodeIgniter dibandingkan dengan framework PHP lainnya, antara lain (Anonim4, 2012): 1. Performa cepat Salah satu alasan tidak menggunakan framework adalah karena eksekusinya yang lebih lambat daripada PHP yang biasa, tapi performa CodeIgniter lebih cepat diantara framework yang lain. 2. Konfigurasi yang sangat minim Tentu saja untuk menyesuaikan dengan database dan keleluasaan routing tetap diizinkan melakukan konfigurasi dengan mengubah beberapa file konfigurasi seperti database.php atau autoload.php, namun untuk menggunakan CodeIgniter dengan pengaturan yang standar hanya perlu mengubah sedikit file pada folder config. 3. Dokumentasi yang lengkap dan mudah digunakan Setiap paket instalasi CodeIgniter sudah disertai user guide yang lengkap dan mudah dipahami untuk dijadikan sebagai panduan. 4. Banyak komunitas Semakin banyaknya komunitas CodeIgniter memudahkan user untuk berinteraksi dengan user yang lain.
40
Menurut Griffiths (2010), CodeIgniter berdasar pada pola pengembangan Model View Controller (MVC). Model View Controller adalah sebuah pendekatan perangkat lunak yang memisahkan logika aplikasi dari tampilan layar. MVC memungkinkan halaman web memiliki sedikit script karena tampilan terpisah dari script PHP. Terdapat 3 (tiga) jenis komponen yang membangun MVC, antara lain: 1. Model, untuk menggambarkan struktur data. Biasanya kelas model yang ada akan berisi fungsi-fungsi yang membantu proses retrieve, insert, dan update informasi dari database. 2. View, adalah informasi yang ditampilkan kepada user. Normalnya View adalah halaman web itu sendiri, tetapi dalam CodeIgniter, View dapat berupa bagian-bagian dari web seperti header atau footer. Dapat juga bertipe halaman RSS, atau halaman yang lain. 3. Controller, berfungsi sebagai perantara antara bagian Model dan View, serta komponen lain yang dibutuhkan dalam proses HTTP request dan generate halaman web. Dengan
menggunakan
prinsip
MVC,
suatu
aplikasi
dapat
dikembangkan sesuai dengan kemampuan pengembangnya, yaitu programmer yang menangani bagian Model dan Controller, sedangkan designer yang menangani bagian View.
41
2.2.5
HTML Menurut Patel dan Patel (2012: 406), HyperText Markup Language (HTML) adalah bahasa penulisan utama untuk halaman web. Elemen-elemen HTML merupakan blok pembangun dasar dalam membangun sebuah halaman web. HTML menggunakan beberapa instruksi khusus yaitu tag atau markup untuk menentukan struktur dan tata letak dari halaman web serta menentukan bagaimana seharusnya halaman ditampilkan dalam web browser. HTML disusun dari berbagai elemen seperti heading, paragraph, hyperlink, list, image, dan lainnya. Kebanyakan dari elemen tersebut terdiri dari 3 bagian yaitu: start tag, content, dan end tag. HTML mencakup ratusan tag yang digunakan untuk memformat halaman web dan membuat hyperlink menuju ke dokumen atau halaman web lainnya. Berikut adalah contoh penggalan script HTML:
Title Example Main Header
Sub Header
Hasilnya adalah:
42
2.2.6
AJAX Menurut Zaki dan Community (2008: 1-2), Asynchronous JavaScript and XML atau disingkat AJAX merupakan teknik baru di dunia pengembangan halaman web, yang lebih "kaya" dibandingkan dengan aplikasi web biasa. Hal tersebut terjadi karena AJAX memungkinkan sebuah halaman web memperbarui data dari server untuk ditampilkan tanpa harus melakukan refresh, sehingga halaman terlihat lebih responsif. Dengan demikian, sebuah aplikasi web akan terasa seperti aplikasi desktop dari segi kecepatan, interaktivitas, dan fungsionalitasnya. AJAX bersifat asynchronous (asinkron) karena permintaan data tambahan dari server dan proses loading dilakukan di background sehingga tidak mempengaruhi tampilan dan sifat halaman web pada waktu halaman tersebut diakses. Ketika AJAX bekerja untuk mengambil data dari server, user yang sedang membuka halaman web masih tetap dapat berinteraksi dengan halaman web tersebut. Menurut Phaneendra (2012: 12), dengan asynchronous mode di atas memungkinkan user untuk mendapatkan sejumlah data atau informasi pada sistem klien tanpa membiarkan klien tersebut berada dalam keadaan menunggu untuk waktu yang lama.
43
Gambar 2.19 Classic Web Application Model (Asynchronous) (Sumber: S. Vikram Phaneendra, Minimizing Client-Server Traffic Based on AJAX, 2012: 12)
Gambar 2.20 AJAX Web Application Model (Synchronous) (Sumber: S. Vikram Phaneendra, Minimizing Client-Server Traffic Based on AJAX, 2012: 12)
2.2.7
JavaScript Menurut Patel dan Patel (2012: 407), JavaScript merupakan bahasa pemrograman yang dirancang untuk web. JavaScript dapat melakukan berbagai fungsi yang digunakan untuk memanipulasi halaman
44
web. Dengan kata lain JavaScript akan bereaksi terhadap tindakan user dalam sebagian besar kasus. Contohnya, jika user menggerakkan mouse ke arah suatu teks atau gambar, maka JavaScript akan melakukan rollover dan melakukan perubahan lain terhadap teks atau gambar tersebut. JavaScript menyediakan beberapa fungsi-fungsi, seperti password protection, deteksi browser, atau menampilkan informasi, seperti waktu dan tanggal yang tepat pada sebuah halaman web. Selain itu JavaScript digunakan untuk memberikan kontrol lebih kepada perancang website serta bagaimana halaman web terebut dimunculkan oleh browser (Patel dan Patel, 2012: 407).
2.2.8
JSON JavaScript Object Notation (JSON) adalah sebuah format pertukaran data yang ringan serta mudah dibaca dan dibuat oleh komputer.
JSON
termasuk
format
bahasa
independen
tetapi
menggunakan cara konvensional yang familiar bagi perancang bahasa C, termasuk C, C++, C#, JavaScript, Perl, Python, dan sebagainya (Anonim6, 2012). Menurut Soebroto dan Arwani (2012: 21), penggunaan JSON secara umum terdiri dari fungsi encode dan decode. Fungsi encode akan mengubah nilai dari variabel array menjadi suatu format yang dapat dibaca sebagai JSON array. Sedangkan fungsi decode adalah proses memperoleh nilai dari suatu variabel dengan format JSON array. Dalam proses decode, nilai dari variabel JSON array akan diekstrak menjadi
45
suatu nilai output tertentu. Beberapa kelebihan yang membuat JSON layak untuk digunakan, antara lain: 1. JSON bersifat text biasa, sehingga lebih ringan digunakan. 2. JSON bersifat “self-describing” sehingga dapat dibaca oleh manusia. 3. JSON bersifat hirarkis. 4. JSON dapat diuraikan oleh JavaScript. 5. Data JSON dapat dikirimkan menggunakan AJAX.
2.2.9
jQuery jQuery adalah salah satu library JavaScript yang ringkas dan sederhana yang berfungsi untuk memanipulasi komponen di dokumen HTML, menangani event, animasi, dan mendukung interaksi AJAX. Sesuai slogannya yaitu “write less, do more”, jQuery dirancang agar penggunaan JavaScript menjadi lebih mudah (Anonim5, 2012). Selain itu, jQuery juga mendukung pengembang untuk membuat plug-in dalam library JavaScript. Nantinya library pada JavaScript akan disimpan dalam file JavaScript tunggal yang berisi semua fungsi pada jQuery. Dengan adanya fasilitas tersebut diharapkan pengembang dapat membuat halaman web yang powerful dan dinamis (Kaur, Pati, Lotlikar, Rodrigues, Talekar, Dhere, 2011: 230).