BAB 2 LANDASAN TEORI 2.1
Teori Umum 2.1.1 Teori Assessment Assessment adalah suatu proses pengukuran atau penaksiran atas suatu nilai
berdasar fakta yang ada. Menurut Joint Information System Comitee (JISC) assessment adalah instrumen yang digunakan untuk membuktikan dan mengevaluasi sejauh mana seorang kandidat telah mencapai atau membuat kemajuan terhadap kriteria penilaian. Dalam bukunya (Black dan Wiliam,2004) “Working Inside the Black Box: Assessment for Learning in the Classroom” Paul Black dan Dylan Wiliam mengartikan assessment untuk pembelajaran adalah proses mencari dan menafsirkan bukti dari kinerja peserta didik untuk digunakan oleh peserta didik dan guru mereka untuk mengidentifikasi sejauh mana peserta didik menyerap proses pembelajaran, apa yang menjadi tujuan mereka selanjutnya, dan apa yang harus dilakukan selanjutnya untuk mencapainya. 2.1.2 Teori e-Assessment 2.1.2.1 Pengertian e-Assessment Menurut Joint Information System Comitee (JISC) dalam jurnalnya yang berjudul “Effective Practice with e-Assessment”, eassessment adalah proses penilaian elektronik dimana teknologi informasi 7
8
dan komunikasi dipakai untuk mepresentasikan aktivitas penilaian dan untuk menyimpan jawaban atau tanggapan. Ini mencakup proses penilaian dari sudut pandang peserta didik, pendidik, lembaga pendidikan, badan penghargaan dan pengatur, dan masyarakat umum.
2.1.2.2 Tipe Assessment Berdasar tujuannya ada 3 tipe assessment yaitu: a) Diagnostic Assessment Diagnostic assessment bertujuan untuk mengukur sejauh mana tingkat keterampilan seseorang dalam suatu bidang yang nantinya hasil tes tersebut akan digunakan untuk menentukan apa yang perlu dipelajari selanjutnya. Contoh: tes untuk mengukur kemampuan individu sebelum mengikuti kelas bahasa inggris. b) Formative Assessment Formative assessment digunakan untuk membantu mencapai tujuan yang diinginkan selama proses pembelajaran dengan memberikan umpan balik agar proses pembelajaran lebih efektif. c) Summative Assessment Adalah penilaian yang dilakukan untuk mengukur tingkat kesuksesan atau pencapaian suatu pembelajaran saat akhir proses pembelajaran itu sendiri.
9
2.1.2.3 Kelebihan e-Assessment Kelebihan e-assessment, yaitu: • Lebih Interakfif • Mengatasi masalah jarak • Waktu pengerjaan lebih fleksibel. • Waktu pemeriksaan berkurang dan ketepatan pemeriksaan meningkat. • Para peserta langsung mendapatkan umpan balik mengenai kuis yang mereka kerjakan. • Data tersimpan lebih baik • Efisiensi (paperless). • Soal yang dikeluarkan lebih bervariasi karena soal – soal tersebut sudah diacak terlebih dahulu.
2.1.2.4 E-assessment yang baik Dalam jurnalnya Al-Smadi dan Gütl (2008), Weippl (2007) Eassessment yang baik memiliki kriteria – kriteria berikut ini: • Mempunyai bank soal yang mendukung soal – soal yang bervariatif. • Dapat memberikan umpan balik yang mengidentifikasi kemampuan mahasiswa. • Tipe kuis harus objektif. • Tampilan antar muka yang mudah dimengerti oleh pengguna. • Data yang sudah ada harus bisa disimpan dan diorganisir dengan baik.
10
2.1.2.5 Umpan Balik yang Baik Menurut Gomez et al.(2009) kriteria umpan balik yang baik: • Umpan balik yang dihasilkan ditujukan untuk memberi masukan kepada mahasiswa bukan untuk menilainya. • Umpan balik yang dihasilkan harus dapat dimengerti oleh mahasiswa. • Umpan balik yang dihasilkan harus cukup dan detail.
2.1.2.6 Tujuan E-assessment Menurut Kellough dan Kellough dalam jurnal “Best Practice in eassessment” yang dibuat oleh Nicole A. Buzzetto-More dan Ayodele Julius Alade (2006) ada tujuh tujuan e-assessment: • Meningkatkan belajar siswa • Mengidentifikasi kekuatan dan kelemahan siswa • Meninjau, menguji, dan memperbaiki keefektifan berbagai strategi mengajar yang berbeda • Meninjau, menguji, dan memperbaiki keefektifan program kurikulum • Meningkatkan keefektifan mengajar. • Menyediakan data administratif yang berguna yang akan mempercepat proses pengambilan keputusan. • Untuk berkomunikasi dengan para pihak yang bersangkutan.
Menurut McKenna dan Bull (1999) dalam jurnal yang berjudul “Designing Effective Test Questions: an Introductory Workshop”, tipe
11
soal Pilhan Ganda (Multiple Choice), Menjodohkan (Matching), dan Mengurutkan (Sequencing) adalah tipe soal yang bersifat objektif. Ketiga tipe soal tersebut digunakan untuk menjaga tingkat keobjektifan kuis dan umpan balik yang diberikan.
2.1.2 Taksonomi Bloom 2.1.2.1
Pengertian Taksonomi Menurut
kamus
besar
Bahasa
Indonesia
(http://pusatbahasa.diknas.go.id/kbbi/) taksonomi adalah klasifikasi bidang ilmu; kaidah dan prinsip yg meliputi pengklasifikasian objek. Sedangkan
dalam
bahasa
inggris
(http://www.merriam-
webster.com/dictionary/taxonomy), taxonomy diartikan sebagai studi tentang prinsip-prinsip umum klasifikasi ilmiah. 2.1.2.2 Taksonomi Bloom Pada tahun 1956 sebuah tim yang dikepalai oleh Benjamin S. Bloom menerbitkan sebuah taksonomi tujuan pendidikan yang saat ini dikenal dengan nama Taksonomi Bloom. Taksonomi bloom adalah sebuah taksonomi yang digunakan untuk mengkategorikan tujuan pendidikan dengan 3 kawasan (domain), yaitu kognitif, afektif dan psikomotorik. Ranah kognitif meliputi aspek – aspek intelektual atau penalaran seperti fungsi memproses informasi, pengetahuan,. Ranah afektif meliputi fungsi yang berkaitan dengan aspek emosional seperti sikap dan perasaan. Sedangkan ranah psikomotorik
12
berkaitan dengan aspek-aspek keterampilan yang melibatkan fungsi sistem syaraf dan otot yaitu kemampuan fisik. Tapi yang digunakan dalam penelitian dan perancangan selanjutnya hanyalah domain kognitif. Kognitif sendiri diartikan sebagai sesuatu yang berhubungan dengan atau melibatkan kognisi; sesuatu yang berdasar kepada pengetahuan faktual yang empiris. Kognisi adalah kegiatan atau proses memperoleh pengetahuan (termasuk kesadaran, perasaan, dsb) atau usaha mengenali sesuatu melalui pengalaman sendiri; hasil pemerolehan pengetahuan. Pada awalnya taksonomi bloom domain kognitif dibagi ke dalam enam kategori. Keenam kategori ini mencakup kompetensi keterampilan intelektual dari yang sederhana (tingkat pengetahuan) sampai dengan yang paling kompleks atau rumit (tingkat evaluasi). Keenam kategori tersebut adalah: 1. Pengetahuan (Knowledge) Tujuan pengetahuan pada level ini menuntut mahasiswa untuk mampu mengingat (recall) informasi yang telah diterima sebelumnya, seperti misalnya: fakta, terminologi, definisi,
rumus, strategi
pemecahan masalah, dan sebagainya. Kata kerja yang digunakan misalnya: mengidentifikasi, memilih, sebutkan. Contoh: Mahasiswa dapat menyebutkan tipe – tipe kabel yang digunakan dalam membangun suatu jaringan.
13
2. Pemahaman (Comprehension) Tujuan pengetahuan pada kategori ini berhubungan dengan kemampuan untuk menjelaskan pengetahuan/informasi yang telah diketahui dengan kata – kata sendiri. Kata kerja yang digunakan misalnya: membedakan, menjelaskan, menyimpulkan. Contoh: Mahasiswa dapat menjelaskan protokol pada network layer. 3. Penerapan (Application) Penerapan
atas
pengetahuan
yang
telah
didapat
untuk
mengidentifikasi atau memecahkan suatu masalah. Kata kerja yang digunakan misalnya: menghitung, menggunakan. Contoh: Mahasiswa dapat menggunakan DNS. 4. Analisis (Analysis) Analisis
merupakan
kemampuan
untuk
mengidentifikasi,
memisahkan dan membedakan komponen – komponen atau elemen suatu fakta, konsep, pendapat, asumsi, hipotesa atau kesimpulan, dan memeriksa setiap komponen tersebut untuk melihat ada tidaknya kontradiksi. Mahasiswa diharapkan dapat menunjukkan hubungan dari berbagai masalah, gagasan dengan cara membandingkan masalah atau gagasan tersebut dengan standar, prinsip atau prosedur yang telah dipelajari. Kata kerja yang digunakan misalnya: membandingkan, memisahkan. Contoh: Mahasiswa dapat membagi IP addressing.
14
5. Sintesis (Synthesis) Tujuan instruksional level ini menuntut mahasiswa untuk mampu mengkombinasikan bagian atau elemen ke dalam satu kesatuan atau struktur yang lebih besar. Dalam hal ini mahasiswa harus menggabungkan atau merangkai berbagai informasi menjadi satu kesimpulan. Kata kerja yang digunakan misalnya: menciptakan, mendesain. Contoh: Mahasiswa dapat mendesain suatu jaringan sederhana. 6. Evaluasi (Evaluation) Tujuan ini mengharapkan mahasiswa mampu membuat penilaian dan keputusan tentang nilai suatu gagasan, metode, produk atau benda dengan menggunakan kriteria tertentu. Kata kerja yang digunakan misalnya: membandingkan, mengevaluasi. Contoh: Dengan menggunakan kriteria yang sudah ditetapkan, mahasiswa dapat membuat penilaian tentang suatu jaringan.
Pada tahun 2001 Anderson dan Krathworthl merevisi taksonomi bloom menjadi 6 kategori yaitu: mengingat (remembering), mengerti (understanding),
menggunakan
(applying),
menganalisa
(analizing),
mengevaluasi (evaluating), dan membuat (creating). Lorin Anderson sendiri adalah murid dari Benjamin Bloom. Anderson mengubah kata benda (noun) yang digunakan oleh Bloom menjadi kata kerja (verb). Lalu urutan 2 kategori terakhir yakni sintesis dan evaluasi ditukar.
15
2.2. Teori Khusus 2.2.1 System Development Life Cycle System Development Life Cycle adalah model konseptual yang digunakan untuk membuat manajemen proyek yang menggambarkan tahap-tahap yang terlibat dalam suatu proyek pengambangan sistem informasi dari studi kelayakan sampai pemeliharaan aplikasi. Berbagai metodologi SDLC telah dikembangkan untuk memandu proses-proses yang terlibat termasuk model air terjun (Waterfall), Rapid Application Development (RAD), Joint Application Development (JAD), Fountain
model,
dan
Spiral
model.
Sebagian
besar,
beberapa
model
dikombinasikan menjadi metode campuran. Dokumentasi sangatlah penting terlepas dari tipe model yang dipilih atau diciptakan untuk aplikasi apapun dan biasanya dikerjakan sejalan dengan proses pengembangan. Beberapa metode berfungsi lebih baik berdasarkan proyek yang dikembangkan. Tapi pada analisis akhir, faktor yang paling penting dalam keberhasilan suatu projek adalah seberapa mirip antara proyek yang dikembangkan dengan rencana yang telah dibuat.
Gambar 2.1 Waterfall Model
16
Feasibility Studi kelayakan digunakan untuk menentukan apakah proyek harus dilanjutkan atau tidak. Jika proyek ini dapat dilanjutkan, studi kelayakan akan menghasilkan
perencana
proyek
dan
perkiraan
anggaran
untuk
tahap
pembangunan. Analysis and Design Pada tahap analisis, pekerjaan yang dilakukan adalah mengumpulkan kebutuhan sistem. Tahap ini meliputi detail pembelajaran mengenai kebutuhan organisasi. Pada tahap perancangan, pekerjaan yang harus dilakukan adalah focus pada perancangan tinggat tinggi seperti program apa yang diperlukan dan bagaimana interaksi antar program tersebut, perancangan tingkat rendah (bagaimana program-program yang berdiri sendiri akan bekerja), perancangan antar muka (tampilan apa saja yang akan terlihat dan perancangan data (data apa saja yang diperlukan). Selama tahap ini, struktur keseluruhan perangkat lunak telah ditetapkan. Analisis dan perancangan sangatlah penting dalam keseluruhan siklus pengambangan perangkat lunak. Setiap kesalahan dalam tahap perancangan bias sangat sulit dipecahkan dalam tahap pengambangan perangkat lunak. Tahap ini adalah tahap yang harus diberikan banyak perhatian. Implementation Dalam tahap ini, apa yang telah dirancang pada tahap sebelum diterjemahkan ke dalam kode program. Program komputer yang ditulis menggunakan bahasa pemograman yang konvensional atau aplikasi generator.
17
Testing Dalam taham ini, sistem yang telah dibuat akan diujikan. Program biasanya ditulis sebagai rangkaian modul tersendiri. Sistem ini kemudian diuji secara keseluruhan. Modul yang terpisah, digabungan menjadi satu dan diuji sebagai sistem yang lengkap. Sistem ini diuji untuk memastikan bahwa tampilan antar muka antara modul-modul bekerja dengan baik (integration testing), sistem bekerja pada platform yang diharapkan dan sistem bekerja sesuai yang diperlukan pengguna (acceptance / beta testing) Maintenance Setiap sistem yang sudah jadi memerlukan akan pemeliharaan. Sebuah perangkat lunak akan mengalami perubahan setelah disampaikan kepada klien. Perubahan bisa terjadi karena beberapa nilai yang dimasukan oleh klien tidak dapat ditangani oleh sistem. Selain itu, perubahan pada sistem dapat secara langsung mempengaruhi operasi perangkat lunak. Perangkat lunak harus dikembangkan untuk mengakomodasi perubahan-perubahan yang dapat terjadi selama tahap pelaksanaan.
2.2.2 Object-Oriented Programming Object-Oriented
Programming
adalah
jenis
pemrograman
dimana
programmer tidak hanya mendefinisikan tipe data dari struktur data, tetapi juga jenis-jenis operasi (fungsi) yang dapat diterapkan pada struktur data. Dengan cara
18
ini, struktur data menjadi objek yang meliputi data dan fungsi. Selain itu, pemrogram dapat membuat hubungan antara satu objek dan yang lain. Sebagai contoh, objek dapat mewarisi karakteristik dari objek lain. Salah satu keunggulan utama dari pemrograman berorientasi objek dibandingkan
dengan
pemrograman
prosedural
adalah
memungkinkan
programmer untuk membuat modul yang tidak perlu diubah ketika jenis objek yang baru ditambahkan. Seorang programmer dapat dengan mudah membuat objek baru yang mewarisi banyak fitur-fiturnya dari objek yang sudah ada. Hal ini membuat program-program berorientasi objek lebih mudah untuk dimodifikasi. Berikut adalah pengertian dari istilah-istilah yang bersangkutan : •
Object Oriented Concept Kita
mengorganisasi
perangkat
lunak
sebagai
kumpulan-
kumpulan dari obyek tertentu yang memiliki struktur data dan perilakunya (atribut dan operasi) (Thimoty C, 2002)
•
Kelas Kelas merupakan sekumpulan obyek yang memiliki atribut-atribut dan method. (Thimoty C, 2002)
•
Super class Super class adalah class induk yang nantinya mempunyai classclass yang terdiri dari class dan subclass. (Thimoty C, 2002)
19
•
Objek Obyek adalah sebuah benda atau unit atau sifat kerja yang memiliki atribut-atribut. (Thimoty C, 2002)
•
Operasi Operasi adalah prosedural abstraction yang menspesifikasi tipe dari perilaku dan terdiri dari fungsi-fungsi. (Thimoty C, 2002)
•
Abstraksi Kemampuan program untuk melewati aspek informasi yang diproses olehnya. Setiap obyek dalam sistem melayani sebagai model dari pelaku abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan obyek lainnya
dalam
sistem,
tanpa
mengungkapkan
bagaimana
kelebihan ini diterapkan.
•
Enkapsulasi/ pengkapsulan Encapsulation atau pengkapsulan merupakan pembatasan ruang lingkup program terhadap data yang diproses supaya data terlindungi oleh prosedur atau obyek lain, kecuali prosedur yang berada di obyek itu sendiri. (Thimoty C, 2002)
•
Polimorfisme
20
Polymorphism adalah konsep yang menyatakan bahwa sesuatu yang sama dapat mempunyai bentuk dan perilaku yang berbeda, bahwa operasi yang sama mungkin memiliki perbedaan dalam class yang berbeda. (Thimoty C, 2002)
•
Inheritas/ Pewarisan Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak dari obyek akan mewarisi data atau atribut dan method dari induknya langsung. Atribut dan method dari obyek induk diturunkan kepada anak obyek, demikian seterusnya. (Thimoty C, 2002)
2.2.3 Unified Modeling Language (UML) Menurut Booch, Rumbaugh dan Jacobson (2001,p13) UML adalah bahasa standar untuk penulisan rencana atau desain perangkat lunak. UML juga bisa digunakan
untuk
memvisualisasi,
menspesifikasi,
membangun,
mendokumentasikan artifak – artifak sebuah sistem perangkat lunak. 2.2.3.1 Model Konseptual UML UML terdiri atau mencakup 3 bagian: 1.
Benda/Sesuatu (Things)
2.
Hubungan (Relationships)
3.
Diagram (Diagrams)
dan
21
Benda adalah abstraksi yang berperan sebagai warga kelas satu dalam model; hubungan mengikat benda; diagram mengelompokkan koleksi dari benda. A. Benda (Things) Ada 4 macam benda dalam UML: • Benda yang berkaitan dengan struktur (Structural Things) • Benda yang berkaitan dengan perilaku (Behavioural Things) • Benda yang berkaitan dengan pengelompokkan (Grouping Things) • Benda yang memberi keterangan (Annotational Things)
1.Structural Things Structural Things adalah kata benda dari model UML. Ini adalah bagian yang hampir statis dari model, mewakili unsur – unsur baik yang konseptual maupun secara fisik. Ada 7 macam structural things: • Class Class adalah deskripsi dari suatu set objek yang saling berbagi atribut (attributes), operasi (operations), hubungan (relationships), dan semantik (semantics).
22 <
> <> <>
Gambar 2.2 Class
• Interface Interface adalah kumpulan operasi – operasi yang menjelaskan
jasa
sebuah
class
atau
komponen
(component). Oleh karena itu interface menerangkan perilaku eksternal dari elemen tersebut.
<>
Gambar 2.3 Interface
• Collaboration Collaboration menjelaskan interaksi dan perkumpulan dari suatu peran dan elemen – elemen lain yang bekerja bersama untuk memenuhi beberapa perilaku kerjasama
23
yang lebih besar dari jumlah semua elemen – elemen tersebut.
<>
Gambar 2.4 Collaboration • Use case Use case adalah adalah gambaran tentang serangkaian urutan tindakan yang dilakukan sistem yang menghasilkan hasil dari suatu nilai yang dapat diamati aktor tertentu.
<>
Gambar 2.5 Use Case
• Active class Active class adalah sebuah class
dimana sebuah objek
memiliki satu atau lebih proses atau urutan dan oleh karena itu bisa memulai kontrol aktivitas.
24 <> <> <>
Gambar 2.6 Active Class
• Components Components adalah bagian fisik dan dapat digantikan dari sistem yang sesuai dan memenuhi realisasi dari set antarmuka. <>
Gambar 2.7 Components • Nodes Nodes adalah elemen fisik yang muncul saat aplikasi berjalan, dan mewakili sumber komputasi, pada umumnya mempunyai paling sedikit beberapa memori, dan seringkali mempunyai kemampuan memproses.
25
<>
Gambar 2.8 Nodes 2.Behavioral Things Behavioral things adalah bagian dinamis dari model UML. Ini adalah kata kerja dari model, mewakili perilaku dari waktu ke waktu dan ruang. Ada 2 macam behavioral things: • Interaction Interaction adalah sebuah perilaku yang terdiri dari serangkaian pesan yang dipertukarkan antara satu set objek dalam konteks tertentu untuk mencapai tujuan tertentu.
<>
Gambar 2.9 Interaction • State machine adalah sebuah perilaku yang menentukan urutan keadaan – keadaan suatu objek atau suatu interaksi yang terjadi selama tanggapan (response)
terhadap suatu keadaan,
bersamaan dengan tanggapan (response) tersebut.
26 <>
Gambar 2.10 State Machine 3.Grouping Things Grouping things adalah bagian dari UML yang berhubungan dengan organisasi. Ini adalah kotak yang mana model bisa dipilah. Hanya ada satu macam grouping things yakni package. Package adalah mekanisme umum untuk mengorganisir unsur – unsur ke dalam grup. Packages adalah bagian dasar dari grouping things yang mana bisa mengorganisir model UML. Sebenarnya ada beberapa variasi, seperti frameworks, models, dan subsystems. Ini semua adalah bagian atau macam – macam packages.
<>
Gambar 2.11 Packages
4.Annotational Things Annotational things adalah bagian penjelasan dari model UML. Ini adalah bagian yang memuat tentang komentar, keterangan, dan
27
ulasan. Hanya ada satu macam dari annotational things yaitu catatan (note). <>
Gambar 2.12 Note
B. Hubungan (Relationship) Ada 4 macam jenis hubungan: 1. Ketergantungan (Dependency) Dependency adalah hubungan semantic antara dua benda dimana perubahan pada suatu benda (benda yang bebas) bisa saja mempengaruhi semantik benda yang lain (benda yang bebas)
Gambar 2.13 Depedency
2. Asosiasi (Association) Association adalah hubungan structural yang menggambarkan sebuah set dari hubungan, sebuah hubungan yang menjadi penghubung di antara objek.
28 0..1 employer
* employee
Gambar 2.14 Association
3. Generalisasi (Generalization) Generalization adalah sebuah spesialisasi/generalisasi hubungan dimana objek yang berasal dari elemen yang dikhususkan (specialized elements) atau sang anak (the child) bisa digantikan untuk objek yang berasal dari elemen yang disamaratakan (generalized elements) atau sang tetua (the parents). Dalam hal ini sang anak (the child) memberikan struktur dan perilaku dari sang tetua (the parents).
Gambar 2.15 Generalization
4. Realisasi (Realization) Realization adalah hubungan semantik antara classifiers, di mana satu penggolong menetapkan kontrak yang menjamin classifier lain untuk melaksanakannya.
Gambar 2.16 Realization
29
C. Diagram (Diagrams) Diagram adalah presentasi grafis dari sebuah set elemen, seringkali diperankan sebagai garis (things) dan lengkungan (relationships). Diagram digambar untuk memvisualisasikan sistem dari perspektif berbeda, jadi diagram adalah proyeksi dari sistem. 1. Use Case Diagram Use case diagram menunjukkan sebuah set dari use case dan aktor – aktor (actors) dan hubungan mereka. Use case diagram mengidentifikasi tampilan desain statis dari sistem. Use case diagram sangat penting dalam mengatur dan memodelkan perilaku dari sebuah sistem. 2. Class Diagram Class diagram memperlihatkan sebuah set dari beberapa class, interface, dan collaborations dan hubungan – hubungan mereka. Class diagram mengidentifikasi tampilan desain statis dari sistem. 3. Sequence Diagram Sequence diagram termasuk ke dalam jenis diagram interaksi. Diagram interaksi menampilkan interaksi, termasuk set objek dan hubungan antar objek, juga termasuk di dalamnya pesan antar objek. Sequence diagram adalah sebuah diagram interaksi yang menitikberatkan urutan waktu dari pesan. 4. Activity Diagram
30
Activity diagram adalah jenis khusus dari statechart diagram yang menunjukkan aliran dari aktivitas – aktivitas yang ada pada sistem. Activity diagram mengidentifikasi tampilan dinamis dari sistem. Diagram ini sangat penting dalam memodelkan fungsi dari sistem dan menitikberatkan pada aliran kendali di antara objek.
2.2.4 Pengertian Basis Data (Database) Menurut Connolly (2005, p15), basis data adalah kumpulan data yang saling berhubungan satu sama lain secara logika, yang dapat digunakan oleh banyak pengguna, yang didesain untuk menampilkan informasi yang dibutuhkan oleh suatu organisasi. Menurut Turban (2003, p16), basis data adalah kumpulan file atau record yang terorganisir menyimpan data beserta hubungan diantara data tersebut.
2.2.5 Entity Relationship Diagram (ERD) Entity Relationship Diagram (ERD) adalah suatu rancangan atau bentuk hubungan suatu kegiatan dalam sistem yang berkaitan langsung dan mempunyai fungsi di dalam proses tersebut. Menurut Connolly (2005, p342), pemodelan ER merupakan pendekatan top-down terhadap rancangan basis data yang dimulai dengan mengidentifikasi data-data penting yang disebut entitas dan relasi antara data-data yang direpresentasikan ke dalam model. Kemudian menambahkan detail seperti
31
informasi yang diinginkan tentang entities dan relationship yang disebut atribut dan constraints yang ada pada entities, relationship dan atribut-atribut. a. Entity Menurut Connolly (2005, p343) tipe entitas merupakan sekumpulan objek dengan ciri-ciri yang sama yang diasumsikan oleh perusahaan memiliki keberadaan yang berdiri sendiri atau independen. Dalam ERD, entiti digambarkan sebagai sebuah persegi yang diberi label dengan nama entiti. Ada dua klasifikasi dari tipe entiti (Connolly, 2005, p354) : 1. Strong entity type Strong entity type atau tipe entitas kuat adalah sebuah tipe entitas yang tidak bergantung pada keberadaan tipe entitas yang lain. 2. Weak entity type Weak entity type atau tipe entitas lemah adalah sebuah tipe entitas yang bergantung pada keberadaan tipe entitas yang lain. b. Relasi (Relationship) Menurut Connolly (2005, p346) relationship adalah sekumpulan asosiasi dari satu atau lebih entiti. c. Atribut (Attributte) Menurut Connolly ( 2005, p350) atribut adalah properti dari sebuah entiti atau tipe relasi. Setiap atribut dihubungkan dengan sekelompok nilai yang disebut domain. Macam-macam atribut:
32
1. Simple attribute adalah atribut yang terdiri dari komponen tunggal dengan keberadaan yang independen dan tidak dapat dibagi lagi ke komponen yang lebih kecil. 2. Composite attribute adalah atribut yang terdiri dari banyak komponen dimana masing-masing memiliki keberadaan yang independen. 3. Single value attribute adalah suatu atribut yang memiliki nilai tunggal untuk setiap kejadian. 4. Multi-value attribute adalah suatu atribut yang memiliki beberapa nilai untuk setiap kejadian pada sebuah entiti. 5. Derived attribute adalah suatu atribut yang menggambarkan suatu nilai yang didapat dari atribut-atribut yang berhubungan, tidak selalu dari entiti yang sama. d. Kunci (Key) Menurut Connolly (2005, p352) ada 3 jenis kunci: 1. Candidate Key Candidate key adalah sekumpulan atribut minimal yang secara unik mengidentifikasi keberadaan dari setiap entitas. 2. Primary key Primary key adalah candidate key yang secara unik mengidentifikasi keberadaan dari setiap entiti dan mempunyai karakter yang paling sedikit. Foreign key adalah sembarang atribut pada primary key pada tabel berikutnya yang berfungsi menghubungkan antar tabel apabila sebuah primary key terhubung dengan tabel berikutnya.
33
2. Composite key adalah candidate key yang terdiri dari dua atau lebih atribut. e. Multiplicity Sejumlah kemungkinan kejadian-kejadian dari sebuah tipe entiti dalam sebuah hubungan n-ary ketika nilai-nilai yang lain (n-1) ditentukan (Connolly, 2005, 356). Multiplicity terdiri dari dua batasan terpisah, yaitu: 1. Cardinality Cardinality adalah untuk mendeskripsikan jumlah maksimum dari kemungkinan kejadian-kejadian yang saling berhubungan untuk sebuah partisipasi entiti dalam proses penentuan tipe relationship. 2. Participation Participation adalah untuk menentukan apakah semua kejadiankejadian entiti akan ikut berpartisipasi dalam sebuah relationship atau hanya beberapa yang ikut berpartisipasi. Jenis-jenis multiplicity menurut Connolly (2002, p345) adalah : a. One (1:1) Relationship b. One to Many (1:*) Relationship c. Many to Many (*:*) Relationship
2.2.6 Teori Java A. Pengertian Java Java adalah sebuah bahasa pemrograman komputer berbasiskan kepada Object Oriented Programming. Dikembangkan oleh Sun
34
Microsystems dan diterbitkan tahun 1995. Java diciptakan setelah C++ dan didesain sedemikian sehingga ukurannya kecil, sederhana, dan portable (dapat dipindah-pindahkan di antara berbagai macam platform dan sistem operasi). Salah satu keunggulan Java adalah sifatnya yang platform independence, artinya baik source program maupun hasil kompilasinya, Java sama sekali tidak bergantung kepada sistem operasi dan platform yang digunakan sama seperti slogan java, "write once, run anywhere". Source code sebuah aplikasi dengan bahasa Java yang ditulis di atas sistem Windows NT misalnya, dengan mudah dapat dipindahkan ke sistem operasi UNIX tanpa harus mengedit satu baris kode-pun. Ini tentunya merupakan satu nilai tambah tersendiri. Bandingkan dengan bahasa C/C++ misalnya, jika kita bekerja pada UNIX FreeBSD dan ingin memindahkannya pada HP UNIX, terkadang harus mengedit source code-nya sehingga sesuai dengan HP UNIX, walaupun keduanya masih berada dalam keluarga UNIX. Bukan hanya source code-nya saja yang bisa dipindah-pindahkan antar sistem komputer, bahkan hasil kompilasinya pun dapat dijalankan di berbagai sistem komputer. Hal ini dimungkinkan dengan adanya bytecode. Setiap program yang ditulis dengan bahasa Java, hasil kompilasinya berupa bytecode, yaitu sekumpulan instruksi yang kelihatannya seperti kode mesin (machine code) tapi tidak spesifik untuk satu jenis prosesor tertentu.
35
Umumnya jika kita menulis program, misalnya dalam bahasa C++ pada satu sistem komputer semisal PC, compiler akan menterjemahkan source code kedalam bahasa mesin yang spesifik untuk prosesor yang ada di PC. Jika hendak dijalankan di sistem lain, Macintosh misalnya, maka source code harus dikompilasi lagi pada mesin Macintosh yang bersangkutan, dan terkadang harus melakukan pengeditan source code terlebih dahulu. Menjalankan hasil kompilasi dari platform Windows pada platform UNIX tidak akan pernah berhasil. Berikut ini ilustrasinya:
Gambar 2.17 Cara Kerja Program Java di Beberapa Sistem Operasi
36
Karakteristik Java antara lain : o Sederhana (Simple) o Berorientasi Objek (Object Oriented) o Terdistribusi (Distributed) o Interpreted o Robust o Aman (Secure) o Architecture Neutral o Portable o Performance o Multithreaded o Dinamis
Java memiliki beberapa jenis edisi untuk lingkungan aplikasi yang berbeda. Beberapa jenis edisinya adalah: 1. Java SE (Java Platform, Standard Edition) Edisi Java yang digunakan untuk applikasi desktop atau workstation. 2. Java EE (Java Platform, Enterprise Edition) Edisi Java yang digunakan untuk applikasi Enterprise atau applikasi internet. 3. Java ME (Java Platform, Micro Edition) Edisi java yang ditargetkan untuk membuat applikasi dengan sumber daya yang terbatas misalnya pada telepon genggam.
37
B. Pengertian Servlet Servlet adalah program kecil yang ditulis dengan bahasa Java yang dibuat untuk berjalan diatas web server. Kata Servlet memiliki kemiripan dengan Applet. Perbedaannya adalah applet berjalan disisi klien (client-side) sedangakan Servlet berjalan di sisi server (server-side). Teknologi Java memperkenalkkan Servlet sebagai alternatif lain dari program CGI (Common Gateway Interface). CGI merupakan program yang dikembangkan untuk membuat halaman web menjadi lebih dinamis. CGI memungkinkan adanya interaksi antara user dengan web server, misalkan pengguna memasukkan data pribadi melalui form HTML, kemudian data di proses di web server. Program CGI banyak ditulis dalam bahasa Perl atau C++. Proses Akses Servlet: Program servlet berjalan di dalam web server, dan berperilaku sebagai lapisan penghubung antara request yang dikirim browser lewat protokol HTTP dengan basisdata, atau lapisan tengah antara browser dengan aplikasi pada web server. Berikut alur proses yang terjadi ketika klien mengakses Servlet pada web server : 1. Membaca data secara ekplist data yang dikirim oleh klien lewat browser. Pengguna memasukkant data pada form HTML pada halaman web, data juga bisa berasal dari sebuah applet atau lewat program klien HTTP.
38
2. Membaca data secara implisit data HTTP request yang dikirim melalui browser. Dalam proses ini akan dibaca dua jenis data, yang pertama adalah data yang diinput klien dan yang kedua adalah data yang dikirim oleh browser (seperti : cookies, media type) , proses ini berada di server dimana Servlet dieksekusi, 3.
Generate hasil permintaan (request). Proses ini mungkin memerlukan komunikasi dengan basisdata, eksekusi sebuah RMI atau memanggil web service, invoke sebuah aplikasi, atau menjawab (response) secara langsung permintaan (request). Disini basisdata tidak langsung "berbicara" dengan HTTP atau tidak langsung mengembalikan basisdata dalam bentuk HTML, hal ini berlaku untuk semua aplikasi. Disini dibutuhkan suatu lapisan untuk meng-ekstrak data kedalam bentuk stream HTTP.
4. Kirim data (dokumen) secara eksplisit ke klien. Dokumen yang dikirim dapat dalam berbagai format , tulisan (HTML), binari (image file), atau bahkan file hasil kompres (gzip file) 5. Kirim data response HTTP secara implisit. Servlet atau JSP akan mengirim data ke klien, ada dua jenis data yang dikirim, data yang berisi informasi yang diinginkan / diproses dan informasi HTTP ( cookies, catch parameter dan sebagainya).
39
C. Pengertian JSP Java Server Pages (JSP) adalah bahasa scripting untuk web programming yang bersifat server side seperti halnya PHP dan ASP. JSP dapat berupa gabungan antara baris HTML dan fungsi-fungsi dari JSP itu sendiri. Berbeda dengan Servlet yang harus dikompilasi oleh pengguna menjadi class sebelum dijalankan, JSP tidak perlu dikompilasi oleh pengguna tapi server yang akan melakukan tugas tersebut. Makanya pada saat pengguna membuat pertama kali atau melakukan modifikasi halaman dan mengeksekusinya pada web browser akan memakan sedikit waktu sebelum ditampilkan. Sebagai gambaran bagaimana JSP melalui masa hidupnya bisa dilihat pada gambar berikut :
Perangkat *.JSP ----> Penterjemah ---->*.JAVA---->*.CLASS----> Proses perintah | JSP | | | v v diterjemahkan
kompilasi
Gambar 2.18 Masa Hidup JSP
40
D. Model View Controller Arsitektur Model View Controller adalah sebuah pola yang terbukti membangun proyek secara lebih efektif. Hal itu dilakukan dengan memilah komponen antara Model, View dan Controller pada bagian – bagian dalam proyek
1. Model Pola MVC memiliki layer yang disebut dengan Model yang merepresentasikan data yang digunakan oleh aplikasi sebagaimana proses bisnis yang diasosiasikan terhadapnya. Dengan
memilahnya
sebagai
bagian
terpisah,
seperti
penampungan data, persistence, serta proses manipulasi, terpisah dari bagian lain aplikasi. Terdapat beberapa kelebihan dalam pendekatan ini. Pertama, membuat detail dari data dan operasinya dapat ditempatkan pada area yang ditentukan (Model) dibanding tersebar dalam keseluruhan lingkup aplikasi. Hal ini memberikan keuntungan dalam proses pemeliharaan aplikasi. Kedua,
dengan
pemisahan
total
antara
data
dengan
implementasi interface, komponen model dapat digunakan kembali oleh aplikasi lain yang memiliki kegunaan yang hampir sama. 2. View
41
Layer
ini
implementasi
mengandung
user
interface.
keseluruhan Disini,
detail
komponen
dari grafis
menyediakan representasi proses internal aplikasi dan menuntun alur interaksi pengguna terhadap aplikasi. Tidak ada layer lain yang berinteraksi dengan pengguna, hanya View. Penggunaan layer View memiliki beberapa kelebihan : Pertama, memudahkan pengabungan divisi desain dalam tim pengembangan. Divisi desain dapat berkonsentrasi pada style, look dan feel, dan sebagainya, dalam aplikasi tanpa harus memperhatikan lebih pada detail yang lain. Dan
juga,
memiliki
layer
View
yang
terpisah
memungkinkan ketersediaan multiple interface dalam aplikasi. Jika inti dari aplikasi terletak pada bagian lain (dalam Model), multiple interfaces dapat dibuat (Swing, Web, Console), secara keseluruhan
memiliki
tampilan
yang
berbeda
namun
mengeksekusi komponen Model sesuai fungsionalitas yang diharapkan.
3. Controller Terakhir, arsitektur MVC memiliki layer Controller. Layer ini menyediakan detail alur program dan transisi layer, dan juga bertanggungjawab akan penampungan events yang dibuat oleh pengguna dari View dan melakukan update
42
terhadap
komponen
Model
menggunakan
data
yang
dimasukkan oleh pengguna. Kelebihan dalam penggunaan layer
Controller
secara
terpisah:
Pertama,
dengan
menggunakan komponen terpisah untuk menampung detail dari transisi layer, komponen view dapat didesain tanpa harus memperhatikan
bagian
lain
secara
berlebih.
Hal
ini
memudahkan tim pengembang multiple interface bekerja secara terpisah dari yang lain secara simultan. Interaksi antar komponen View terabstraksi dalam Controller. Kedua, 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 pengguna. Detail tentang bagaimana data dari pengguna mengubah ketetapan aplikasi disembunyikan oleh Controller. Hal ini memisahkan dengan jelas antara logika presentasi dengan logika bisnis. Tidak dapat disimpulkan bahwa pola MVC hadir dengan kelebihan – kelebihan tanpa ada efek samping. Pembagian aplikasi
dalam
3
bagian
terpisah
meningkatkan
kompleksivitas. Pada aplikasi kecil yang tidak membutuhkan loose coupling pada Model, hal ini dapat menjadi blok penghalang dalam penggunaan pola ini.
43
Bagaimanapun, yang terbaik adalah untuk meyakini bahwa sebuah aplikasi umumnya dimulai dari aplikasi sederhana, dan berkembang menjadi sistem yang kompleks., sehingga faktor loose coupling harus selalu diutamakan dan diperhatikan.