6 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.
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
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 2. Activity 3. Class 4. Object 5. State Machine 6. Composite Structure 7. Sequence 8. Communication 9. Interaction Overview 10.Timing 11.Component 12.Deployment 13.Package
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.
2.1.2.1Use 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.
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:
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>>”.
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>>”.
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.2Sequence 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.
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.
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 kembali (return)
Merupakan hasil dari pesan yang disampaikan suatu objek.
Frame Digunakan sebagai penanda area pada diagram yang mengalami perulangan (looping), seleksi (alternative), atau memiliki aturan tertentu (optional).
2.1.2.3Activity 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.
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 Node
Merepresentasikan mulainya suatu proses.
Action Merepresentasikan langkah suatu aktivitas, yang ditampilkan secara berurutan.
Flow Merepresentasikan arah proses dari tiap aktivitas.
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
Final
Merepresentasikan berakhirnya suatu proses.
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 two-dimensional grid.
2.1.2.4Class 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.
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 Simbol Deskripsi
Private - Hanya dapat diakses oleh kelas yang mendefinisikan saja.
Protected # Dapat diakses oleh kelas yang mendefinisikan dan turunannya. Public + Dapat diakses oleh semua kelas
2. Multiplicity
Multiplicity berfungsi untuk menentukan nilai minimum dan maksimum hubungan antara kelas.
Tabel 2.4 Tabel Penjelasan Multiplicity
Multiplicity Deskripsi
0..1 Nol atau satu
1 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.
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 kelas baru yang disebut supertype (generalisasi). Sedangkan kelas-kelas yang memiliki kesamaan tersebut disebut dengan subtype (spesialisasi).
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.
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.5Designing 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:
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 one-to-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-to-many.
Bila terdapat suatu hubungan many-to-many antar tabel, maka tabel tersebut harus dipisahkan menjadi beberapa tabel dan memiliki lebih dari satu primary key.
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:
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 batasan-batasan 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 prinsip-prinsip 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.
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.
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).
2.1.4.1Database 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.
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.
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.2Bahasa Database
Menurut Connolly dan Begg (2010: 91-92), bahasa database dibagi menjadi 2 (dua) bagian, yaitu:
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.3Entity-Relationship Modeling
Menurut Connolly dan Begg (2010: 371), Entity-Relationship Modeling atau ER Model adalah pendekatan top-down untuk merancang database yang dimulai dengan identifikasi data penting (yang disebut entitas) dan relasi antar data yang harus terwakili dalam model tersebut.
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 candidate key yang bukan merupakan primary key.
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.
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 baru, masukan dari stakeholder untuk menjawab kebutuhan industri atau adanya 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.
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
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 <?php .... ?>. Gambar berikut memberikan ilustrasi bagaimana script PHP dieksekusi:
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: <?php
echo "Contoh Script PHP <br>";
echo "Hello World, Hello World <br>"; echo "Selesai. <br>"
?>
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
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.
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.
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: <html> <head> <title>Title Example</title> </head> <body> <hgroup> <h1><i>Main Header</i></h1>
<h3><font style="color:#00F">Sub Header</font></h3> </hgroup>
</body> </html>
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.
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
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
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).