DUKUNGAN XML PADA PENGEMBANGAN PERANGKAT LUNAK UNTUK SISTEM PEMBELAJARAN JARAK JAUH DI MAGISTER TEKNOLOGI INFORMASI (MTI) UGM
SKRIPSI
ADITYA BAYU SAMUDRA SIREGAR 98 / 120966 / TK / 22729
JURUSAN TEKNIK ELEKTRO FAKULTAS TEKNIK UNIVERSITAS GADJAH MADA YOGYAKARTA 2002
HALAMAN PENGESAHAN
TUGAS AKHIR
DUKUNGAN XML PADA PENGEMBANGAN PERANGKAT LUNAK UNTUK SISTEM PEMBELAJARAN JARAK JAUH DI MAGISTER TEKNOLOGI INFORMASI (MTI) UGM
Diajukan Sebagai Syarat Meraih Gelar SarjanaTeknik Program S-1 Pada Jurusan Teknik Elektro Fakultas Teknik Universitas Gadjah Mada Yogyakarta Telah Diperiksa dan Disetujui Tanggal ……………………..
Pembimbing I
Pembimbing II
Teguh Bharata Adji, S.T., M.T., M.Eng.
Ir. Marcus Nurtiantara Aji, M.T.
NIP. 132 133 729
NIP. 132 133 731
HALAMAN PERSEMBAHAN
SKRIPSI INI KUPERSEMBAHKAN KEPADA : CINTA, YANG MENCIPTAKAN KETULUSAN, KEJUJURAN, KEBERANIAN, KEPERCAYAAN, DAN KESETIAAN KEMULIAAN DAN KETINGGIAN DERAJAT KEMANUSIAAN, YANG MUNCUL DARI FITRAH MANUSIA YANG DIGENGGAM CINTA SERTA ORANG-ORANG YANG MEMBANTUKU BERJUANG UNTUK MENGGAPAI KEDUANYA : AYAHKU , IBUKU, ADIKKU NANA, RANI, BAHANA SERTA SESEORANG YANG KUHARAP DAPAT MENJADI SAHABAT UNTUK BERJUANG MENGGAPAI RIDLO-NYA, DWI SEFIDITA SARI
MOTTO
YA ALLAH, TANAMKANLAH CINTA DALAM HATIKU, KARENA SELAMA AKU MASIH MEMILIKI DAN MERASAKAN CINTA, MAKA AKU TAK AKAN TAKUT MENGHADAPI SEMUANYA SEBAB SEMUA KEKURANGANKU AKAN MEMBERIKU KEKUATAN UNTUK MEMPERBAIKINYA DAN SEMUA KELEBIHANKU AKAN MEMBAWA RAHMAT BAGI MANUSIA YA ALLAH, TANAMKAHLAH KESADARAN DALAM HATIKU UNTUK MEYAKINI BAHWA SEMUANYA ADALAH SEBUAH PROSES, KARENA DENGAN KEYAKINAN ITU AKU AKAN DAPAT SABAR DAN ISTIQAMAH DALAM MENGHADAPI SEMUA UJIAN YANG KAUBERIKAN SESUNGGUHNYA ORANG TAK DAPAT DIKATAKAN BERIMAN SAMPAI ORANG LAIN SELAMAT DARI LIDAH DAN PERBUATANNYA
KATA PENGANTAR
Mempelajari sesuatu yang baru bagi saya tidaklah mudah. Namun justru inilah yang membuat saya merasa tertantang dan tertarik. Skripsi ini merupakan usaha saya untuk mempelajari, meneliti, serta menganalisa sesuatu yang belum pernah saya pelajari sebelumnya di bangku kuliah, yaitu aplikasi web berbasis XML. Banyak kendala yang saya hadapi dalam proses penyelesaian skripsi ini. Di antaranya yang paling utama adalah belum populernya XML di komunitas akademik saya. Sehingga, sulit bagi saya untuk mendapatkan referensi yang komprehensif tentang XML, terutama dari orang-orang yang biasanya memberi petunjuk kepada saya tentang bagaimana cara kerja sebuah sistem, software, atau bahasa pemrograman. Hal ini karena saya selama ini lebih senang bertanya kepada orang, daripada membaca buku. Namun beruntung ada internet. Di sana saya mendapatkan banyak referensi tentang XML. Tentu saja saya harus bekerja lebih keras untuk menambah satu kebiasaan baik lagi : membaca dan membaca.
Oleh karena itu, meski saya merasa masih banyak kekurangan dalam skripsi ini, sudah sepantasnya saya mengucap syukur pada Allah swt yang telah mengijinkan saya untuk menyelesaikan skripsi ini. Alhamdulillah, segala puji bagi-Nya. Sesungguhnya tiada kesuksesan melainkan milik-Nya. Dan semua kekurangan adalah pelengkap bagi keberhasilan.
Proses pengerjaan skripsi ini dimulai sejak bulan Juli 2002, dimulai dengan diskusi tentang konsep-konsep database dan sistem distance learning yang baik. Kemudian setelah saya mendapatkan topik yang membuat saya tertarik, pengerjaan skripsi mulai terfokus pada bulan September 2002. Tahap perancangan sistem dimulai pada pertengahan bulan ini, sembari saya mencari dan mempelajari teknologiteknologi apa saja yang tepat untuk implementasinya. Akhirnya pada awal Desember 2002 saya berhasil menyelesaikan skripsi ini.
Tak lupa saya menyampaikan terima kasih kepada pihak-pihak yang telah membantu saya menyelesaikan skripsi ini, antara lain : 1. Bapak Teguh Bharata Adji, selaku dosen pembimbing pertama saya, atas bimbingan dan perhatiannya selama ini. 2. Bapak T. Haryono, selaku Ketua Jurusan Teknik Elektro UGM 3. Bapak Marcus Nurtiantoro Aji, selaku Dosen Pembimbing Kedua, atas bantuannya dalam mengkoreksi skripsi saya 4. Teman-teman satu Tim Distance Learning : Beni, Pupus, Yudha, Herison. Terima kasih banyak atas kebersamaannya. 5. Teman-teman Angkatan 98 Teknik Elektro: Bimo AS, M. Arson, Dikki, Riwi, Sapto, Neki, Bustomi, Rozak, 3Feri, Owie, Broto, Yayuk, Firdhaus, Danang, Yoyok, Indra P, Himma, M. Andri, Bimo A, Gigih, Masri, Agus K, Andi S, dan lain-lain yang tidak dapat saya sebutkan satu per satu. Terima kasih semuanya.
6. Teman-teman AFS : Kiki, Oki, Fahim, Dilah, Kumala, Ully, Hesti, Yuni, Gunawan, Aat, Ndaru, Galang, dan lain-lainnya. 7. Teman-teman Jurusan Teknik Elektro lainnya : Siska, Rudi, Bangkit, Ardo, Herman, Idi, Indra Icun, Oppie, dan lain-lain. 8. Keluarga Mahasiswa Teknik Elektro UGM, atas pengalaman berharga yang diberikan pada saya yang tak akan saya lupakan selama hidup, Insya Allah. 9. Bapak dan Ibu Dosen Jurusan Teknik Elektro UGM. 10. Bapak Tiyono selaku Dosen Wali. 11. Bapak Yatman, Mbak Yani, dan seluruh pegawai TU Jurusan Teknik Elektro, atas kemudahan dan keramahan yang diberikan dalam proses pengurusan proposal skripsi, transkrip nilai, dan lain-lain. 12. Pak Sis, Nuri, Simbah, Kang Sus, Slank, dan seluruh karyawan Jurusan Teknik Elektro UGM.
Kemudian, penulis memohon adanya saran dan kritik dari semua pihak untuk tentang skripsi ini, agar di lain kesempatan penulis dapat berbuat yang lebih baik lagi. Penulis juga mengharapkan bahwa skripsi ini dapat dikembangkan lebih lanjut oleh mahasiswa atau pihak lain, karena penulis melihat bahwa teknologi XML yang disampaikan dalam skripsi ini memilki potensi yang sangat besar. Penulis juga tak segan untuk memberikan bantuan bila diperlukan dan semampu penulis, bila ada pihak-pihak yang ingin mengembangkan atau meneliti teknologi yang disampaikan dalam skripsi ini.
Demikian, mohon maaf bila terdapat kata-kata yang salah. Semoga Allah mengampuni, mengasihi, memaafkan, serta meridloi kita semua. Allahumma amin.
Yogyakarta, 14 Desember 2002 Penulis
Aditya Bayu Samudra Siregar
DAFTAR ISI
Halaman Pengesahan
………………………………………….i
Halaman Persembahan
………………………………………….ii
Motto
…………………………………………iii
Kata Pengantar
………………………………………….iv
Daftar Isi
……..…………………………………viii
BAB I. Pendahuluan
.………………………………………….1
1.1. Latar Belakang
………………………………………….1
1.2. Rumusan Masalah
………………………………………….3
1.3. Batasan Masalah
……………………………………….…3
1.4. Tujuan
……………………………………….…4
1.5. Sistematika Penulisan
………………………………………….4
BAB II. Landasan Teori
………………………………………….6
2.1. Urgensi Penerapan Sistem Pembelajaran jarak jauh di Magister Teknologi Informasi (MTI) UGM
………………………………………….6
2.2. Teknologi Informasi untuk Implementasi Sistem
…………………………………………..8
2.2.1
Perbandingan Relational Database dan Data XML……………9
2.2.2
Database XML
………..……………………………….13
2.3. Skalabilitas Aplikasi Berbasis Web Menggunakan XML …..……….15
BAB III. Elstensible Markup Language dan Teknologi Pendukungnya
………………………………………..17
3.1. Ekstensible Markup Language (XML) ……………………………...17 3.1.1. Sejarah Singkat
………….……………………………..17
3.1.2. Struktur Dokumen XML
……….……..………………….18
3.1.3. XML Validator
……………..…………………..22
3.1.4. XML Parser
………………..………………..26
3.1.4.1. DOM Parser
…………..……………………..27
3.1.4.2. SAX Parser
……………..…………………..28
3.2. Ekstensible Stylesheet Language (XSLT) …………..………………..32 3.2.1. Struktur XSLT
………..………………………..33
3.2.1.1. Pola XSLT
……..…………………………..35
3.2.1.2. Namespace
………….……………………...35
3.2.1.3. Version
……….………………………...37
3.2.1.4. Beberapa Perintah XSLT yang Penting ……………..……38 3.2.2. Parser Transformasi XSLT
…………..……………………..46
3.2.3. Metode Transformasi XSLT
…………..……………………..47
3.3. Java
…………..……………………..50
3.3.1. Classpath Dalam Java
…………..……………………..52
3.3.2. Memanggil Class
……………..…………………..53
3.3.3. Java Development Kit (JDK, versi 1.3) ……………..………….54 3.4. Jakarta Tomcat 3.4.1. Java Servlet
………………….……………...55 ………………….……………...56
3.4.2. Struktur Direktori Jakarta Tomcat 3.3 ………………..………...57 BAB IV. Analisa dan Pembahasan
………..………………………..59
4.1. Implementasi Dalam Sistem Distance Learning di MTI UGM 4.2. Gambaran Umum Sistem
………………………………...59 ……….………………………...60
4.2.1. Pencarian Data Berdasarkan Inpur dari User ……….………….61 4.2.2. Query Topik Berdasarkan Kata Kunci ………..………………...62 4.3. Perancangan Sistem 4.3.1. Alur Aplikasi 4.3.1.1. Penampilan Data
…………….…………………...63 ……….………………………...64 …………….…………………...65
4.3.1.2. Query Data Berdasar Input dari User ……………..……...65 4.3.1.3. Query Data Berdasar Kata Kunci yang Tersedia …………66 4.3.2. Struktur Data 4.4. Implementasi Sistem
…………………….…………...67 …………….……………….…..71
4.4.1. Hirarki File dan Fungsi Masing-masing File ………..………….71 4.4.2. Penyimpanan Materi Topik dan Fasilitas Tambahan untuk Materi Topik yang Disimpan Dalam Format XML …..…78 4.4.3. Kode-kode Penting dalam Aplikasi .. .. .……….……….……...79 4.4.3.1. Membuat Servlet
……………….………………...80
4.4.3.2. Menerima dan Mengirimkan Input ke XSLT ………..…...80 4.4.3.3. Query Data dengan XSLT …………..……………………83 4.5. Hasil Tampilan
……………….………………...85
4.6. Kelebihan dan Kekurangan Sistem …………….…………………...85
BAB V. Kesimpulan dan Saran
…………….…………………...87
5.1. Kesimpulan
………………………………...87
5.2. Saran
………………………………...88
DAFTAR PUSTAKA LAMPIRAN
………………………………...89 ………………………………...
BAB I PENDAHULUAN
1.1
Latar Belakang Teknologi internet semakin lama semakin berkembang. Kini boleh dikatakan
hampir seluruh dunia terjangkau internet. Padahal, pada mulanya internet hanya digunakan di universitas-universitas tertentu dan lembaga-lembaga militer sebagai sarana komunikasi mereka. Dampak dari perkembangan teknologi internet ini adalah lahirnya berbagai jenis bahasa pemrograman berbasis web seperti PHP, ASP, Java Applet, JSP, dan lainlain. Meskipun banyak ragam bahasa pemrograman berbasis web, pada umumnya para pengembang (developer) masih menggunakan Hyper Text Markup Language (HTML) sebagai dasar pengembangan situs-situs internet. HTML sendiri merupakan sebuah revolusi penemuan karena dengannya kita dapat membuat data tampil dengan mudah di layar monitor, melalui internet. Namun, dengan semakin meningkatnya jumlah data dan jumlah halaman dalam suatu website, masalah pengembangan dan reusability menjadi suatu hal yang perlu diperhatikan. Kelemahan dari HTML adalah ia tidak bisa memisahkan antara isi, yaitu data yang ingin ditampilkan, dengan style, yaitu dengan cara apa kita hendak menampilkan data. Sehingga, suatu halaman web yang memuat banyak data dengan disain yang kompleks akan terlihat sangat ruwet, sehingga menyulitkan bila kita ingin mengembangkan dan memodifikasi halaman tersebut. Selain itu, HTML hanya bisa
ditampilkan melalui browser komputer. Ia tidak bisa ditampilkan di Personal Digital Assistance (PDA), telepon genggam, dan peralatan bergerak lainnya. Di tengah masalah pengembangan ini, lahir sebuah bahasa yang dinamakan eXtensible Markup Language (XML). XML mampu memisahkan antara data dengan style dari suatu halaman dengan memanfaatkan teknologi XSL (eXtensible Stylesheet Language). XML juga mampu bertindak sebagai suatu basis data sederhana yang sanggup menerima query dan menampilkan sesuai dengan query. Di samping itu, XML bukan merupakan bahasa yang vendor specific, artinya tidak terikat oleh suatu pengembang perangkat lunak atau bahasa tertentu seperti Sun Microsystem, Microsoft, dan Oracle. XML juga tidak memiliki tag-tag khusus yang hanya berlaku pada satu browser namun tidak berlaku untuk browser yang lainnya seperti yang terjadi pada HTML. Sifat ini membuat data yang ditulis dalam bentuk XML dapat dipertukarkan dengan mudah dengan tetap menjaga integritas data, dari satu platform ke berbagai macam platform lainnya. Keunggulan ini membuat banyak pengembang software berbasis web beralih ke XML untuk menggantikan HTML, meskipun dalam masa transisi kehadiran HTML masih sangat diperlukan, sehingga para developer mengembangkan suatu bahasa markup kombinasi antara XML dan HTML yang bernama XHTML. Berdasar penemuan baru ini, yaitu XML, maka penulis berusaha menyelidiki keunggulan-keunggulan dan kelemahan-kelemahannya dengan menerapkan XML pada salah satu bagian dari sistem distance learning yang dirancang oleh tim mahasiswa di bawah bimbingan Bapak Teguh Barata Adji, yaitu bagian pencarian data.
1.2
Rumusan Masalah Masalah-masalah yang timbul dapat dirumuskan sebagai berikut : 1. Bagaimana membuat sebuah fasilitas pencarian data yang baik pada sistem pembelajaran jarak jauh (distance learning) di Magister Teknologi Informasi (MTI) UGM dengan memanfaatkan teknologi XML dan XSLT. 2. Bagaimana menyusun suatu struktur XML yang dapat merepresentasikan struktur data dengan baik untuk fasilitas pencarian data pada sistem di atas. 3. Bagaimana merancang tampilan halaman XML pada fasilitas yang disebut di atas dengan menggunakan XSLT.
1.3
Batasan Masalah Dalam tugas akhir ini, pembahasan akan dibatasi dalam ruang lingkup sebagai
berikut : 1. Struktur data yang ada dirancang hanya untuk keperluan pencarian data dengan menggunakan XML, XSL, dan Java, dengan menggunakan server Apache dan Jakarta Tomcat Servlet Container 2. Fokus dari penelitian ini adalah pada satu bagian tertentu dari sistem distance learning, yaitu pada bagian pencarian dan penampilan untuk data-data mata kuliah, modul, dan topik-topik.
1.4
Tujuan Pembuatan tugas akhir ini bertujuan untuk : 1. Membuat struktur data XML yang dapat digunakan sebagai sistem basis data sedehana yang dapat menerima, mengeksekusi, serta menampilkan query dan hasilnya. 2. Mengembangkan proses modifikasi data dari sistem tanpa melibatkan Database Management System (DBMS). 3. Menunjukkan keunggulan dan kelemahan XML dalam batasan masalah yang telah disebutkan
1.5
Sistematika Penulisan Sistematika penulisan tugas akhir ini dapat dipaparkan sebagai berikut :
BAB I
PENDAHULUAN Dalam bab ini dijelaskan tentang alasan pemilihan tema untuk penulisan skripsi beserta pokok permasalahan yang muncul dalam pembuatan fasilitas pencarian data dengan XML, XSL, dan Java pada sistem distance learning. Pada bab ini juga dibahas batasan masalah dan tujuan yang ingin dicapai melalui penulisan skripsi ini.
BAB II LANDASAN TEORI Berbagai hal umum dan mendasar tentang sistem distance learning dan arsitektur sistem pencarian data akan dibahas di sini.
BAB III EXTENSIBLE MARKUP LANGUAGE (XML) DAN TEKNOLOGI PENDUKUNGNYA Bab ketiga berkaitan dengan gambaran mengenai teknologi XML, XSLT, Java, dan Jakarta Tomcat Servlet Container, dalam kaitannya dengan sistem yang akan dibangun
BAB IV ANALISIS DAN PEMBAHASAN Dalam bab ini akan diuraikan cara kerja dari program aplikasi yang telah dibuat dan perbandingannya dengan program aplikasi lain yang sejenis. Selain itu akan ditunjukkan juga contoh hasil eksekusi program beserta segala kelebihan dan kekurangannya.
BAB V KESIMPULAN DAN SARAN Bagian terakhir ini akan memaparkan hal-hal yang dapat disimpulkan berdasar pembahasan sebelumnya beserta saran-saran yang sekiranya dapat diberikan baik untuk pembuatan rancangan serupa dikemudian hari.
BAB II LANDASAN TEORI
2.1 Urgensi Penerapan Sistem Pembelajaran jarak jauh di Magister Teknologi Informasi (MTI) UGM Magister Teknologi Informasi (MTI) Universitas Gadjah Mada sebagai institusi pendidikan yang ternama di Indonesia sudah memiliki suatu jaringan global yang terkoneksi dengan internet. Layanan yang diberikan adalah www, e-mail, dan transfer file (FTP). Hal ini memberikan kontribusi yang besar bagi perkembangan aplikasi berbasis web. Konsep pembelajaran jarak jauh yang lebih dikenal dengan Distance Learning menggunakan layanan World Wide Web (www) untuk mendistribusikan informasi yang berkaitan dengan pembelajaran. Sistem ini juga membentuk sebuah komunitas dimana
terjadi proses transfer dan berbagi
pengeteahuan baik dalam satu komunitas maupun komunitas yang lain sehingga akan mempercepat terbentuknya sebuah masyarakat yang belajar (Learning Society). Sebagai bentuk dari perkembangan teknologi yang masih baru , maka dalam penerapannya diperlukan suatu pengkajian dan penelitian yang meneluruh mencakup aspek-aspek yang ada. Dengan mengintegrasikan berbagai layanan yang tersedia di internet maka pada tugas akhir ini dibuat sebuah sistem pembelajaran jarak jauh yang terkomputerisasi dengan berbasis web, yang suatu saat nanti dapat menjadi kajian bagi Jurusan Teknik Elektro untuk mengembangkan lebih lanjut. Internet menjadi sebuah media informasi global yang sangat dinamis dan interaktif. Dengan maraknya perkembangan web maka banyak sekali web
bermunculan dengan beraneka ragam content, dan salah satu dari sekian banyak itu adalah content pendidikan yang biasanya dibuat oleh institusi pendidikan seperti universitas, college, lembaga kursus, dan lain-lain. Impilkasi dari hal tersebut adalah bagaimana mengelola isi dari situs yang dibuat itu mampu memberikan informasi yang diharapkan baik dari segi kualitas maupun kuantitas. Hal ini menjadi tantangan bagi para pembuat situs khususnya content pendidikan. Penilaian kualitas informasi didasarkan pada aspek ketelitian, tingkat kebenaran, dan kemutakhiran data. Penilaian ragam pelayanan ditinjau dari jumlah layanan yang mampu ditawarkan dan mampu memberikan
cakupan
pemakaian yang lebih luas. Sebagai situs pendidikan yang bersifat interaktif dan dinamis maka penggunaan database adalah salah satu bentuk penyelesaian masalah. Database yang memiliki kelengkapan tipe data dan tersedia di berbagai macam platform sistem operasi akan menjadikan data-data yang beraneka ragam dapat disimpan dengan tingkat kehandalan yang tinggi serta memiliki tingkat skalabilitas yang memadai. Perangkat lunak pemrogrmanan sangat dibutuhkan untuk memproses data secara efisien dan tersedia di berbagai lingkungan sistem operasi.
Bila hal-hal di atas
tersebut telah dipenuhi maka akan tercipta sistem yang mempunyai kinerja yang tinggi, skalabilitas tinggi, dan lintas sistem (cross-platform). Permasalahan selanjutnya adalah bagaimana membuat rancangan dan implementasi Sistem Pembelajaran Jarak Jauh yang berbasiskan Web tersebut. Sistem pembelajaran jarak jauh ini sudah diterapkan oleh dunia pendidikan di luar negeri seperti universitas sebagai pendukung perkuliahan konvensional dan telah
dilaksanakan secara reguler. Kendala geografis dan waktu pun sudah tidak menjadi masalah setelah terciptanya sistem pembelajaran jarak jauh ini. Materi perkulihan seperti diktat, presentasi, soal-soal ujian, dan ringkasan dapat diberikan dalam format yang sudah ditetapkan, seperti .doc(ms word), .ppt(ms powerpoint) sebagai media presentasi, .pdf untuk diktat dan ringkasan. Dan, perlu pemodifikasian agar mampu menampung materi dan informasi yang akan diberikan. Dalam disainnya diusahakan agar sistem ini fleksibel, modular dan mudah untuk dimodifikasi. Layanan yang diberikan sistem pembelajaran jarak jauh ini berdasarkan kewenangan/hak otoritasnya yang terbagi menjadi bagian-bagian dari aktor-aktor yang ada dalam sistem tersebut , yaitu administrator, dosen, mahasiswa, dan guest (tamu biasa). Kewenangan ini digunakan sebagai perlindungan data. Sehingga pada nantinya akan dilakukan analisis kebutuhan untuk mendefinisikan use case sistem terutama dalam hal fungsionalitas. Perangkat lunak untuk mengimplementasikan sistem pemilihannya perlu disesuaikan dengan kebutuhan, kemampuan, dan juga keberadaan software tersebut dipasaran. MySQL sebagai salah satu produk database yang populer dikarenakan kehandalan, kelengkapan fiturnya, dan kesederhanaannya digunakan sebagai perangkat lunak database. MySQL merupakan salah satu database relasional (RDBMS/Relational Database Management System) yang diminati dan handal. Bahasa pemrograman yang digunakan adalah PHP yang merupakan bahasa pemrograman yang terintegrasi kuat dengan HTML. PHP adalah program yang berbasis server side, sehingga akan memberikan jaminan keamanan data. Kita mampu mengembangkan PHP dalam berbagai macam platform sistem operasi seperti
Windows, UNIX, Mac, dan Linux. Di samping menggunakan PHP dan MySQL, dalam proyek ini juga akan diteliti kegunaan XML yang merupakan bahasa markup hasil pengembangan terbaru di dunia internet. Berbagai macam fitur perlu ditambahkan dalam sistem pembelajaran jarak jauh ini agar mampu mendukung komukiasi antara dosen dan mahasiswa. Discussion board, web chat, calender, serta e-mail dapat diintergrasikan dalam sistem ini. Selain yang berhubungan dengan akademis web site ini diberikan fasilitas game atau permainan, sehingga mahasiswa akan merasa tidak bosan dan tertarik untuk mengakses web ini. Untuk mendukung referensi perkuliahan jarak jauh ini maka diberikan fasilitas library sebagai perpustakaan on-line. Dengan menggunakan perpustakaan on-line mahasiswa dapat melihat referensi mata kuliah, tesis, tugas akhir, dan lain sebagainya. Untuk mengimplementasikan program Sistem Pembelajaran Jarak Jauh berbasiskan web ini di Jurusan Teknik Elektro FT UGM diperlukan syarat mutlak yang harus terpenuhi, yaitu tersedianya infrastruktur jaringan komputer yang terhubung ke dalam web server. Dengan adanya perubahan bentuk metode pengajaran, secara langsung maupun tidak langsung akan menyebabkan perubahan perilku pada manusia. Sebenarnya Sistem pembelajaran jarak jauh ini tidak mengubah cara manusia belajar (learn) tetapi ini lebih ke arah perubahan cara mengajar (educate). Untuk menjadikan sistem pembelajaran jarak jauh ini menyerupai bentuk perkuliahan tradisional maka perlu diperhatikan aspek-aspek non teknis terhadap aktivitas perkuliahan yang akan terjadi.
Analisa dari sistem Web Based Training ini akan menjadi landasan bagi perancangan sistem perkuliahan jarak jauh MTI Fakultas Teknik UGM. Karena sistem ini menjadi sebuah team project, maka dalam tugas akhir ini akan lebih di spesifikasikan dalam masalah penelitian mengenai kegunaan XML, dengan jalan mengimplementasikannya pada sistem pencarian data yang berupa mata kuliah, modul, dan topik-topik dalam perkuliahan MTI.
2.2
Konsep Sistem Pembelajaran Jarak Jauh (Distance Learning)
2.2.1
Sistem Pembelajaran Jarak Jauh Berbasis Web Banyak sekali sistem pembelajaran jarak jauh yang telah diterapkan, yang
pada dasarnya dapat dibagi dalam dua kategori : sistem berbasis video dan sistem berbasis data. Sistem berbasis video mulai muncul tahun 1960-an dimana ketika itu merupakan era meluasnya kepemilikan televisi. Dengan merekam materi belajar ke dalam kaset video dan diputer pada stasiun-stasiun televisi, sistem ini memiliki jangkauan geografis yang cukup besar. Salah satu kelemahan sistem ini adalah kurangnya interaksi dan komunikasi dua arah antara pengajar dan peserta. Untuk sistem berbasis data dapat kita klasifikasikan dalam dua kategori : groupware dan internet. Pada groupware, biasanya menggunakan perangkat lunak yang termasuk dalam kategori computer-supported coorperative (cscw), dimana melalui perangkat lunak ini, sudah tersedia layanan seperti electronic messaging, data conferencing, dan messaging gateways. Pada internet , sistem ini menggunakan layanan-layanan standar seperti World Wide Web (WWW), File Transfer Protocol
(FTP), dan lain sebagainya yang berbasis pada protokol TCP/IP ( Transfer Control Protocol/Internet Protocol). Dengan kemajuan teknologi yang sudah ada sekarang ini, teknologi yang pada awalnya masih terpisah dapat dijadikan satu kesatuan, kita dapat menemukan solusi yang lebih komprehensif. Kita dapat memasukan materi-materi video ke dalam jaringan internet dengan terlebih dulu melakukan perubahan format video itu sendiri, maka kita dapat memiliki sebuah sistem yang berbasis video, groupware, dalam jaringan internet berbasis TCP/IP.
2.2.2 Rekayasa Perangkat Lunak Pada dasarnya terdapat empat langkah-langkah utama rekayasa perangkat lunak yang ditempuh, terdiri atas analisis, perancangan, pengkodean dan pengujian. •
Analisis Pada tahap ini dilakukan analisis terhadap masalah, diamana proses analisis ini dapat dibagi dalam lima tahapan, yaitu (1) identifikasi masalah; (2) evaluasi dan sintesa; (3) pemodelan; (4) spesifikasi; dan (5) review Pada tahap pengenalan masalah, analis mengidentifikasikan semua elemen dasar permasalahan. Pada tahapan evaluasi dan sintesa, analis harus dapat mendefinisikan semua fungsi software; memahami perilaku software; menetapkan karakteristik interface sistem; dan membuat pembatasan perancangan. Semua proses ini dilakukan untuk mendapatkan deskripsi masalah, sehingga solusi yang menyeluruh dapat disintesa.
Setelah melakukan evaluasi masalah dengan informasikan input dan output yang diharapkan, analis mulai mensintesa satu atau lebih solusi. Data, fungsi proses, dan perlaku sistem didefinisikan secara detail. Selama tahap evaluasi dan sintesis, fokus utama analis adalah menjawab pertanyaan “apa”. Data apa yang dihasilkan dan dibutuhkan oleh sistem, fungsi apa yang harus dilakukan oleh sistem, interface apa yang akan dipakai, hal-hal pa yang menjadi pembatas. Selama melakukan evaluasi dan sintesa, analis juga membuat model sistem sebagai usaha untuk lebih memahami data dan control flow, fungsi proses, perilaku sistem, dan isi informasi. Model yang dibuat analis ini menjadi pondasi dalam merancang software. Proses menentukan spesifikasi software adalah proses puncak dari keseluruhan proses analisis. Fungsi dan prformansi yang akan dialokasikan pada software disaring lagi dengan membuat deskripsi informasi lengkap, penjelasan fungsi dan perilaku detail sistem, kriteria validasi yang cocok, dan data yang berhubungan dengan requirement. Review terhadap spesifikasi kebutuhan software dilakukan oleh pengembang dan pelanggan. Pada proses ini, pengembang meyakinkan pelanggan, apakah semua system requirement sudah tercakup. •
Perancangan Perancangan adalah proses penggunaan berbagai teknik dan prinsip untuk tujuan mendefinisikan proses atau sistem secara detail. Tujuan utama desainer
adalah menghasilkan model atau representasi sebuah entitas yang akan dibangun. •
Implementasi dan Pengkodean Implementasi atau pengkodean adalah proses menterjemahkan dokumen hasil desain menjadi baris-baris perintah bahasa pemrograman komputer. Semakin baik hasil analisis dan disain yang dilakukan, maka proses pengkodean ini akan lebih mudah dilakukan.
•
Pengujian Pengujian software adalah proses untuk memastikan apakah semua fungsi sistem bekerja dengan baik, dan mencari apakah masih ada kesalahan pada sistem. Pengujian atau testing software sangat penting untuk dilakukan. Pengujian ini bertujuan untuk memnjamin kualitas software, dan juga menjadi peninjauan terakhir terhadap spesifikasi, disain dan pengkodean. Terdapat dua pendekatan dalam melakukan pengujian software , yaitu : 1. Pendekatan black-box testing Pendekatan ini melakukan pengujian terhadap fungsi operasional software. Pendekatan ini biasanya dilakukan oleh penguji yang tidak ikut serta dalam pengkodean software. 2. Pendekatan white-box testing Metoda ini dilakukan oleh orang yang memahami cara kerja operasi internal software yang membentuk keseluruhan operasi software.
2.3
Teknologi Informasi untuk Implementasi Sistem
2.3.1 Database Penggunaan metode file system pada server yang mengolah (menyimpan, mengambil, atau memproses) banyak data akan sangat
merepotkan. Disamping
kesulitan bagi pengelola web, juga kinerja server akan lambat. Untuk mengatasi kesulitan di atas, akan lebih baik kalau server menggunakan database engine untuk membantu manajemen data pada server. Manajemen dasar database relasional adalah pengarsipan data-data dalam record-record table. Sebuah database dapat berisi tabel-tabel. Record adalah bagian terkecil dari sebuah tabel. Saat ini banyak database engine yang tersedia dengan kemampuan yang berbeda-beda seperti Oracle, MySQL, Sybase ASE, Microsoft SQL Server, dan lain-lain.
Database
Table
Table …
Gambar 2.3 Struktur Database
Record
Record
… Record
Record
…
Namun, meski penyimpanan data dalam sistem Database Management System (DBMS) konvensional seperti di atas (untuk selanjutnya disebut DBMS dalam
skripsi ini) merupakan metode terhandal dan teraman untuk saat ini, masih terdapat beberapa kelemahan dari aspek pertukaran data yang disimpan. Pertukaran data di sini diartikan sebagai pengiriman dan penerimaan data. Sebuah DBMS memperlakukan data sesuai dengan sifat dan strukturnya hanya di dalam DBMS itu sendiri. Setelah data tersebut di-retrieve atau dipanggil, data akan kehilangan sifat dan strukturnya. Contohnya dapat dilihat dari diagram berikut : Database Kuliah Data mata kuliah : Kode (character) : MTI 611 Nama (character) : TI Jenis (character) : Wajib Semester (integer) : 1 Jumlah SKS (integer) : 3 Tujuan (character) : tujuanMK
MTI 611 retrieve
TI Wajib
3
1 tujuanMK
Data XML Data mata kuliah : Kode (character) : MTI 611 Nama (character) : TI Jenis (character) : Wajib Semester (integer) : 1 Jumlah SKS (integer) : 3 Tujuan (character) : tujuanMK
retrieve
Kode (character) : MTI 611 Nama (character) : TI Jenis (character) : Wajib Semester (integer) : 1 Jumlah SKS (integer) : 3 Tujuan (character) : tujuanMK
Gambar 2.4 Perbandingan proses pemanggilan data antara DBMS dan XML Dari gambar di atas dapat dilihat bahwa dalam DBMS, data-data mata kuliah tidak terintegrasi sebagai suatu data yang berkaitan satu sama lain begitu data-data
tersebut diambil dari DBMS. Hal ini tetntunya dapat dipecahkan dengan cara mendeskripsikan data-data kembali, yaitu setelah diambil, dengan menggunakan pemrograman, misalkan memakai PHP, ASP, atau yang lain. Namun, cara ini tidaklah praktis dan bermasalah dalam hal pengembangannya, karena pengembang harus membuat program deskripsi data setiap kali data ditransferkan. Selain itu, pada umumnya tiap vendor DBMS menggunakan tipe data yang berbeda-beda untuk mendeskripsikan data. Oracle misalnya, menggunakan tag NUMBER untuk menyatakan data numerik, sementara MySQL menggunakan tag INT, dan/atau SMALLINT. Sehingga terdapat kesulitan bila suatu data yang disimpan dalam Oracle akan diambil dan dimasukkan dalam database MySQL. Di samping itu, tiap-tiap vendor tentunya menggunakan metode yang berbeda-beda dalam mendeskripsikan struktur data, sehingga aspek kompatibilitas menjadi masalah yang besar. Padahal, di era information sharing sekarang ini, benarbenar diperlukan suatu wahana penyimpanan dan pertukaran data yang bersifat universal yang memudahkan pengembang untuk menyimpan dan melakukan data exchange. Dengan XML, data dapat dipertahankan integritasnya pada saat ia dipanggil dari tempat penyimpanan data. Sehingga, suatu data selalu dapat diketahui sifatnya dan kaitannya dengan data yang lain. Misalkan dalam contoh di atas, kita dapat selalu mengetahui bahwa data Kode berkaitan dengan data Tujuan karena keduanya berada dalam satu struktur yang jelas. Hal ini dilakukan tanpa pengembang harus membuat suatu program khusus untuk mengidentifikasi data tersebut.
Salah satu keunggulan XML lainnya yang penting adalah fleksibilitasnya dalam aspek penyimpanan data. Dengan XML kita dapat melakukan perubahan struktur data dengan mudah, antara lain dengan menggunakan XSLT. Hal ini dijelaskan melalui gambar berikut. Data XML Data mata kuliah :
Data XML Data dosen : NIP (character) : 130 xxxx Nama (character) : Fulan Alamat (character) : Jl. Solo Tanggal lahir (date) : 11-1-1967 Golongan (3A) : 3
Kode (character) : MTI 611 Nama (character) : TI Jenis (character) : Wajib Semester (integer) : 1 Jumlah SKS (integer) : 3 Tujuan (character) : tujuanMK
XSLT
Data XML Data mata kuliah yang baru : Kode (character) : MTI 611 Nama (character) : TI Jenis (character) : Wajib Semester (integer) : 1 Jumlah SKS (integer) : 3 Tujuan (character) : tujuanMK Nama dosen : Fulan
Gambar 2.5 Konversi struktur data XML menggunakan XSLT
Dari gambar di atas kita dapat melihat keunggulan dari aspek fleksibilitas XML. Dalam DBMS, untuk mengubah suatu struktur data kita harus merubah deskripsi tabel, dan ini tentu membutuhkan usaha yang besar karena mengubah deskripsi tabel berarti mengubah pula diagram Entity Relationship (E-R) dari database yang bersangkutan. Apalagi bila yang diubah adalah tabel yang berperan penting, tentunya dapat mengubah hampir seluruh deskripsi relasi dalam database yang telah ditentukan sebelumnya. Untuk menjaga referential integrity dari database setelah perubahan merupakan pekerjaan yang tidak kecil. Berdasar argumen-argumen di atas maka sekarang vendor-vendor DBMS terkemuka seperti Oracle, IBM, dan Microsoft mulai menyediakan fasilitas konversi data dari DBMS ke format XML.
2.3.2 Database XML Seperti telah disebutkan di atas, penyimpanan data dalam bentuk file systems memang tidak praktis dan banyak kekurangannya. Kekurangan yang paling menonjol adalah redundancy data, yaitu terjadi pengulangan data yang sama pada tiap-tiap file yang menyimpan data. Kekurangan ini membuat tingkat skalabilitas sistem menjadi rendah, karena tiap kali kita ingin memodifikasi suatu data, maka file yang mengandung data yang sama harus turut pula dimodifikasi. XML pada awal perkembangannya menyimpan data dalam bentuk file systems. Setelah XML berkembang dan banyak pihak melihat potensinya yang besar, maka banyak pengembang perangkat lunak XML mengkombinasikan keunggulan pada sistem DBMS dengan XML, sehingga sekarang beredar beberapa alternatif pengembangan
sistem database berbasis XML. Setidaknya ada dua cara dalam memasukkan keunggulan DBMS ke XML :
a. Sistem Konversi
Sistem ini digunakan oleh vendor-vendor yang sudah sejak dahulu berkecimpung dalam dunia DBMS, seperti Oracle dan IBM. Cara kerja sistem ini pada dasarnya adalah dengan menyediakan suatu fasilitas konversi dari DBMS ke XML dan sebaliknya. Data yang disimpan dalam bentuk XML dapat dikonversi ke tabel-tabel dan record-record yang ada pada DBMS. Sebaliknya, tabel-tabel dalam DBMS dapat dikonversi menjadi elemen-elemen dan file XML. Kelemahan dari sistem ini adalah beratnya kerja server ketika harus mengkonversikan data-data tersebut. Selain itu, metode ini masih belum menjamin sepenuhnya aspek kompatibilitas. Misalnya data XML yang dikonversi dari Oracle tentunya berbeda dengan data yang dikonversi dari MySQL ke XML. Masalah fleksibilitas juga masih belum sepenuhnya terpecahkan, karena untuk memodifikasi struktur data kita masih harus mengubah struktur tabel yang ada kemudian menjamin terwujudnya referential integrity kembali setelah modifikasi. Sedangkan kelebihan dari sistem ini adalah data masih tersimpan dalam sistem DBMS, sehingga keunggulan dimanfaatkan.
DBMS
dalam
hal
penyimpanan
data
masih
dapat
b. Database XML Cara yang kedua adalah dengan menggunakan database XML. Istilah dalam hal ini adalah native XML database. Sistem ini menyimpan file-file XML dalam bentuk aslinya, jadi tidak dalam tabel dan record seperti pada cara yang pertama. Pada native XML database file-file XML saling direlasikan seperti pada sistem basis data relasional. Sistem ini memberikan tingkat kompatibilitas dan fleksibilitas yang lebih tingi dari cara yang pertama. Namun, sampai sekarang belum ada vendor native XML database yang mampu membuktikan kesetaraan database XML dengan DBMS dalam hal keamanan dan manajemen data internalnya.
2.4 Skalabilitas Aplikasi Berbasis Web Menggunakan XML Banyak situs internet mempunyai content dengan sifat statis, seperti profil perusahaan, artikel, dan keterangan-keterangan lain. Situs ini mempunyai dokumen dengan teks sederhana, image dan hyperlinks ke dokumen-dokemen miliknya. Untuk mengembangkan situs yang bersifat statis, kita cukup menggunakan teknologi clientside. HTML dan Cascading Style Sheet (CSS) dapat digunakan untuk mengatur struktur dan menampilkan halaman content. Seandainya tampilan ingin diperindah maka dapat ditambahkan script yang sifatnya client-side seperti JavaScript, Jscript ataupun VBScript. Tetapi dengan berkembangnya internet, situs yang ada di internet tidak hanya berfungsi untuk mempresentasikan content, tetapi cenderung berupa apilkasi yang kebanyakan terhubung ke suatu basis data. Pada tahap ini situs akan bersifat dinamis, karena content yang dipresentasikan akan bervariasi, berubah-ubah tergantung pada data yang diminta dan action dari suatu user. Untuk mengembangkan
situs yang dinamis diperlukan teknologi server-side, seperti Java, PHP, ASP, CGI, dan lain sebagainya. Dengan teknologi server-side kita dapat mengembangkan suatu aplikasi berbasis internet yang dapat menghasilkan dan menampilkan content secara dinamis. Perbedaan mendasar antara HTML dengan bahasa server-side adalah HTML diterjemahkan oleh script client browser, tidak dieksekusi di server. Dengan membuat kode yang dapat dieksekusi pada server, kita dapat menciptakan banyak sekali aplikasi yang sifatnya dinamis dan dapat dikendalikan oleh user melalui browser. Bila kita mengembankan sebuah situs dinamik, hanya tinggal menunggu waktu saja bagi kita untuk memakai sebuah database, baik itu DBMS, maupun database berbasis XML. Teknologi server-side menggunakan banyak cara untuk menghubungkan antara aplikasi yang kita buat dengan database server. Browser Aplication Client-Side
Platform dependent client
Web Server ODBC + Database spesific API CGI Database Programs/ Server-side scripts
Gambar 2.9 Aristektur Aplikasi berbasis web menggunakan database server
Dalam aplikasi berbasis web, aspek skalabilitas sistem harus benar-benar diperhatikan. Apalagi bila sistem yang dibuat merupakan sistem yang bersifat
dinamis, dimana pengembangan dan modifikasi sistem sering dilakukan seperti pada sistem pembelajaran jarak jauh di MTI ini. Dengan menggunakan HTML sebenarnya pengembang perangkat lunak sudah dapat membuat suatu situs yang dinamik, seperti yang telah disebutkan di atas. Namun, dengan berkembangnya sistem yang ditandai dengan membengkaknya data, perlu dipikirkan alternatif pengganti HTML sebagai bahasa markup untuk menyimpan dan menampilkan data ke layar. Para pengembang beralih ke XML sebagai sarana untuk menampilkan data karena memandang HTML memiliki beberapa kelemahan mendasar sebagai berikut. Pertama, HTML tidak dapat mendeskripsikan sifat dan struktur data yang ada di dalamnya. Data yang ada dalam file HTML hanya diperlakukan seperti teks biasa. Sedangkan XML mampu mendeskripsikan baik sifat maupun struktur data. Kedua, HTML tidak mampu memisahkan antara content dan style dari suatu halaman. Jadi bila kita melihat suatu halaman web yang ditulis dengan HTML, akan sulit bagi kita untuk menemukan bagian yang berupa data di antara tag-tag yang berfungsi sebagai layout atau disain halaman. Apalagi bila halaman web tersebut dirancang dengan rumit. Sebaliknya, XML mampu memisahkan antara bagian yang berupa data dengan bagian yang bertugas untuk menampilkan data. Teknologi yang dimanfaatkan oleh XML dalam hal ini adalah XSL (eXtensible Stylesheet Language). XSL dalam beberapa aspek dapat dianalogikan dengan CSS pada HTML. Bedanya, XSL sendiri merupakan suatu dokumen XML, meskipun ekstensi filenya adalah .xsl. Lagipula, XSL mampu memodifikasi struktur dan tampilan data, serta mampu memanggil data
dari berbagai dokumen XML. Lebih lanjut tentang XSL dan XML ini akan diterangkan pada bab III.
BAB III EXTENSIBLE MARKUP LANGUAGE (XML) DAN TEKNOLOGI PENDUKUNGNYA
Dalam bab ini akan dibahas mengenai XML dan XSLT, serta sekilas tentang Java dan Jakarta Tomcat Servlet Container.
3.1
eXtensible Markup Language (XML)
3.1.1
Sejarah Singkat XML merupakan bahasa markup yang direkomendasikan oleh World Wide
Web Consortium (W3C). W3C merupakan sebuah organisasi yang mengatur standarisasi berbagai jenis bahasa dan perangkat lunak yang mendukung teknologi internet. XML direkomendasikan oleh W3C pada tahun 1998. XML sendiri merupakan derivat dari SGML (Standard Generalized Markup Language), yang juga merupakan bahasa yang extensible, namun sangat kompleks. Spesifikasi SGML sendiri mencakup lebih dari 500 halaman (www.extropia.com/tutorials/xml). Pada awalnya, XML dimaksudkan sebagai bahasa yang mendukung electronic publishing dalam skala besar. Dalam perkembangannya, XML tumbuh sebagai bahasa yang banyak digunakan dalam pertukaran informasi dan data. Pembahasan tentang XML dimulai pada tahun 1996. Saat itu komunitas internet meginginkan sebuah bahasa yang extensible seperti SGML, namun sederhana
seperti HTML. Maka W3C menyeponsori sebuah kelompok ahli SGML untuk mengembangkan bahasa baru tersebut. Pekerjaan kelompok tersebut mirip dengan proses penciptaan Java, yang merupakan penyederhanaan dari C++. Mereka bekerja dengan cara membuang bagian-bagian yang tidak esensial dari SGML. Akhirnya, pada tahun 1998, W3C merekomendasikan versi 1.0 dari XML, dan lahirlah bahasa baru ini. Seperti disebutkan di atas, XML adalah respon atas tantangan yang tidak mampu dijawab oleh HTML : skalabilitas, integritas data, serta universalitas. Meskipun HTML dapat dikatakan universal untuk semua platform sistem operasi maupun browser, ia tidak dapat dipakai dalam platform non-PC, seperti PDA, handphone,
dan
peralatan
bergerak
lainnya.
Sebaliknya,
struktur
XML
memungkinkannya untuk menjadi bahasa markup yang universal, bahkan bisa diterapkan pada platform non-PC. Oleh karena sifat inilah, aplikasi yang paling banyak memanfaatkan keuntungan XML adalah aplikasi yang diterapkan dalam sistem yang banyak melakukan pertukaran data, misalnya aplikasi B2B (Business to Business).
3.1.2 Struktur dokumen XML Sebuah dokumen XML terdiri atas teks dan elemen. Elemen-elemen dalam dokumen XML dapat mengandung teks atau elemen lain. Elemen juga dapat mengandung atribut-atribut. Setiap dokumen XML harus memiliki sebuah pendeklarasian tipe dokumen yang diletakkan di posisi paling atas dokumen. Setiap dokumen juga harus memiliki
sebuah elemen root yang mencakup semua teks dan elemen-elemen lain dalam dokumen. Semua elemen dalam dokumen XML harus dalam bentuk yang wellformed, artinya pendeklarasian elemen harus memiliki start tag dan end tag. Dokumen XML juga dapat memiliki deklarasi untuk menghubungkannya dengan XSL sebagai bahasa untuk menampilkan dokumen. Contoh sebuah dokumen XML adalah sebagai berikut :
(3)
(1) (2)
<mk kodemk="MTI 611"> Teknologi Informasi <sks>3 <jenis>Wajib <semester>1 Teknologi informasi ditinjau dari segi perangkat (4) keras dan perangkat lunak komputer. Arsitektur teknologi informasi. Teknologi middleware. Faktor kehandalan, skalabilitas, dan keamanan. Implementasi proses-proses bisnis. hardware software bisnis arsitektur middleware kehandalan <mk kodemk="MTI 612"> Sistem Informatika <sks>3 <jenis>Wajib <semester>1 Sistem informatika sebagai himpunan manusia, mesin dan prosedur, serta pelembagaannya dalam masyarakat. Ragam dan arsitektur sistem informatika. Strategi dan politik informasi. Perilaku dan budaya informasi. Proses pengelolaan informasi untuk berbagai keperluan. software
Keterangan : (1) Deklarasi dokumen XML. Version menunjukkan versi dari standar yang direkomendasikan oleh W3C. Sedang encoding menunjukkan tipe karakter yang digunakan dalam dokumen. Encoding merupakan informasi bagi parser
XML mengenai bagaimana seharusnya karakter yang ada dalam dokumen diperlakukan. Lebih lanjut mengenai parser akan dijelaskan dalam bagian lain dari skripsi ini. Tipe karakter lain yang sering digunakan adalah ISO8859-1, ASCII, UTF-16, ISO-10646, dan UCS-4. Namun, atribut encoding ini merupakan pilihan, dapat dicantumkan, dapat pula tidak. (2) Deklarasi stylesheet yang digunakan. Contoh di atas menunjukkan bahwa dokumen akan diproses menggunakan stylesheet XSL dalam file kuliah.xsl. (3) Merupakan top element dari dokumen. Seperti dijelaskan pada bagian sebelumnya, setiap dokumen XML harus memiliki sebuah elemen yang menampung seluruh elemen lain dan teks yang ada. (4) Merupakan elemen ‘mk’ yang terdiri atas beberapa elemen anakan, serta sebuah atribut ‘kodemk’. Seperti disebutkan di atas, dokumen XML harus well-formed. Setiap deklarasi elemen harus memiliki start-tag dan end-tag. Selain itu, posisi dari tag deklarator harus urut sesuai dengan posisi elemen tersebut dalam struktur datanya. Barikut contoh dokumen yang tidak well-formed. Contoh 1:
<mk> Teknologi Informasi
Kesalahan : tidak ada end-tag dari elemen ‘mk’. Contoh 2:
<mk> Teknologi Informasi
Kesalahan : Teknologi informasi diapit oleh dua start-tag Contoh 3:
<mk> Teknologi Informasi
Kesalahan : posisi end-tag ‘mk’ dan ‘kuliah’ terbalik. Dokumen yang well-formed adalah seperti berikut :
<mk> Teknologi Informasi
Dalam aplikasi XML, kesalahan yang sering terjadi adalah tidak well-formed nya sebuah dokumen. Kesalahan ini dapat diminimalisir dengan menggunakan perangkat lunak editor XML seperti XML Spy atau eXcHaNgER, daripada menulis dokumen XML secara manual, misalnya menggunakan Notepad. Bila kesalahan di atas terjadi, akibatnya fatal karena browser tidak akan dapat menampilkan dokumen XML. Hal ini karena XML merupakan bahasa yang ketat (strict), tidak seperti HTML yang relatif lebih bisa mentolerir kesalahan seperti di atas. 3.1.3
XML Validator Di bagian atas telah disebutkan bahwa sebuah dokumen XML harus well-
formed. Ada sebuah kondisi lagi yang bersifat opsional yang dapat dimiliki oleh XML, yaitu sifat valid. Sebuah dokumen XML dikatakan valid bila dokumen tersebut sesuai dengan validatornya. Karena bersifat opsional, dan terutama karena dalam
skripsi ini penulis tidak menggunakan validator, maka bagian ini hanya akan dibahas sekilas saja. Terdapat dua macam cara memvalidasi dokumen XML : 1. Menggunakan Document Type Definitions (DTD) DTD merupakan file teks biasa yang mengandung deklarasi tentang dokumen XML serta tipe data elemen-elemen yang terdapat di dalamnya. Contoh dari DTD untuk dokumen XML dalam contohkul.xml di atas adalah sebagai berikut.
Misalkan kemudian DTD di atas disimpan dalam file ‘kuliah.dtd’, maka dalam dokumen XML ditambahkan tag yang menunjukkan DTD tersebut. Tag tersebut adalah : …………
Atau dapat pula DTD tersebut disertakan langsung dalam dokumen XMLnya sebagai berikut : ]> …………..
Dalam DTD di atas dinyatakan bahwa tipe dokumen diberi nama perkuliahan. Pemberian nama ini terserah oleh kita. Jenis dan persyaratan dokumen yang
diatur dalam DTD ini perlu diberi nama tertentu supaya dapat dibedakan dengan DTD-DTD lainnya. DTD di atas juga mensyaratkan bahwa dokumen XML harus memiliki 8 elemen : 1 elemen (‘kuliah’) sebagai elemen root, yang memiliki elemenelemen anakan ‘mk’. Tiap elemen ‘mk’ harus memiliki 6 elemen anakan : ‘nama’, ‘sks’, ‘jenis’, ‘semester’, ‘tujuan’, dan ‘ktkunci’. Di samping itu tiap elemen ‘mk’ harus memilki satu atribut, yaitu ‘kodemk’. Atribut ‘kodemk’ ini bersifat ID, artinye merupakan ciri khusus yang unique dari elemen ‘mk’. Sifat ID dalam DTD ini dapat dianalogikan seperti UNIQUE KEY pada RDBMS. Atribut ‘kodemk’ juga bersifat #REQUIRED, yaitu harus ada. Kemudian setelah DTD dituliskan, sebuah parser validator ditugaskan untuk mengecek validitas dari dokumen XML terhadap DTDnya. Parser validator kemudian mengirimkan pesan apakah dokumen XML sudah valid atau masih ada beberapa bagian yang perlu diperbaiki.
2. Menggunakan XML Schema DTD merupakan cara yang baik untuk mengecek validitas sebuah dokumen XML. Sayangnya, DTD masih belum mampu mendefinisikan tipe data seperti string, dan integer sekaligus batas-batasnya. Misalnya ada sebuah dokumen XML berikut :
1206.90
DTD tidak mampu mendefinisikan bahwa isi elemen ‘ketinggian’ harus berupa integer dengan dua angka di belakang nol, atau nilai elemen ‘ketinggian’ harus berkisar dari 500 sampai 2000. Selain itu, DTD ditulis dengan bahasa yang berbeda, yang menimbulkan kerancuan bila dicampurkan dengan dokumen XML (Roger L. Costello, XML Technologies Course, 2002).
Maka
muncul
suatu
alternatif
dalam
memvalidasi dokumen XML, yaitu menggunakan XML Schema. XML Schema memiliki sekitar 44 tipe data, diantaranya : –string –boolean –decimal –float –double –duration –dateTime –time –date –gYearMonth –gYear –gMonthDay Contoh dari XML Schema ini adalah sebagai berikut (referensi dari http://www.w3.org/TR/xmlschema-0/ ) <xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://localhost/skripsi" xmlns=http://localhost/skripsi elementFormDefault="qualified"> <xsd:element name="kuliah"> <xsd:complexType> <xsd:sequence> <xsd:element ref="mk"/>
(1)
(2)
<xsd:element name="mk"> <xsd:complexType> <xsd:sequence> <xsd:element ref="nama" /> <xsd:element ref="sks" /> <xsd:element ref="jenis" /> <xsd:element ref="semester" /> <xsd:element ref="tujuan" /> <xsd:element ref="ktkunci" /> <xsd:attribute ref=”kodemk” /> <xsd:element name="nama" type="xsd:string"/> <xsd:element name="sks" type="xsd:integer"/> <xsd:element name="jenis" type="xsd:string"/> <xsd:element name="semester" type="xsd:integer"/> <xsd:element name="tujuan" type="xsd:string"/> <xsd:element name="ktkunci" type="xsd:string"/> <xsd:attribute name=”kodemk” type=”xsd:string”/>
(3)
(4)
Keterangan : (1) Menyatakan xmlns (xml name space) dari dokumen XML Schema yang bersangkutan. Lebih lanjut tentang xmlns ini akan dijelaskan dalam bagian XSLT (eXtensible Stylesheet Language Transformastion) (2) Mendefinisikan elemen ‘root’ kuliah yang harus memiliki elemen ‘mk’ (3) Mendefinisikan elemen ‘mk’ yang harus terdiri dari elemen dan atribut yang tertera (4) Mendefinisikan tipe data dari elemen-elemen dan atribut yang tertera. Dari contoh XML Schema di atas dapat dilihat bahwa XML Schema memberikan persyaratan validitas yang lebih kompleks dari DTD, terutama dari syarat tipe data.
XML Schema disimpan dalam suatu file yang berbentuk .xsd, misalkan file ‘kuliah.xsd’. Setelah itu kita menambahkan tag yang menunjukkan lokasi XML Schema pada dokumen XML yang kita buat, seperti contoh berikut :
<mk kodemk=”MTI 001”> …………….
XML Schema merupakan suatu dukungan yang lengkap dan solid terhadap proses validasi dokumen XML. Lebih jauh tentang XML Schema dapat dilihat pada situs W3C di : - http://www.w3.org/TR/xmlschema-0/ - http://www.w3.org/TR/xmlschema-1/ - http://www.w3.org/TR/xmlschema-2/
3.1.4
XML Parser Sebenarnya, semua teks yang berbentuk elemen-elemen well-formed bisa
disebut sebagai dokumen XML (http://www.textuality.com/px/talk/show/s-22.html). Jadi tidak perlu tag deklarasi yang diletakkan di awal. Sebuah teks yang berupa : <jurusan>elektro sudah merupakan suatu dokumen XML yang wellformed, yang merupakan syarat wajib dokumen XML. Namun, teks yang well-formed tersebut tidak ada artinya bila tidak ada suatu program aplikasi yang menterjemahkannya. Teks <jurusan> hanya akan dianggap sebagai teks yang terdiri atas karakter ‘<’, ’j’, ’u’, ’r’, ’u’, ’s’, ’a’, ’n’, dan ‘>’.
Untuk memberikan informasi bahwa teks <jurusan> merupakan sebuah start tag dari elemen ‘jurusan’, kita membutuhkan sebuah program yang disebut parser. Jadi, parser merupakan sebuah interface antara dokumen XML dengan berbagai program aplikasi yang menggunakannya (gambar 3.1). Parser merupakan sebuah program yang cukup kompleks, yang bisa ditulis dengan berbagai macam bahasa, seperti Java, PHP, Perl, dan C. Karenanya, dalam skripsi ini hanya akan dibahas garis besarnya saja.
DOKUMEN XML
P A R S E R
APLIKASI XML
Gambar 3.1 Kedudukan parser dalam struktur aplikasi XML
Ada dua macam parser yang akan dibahas dalam skripsi ini, yaitu DOM Parser dan SAX Parser,
3.1.4.1 DOM Parser DOM merupakan singkatan dari dari Document Object Model. DOM Parser menterjemahkan dokumen XML dan menempatkan elemen-elemen yang ditemuinya ketika memproses dokumen ke dalam struktur pohon (gambar 3.2). Informasi mengenai struktur dokumen ini kemudian disimpan ke dalam memori. Informasi inilah yang digunakan program aplikasi untuk mengakses dokumen XML.
Dokumen XML <mk> <jenis/> <mk> <jenis/>
KULIAH
D O M
MK
NAMA
JENIS
MK
NAMA
JENIS
Gambar 3.2 Cara kerja XML DOM Parser
3.1.4.2 SAX Parser SAX adalah singkatan dari Simple API for XML. API sendiri adalah singkatan dari Application Program Interface. Seperti namanya, dibanding DOM Parser, isi program SAX Parser lebih sederhana. SAX parser bekerja berdasarkan apa yang disebut event-based. SAX Parser berjalan menjelajahi dokumen. Begitu SAX Parser menemukan deklarasi sebuah elemen, ia akan mencatatnya dan menyimpannya dalam suatu event-handler. Event-handler inilah yang menyediakan akses ke isi dokumen XML. Cara kerja SAX Parser diilustrasikan dalam gambar 3.3 berikut.
Dokumen XML
1
<mk>
2 3
Sistem Basis Data <jenis> Wajib
SAX Parser
4 5 6 7 8 9 10
Event Handler Kejadian (event): 1.start elemen kuliah 2.start elemen mk 3.start elemen nama 4.isi elemen nama 5.end elemen nama dan seterusnya
Gambar 3.3 Cara kerja SAX Parser
Dari dua jenis parser yang dibahas di atas, tidak ada parser yang dapat dikatakan lebih unggul dari yang lain (XML By Example). SAX Parser dan DOM Parser dapat dimanfaatkan secara optimal tergantung pada sifat dari dokumen yang hendak diparse. Bila dokumen XMLnya besar, menggunakan DOM Parser akan banyak memakan memori untuk merepresentasikan dokumen dalam struktur pohon. Maka, penggunaan SAX Parser akan lebih menguntungkan dari segi penghematan resource. Sebaliknya, untuk dokumen XML berskala kecil, penggunaan DOM Parser akan
lebih menguntungkan karena DOM Parser menyediakan struktur yang “siap pakai”, sehingga memudahkan program aplikasi dalam mengakses dokumen. Sedang bila kita menggunakan SAX Parser, seorang pemrogram harus bekerja lebih keras dalam mengakses dokumen XML, karena ia harus mendefinisikan sendiri struktur dokumen XMLnya. Sehingga, program aplikasi yang dibuatnya lebih kompleks, akibatnya membebani prosesor yang mengeksekusinya. SAX Parser lebih tepat digunakan untuk menangani dokumen XML yang dinamis, sedang DOM Parser lebih tepat untuk menangani dokumen yang sifatnya statis. Proses parsing, baik DOM Parsing maupun SAX Parsing dapat terjadi di dua tempat : di server dan di client. Proses parsing di server diperlukan bila browser yang kita miliki tidak memiliki built in parser. Hal ini tentu saja amat memberatkan server, oleh karena itu, pada skripsi ini penulis mengharuskan user untuk memilih browser yang mendukung XML, artinya memiliki built in parser untuk XML. Dalam proses pengujian, penulis menggunakan Internet Explorer 6.0 yang memiliki parser MSXML 4.0. Jadi, proses parsing terjadi di client. Berikut daftar browser lain yang memiliki built in parser untuk XML* : •
AIX Netscape Platform : AIX
•
DocZilla version 1.0 P l a t f o r m : Windows 95/98/NT dan Linux
•
EXchaNGeR version 0.7 Platform : Java
•
EXeMeL version 0.9a
Platform : Java
•
HyBrick version 0.83 Platform : Windows95/NT
•
InDelv XML browser P l a t f o r m : Java 1.1.6 ke atas
•
JUMBO version 3.0 Platform : Java
•
Mozilla version 1.2 beta P l a t f o r m : Linux, Win32, MacOS
•
Netscape version 6.1 P l a t f o r m : Linux/Unix, Win32, MacPPC
•
Opera version 6.05 P l a t f o r m : Windows, BeOS, Linux, Symbian OS, Solaris (beta), QNX, OS/2 (beta), MacOS
•
X M L Vi e w e r v e r s i o n 2001-10-09 Platform : Java
•
X-Smiles version 0.6 Platform : Java * Catatan : dari referensi http://www.xmlsoftware.com
3.2
eXtensible Stylesheet Language Transformastion (XSLT)
Di bagian sebelumnya telah dijelaskan mengenai XML. Dalam contoh dokumennya, kita dapat melihat bahwa dokumen XML tidak memiliki perintah tentang bagaimana dokumen tersebut harus ditampilkan. Dengan kata lain, dokumen XML hanya berisi data-data saja. Untuk menampilkan dokumen XML tersebut maka dibutuhkan suatu tools lain, salah satunya adalah XSLT. XSLT merupakan bahasa yang dirancang untuk mentransformasikan dokumen XML ke dalam format yang lain, seperti format HTML atau Microsoft Word. XSLT sendiri merupakan sebuah dokumen XML. XSLT mencapai tingkat rekomendasi W3C dengan direkomendasikannya versi 1.0 pada tanggal 16 November 1999. XSLT merupakan cabang dari XSL (eXtensible Stylesheet Language). XSL sendiri merupakan bahasa untuk menentukan tampilan dan format dari data XML. Ada dua cabang dari XSL ini, yaitu XSLT dan XSL Formatting Object (XSL-FO). XSLT merupakan bahasa untuk mentransformasikan XML melalui proses reorganizing dan restructuring. Sedangkan XSL-FO berfungsi untuk memformat dan menentukan layout dari dokumen XML. Seperti XML yang merupakan penyederhanaan dari SGML, XSLT merupakan penyederhanaan dari DSSSL (Document Style Semantics and Specification Language), yang dikembangkan untuk menampilkan dokumen SGML. Di samping berfungsi sebagai bahasa untuk mentransformasikan dokumen XML, XSLT juga dapat digunakan untuk meng-query data dalam dokumen XML Perlu dijelaskan sebelumnya, proses transformasi yang dilakukan dalam skipsi ini tidak mengubah file XML, melainkan hanya memberikan perintah tentang bagaimana data XML harus tampil.
Dalam skripsi ini, penulis menggunakan XSLT untuk melakukan transformasi sekaligus meng-query data yang ada, maka penulis berusaha menjelaskan bagian ini dengan lebih detail.
3.2.1
Struktur XSLT Transformasi XSLT pada dasarnya adalah mengubah source tree XML
menjadi result tree yang baru yang pada umumnya berbeda dengan source tree. Atau, dengan kata lain, mengubah struktur dokumen XML ke dalam struktur baru yang biasanya berbeda. Proses transformasi ini dicapai dengan cara menerapkan XSLT stylesheet, yang mengandung satu atau beberapa template. Sebuah template menjalankan dua fungsi : mengidentifikasikan pola (pattern) yang akan dicocokkan dengan source tree dan kemudian menjelaskan struktur dari result tree yang diinginkan. Contoh dari suatu template dapat dilihat dari gambar berikut
<xsl:template match="/">
pola (pattern)
<xsl:apply-templates/> *
struktur baru
Gambar 3.4 Contoh template XSLT * Catatan : bentuk <xsl:apply-templates/> sama dengan bentuk <xsl:applytemplates>, jadi merupakan elemen yang well-formed.
Dalam kasus di atas, berdasarkan pola yang dituliskan, template mencari elemen root dari dokumen XMLnya (dinyatakan dalam …..match=”/”). Kemudian setelah elemen tersebut ditemukan, template mengubah strukturnya menjadi struktur yang baru. Jadi, misalkan kita memiliki dokumen XML sebagai berikut : <mk> Sistem Basis Data
Elemen ‘root’ yang terdapat dalam dokumen XML di atas adalah elemen ‘kuliah’. Maka, setelah ditransformasikan memakai template pada gambar 3.4 di atas, dokumennya menjadi : Sistem Basis Data
Dengan demikian maka sekarang struktur dokumen XML menjadi sebuah struktur HTML, yang dapat ditampilkan oleh browser internet. Sebuah stylesheet XSLT dapat mengandung beberapa template. Setiap template biasanya mengacu pada satu atau beberapa elemen yang spesifik dalam struktur sumbernya (resource tree). Sebuah template dapat diterapkan pada sebuah elemen tanpa diterapkan pada elemen-elemen anakannya, atau dapat juga diterapkan pada sebuah elemen sekaligus semua elemen anakannya.
3.2.1.1 Pola XSLT Pola XSLT merupakan bagian penting yang menunjukkan elemen (atau simpul) dokumen XML mana yang akan ditransformasikan. XSLT memiliki tag-tag untuk menyatakan pola ini, diantaranya : <xsl:template match="*"> : memproses semua elemen. <xsl:template match="bab/bagian"> : memproses elemen ‘bagian’ yang mempunyai elemen induk bab <xsl:template match="bab|bagian"> : memproses elemen ‘bab’ dan elemen ‘bagian’ <xsl:template match="bab//para"> : memproses setiap elemen ‘para’ yang berada satu level atau beberapa level di bawah elemen ‘bab’ <xsl:template match="bab[@id=’2’]"> : memproses elemen ‘bab’ yang memiliki atribut bernilai 2 <xsl:template match="para[6]">: memproses elemen ‘para’ yang menempati urutan ke-6 dalam elemen induknya
3.2.1.2 Namespace Setiap file XSLT harus memiliki dan menyebutkan Namespace. Namespace ini diperlukan agar prosesor XSLT mengenal elemen-elemen dan atribut-atribut spesifik yang didefinisikan oleh namespace ini. Contoh dari penyebutan namespace ini adalah sebagai berikut. <xsl:stylesheet version=”1.0” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”> …………(template XSLT)
Dalam contoh dipakai elemen-elemen dan atribut-atribut yang telah didefinisikan oleh World Wide Web Consortium (W3C). Namespace dari W3C adalah : http://www.w3.org/1999/XSL/Transform. Kita dapat menggunakan definisi tambahan (extension) dengan menyebutkan namespace dari pembuatnya. Definisi ini tidak boleh merubah definisi yang telah ditetapkan oleh W3C.
Contohnya : <xsl:stylesheet version=”1.0” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform” xmlns:xslother=”http://localhost/skripsi/XSL”> …………(template –template XSLT)
Bila namespace ini tidak disebutkan, maka prosesor transformasi tidak dapat mengetahui definisi mana yang dipakai. Definisi tambahan yang dibuat dalam hal ini dapat berupa: -
informasi yang digunakan oleh elemen-elemen dan/atau fungsi-fungsi tambahan
-
informasi tentang apa yang akan dilakukan dengan file hasil
-
informasi tentang bagaimana memperoleh file input
-
metadata XSL
-
dokumentasi terstruktur XSL Dengan menyebutkan namespace W3C untuk XSLT, maka semua elemen
dalam stylesheet XSLT yang mengandung kata <xsl:…..> akan diperlakukan sebagai
elemen spesifik XSLT. Misalkan elemen <xsl:template match=”/”>… akan diperlakukan sebagai instruksi untuk menyeleksi elemen dalam dokumen XML mana yang akan diproses. Sedangkan elemen yang mengandung namespace dari pihak lain sebagai definisi tambahan akan diperlakukan berbeda. Jadi, misalkan kita membuat program untuk mendefinisikan suatu instruksi pemrosesan yang tidak ada dalam vocabulary XSLT dari W3C, maka kita perlu menambahkan namespace kita dalam elemen XSLT. Misalkan, dalam contoh di atas kita mendefinisikan namespace kita dalam http://localhost/skripsi/XSL, yang dimasukkan dalam variabel xslother. Di dalamnya kita mendefinisikan sendiri perintah untuk mencetak isi suatu elemen. Maka elemen XSLT yang merupakan instruksi tambahan kita tersebut adalah : <xslother: print select=”nama”/> Sedangkan bila kita menulis elemen XSLT tanpa menyebutkan namespace, maka elemen tersebut akan dicetak apa adanya. Misalnya elemen … , …, dan …...
3.2.1.3 Version Setiap elemen teratas dari file XSL harus menyebutkan versi dari XSL. Versi XSLT yang terakhir direkomendasikan oleh W3C adalah versi 1.0, yang direkomendasikan tanggal 16 November 1999. Versi 2.0 sampai sekarang masih dalam tahap penyempurnaan. Terakhir W3C mengeluarkan progress report untuk versi 2.0 pada tanggal 15 November 2002 (http:www.w3.org/TR/xslt20). Contoh pendeklarasian versi adalah sebagai berikut : <xsl:stylesheet version=”1.0” xmlns:xsl=”http://www.w3.org/1999/XSL/Transform”>
3.2.1.4 Beberapa perintah XSLT yang penting 1. <xsl:import href=”…” /> Perintah xsl:import adalah untuk memanggil stylesheet lain dan menggunakan template-template dari stylesheet yang diimport tersebut. Nilai dari atribut href menunjukkan lokasi stylesheet yang diimport. Pada xsl:import, template-template dari stylesheet yang diimport mempunyai prioritas yang lebih rendah dari template-template stylesheet yang mengimport. Misalkan dalam stylesheet yang diimport terdapat template dengan pola ‘<xsl:template match=”kuliah”> … ’. Sementara pada stylesheet yang mengimport juga terdapat template dengan pola yang sama, namun dengan struktur yang berbeda. Maka aturan template yang akan dieksekusi adalah aturan template stylesheet yang mengimport. Perintah xsl:import ini harus diletakkan tepat di bawah elemen <xsl:stylesheet>…, pada posisi tertatas. Elemen-elemen yang diletakkan tepat di bawah <xsl:stylesheet>… disebut top level element. 2. <xsl:include href=”…” /> Pada dasarnya perintah ini sama dengan perintah xsl:import , namun dengan satu perbedaan : prioritas template pada stylesheet yang mengimport sama dengan pada stylesheet yang diimport. Perintah <xsl:include…/> ini harus diletakkan pda posisi top level element, serta tidak boleh mendahului perintah <xsl:import …/>.
3. <xsl:variable name=”…” select=”…”/> Perintah ini berfungsi untuk menyimpan suatu nilai ke dalam suatu variabel. Nilai yang disimpan dapat berasal dari isi suatu elemen ataupun kita tentukan sendiri. Contoh nilai yang kita tentukan sendiri : <xsl:variable name=”sks” select=”2”/> atau bisa juga dengan cara: <xsl:variable name=”sks”> 2 Perbedaan dua cara di atas adalah pada cara yang pertama, isi variabel bersifat angka. Sedang pada cara yang kedua, variabel tidak bersifat angka, namun hanya bersifat karakter biasa. Maka, perintah penggunaan variabel untuk kedua cara di atas berbeda. Sedang contoh nilai yang kita ambil dari isi elemen lain : <xsl:variable name=”nama” select=”mk/nama”/> atau bisa juga dengan cara: <xsl:variable name=”nama”> <xsl:value-of select=”mk/nama”/> Kedua cara di atas sama, yaitu menyimpan isi dari elemen ‘nama’ yang berada di bawah elemen ‘mk’ ke variabel nama. Untuk perintah <xsl:value-of select=”…”/> akan dijelaskan pada bagian lain setelah bagian ini. Perintah xsl:variable dapat diletakkan pada top level, dapat pula tidak.
4. <xsl:param name=”…” select=”…”/> Pada dasarnya perintah xsl:param sama dengan perintah xsl:variable. Perbedaannya adalah, nilai pada xsl:param hanya bersifat default saja. Ketika ada suatu template yang mengandung parameter yang bersangkutan dipanggil, maka sebuah parameter dengan nilai baru dapat dimasukkan ke dalam template tersebut sebagai pengganti nilai default. Contohnya : <xsl:template name=”panggil”> <xsl:param name=”x” select=”1”/>
// nilai parameter x = 1 (default)
<xsl:value-of select=”$x”/> ……… <xsl:call-template name=”panggil”/> // nilai x = 1 ……… <xsl:call-template name=”panggil”> <xsl:with-param name=”x” select=”2”/> // dalam kasus ini, nilai x = 2
Pada contoh di atas, nilai default dari x adalah 1. Ketika template “panggil” dipanggil tanpa mengeset nilai parameter yang beru, outputnya adalah nilai default dari x, yaitu 1. Namun ketika template “panggil” dipanggil sambil mengeset nilai x yang baru, maka kali ini outputnya adalah 2. 5. <xsl:value-of select=”…”/> <xsl:value-of select=”…”/> barangkali merupakan perintah yang paling sering digunakan setelah perintah pola. Perintah ini sangat berguna. Bagi yang
pernah mendalami PHP, perintah ini analog dengan perintah “echo” atau “printf”. Dalam Java, perintah ini analog dengan perintah “out.writeln”. Pendeknya, ketika kita ingin menampilkan isi dari suatu elemen, atribut, atau variabel, maka kita menggunakan perintah ini. Misalkan kita memiliki dokumen XML berikut ini : <mk> Sistem Basis Data <jenis> Wajib
Bila kita ingin menampilkan isi elemen dari ‘nama’, maka perintah yang kita tuliskan adalah : <xsl:value-of select=”mk/nama”/> 6. <xsl:if test=”…”/> XSLT
memiliki
perintah
kondisional
seperti
pada
bahasa-bahasa
pemrograman lainnya. Bila setelah diproses hasilnya benar, maka perintah yang ada di dalam elemen xsl:if akan dieksekusi. Bila salah, maka perintah tersebut diabaikan. Contohnya sebagai berikut. Misalkan kita ingin memberi warna merah pada suhu mesin yang melebihi 100°C. Dokumen XML kita adalah sebagai berikut : <suhu> <mesin kode=”A”> Mesin bubut 89 <mesin kode=”B”> Mesin listrik 120 <mesin kode=”C”> Mesin diesel
72 …………………. Template untuk transformasi XSLTnya adalah: ………………….. <xsl:template match=”mesin”> Nama mesin : <xsl:value-of select=”nama”/> <xsl:if test=”temp > 100”> Temperatur : <xsl:value-of select=”temp”/>
Keterangan :…color=”#FF0000” merupakan perintah untuk menampilkan warna merah. 7. <xsl:choose/> dan <xsl:when test=”…”/> Perintah ini mirip dengan xsl:if, namun digunakan untuk beberapa kondisi yang harus dipenuhi. Misalkan dalam contoh dokumen suhu di atas, untuk temperatur di bawah 100 derajat kita ingin menampilkan dengan warna biru. Maka template untuk transformasinya adalah sebagai berikut : <xsl:template match=”mesin”> Nama mesin : <xsl:value-of select=”nama”/> <xsl:choose> <xsl:when test=”temp > 100”> Temperatur : <xsl:value-of select=”temp”/> <xsl:when test=”temp < 100”> Temperatur : <xsl:value-of select=”temp”/>
8. <xsl:for-each select=”…”/> Perintah ini adalah perintah kalang (loop) yang memproses secara rekursif. Di sini XSLT akan memproses perintah yang berada di dalam elemen xsl:for-
each selama elemen yang ditunjuknya ditemukan. XSLT akan berhenti memproses bila sudah tidak menemukan lagi elemen yang ditunjuk. Contohnya, bila kita ingin menampilkan temperatur tiap mesin pada contoh dokumen XML di atas. <xsl:template match=”suhu”> <xsl:for-each select=”mesin”> Suhu :<xsl:value-of select=”temp”/>
* Outputnya adalah sebagai berikut : Suhu: 89 Suhu: 120 Suhu: 72
* Catatan : tag
merupakan perintah HTML untuk mengatur jarak satu baris. Karena bentuk ini bukan bentuk elemen yang well-formed, maka XSLT memberikan solusi dengan menambah karakter ‘/’. Solusi ini sama dengan solusi pada catatan gambar 3.4 di atas. 9. <xsl:sort select=”…”/> Perintah ini adalah untuk mensortir tampilan menurut suatu kata kunci tertentu, baik ascending maupun descending. Misalkan dalam contoh dokumen suhu di atas, kita ingin menampilkan nama mesin urut mulai dari yang temperaturnya paling tinggi. Di sini berarti kata kuncinya adalah elemen ‘temp’. Sedangkan template XSLTnya adalah sebagai berikut. <xsl:template match=”mesin”> <xsl:sort select=”temp” order=”descending”/> Nama mesin : <xsl:value-of select=”nama”/> Suhu : <xsl:value-of select=”temp”/>
Outputnya adalah sebagai berikut : Nama mesin : Mesin listrik Suhu : 100
Nama mesin : Mesin bubut Suhu : 89 Nama mesin : Mesin diesel Suhu : 72
10. <xsl:element name=”…”/> dan <xsl:attribute name=”…”/> Perintah di atas adalah untuk menciptakan sebuah elemen dalam struktur output, beserta atribut-atributnya. Perintah ini terutama berguna untuk membuat elemen berupa link HTML, dimana isi dari atribut ‘href’ nya diambil dari elemen lain. Perintah untuk membuat link pada bahasa HTML adalah : link . Perintah ini oleh XSLT dipandang sebagai sebuah elemen. Sebenarnya, menuliskan perintah di atas saja sudah cukup untuk membuat sebuah link dalam struktur output. Namun, masalah timbul ketika kita ingin memasukkan nilai dalam suatu elemen dokumen XML ke dalam atribut ‘href’ dari elemen ‘a’. Contohnya kita memiliki dokumen XML sebagai berikut. <modul> Sistem Basis Data http://localhost/skripsi/kuliah/basisdata.xml Template XSLT yang salah untuk menampilkan link yang menuju lokasi yang disebutkan pada elemen ‘url’ di atas adalah : <xsl:template match=”modul”> Nama modul : <xsl:value-of select=”nama”/> URL : ”> http://localhost skripsi/kuliah/basisdata.xml
Template di atas salah, karena XSLT tidak mengijinkan tag ‘<’ ataupun ‘>’ dalam definisi atribut suatu elemen seperti di atas. Sebenarnya untuk menampilkan karakter ‘<” kita dapat menggunakan escape character ‘<’ dari ASCII, sedang untuk karakter ‘>’ kita dapat menggunakan ‘>’. Namun, ini tidak menyelesaikan masalah, karena bila ini diterapkan, XSLT tidak akan menganggap <xsl:value-of select=”…”/> sebagai sebuah instruksi XSLT untuk menampilkan isi elemen tertentu. Jadi kita harus memikirkan solusi lainnya. Salah satu solusi untuk masalah ini diperlihatkan pada template berikut. <xsl:template match=”modul> Nama modul : <xsl:value-of select=”nama”/> URL : <xsl:element name=”a” > <xsl:attribute name=”href”> <xsl:value-of select=”url”/> http://localhost skripsi/kuliah/basisdata.xml
atau <xsl:template match=”modul> Nama modul : <xsl:value-of select=”nama”/> URL : <xsl:attribute name=”href”> <xsl:value-of select=”url”/> http://localhost skripsi/kuliah/basisdata.xml
Kedua template di atas akan membentuk elemen dengan nama ‘a’ pada struktur output. Elemen ‘a’ ini mempunyai atribut bernama ‘href’ yang isinya sama dengan isi dari elemen ‘url’ pada dokumen XMLnya. Sedangkan isi dari
elemen ‘a’ sendiri adalah string “http://localhost skripsi/kuliah/basisdata.xml”. Sehingga terbentuk tag untuk link HTML seperti yang dimaksud.
3.2.2 Parser Transformasi XSLT
Sama seperti dokumen XML, dokumen XSLT juga harus di-parse. Proses parsing ini dapat terjadi di client, dapat pula di server. Untuk parsing di server, terdapat
beberapa
parser
yang
mendukungnya,
seperti
Xalan
Java
dari
http://xml.apache.org. Parser Xalan Java ini harus diinstall di server agar proses transformasi dapat berjalan. Namun, penulis tidak merekomendasikan cara seperti ini, karena dapat memberatkan kerja server. Penulis merekomendasikan agar user memakai browser yang mendukung XSLT, artinya memiliki built in parser untuk XSLT *, seperti : •
AIX Netscape Platform : AIX
•
InDelv XML browser P l a t f o r m : Java 1.1.6 ke atas
•
Mozilla version 1.2 beta P l a t f o r m : Linux, Win32, MacOS
•
X-Smiles version 0.6 Platform : Java
•
Microsoft Internet Explorer 6.0 Pl a t f o r m : Win d ow s 9 8 / N T / 2 0 0 0
* Catatan : referensi dari http://www.xmlsoftware.com
3.2.3.
Metode Transformasi XSLT Terdapat dua metode untuk mentransformasikan dokumen XML menjadi
format yang lainnya dengan menggunakan XSLT. Pertama adalah metode yang menghasilkan file baru, yang kedua adalah tidak menghasilkan file baru, yaitu hanya merubah tampilan saja. Untuk metode yang pertama, misalnya dapat dilakukan oleh Xalan Java yang dikeluarkan oleh Apache (http://www.apache.org). Parser ini ditulis dalam bahasa Java. Paser Xalan Java merupakan parser XSLT yang powerful. Ia mampu merubah dokumen XML ke dalam berbagai format, tergantung XSLTnya. Perubahan format yang pernah diuji oleh penulis menggunakan Xalan Java adalah perubahan dari format XML ke format MS-Word, HTML, dan MS-Power Point. Namun, dalam skripsi ini penulis tidak menggunakan parser Xalan Java karena ia dijalankan di server, sehingga dapat membebani kerja server. Perlu diperhatikan, dalam proses transformasi, Xalan Java tidak merubah dokumen XML yang ada, namun hanya membuat sebuah file baru sebagai hasil dari transformasinya. Metode yang kedua adalah metode dimana tidak dihasilkan file baru. XSLT hanya berfungsi untuk menampilkan dokumen XMLnya saja. Metode ini dapat digambarkan dengan gambar-gambar berikut.
Gambar 3.5 Contoh tampilan dokumen main.xml menggunakan stylesheet main.xsl
Gambar 3.6 Source code dari dokumen main.xml ketika dilihat menggunakan menu View-Source dari I.E 6.0
File main.xsl nya adalah sebagai berikut. <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates/> <xsl:template match="mk"> Nama mata kuliah : <xsl:value-of select="nama"/>
Jenis : <xsl:value-of select="jenis"/>
Jumlah SKS : <xsl:value-of select="sks"/>
Dari contoh di atas dapat dilihat bahwa XSLT tidak merubah file dokumen XML yang ditransformasikan, terbukti dari source codenya yang tidak berubah. Sedangkan untuk tampilan tanpa menggunakan XSLT terlihat dalam gambar 3.7 berikut.
Gambar 3.7 Tampilan dokumen XML yang tidak menggunakan XSLT
Dapat dilihat dari contoh tampilan di atas, bahwa bila dokumen XML tidak memakai XSLT, tampilannya akan persis sama dengan source codenya. Demikian penjelasan mengenai XSLT. Untuk aplikasi yang lebih teknis dari XSLT dapat dilihat pada Bab IV yang membahas dan menganalisa skripsi secara teknis.
3.3 J a v a Java merupakan sebuah bahasa pemrograman yang dikeluarkan oleh Sun Microsystem (http://java.sun.com) pada bulan November 1995. Java termasuk dalam kategori Pemrograman Berorientasi Obyek. Bahasa ini, sebelum bernama Java, sebelumnya bernama Oak – Oak diciptakan oleh James Gosling – merupakan bahasa yang dapat diterapkan pada berbagai macam platform. Keistimewan dari Oak – dan oleh karenanya diwarisi oleh Java – adalah kedekatannya dengan Internet. Salah satu keistimewaan Java yang paling banyak dikenal orang adalah ia dapat menciptakan program yang dieksekusi melalui browser internet. Program ini disebut applet. Pada saat James Gosling menulis Oak, ia banyak mengambil fungsionalitas dan syntax dari bahasa C dan C++. Oleh karenanya Java memiliki banyak kemiripan dengan C++. Perbedaannya adalah Java lebih sederhana, dan beberapa bagian yang kompleks dari C++ dihilangkan, seperti pointer dan manajemen memori. Dalam Java, memori diatur secara otomatis, dan pemrogram tidak perlu menulis kode untuk mengaturnya secara manual. Kode Java ditulis sebagai teks biasa, kemudian disimpan dalam bentuk file .java. Kemudian setelah file .java ini di-compile, akan menghasilkan file lain yang disebut class (berbentuk .class). File class inilah yang dipanggil ketika kita ingin menjalankan aplikasi Java. File class berbentuk bytecode. Bytecode merupakan serangkaian instruksi yang langsung dapat dijalankan komputer, jadi merupakan bahasa mesin. Untuk dapat meng-kompile file .java menjadi bentuk bytecode diperlukan lingkungan (environment) Java. Contohnya adalah Java Development Kit (JDK). Dalam skripsi kali ini, versi JDK yang digunakan adalah JDK 1.3.
3.3.1 Classpath dalam Java Dalam contoh mengatur classpath di bawah ini, penulis menggunakan setting classpath yang diperlukan untuk melakukan transformasi XSLT menggunakan Xalan Java. Seperti disebutkan pada bagian sebelumnya, Xalan Java merupakan parser server side yang handal untuk melakukan transformasi XSLT. Salah satu hal yang paling penting dalam menjalankan program Java adalah mengatur classpath. Class dianggap sebagai sebuah obyek yang saling berkaitan dengan class-class lainnya. Di sini keistimewaan Pemrograman Orientasi Obyek benar-benar ditonjolkan, yaitu reusability dari class-class tersebut. Kita dapat menghemat banyak waktu karena kita tidak perlu menuliskan kode yang sama untuk beberapa aplikasi. Kita dapat menggunakan class-class yang telah tersedia tersebut untuk berbagai aplikasi. Sebelum menjalankan aplikasi Java, kita harus mendefinisikan dimana JDK harus mencari class-class yang diperlukan. Kita harus mendefinisikan lokasi yang spesifik dari class-class tersebut sampai pada direktori yang tepat ada di atasnya. Jadi misalkan kita meletakkan Process.class dalam direktori c:\java\xalan\bin , maka kita harus menuliskan path yang lengkap sebagai berikut : > set classpath = c:\java\xalan\bin Program akan menampilkan pesan kesalahan (error) bila kita hanya menuliskan : > set classpath = c:\java\ , atau > set classpath = c:\java\xalan Pesan kesalahan ini biasanya berujud :
>
Exception
in
thread
“main”
java.lang.NoClassDefFoundError
:
org/apache/xalan/xslt/Process. Untuk memudahkan pencarian class dan distribusi paket-paket Java, maka pada umumnya class-class yang berfungsi untuk melaksanakan instruksi tertentu diintegrasikan dalam file Java Archive (berbentuk .jar). File .jar ini mirip dengan file .zip, dan file .jar ini dapat diekstrak dengan aplikasi pengekstrak seperti WinZip. Jadi kita dapat mendefinisikan classpath kita ke alamat loaksi file .jar ini, karena pada dasarnya file .jar bersifat seperti direktori yang berada tepat satu tingkat di atas file .class. Contoh kasus, dalam transformasi XML ke format file lain, kita memerlukan class Process. Class process ini ada dalam file xalan.jar. Maka kita harus mengatur classpath kita sebagai berikut : > set classpath = c:\java\xalan\bin\xalan.jar Suatu aplikasi biasanya membutuhkan beberapa file class yang terdapat dalam beberapa file .jar. Jadi classpath harus menyebutkan alamat-alamat file-file .jar tersebut. Dalam Java Archive (jar) ini biasanya file-file .class sudah dikelompokkan dalam direktori-direktori tertentu.
3.3.2 Memanggil Class Pemanggilan class dalam Java dilakukan dengan menyebutkan secara lengkap letak dari kelas tersebut. Berbeda dengan pengaturan classpath, pemanggilan class adalah seperti menuliskan perintah command.com dalam dos prompt, yaitu berfungsi untuk eksekusi sebuah aplikasi.
Misalkan kita akan melaksanakan proses transformasi dari format XML ke HTML. Class yang menangani ini adalah class Process. Class Process berada di bawah direktori xslt. Direktori xslt berada di bawah direktori xalan, xalan berada di bawah xml, direktori xml berada di bawah direktori apache, dan apache berada di bwah direktori org. Jadi, untuk memanggilnya secara lengkap adalah sebagai berikut : > java org.apache.xalan.xslt.Process Dapat dilihat bahwa tiap direktori dengan tanda titik (.).
3.3.3 JAVA DEVELOPMENT KIT (JDK, versi 1.3) JDK adalah suatu perangkat lunak yang dikeluarkan oleh Sun Microsystem untuk membuat aplikasi, applet, dan komponen yang dapat dijalankan dalam platform Java. JDK mempunyai fasilitas untuk mengembangkan dan menguji program yang ditulis dalam bahasa Java dan dijalankan dalam platform Java. Fasilitas-fasilitas ini hanya dapat dieksekusi melalui perintah yang dituliskan di command line, kecuali untuk appletviewer. Jadi, fasilitas-fasilitas pada JDK 1.3 tidak memiliki Graphical User Interface (GUI). Fasilitas-fasilitas tersebut di antaranya : -
Java compiler (dieksekusi dengan perintah javac) Fasilitas ini berfungsi untuk meng-compile program yang ditulis dalam Java menjadi bytecode. Jadi sebelum dapat dieksekusi, file-file yang berbentuk .java harus dijadikan file bytecode terlebih dahulu, biasanya dalam bentuk file .class.
-
Java Interpreter (dieksekusi dengan perintah java) Mengeksekusi file-file dalam bentuk bytecode.
-
AppletViewer (dieksekusi dengan perintah appletviewer) Berfungsi untuk menguji dan menjalankan applet.
-
Java Debugger (dieksekusi dengan perintah jdb) Membantu menemukan bug-bug dalam program
-
Java Archive Tool (dieksekusi dengan perintah jar) Menggabungkan file-file class dan acuan-acuan lainnya dalam satu file jar. Masih banyak fasilitas-fasilitas lain dalam JDK 1.3, namun fasilitas-fasilitas
di ataslah yang dianggap penulis merupakan fasilitas-fasilitas utama yang sering digunakan para pemrogram. Seperti telah disebutkan di atas, fasilitas-fasilitas di atas hanya dapat dijalankan melalui command line (misal MS-DOS Prompt untuk Windows 32). Contoh penulisan perintahnya, untuk Java Interpreter telah dituliskan dalam bagian Memanggil Kelas di atas. Dalam JDK 1.3, terdapat sebuah virtual machine, library class, dan file-file lain yang dibutuhkan dalam proses eksekusi aplikasi Java. Ketiga hal tersebut berada dalam suatu lingkungan yang disebut Java Runtime Environment (JRE).
3.4
Jakarta Tomcat Jakarta Tomcat ( http://jakarta.apache.org/tomcat/index.html ) merupakan
sebuah servlet container yang juga dapat berfungsi sebagai web server. Jakarta Tomcat, seperti halnya Xalan Java merupakan software yang open source. Dalam skripsi ini, Jakarta Tomcat yang digunakan adalah versi 3.3 yang dikeluarkan tanggal 18 April 2002. Sampai sekarang Jakarta Tomcat telah mencapai versi 5.0 yang
dikeluarkan pada bulan Oktober 2002. Jakarta Tomcat merupakan implementasi resmi (official implementation) dari teknologi Java Servlet dan Java Server Page (JSP). Dengan Jakarta Tomcat kita dapat menjalankan aplikasi server side yang dibuat dengan Java. Penjelasan mengenai server side application ini telah dibahas pada Bab II.
3.4.1
Java Servlet Java Servlet merupakan aplikasi Java berbasis Web yang dijalankan di server.
Tidak seperti yang telah dijelaskan pada bagian sebelumnya tentang aplikasi Java yang menjalankannya dari dos prompt, Java Servlet dipanggil oleh browser melalui URL (Uniform Resourced Location). Jadi misalnya kita memiliki sebuah servlet dalam file Cipta.class. Maka bila kita ingin menjalankan program tersebut, kita memanggil dengan mengetikkan perintah berikut pada Address Field browser kita : http://localhost/examples/servlet/Cipta. Atau kita dapat membuat sebuah link yang menuju pada lokasi servlet yang dimaksud. Ketika link tersebut diklik, maka servlet akan dieksekusi. Pemanggilan servlet tidak perlu menyertakan ekstensi dari file servletnya, cukup menyebutkan nama filenya saja. Pada Jakarta Tomcat, letak servlet containernya adalah pada direktori : base directory\WEB-INF\classes. Dalam skripsi ini, base directory dari servlet yang digunakan untuk aplikasi adalah tomcat\webapps\Root\skripsi. Meskipun letak servlet container adalah pada direktori yang tersebut di atas, namun pada URL yang disebutkan adalah berbeda, tergantung pada setting path dan
base directory dari servlet. Path dan base directory dalam skripsi ini akan dijelaskan di Bab IV. Untuk membuat servlet, pertama kita harus mengeset classpath (seperti yang telah disebutkan pada bagian sebelumnya tentang classpath dalam Java) menuju suatu file Java Archive yang bernama servlet.jar. Kemudian dari file ini kita dapat mengimport class-class yang berfungsi untuk membentuk servlet dalam kode java kita. Setelah kita membuat file java tersebut, maka kita compile dengan Java Compiler. Kemudian, file bytecode Java (ekstensi .class) yang dihasilkan dimasukkan dalam direktori servlet container. Selengkapnya mengenai proses ini akan dijelaskan di Bab IV.
3.4.2
Struktur direktori Jakarta Tomcat 3.3 Pada dasarnya ada tiga komponen penting dalam Jakarta Tomcat. Pertama
adalah servlet container yang berada pada direktori tomcat\webapps\path\WEBINF\classes.
Kedua
adalah
web
server
yang
base
direktorinya
adalah
tomcat\webapps\ROOT. Sedang yang ketiga adalah library yang diperlukan Jakarta Tomcat untuk mencari class-class Java yang dipanggil oleh servlet. Library ini terletak dalam direktori tomcat\lib. Dalam direktori tomcat\lib terdapat tiga jenis library, yaitu ‘apps’, ‘common’, dan ‘container’. Library yang berada dalam direktori ‘apps’ adalah library spesifik untuk suatu aplikasi. Library ‘common’ adalah library yang dipakai bersama oleh Jakarta Tomcat dan beberapa aplikasi tertentu. Sedang library ‘container’ dipakai
khusus oleh Jakarta Tomcat. Struktur komponen-komponen utama Jakarta Tomcat ini dapat dilihat pada gambar 3.8 berikut. tomcat
bin
conf
lib
doc
apps common
container
native
logs
webapps
work modules
ROOT skripsi
WEB-INF classes
Gambar 3.8 Struktur direktori Jakarta Tomcat 3.3 pada skripsi ini
BAB IV ANALISA DAN PEMBAHASAN
Dalam bab ini akan dibahas implementasi sistem sesuai dengan dasar teori yang telah dibahas pada BAB II. Sedang teknologi yang akan dipakai pada implementasi sistem adalah teknologi-teknologi seperti yang telah dibahas pada Bab III.
4.1
Implementasi Dalam Sistem Distance Learning di MTI UGM Sistem Distance Learning di MTI UGM memiliki materi-materi kuliah yang
diwujudkan dalam modul-modul sesuai dengan mata kuliahnya. Modul-modul ini kemudian dibagi lagi menjadi bagian-bagian yang lebih kecil, disebut dengan topik. Modul-modul dan topik-topik ini merupakan salah atu komponen penting dari sistem distance learning, karena dari sinilah para mahasiswa MTI, baik peserta distance learning maupun yang mengikuti kuliah secara langsung, serta khalayak umum dapat mendapatkan informasi mengenai materi kuliah. Untuk selanjutnya, tiga komponen di atas – mahasiswa MTI yang mengikuti perkuliahan distance learning, mahasiswa MTI yang mengikuti perkuliahan MTI secara langsung, serta khalayak umum – disebut user. Dari sini penulis menjadikan topik-topik yang disebut di atas sebagai basis pencarian data. Penulis mencantumkan kata-kata kunci yang mungkin dicari oleh user pada masing-masing topik. Jadi, ketika user melakukan permintaan data (query) maka
pada dasarnya user meminta data tentang suatu topik tertentu yang ada pada database meteri kuliah tersebut. Halaman untuk pencarian data ini dapat dilihat pada halaman lampiran pada bagian Lampiran 1 nomor 5. Disamping pencarian data mengenai topik yang merupakan fasilitas utama dari skripsi ini, penulis juga memberikan fasilitas tambahan lainnya, yaitu pencarian mata kuliah. Di sini user dapat melakukan query terhadap mata kuliah yang dikehendakinya. Semua data yang ada di atas, baik kuliah, modul, maupun topik di atas ditulis dalam XML. Untuk menampilkan datanya ke browser digunakan XSLT. User juga dapat melihat secara langsung (tanpa melakukan proses query) data-data yang ada dengan mengakses alamat halaman-halaman yang bersangkutan. Misalkan untuk melihat data seluruh mata kuliah (tampilan ada di halaman lampiran bagian 1 nomor 2), alamat yang harus diketikkan user adalah http://localhost/skripsi/kuliah.xml. Untuk
menampilkan
modul
user
harus
mengetikkan
http://localhost/skripsi/modul.xml (tampilan ada di halaman lampiran bagian 1 nomor 3). Sedang untuk melihat topik user cukup mengikuti link-link yang ada pada halaman penampilan data modul tersebut (tampilan ada di halaman lampiran bagian 1 nomor 4).
4.2
Gambaran Umum Sistem Sistem pencarian data yang akan dibangun dalam tugas akhir ini dapat dibagi
menjadi dua bagian. Pertama adalah pencarian data berdasarkan input dari user.
Kedua adalah pencarian data berdasarkan kata kunci yang dimiliki masing-masing topik.
4.2.1
Pencarian Data Berdasarkan Input dari User Pada fasilitas ini disediakan halaman untuk meng-query data berdasarkan
jenis-jenis query yang ditentukan oleh penulis. Jenis query yang disediakan adalah : a. Query mata kuliah Untuk query jenis ini ada beberapa jenis query lagi yang dapat dipilih, yaitu berdasar kode/nama mata kuliah, sks mata kuliah, jenis mata kuliah, semester dimana mata kuliah diselenggarakan, tujuan mata kuliah, serta kata kunci pada mata kuliah. Khusus untuk query tujuan dan kata kunci mata kuliah, user dapat mencari mata kuliah dengan mengisikan kata yang ingin dicari pada text field yang disediakan. b. Query topik Untuk query topik, user dapat mencari topik yang diinginkan dengan memasukkan kata atau frase yang terdapat dalam topik itu. Mesin pencari kemudian mencocokkan input dari user tersebut dengan dokumen topik yang berupa dokumen XML. Proses pencocokan ini terjadi pada setiap atribut dan elemen dari data topik, yaitu judul topik, modul dimana topik tersebut berada, serta kata kunci yang ada pada setiap topik. Bila terdapat topik yang salah satu atau beberapa atribut atau elemennya mengandung input yang dimasukkan, maka mesin akan menampilkan topik yang bersangkutan. Setelah topik yang bersangkutan ditampilkan, maka akan
terdapat link-link yang menuju materi dari topik. User dapat mengklik link-link ini untuk melihat isi topik
4.2.2
Query Topik Berdasarkan Kata Kunci Pencarian dengan sistem input dari user mengandung kelemahan, yaitu user
tidak mengetahui kata kunci-kata kunci apa saja yang terdapat dalam topik. Kata kunci dalam setiap topik berjumlah ratusan, sedang seluruh kata yang mungkin diquery user ribuan banyaknya. Jadi, peluang user untuk tidak menemukan topik yang dikehendaki adalah besar. Untuk menghindari situasi ini maka penulis membuat sebuah dokumen XML yang berfungsi untuk menampilkan seluruh kata kunci dalam setiap topik. Dengan solusi ini maka diharapkan pencarian topik menjadi lebih terarah karena user tahu kata kunci apa saja yang terdapat dalam topik. Kata kunci-kata kunci setiap topik seperti yang disebutkan di atas berada pada frame sebelah kiri dan tampilannya tidak berubah selama proses pencarian berlangsung. Hal ini berguna untuk mempermudah user selama proses pencarian. Setelah user memilih suatu kata kunci maka sistem akan menampilkan topik-topik yang bersesuaian. Selanjutnya user dapat memilih link-link pada topik tersebut untuk melihat materi dalam topik. Demikian sistem pencarian ini dijelaskan secara garis besar. Bagian lain dari sistem adalah berupa kelengkapannya, seperti halaman indeks pencarian.
4.3
Perancangan Sistem Setelah meneliti dan mempelajari dasar teori dan terutama teknologi-teknologi
yang relatif baru pada Bab II, maka penulis mula-mula merancang suatu sistem arsip data, penampilan, dan pencarian data dengan memanfaatkan empat teknologi : XML, XSLT, Java Servlet, dan Jakarta Tomcat. Penulis pada awalnya menyimpan data-data XML, stylesheet XSLT, serta Java Servlet pada web server Jakarta Tomcat. Namun, setelah penulis melakukan evaluasi terhadap aplikasi berbasis web yang tengah dilaksanak, penulis mendapatkan suatu referensi dari pembuat Jakarta Tomcat sendiri bahwa Jakarta Tomcat bukanlah suatu sistem yang dirancang sebagai web server. Memang Jakarta Tomcat menyediakan fasilitas untuk web server, namun web server ini tidaklah sehandal Apache Web Server, yang memang dirancang khusus untuk itu. Berdasar referensi tersebut di atas, maka penulis mengganti web server dari semula Jakarta Tomcat menjadi Apache Web Server. Jadi, file-file yang bersifat statis disimpan dalam Apache, sedang yang bersifat dinamis disimpan dalam Tomcat (untuk memudahkan penyebutan, mulai sekarang Jakarta Tomcat disebut Tomcat saja), seperti terlihat pada Gambar 4.1. Yang disebut ‘dinamis’ di sini adalah bagian sistem yang menerima, mengolah, dan menampilkan query pencarian data. Untuk membedakan lokasi dari Tomcat dan Apache, maka untuk Tomcat dipanggil melalui port 8080. Sedang untuk Apache port 3148. Jadi pemanggilan URL untuk Tomcat adalah http://localhost:8080/ sedang untuk Apache adalah http://localhost:3148/ atau cukup http://localhost saja. File-file yang disimpan dalam Apache misalnya adalah file-file yang menampilkan halaman query (form pencarian), indeks pencarian, file-file XML statis,
serta stylesheet-stylesheet XSLT yang berfungsi menampilkan file-file XML statis tersebut. Apache
Tomcat JAVA SERVLET
XML HTML
XML
XSLT XSLT
BROWSER
Lingkungan Statis
Lingkungan Dinamis Gambar 4.1 Diagram sistem
4.3.1
Alur Aplikasi Pada bagian ini akan dijelaskan alur aplikasi menurut fasilitas-fasilitas yang
ada. Alur aplikasi adalah skenario penggunaan fasilitas-fasilitas yang ada dalam aplikasi oleh user.
4.3.1.1 Penampilan data Untuk menampilkan data XML maka digunakan XSLT yang mentransform dokumen XML ke dalam format HTML sehingga mampu ditampilkan dengan baik oleh browser. XSLT di sini diterapkan baik pada lingkungan statis maupun dinamis.
Jadi, semua dokumen XML, baik yang statis (dibuat oleh penulis) maupun yang dinamis (dibuat oleh servlet) diproses oleh XSLT terlebih dahulu sebelum ditampilkan.
4.3.1.2 Query Data Berdasar Input dari User Untuk membuat dan menampilkan halaman query data digunakan teknologi pembuatan form dari HTML. Proses query data ini dapat digambarkan dengan Gambar 4.2, dengan penjelasan berikut. Setelah user mengisi dan mengirim querynya (1), maka data tersebut akan diterima oleh servlet. Kemudian servlet membuat sebuah dokumen XML berdasarkan input-input yang dikirimkan user tadi (2). Data-data input dalam dokumen XML ini kemudian diproses oleh XSLT (3). Data-data tersebut menjadi pedoman stylesheet XSLT untuk memanggil dokumen XML lainnya yang berada di lingkungan statis (sebagai sumber data) (4). Pada tahap ini, XSLT berfungsi untuk meng-query data. XSLT akan mencari pada sumber data, data-data mana saja yang cocok dengan data pada dokumen XML yang dibuat servlet. Setelah data pada sumber data ditemukan, maka data tersebut akan dikirimkan ke XSLT (5) untuk kemudian ditampilkan (6).
Apache
Tomcat
Form HTML
Data XML
Servlet BROWSER
XML XSLT
(1) submit
(2) create
(3) process
(6) tampil (5) send data (4) request
Gambar 4.2 Alur aplikasi untuk query data berdasar input dari user
4.3.1.3 Query Data Berdasar Kata Kunci yang Tersedia Ilustrasi untuk bagian ini digambarkan oleh Gambar 4.3, disertai penjelasan sebagai berikut. Penulis membuat dokumen XML yang mengandung kata kunci-kata kunci dari setiap modul. Dokumen ini ditransformasikan dengan XSLT untuk membentuk frame sebelah kiri dari menu pencarian (1). Ketika user memilih salah satu kata kunci, maka informasi kata kunci dikirimkan ke servlet (2). Berdasarkan input ini maka servlet membuat dokumen XML (3) yang kemudian ditransformasikan oleh XSLT (4). XSLT kemudian mencari data yang sesuai dari sumber data XML yang berada dalam lingkungan statis (5). Sumber data ini tidak lain adalah dokumen kata kunci XML yang disamping memuat kata kunci juga memuat referensi ke topik. Setelah data ditemukan (6), maka XSLT menampilkan data-data tersebut ke browser (7).
Gambar 4.3 Alur aplikasi untuk query data berdasar kata kunci
4.3.2
Struktur Data Struktur data dalam sistem dapat diklasifikasikan menjadi 4 kelompok :
struktur data kuliah, modul, katakunci, dan topik. 1. Struktur data kuliah Struktur data kuliah adalah sebagai berikut. Elemen induknya adalah elemen ‘kuliah’ yang mencakup seluruh elemen dan teks dalam dokumen XML. Elemen ini memiliki elemen anak ‘mk’. Elemen ‘mk’ memiliki satu atribut, yaitu ‘kodemk’, yang berisi kode mata kuliah yang bersangkutan, dan 6 elemen anak, yaitu ‘nama’, ‘sks’, ‘jenis’, ‘semester’, ‘tujuan’, dan ‘ktkunci’. Elemen ‘ktkunci’ berisi kata kunci yang mendeskripsikan isi dari perkuliahan yang bersangkutan. Contoh data XML untuk satu mata kuliah adalah sebagai berikut. <mk kodemk="MTI 611">
Teknologi Informasi <sks>3 <jenis>Wajib <semester>1 Teknologi informasi ditinjau dari segi perangkat keras dan perangkat lunak komputer. Arsitektur teknologi informasi. Teknologi middleware. Faktor kehandalan, skalabilitas, dan keamanan. Implementasi proses-proses bisnis. hardware software bisnis arsitektur middleware kehandalan
2. Struktur data modul Struktur data modul dalam dokumen XMLnya adalah sebagai berikut. Elemen induknya adalah elemen ‘top’ yang mencakup seluruh elemen dan teks dalam dokumennya. Elemen ‘top’ ini memiliki elemen anak yaitu ‘bahan’. Elemen ‘bahan’ merupakan elemen yang menampung seluruh modul yang ada pada suatu mata kuliah tertentu. Elemen ini memiliki satu atribut, yaitu ‘mk’ yang berisi nama mata kuliah. Di samping itu elemen ‘bahan’ juga memiliki 5 elemen anak, yaitu ‘nama’, ‘tujuan’, dan ‘sumber’. Elemen ‘nama’ berisi judul dari modul. Sedangkan elemen ‘sumber’ berisi referensi dari modul yang bersangkutan. Elemen ‘sumber’ memiliki satu atribut, yaitu ‘tipe’. Atribut ini berfungsi untuk membedakan asal referensi, apakah dari buku, web, atau yang lain. Untuk masing-masing tipe struktur datanya berbeda-beda. Contohnya untuk tipe ‘buku’, terdapat 4 elemen anak yaitu ‘judul’, ‘pengarang’, ‘penerbit’, dan ‘tahun’. Contoh data XML untuk sebuah modul adalah sebagai berikut. <modul kodemdl="M 611-1" minggu="1"> Asas Teknologi Informasi
Memberikan pemahaman dasar mengenai konsep TI, implementasinya, tool-tool yang digunakan, serta keuntungan-keuntungannya <sumber tipe="Buku"> <judul>Information Technology, Tomorrows advantage today Stephen Haag McGraw-Hill 1996
3. Struktur data topik Struktur data topik adalah sebagai berikut. Elemen induknya adalah elemen ‘top’. Elemen ini memiliki elemen anak ‘topik’ yang memiliki 3 atribut, yaitu ‘kodetpk’ yang berisi kode dari topik yang bersangkutan, atribut ‘minggu’ yang menunjukkan di minggu ke berapa topik tersebut disampaikan dalam perkuliahan, serta atribut ‘mk’ yang menunjukkan mata kuliah dari topik yang bersangkutan. Di samping itu, elemen ‘topik’ ini memiliki 5 elemen anak, yaitu ‘judul’, ‘modul’, ‘urllat’, ‘isi’, dan ‘ktkunci’. Elemen ‘judul’ berisi judul topik. Elemen ‘modul’ modul tempat topik yeng bersangkutan berada. Elemen ‘urllat’ menunjukkan lokasi file untuk latihan-latihan yang berhubungan dengan topik. Elemen ‘ktkunci’ memuat kata kunci dari topik yang mennggambarkan isi dari topik. Sedang elemen ‘isi’ berisi informasi tentang cara mengakses materi dari topik. Elemen ‘isi’ memiliki 3 atribut, yaitu ‘tipe’, ‘doctype’, dan ‘size’. Atribut ‘tipe’ menunjukkan jenis akses yang diperlukan untuk melihat isi topik. Untuk semua topik dalam skripsi ini, atribut ‘tipe’ bernilai ‘url’. Nilai atribut ini menunjukkan bahwa untuk melihat isi topik, user harus mengklik link yang tersebut dalam elemen ‘isi’. Penulis mempersiapkan
atribut ‘tipe’ ini karena mungkin pada pengembangan dari aplikasi ini ada topik yang dituliskan langsung ke dokumen XML yang bersangkutan, atau dengan cara yang lainnya. Untuk nilai ‘tipe’ berupa ‘url’, penulis mendeskripsikan file topik melalui dua atribut yang terdapat dalam elemen ‘isi’, yaitu ‘doctype’ dan ‘size’. Atribut ‘doctype’ menunjukkan jenis file topik, apakah disimpan dalam bentuk XML, MS-Word, Power Point, PDF, dan lain-lain. Sedangkan atribut ‘size’ menunjukkan besar dari file tersebut sehingga user dapat memperkirakan lamanya download yang diperlukan. Contoh dokumen XML untuk satu topik adalah sebagai berikut. <judul>Asas Teknologi Informasi <modul>Asas Teknologi Informasi definisi informasi teknologi informasi piranti piranti input output http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/asas.xml
4.4
Implementasi Sistem Pada bagian ini akan dijelaskan implementasi sistem serta contoh tampilan-
tampilan dari aplikasi.
4.4.1
Hierarki File dan Fungsi Masing-masing File Pada bagian ini akan dijelaskan hierarki file serta fungsi masing-masing file
dalam sistem pencarian data. Gambar 4.4a dan 4.4b menunjukkan keseluruhan
hierarki file. Untuk tiap bagian diberikan nomor yang masing-masing akan dibahas dalam penjelasan di bawahnya.
ROOT
images
modul 611 612 621 622 623 624 653
File-file .img
(1)
xsl Global.xsl Kuliah.xsl Modul.xsl Topikktk.xsl
(2)
Index_cari.htm Kuliah.xml Modul.xml Query.htm Topik.xml Utama.htm Mainktk.htm
(4)
(3)
Gambar 4.4a Hierarki file pada lingkungan statis (Apache)
ROOT
WEB-INF/classes
Cipta.class Ciptatpk.class Panggiltopik.class
SKRIPSI Global.xsl Query.xsl Querytpk.xsl Topikq.xsl
(6) (5) Gambar 4.4b Hierarki file pada lingkungan dinamis (Tomcat)
Penjelasan tentang kedua gambar di atas adalah sebagai berikut. (1) Direktori ‘Images’ Direktori ‘Images’ berisikan file-file berekstensi .img yang diperlukan untuk menampilkan gambar dalam setiap halaman web. (2) Direktori ‘Modul’ Direktori ‘Modul’ berisi subdirektori kode mata kuliah. Tiap subdirektori menampung file-file materi dalam berbagai format, XML, MS-Word, Power Point, PDF, dan lain-lain. (3) Direktori ‘xsl’ Direktori ‘xsl’ menampung stylesheet-stylesheet XSLT yang digunakan dalam lingkungan statis. Dokumen-dokumen XML yang ditransformasikan oleh stylesheet-stylesheet ini akan dijelaskan pada bagian berikutnya.
(4) Direktori ‘root’ Direktori ini menampung file-file HTML serta sumber-sumber data XML. Berikut tabel dokumen XML beserta stylesheet yang mentransformasikannya.
Dokumen XML Stylesheet XSLT
Kuliah.xml Modul.xml topik.xml
Kuliah.xsl Modul.xsl topikktk.xsl
Tabel 4.1 Dokumen-dokumen XML dan stylesheetnya Berikut fungsi dari masing-masing dokumen XML. a. Kuliah.xml Dokumen ini menampung data-data kuliah di MTI. Struktur data yang digunakan adalah struktur data kuliah seperti yang telah dijelaskan pada bagian sebelumnya. b. Modul.xml Dokumen ini menampung seluruh data modul yang ada di perkuliahan MTI. Struktur data yang digunakan adalah struktur data modul seperti yang telah dijelaskan pada bagian sebelumnya. c. topik.xml Dokumen ini menampung seluruh data kata kunci yang ada di perkuliahan MTI. Struktur data yang digunakan adalah struktur data topik seperti yang telah dijelaskan pada bagian sebelumnya. Dokumen inilah yang digunakan sebagai sumber data pencarian topik berdasar kata kuncinya. (5) Direktori ‘servlet’ (http://localhost:8080/skripsi/servlet) Direktori ini menampung bytecode-bytecode Java (servlet). Fungsi dari masingmasing servlet adalah sebagai berikut. a. Cipta.class Menerima input query dari user pada halaman ‘query.htm’ bagian pencarian mata kuliah. Kemudian servlet ini membuat dokumen XML yang
ditransformasikan dengan stylesheet ‘query.xsl’. Dokumen XML yang dibuat mempunyai struktur sebagai berikut. (input dari user) (jenis query)
Elemen induknya adalah elemen ‘query’. Elemen ini memiliki 2 elemen anak, yaitu elemen ‘nilai’ dan ‘tipe’. Elemen ‘nilai’ menampung input query dari user, sedang elemen ‘tipe’ menunjukkan jenis query yang dipilih. Isi dari elemen-elemen inilah yang digunakan stylesheet XSLT untuk dicocokkan dengan sumber data XML. b. Ciptatpk.class Servlet ini bertugas untuk menerima input query dari halaman ‘query.htm’ bagian pencarian topik. Selain itu ia juga bertugas untuk menerima input yang berupa kata kunci pada halaman ‘utama.htm’. Jadi, input yang diterima ada dua macam: dari form HTML dan dari URL. Berdasarkan input tersebut kemudian servlet ini membuat sebuah dokumen XML. Dokumen XML yang dibuat tersebut ditransformasikan oleh stylesheet ‘querytpk.xsl’. Dokumen ini mempunyai struktur sebagai berikut. (input dari user)
Penjelasan selanjutnya sama dengan bagian (a) di atas, bedanya adalah dokumen XML yang dibuat tidak memiliki elemen ‘tipe’. c. Panggiltopik.class
Servlet ini berfungsi untuk menerima variabel yang dikirimkan oleh link pada halaman yang menampilkan data modul. Variabel yang diterima adalah variabel ‘modul’ dan ‘mk’. Kemudian servlet membuat dokumen XML yang ditransformasikan oleh stylesheet ‘topikq.xsl’. Struktur dari dokumen XML yang dibuat adalah sebagai berikut. <modul> (isi variabel ‘modul’ pada link) <mk> (isi variabel ‘mk’ pada link)
Penjelasan selanjutnya dapat dianalogikan seperti pada bagian (a) di atas. Pada
skripsi
ini,
penulis
mengeset
base
directory
servlet
ke
tomcat\webapps\skripsi. Sedang path untuk pemanggilan di URLnya adalah ‘skripsi’. Base directory merupakan direktori faktual yang terdapat dalam tomcat. Sedangkan path merupakan direktori virtual yang dipanggil melalui URL. Jadi, ketika pada URL kita memanggil http://localhost:8080/skripsi/ servlet/Cipta pada dasarnya kita mengakses file Cipta.class yang ditempatkan dalam direktori tomcat\webapps\skripsi\WEB-INF\classes\Cipta.class. Secara otomatis Tomcat mengidentifikasikan path ‘servlet’ untuk mewakili direktori WEB-INF\classes. (6) Direktori ‘xsl’ (http://localhost:8080/skripsi/xsl) Direktori ini menampung stylesheet-stylesheet XSLT yang dinamis. Fungsi masing-masing stylesheet telah dijelaskan pada bagian sebelumnya. Untuk lebih jelasnya, fungsi masing-masing file dapat dijelaskan dengan gambar-gambar berikut ini.
BROWSER Query.htm
1 send
Cipta.class tampil 6 2 create 3 XML Query.xsl process 5 4 Send data Kuliah.xml Request data
Gambar 4.5a File-file yang berperan dalam query mata kuliah
Query.htm
1 send
BROWSER Ciptatpk.class tampil 2 6 create 3 XML Querytpk.xsl process 5 4 Send data topik.xml Request data
Gambar 4.5b File-file yang berperan dalam query topik berdasar input dari user
Topikktk.xsl 1
2 send
process
BROWSER Ciptatpk.class tampil 7 3 create 4 XML Query.xsl process
Topik.xml Send data
6
5
Request data Gambar 4.5c File-file yang berperan dalam query topik berdasar kata kunci yang tersedia
modul.xsl 1
2 send
process
BROWSER Panggiltopik.class tampil 7 3 create 4 XML topikq.xsl process
modul.xml Send data
6
5
Request data Gambar 4.5d File-file yang berperan dalam query topik yang dilakukan dari halaman modul.xml
4.4.2
Penyimpanan Materi Topik dan Fasilitas Tambahan untuk Materi Topik yang Disimpan Dalam format XML Materi-materi topik disimpan dalam format yang bermacam-macam, sesuai
dengan keinginan dosen yang menulis materinya. Ada berbagai macam format materi yang dapat dituliskan, seperti HTML, MS Word, MS Power Point, Adobe PDF, serta XML sendiri. Penulis sendiri merekomendasikan, dalam pengembangannya nanti, dosen menulis materi dalam format XML, karena dengan demikian maka materi ini akan mudah dipertukarkan dan dimodifikasi. Khusus untuk materi yang ditulis dalam format XML, penulis telah mempersiapkan fasilitas tambahan, yaitu stylesheet XSLT untuk dokumen XML yang bersangkutan. Stylesheet XSLT ini dapat dipergunakan dengan syarat dosen mengikuti struktur dokumen XML yang telah dipersiapkan penulis, yaitu sebagai berikut:
<judul> (Judul topik) (Nama Penulis) (isi dari topik) <sub> (judul sub bagian materi)
Dalam elemen ‘body’, penulis telah mempersiapkan stylesheet XSLT untuk menampilkan tabel, gambar, serta kata-kata yang penting dari materi. Untuk menampilkan gambar, maka dosen harus menyusun struktur dokumen XML sebagai berikut. (nama file gambar yang bersangkutan) (keterangan gambar)
Sedangkan untuk menampilkan tabel, maka struktur dokumen XML yang harus dibuat adalah sebagai berikut. (teks) (teks) …dst (teks) (teks) …dst … dst
Sedangkan kata-kata yang dipandang penting oleh dosen dapat dicetak tebal dengan memasukkan kata-kata yang penting tersebut dalam elemen ‘penting’ seperti contoh berikut ini. Satu-satunya vendor database di Indonesia
Stylesheet untuk memproses dokumen XML di atas adalah ‘topik.xsl’.
4.4.3
Kode-kode Penting dalam Aplikasi
Pada bagian ini dijelaskan beberapa bagian dari kode yang memegang peranan penting dalam aplikasi, yaitu membuat servlet, menerima dan mengirimkan input ke XSLT dari servlet tersebut, serta melaksanak query data dengan XSLT. Pada bagian ini contoh diambil dari query data mata kuliah, dengan sumber data file ‘kuliah.xml’.
4.4.3.1 Membuat Servlet Java merupakan bahasa yang dekat dengan internet. Maka banyak fitur Java yang digunakan untuk mendukung aplikasi berbasis internet. Salah satunya adalah servlet. Untuk membuat sebuah servlet, Java menyediakan file Java Archive yaitu ‘servlet.jar’ dalam paket Java Development Kit nya. File ‘servlet.jar’ ini sebelumnya harus disertakan dalam classpath. Pengesetan classpath telah dijelaskan dalam Bab III di atas. Setelah itu, maka kita dapat meng-import class-class dalam paket ‘servlet.jar’ tersebut dalam program Java kita. Class-class yang diimport untuk membuat sebuah servlet yang standar adalah class-class yang berada dalam direktori javax\servlet dan javax\servlet\http. Sedangkan class-class yang diperlukan untuk membuat sebuah aplikasi Java yang standar adalah class-class yang berada di dalam direktori java\io dan java\lang. Perintah untuk mengimport class-class tersebut adalah sebegai berikut.
import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.lang.*;
Perintah di atas kita letakkan di bagian paling atas dari listing program kita. Setelahnya kita dapat memulai menuliskan kode Java untuk servlet.
4.4.3.2 Menerima dan Mengirimkan input ke XSLT Setelah mengimport class-class di atas, maka kita perlu membuat sebuah obyek untuk menerima data dari user. Di sini Java menyediakan sebuah metode yang terdiri atas dua bagian, yaitu HttpServletRequest dan HttpServletResponse. HttpServletRequest merupakan sebuah metode untuk menangkap input dari user. Sedang HttpServletResponse merupakan tindakan yang dilakukan terhadap input tersebut. Kode Java untuk bagian ini adalah sebagai berikut. a. Deklarasi Obyek HttpServletRequest diset ke dalam variabel ‘req’, dan HttpServletResponse diset ke variabel ‘res’. Sehingga ketika kita ingin menangkap atau melakukan tindakan terhadap input, kita cukup menuliskan ‘req’ atau ‘res’. public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException
b. Menangkap input Untuk menangkap input digunakan kode berikut. String input, pilih, kode, nama, sks,t ujuan, jenis, semester, ktkunci; input = req.getParameter("query"); pilih = req.getParameter("pilih");
Pada kode di atas, sebelumnya dideklarasikan string input, pilih, dan lain-lain. Kemudian variabel string ‘input’ ini kita isi nilainya dengan variabel ‘query’ yang dikirimkan user. Begitu pula variabel string ‘pilih’ kita isi dengan variabel ‘pilih’ yang dikrimkan user. c. Mengirimkan input ke XSLT Seperti dijelaskan di atas, metode untuk melakukan tindakan terhadap input diset ke dalam variabel ‘res’. Bila respon kita adalah untuk mengirimkan suatu teks, maka kita perlu memanggil metode Java yang lain yang berfungsi untuk menuliskan teks. Di samping itu kita juga perlu menentukan jenis dari respon tersebut, atau jenis dari teks yang kita outputkan. Kode dari bagian ini adalah sebagai berikut. res.setContentType("text/xml"); PrintWriter out = res.getWriter();
Menurut kode di atas, maka kita mengeset jenis output kita berbentuk dokumen XML. Pada baris kedua kita melihat bahwa Java memanggil metode untuk menuliskan teks, yaitu metode ‘getWriter’. Metode ini diset dalam variabel out, jadi kita cukup menuliskan ‘out’ untuk membuat suatu teks. Dalam hal ini penulis memilih membuat dokumen XML sebagai responnya karena XSLT tidak mampu membaca variabel yang datang dari luar selain dari dokumen XML. Kode untuk membuat dokumen XMLnya adalah sebagai berikut. tujuan = input; out.println(""); out.println(""); out.println(""+tujuan+""); out.println(""+pilih+"");
Isi dari elemen-elemen yang dibuat oleh servlet di ataslah yang dapat dikirimkan ke XSLT. Langkah berikutnya adalah query yang dilakukan oleh XSLT, yang akan dijelaskan pada bagian berikut.
4.4.3.3 Query Data dengan XSLT Dalam bagian di atas telah dijelaskan bahwa respon servlet terhadap input adalah membuat dokumen XML. Dokumen XML ini ditransformasikan oleh XSLT yang dideklarasikan dalam dokumen XMLnya. Misalkan kita anggap respon di atas sebagai sebuah file dokumen XML sebagai berikut. internet tujuan
XSLT kemudian mengambil nilai dari elemen-elemen di atas untuk kemudian diset dalam suatu variabel. Kodenya adalah sebagai berikut. <xsl:variable name="n_lokal"> <xsl:value-of select="query/nilai"/> <xsl:variable name="tipe"> <xsl:value-of select="query/tipe"/>
Setelah itu XSLT memanggil sumber data, yaitu dokumen ‘kuliah.xml’, yang kemudian diset dalam variabel ‘remote’. Kodenya adalah sebagai berikut. <xsl:variable name="remote" select=" document ('http: //localhost / skripsi / kuliah.xml')/kuliah"/>
Kemudian, sebelum XSLT mulai membandingkan isi variabel ‘n_lokal’ yang menampung query dari user, XSLT mengubah query tersebut menjadi uppercase, atau huruf besar semua. Hal ini perlu dilakukan karena lingkungan XSLT merupakan lingkungan yang case sensitive. Jadi string ‘kuliah’ tidak sama dengan string ‘Kuliah’ atau ‘KULIAH’. Demikian pula isi elemen ‘tujuan’ dari dokumen sumber data harus diubah manjadi uppercase semua. Proses perubahan case ini dilakukan dengan perintah sebagai berikut. a. Mengubah isi elemen ‘tujuan’ dokumen sumber. Sebelumnya isi elemen ini diset ke variabel ‘isi’. <xsl:variable name="isi"><xsl:value-of select="tujuan"/> <xsl:variable name="upperisi" select="translate($isi, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/>
b. Mengubah case variabel ‘n_lokal” <xsl:variable name="uppertujuan" select="translate($n_lokal, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/>
Setelah semua string yang akan dibandingkan diubah menjadi uppercase, maka proses perbandingan siap dilakukan. Prosesnya dilakukan dengan kode sebagai berikut. <xsl:when test="contains($upperisi,$uppertujuan)"> ………menampilkan data-data yang sesuai
Fungsi ‘contains’ di atas membandingkan apakah isi variabel ‘upperisi’ mengandung isi variabel ‘uppertujuan’. Bila ya, maka data-data yang sesuai akan ditampilkan. Bila tidak, maka elemen ‘xsl:when’ ini diabaikan. Demikian pembahasan kode-kode yang penting dari aplikasi ini, yang dipandang cukup oleh penulis dalam menjelaskan secara garis besar algoritma yang digunakan penulis untuk membuat aplikasi ini. Keterangan mengenai bagian lain dari kode-kode yang digunakan dapat dilihat pada bagian Lampiran 4.5
Hasil Tampilan Hasil tampilan dari aplikasi ini dapat dilihat pada bagian Lampiran.
4.6
Kelebihan dan Kekurangan Sistem Bahasa XML dapat dengan mudah diproses, dipertukarkan, dan ditampilkan
oleh komputer. Bahasa XML juga sederhana, mudah dibaca dan dipelajari 14. Tooltool yang berkaitan dengan XMLpun mudah didapat, banyak yang gratis, dengan dukungan yang luas dari berbagai vendor di seluruh dunia, termasuk didukung oleh W3C. Karena aplikasi ini bersifat penelitian, maka tentu masih banyak kekurangan yang ada di dalamnya. Salah satunya yang paling menonjol adalah banyaknya redundansi data pada sumber-sumber data XML yang ada, sehingga menyulitkan proses pengembangan lebih lanjut, bila hanya mengandalkan struktur data pada skripsi ini. Sehingga, untuk data-data dengan relasi kompleks dan dengan ukuran yang besar, maka penerapan filesystems XML tidak tepat dan tidak efektif.
Namun, ini tidak mengurangi aspek scalability yang ingin ditunjukkan penulis pada implementasi pembuatan situs berbasis XML. Dapat dilihat pada bagian-bagian sebelumnya bahwa dibandingkan dengan HTML, XML unggul karena ia dapat memisahkan content dan style dari suatu halaman web, sehingga memudahkan pengembangan situs lebih lanjut. Kekurangan dari aspek redundansi data dapat diatasi dengan menerapkan XML Database atau Sistem Konversi seperti yang telah dijelaskan pada Bab II. Kekurangan lainnya adalah belum adanya fasilitas untuk memodifikasi data secara otomatis. Modifikasi data harus dilakukan secara manual dengan memodifikasi langsung dokumen-dokumen XMLnya. Sedangkan kelebihan utama dari aplikasi ini adalah query data dilakukan secara client side, di komputer client, sehingga tidak memberatkan kerja server, dengan syarat user menggunakan browser-browser yang mendukung teknologi XML dan XSLT. Proses ini sangat bermanfaat dalam suatu sistem data publishing berskala besar. Bayangkan bila sistem menggunakan sebuah RDBMS yang dalam waktu yang bersamaan diakses oleh ribuan user. Untuk dengan baik dapat melayani requestrequest dari user tersebut sistem harus memiliki hardware yang sangat tangguh, yang sering memakan biaya yang amat mahal. XML dan XSLT dapat membantu kinerja server dengan cara melakukan query di client, dengan terlebih dahulu mendownload file-file yang ingin diquerykan. Perbedaan proses query ini dapat dijelaskan pada Gambar 4.5 berikut.
CLIENT BROWSER display
SERVER request
SERVLET respond
PARSER
Data
QUERY
XML
Data XML
XSLT
download XSLT Gambar 4.5 Proses query yang dilakukan secara client side
BAB V KESIMPULAN DAN SARAN
Dari proses penelitian, perancangan, serta implementasi dari sistem dalam skripsi ini, maka penulis membuat beberapa kesimpulan dan saran sebagai berikut.
5.1 Kesimpulan 1. Penyimpanan data dalam bentuk filesystems XML tepat dan praktis digunakan untuk data-data yang tidak terlalu kompleks relasinya, dan tidak terlalu besar ukurannya. 2. Aplikasi dalam skripsi ini memiliki keunggulan utama yaitu query data dilakukan di sisi client, sehingga tidak memberatkan kerja server, dengan catatan sumber data harus dirancang seefisien mungkin. 3. XML mampu mendukung terciptanya suatu gudang data yang lengkap untuk suatu sistem, karena XML mampu melakukan pertukaran data dari berbagai platform, baik hardware maupun software. Dengan demikian Sistem Distance Learning yang dikembangkan dengan XML akan mampu menghadirkan informasi yang lengkap bagi para siswanya, misalnya referensi-referensi materi yang diperoleh melalui pertukaran data dari berbagai sumber. 4. Sistem Pencarian Data dengan menampilkan kata kunci-kata kunci dari data yang ingin dicari memudahkan user untuk mencari data.
5. Kombinasi antara XML dan XSLT mampu menghasilkan tampilan halaman web yang baik. Semua yang dapat dilakukan oleh HTML dapat dilakukan oleh XML dibantu dengan XSLT.
5.2. Saran 1. Agar aplikasi ini dapat diterapkan pada Sistem Distance Learning yang sesungguhnya maka perlu dibuat salah satu dari dua cara untuk mengatasi kelemahan aplikasi dari segi redundansi data : implementasi Database XML atau Sistem Konversi dari DBMS ke XML 2. Perlu dibuat suatu fasilitas modifikasi data secara otomatis untuk memudahkan operator sistem. Fasilitas modifikasi data ini dapat tersambung ke DBMS untuk penerapan Sistem Konversi atau langsung ke Database XML. 3. Skripsi ini perlu dikembangkan lebih lanjut demi kepentingan kepekaan Jurusan Teknik Elektro UGM terhadap perkembangan teknologi yang sedang berlangsung, khususnya dalam bidang pengembangan aplikasi berbasis internet. Selain itu, dengan menerapkan dan mengembangkan aplikasi berbasis XML maka kita telah bergabung dalam jutaan pengembang lainnya di seluruh dunia dalam misi mewujudkan suatu sistem yang universal, non vendor specific, diterima dalam berbagai platform, di era pertukaran informasi yang tanpa batas.
DAFTAR PUSTAKA
1. http://www.xml.com/pub/a/2000/07/26/xslt/xsltstyle.html 2. Quin, Liam, Open Source Database Toolkit: Resource and Techniques for Improved Development, Wiley Computer Publishing, 2000, halaman 1-34 3. http://www.malt.com/index.cfm?fuseaction=articles.article1 4. Piez, Wendel , Converting HTML to XML,http://www.idealliance.org/ papers/xml2001/papers/html/03-03-05.html 5. http://www.extropia.com/tutorials/xml/history.html 6. Roger L. Costello, XML Technologies Course, http://www.xfront.com/xmlschema.html, 2000 7. http://www.textuality.com/px/talk/show/s-22.html 8. XML By Example 9. http://msdn.microsoft.com/webservices/building/xmldevelopment/msxml/def ault.aspx?pull=/library/en-us/dnmsxml/html/xmlparser.asp 10. http://www.xmlsoftware.com/browsers.html 11. http://www.w3.org/TR/xslt 12. http:www.w3.org/TR/xslt20 13. Deitel, H.M dan Deitel, P.J, Java How To Program, Prentice Hall, 1998 14. Myers, Tom dan Nakhimovsky, Alexander, Professional Java XML Programming with Servlets and JSP, Wrox Press, 1999, halaman 1-319
LAMPIRAN
Lampiran 1 : Hasil Tampilan 1. Halaman index_cari Halaman ini menampilkan keseluruhan fasilitas pada sistem. Juga terdapat penjelasan mengenai fasilitas tersebut, serta tips-tips yang memudahkan user dalam menggunakan aplikasi ini.
2. Halaman kuliah.xml Halaman ini dapat diakses dengan mengklik link Index Mata Kuliah pada index_cari.htm atau pada link Mata Kuliah pada halaman-halaman yang lain.
Halaman kuliah.xml
3. Halaman modul.xml Halaman ini dapat diakses dengan mengklik link Index Modul pada index_cari.htm atau pada link Modul pada halaman-halaman yang lain.
Halaman modul.xml
4. Halaman topik dari modul Asas Teknologi Informasi untuk mata kuliah Teknologi Informasi Halaman ini dapat diakses dengan mengklik link pada modul yang bersangkutan. Untuk halaman-halaman XML lainnya dari topik tidak ditampilkan karena dapat diwakili oleh tampilan berikut.
Halaman topik-topik dari modul ‘Asas Teknologi Informasi’
5. Halaman query.htm Halaman ini dapat diakses dengan mengklik link Search Centre pada index_cari.htm atau link Search untuk halaman-halaman yang lain.
Halaman query.htm
6. Halaman utama.htm Halaman ini dapat diakses dengan mengklik link Index Kata Kunci pada index_cari dan halaman-halaman yang lain.
Halaman utama..htm
Halaman utama..htm pada query kata kunci ‘Computer-Aided Software Engineering
Halaman utama.htm pada menu penampilan isi materi menurut topiknya. Tampilan ini terjadi setelah user mengklik topik berdasar kata kunci yang bersangkutan
Halaman utama.htm pada menu penampilan isi materi yang berformat XML.
Lampiran 1 : Kode Program File ‘index_cari.htm’ Index Pencarian Data <script language="JavaScript"> function MM_findObj(n, d) { //v4.0 var p,i,x; if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) { d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);} if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i |
| |
| | |
| Fasilitas | Keterangan | Tips | Index Mata Kuliah | Menampilkan seluruh mata kuliah yang diselenggarakan MTI | | Index Modul | Menampilkan seluruh modul yang ada dalam database MTI | | Search Centre | Merupakan fasilitas untuk mencari mata kuliah, dan topik sesuai dengan query yang anda masukkan | |
Index kata kunci | Menampilkan seluruh kata kunci yang berkaitan dengan topik yang anda cari | | | |
| © Aditya BS Siregar Team Distance Learning MTI 2002 | |
Masukkan query yang dikehendaki melalui jenis-jenis query yang tersedia. Untuk query tujuan, kata kunci, dan modul anda dapat memasukkan sendiri di field yang telah disediakan. Masukkan satu kata untuk mendapatkan hasil yang lebih banyak. [close] Di sini anda dapat melihat kata-kata kunci apa saja yang ada dalam topik-topik mata kuliah di MTI. Pilih salah satu kata kunci tersebut untuk melihat modul-modul yang mengandung kata kunci yang dikehendaki. Kemudian klik pada topik hasil query anda untuk melihat isi topik yang bersangkutan[close]
File ‘mainktk.htm’
Untitled Document <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> | | |
| | |
| Silahkan mencari modul yang dikehendaki menurut kata kunci © Aditya BS Siregar Team Distance Learning Project 2002 | |
| | |
| | |
File ‘query.htm’
Form Query <script language="JavaScript"> //--> | | |
| | |
| | |
| Pencarian Mata Kuliah | |
| | |
| | |
| | |
| Pencarian Topik | |
|
| |
File ‘utama.htm’ Untitled Document <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> <noframes>
File ‘kuliah.xml’ <mk kodemk="MTI 611"> Teknologi Informasi <sks>3 <jenis>Wajib <semester>1
Teknologi informasi ditinjau dari segi perangkat keras dan perangkat lunak komputer. Arsitektur teknologi informasi. Teknologi middleware. Faktor kehandalan, skalabilitas, dan keamanan. Implementasi proses-proses bisnis. hardware software bisnis arsitektur middleware kehandalan <mk kodemk="MTI 612"> Sistem Informatika <sks>3 <jenis>Wajib <semester>1 Sistem informatika sebagai himpunan manusia, mesin dan prosedur, serta pelembagaannya dalam masyarakat. Ragam dan arsitektur sistem informatika. Strategi dan politik informasi. Perilaku dan budaya informasi. Proses pengelolaan informasi untuk berbagai keperluan. software <mk kodemk="MTI 613"> Ekonomi dan Bisnis Informasi <sks>2 <jenis>Wajib <semester>1 Bisnis sebagai suatu sistem yang memanfaatkan teknologi informasi. Ekonomi informasi. Teknologi informasi dan keuntungan strategis. Formulasi strategi teknologi dan manajemen informasi. Sistem informasi dalam bisnis. <mk kodemk="MTI 614"> Pengolahan dan Analisis Data <sks>3 <jenis>Wajib <semester>1 Analisis informasi dalam data. Ragam pengolahan data statistik univariat dan multivariat. Kajian terperinci atas tool(s) yang digunakan. Studi kasus dengan bantuan piranti lunak statistis. <mk kodemk="MTI 621"> Rekayasa Sistem Informasi <sks>3 <jenis>Wajib <semester>2 Asas-asas kerekayasaan. Rekayasa komponen-komponen sistem informasi. Berbagai pendekatan dalam proses rekayasa. Optimasi unjuk kerja sistem informatik. Studi kasus. <mk kodemk="MTI 622"> Sistem Basis Data <sks>3 <jenis>Wajib <semester>2 Pemodelan data. Model E-R dan relasional. Perancangan basis data: proses normalisasi. Bahasa SQL. Pengenalan basis data terdistribusi. Studi kasus dengan bantuan paket DBMS yang disediakan.
<mk kodemk="MTI 623"> Perilaku Organisasional <sks>2 <jenis>Wajib <semester>2 Pengenalan terhadap perilaku manajemen. Individu: kemampuan, sikap, dan kepuasan kerja, motivasi. Kelompok: perilaku kelompok, komunikasi, pengambilan dan keputusan kelompok. Sistem organisasi: struktur, sumber daya manusia, tekanan kerja. Dinamika organisasi: Perubahan dan perkembangan organisasi, resistansi untuk berubah, masalah implementasi. <mk kodemk="MTI 624"> Teknologi Informasi dan Masyarakat <sks>2 <jenis>Wajib <semester>2 Hubungan antara kebutuhan dasar manusia, kelembagaan sosial dan teknologi. Dimensi etika dan moral yang timbul dalam penerapan teknologi informasi dalam lingkungan kerja dan masyarakat. Teknologi informasi sebagai komponen penting dalam masyarakat madani modern. Tanggung jawab profesi. <mk kodemk="MTI 631"> Pengambilan Keputusan Dengan Dukungan Komputer <sks>3 <jenis>Wajib <semester>3 Informasi dan keputusan. Ragam keputusan. Tahap-tahap pengambilan keputusan. Tool(s) untuk pengambilan keputusan. Dukungan komputer dalam pengambilan keputusan. Studi kasus dengan bantuan paket-paket yang telah tersedia. <mk kodemk="MTI 699"> Thesis <sks>6 <jenis>Wajib <semester>4 Penelitian dan atau pengkajian kasus tentang permasalahan yang ada kaitannya dengan kegiatan pengelolaan teknologi informasi, baik pada tingkat manajerial, perancangan maupun implementasinya. Pengungkapan alternatif penyelesaian pada kasus implementasi teknologi informasi di lingkungan kerja (perusahaan, instansi pemerintah, lembaga perencanaan, dan lain-lain) merupakan porsi utama dari topik penelitian. <mk kodemk="MTI 651"> Manajemen Data <sks>3 <jenis>Pilihan Ragam data. Penyimpanan, organisasi dan manipulasi data. Penggalian data dalam sebuah sistem basis data. Gudang data. Integrasi informasi dari berbagai sumber. Studi kasus.
<mk kodemk="MTI 652"> Jaringan Informasi <sks>3 <jenis>Pilihan Konsep jaringan komputer. Sistem komputer terdistribusi. Internet, protokol akses, dan berbagai aplikasinya. Aspek interoperabilitas. WWW sebagai sumber dan gudang informasi. Teknik representasi informasi.Penggalian berbagai ragam informasi. Aspek keamanan jaringan. <mk kodemk="MTI 653"> Riset Operasi <sks>3 <jenis>Pilihan Pemodelan. Teori antrian. Optimisasi: model linear dan non-linear. Tools yang digunakan. Studi kasus <mk kodemk="MTI 654"> Aplikasi-Aplikasi Kontemporer Berbasis Teknologi Informasi <sks>3 <jenis>Pilihan Paradigma baru berbasis informasi. Layanan (service) sebagai komoditi. Ekonomi pelanggan (customer economy). Model B2B dan B2C. Internet sebagai lingkungan komputasi. Berbagai aplikasi: e-commerce, e-learning, e-banking, e-government, dan lain-lain. Aspek-aspek implementasi. <mk kodemk="MTI 655"> Interaksi Manusia Dan Sistem Komputer <sks>3 <jenis>Pilihan Konsep interaksi manusia dan komputer. Model-model interaksi. Antarmuka manusia dan komputer. Perancangan antar muka. Multimedia. Penggunaan tools untuk merancang dan mengimplementasikan antarmuka manusia dan komputer. <mk kodemk="MTI 659"> Topik-Topik Khusus <sks>3 <jenis>Pilihan Pembahasan tentang implementasi teknologi informasi dalam bidang-bidang tertentu. Isu-isu ekonomi, sosial, dan budaya sebagai ekses dari penerapan teknologi informasi. Trend teknologi informasi dan pengaruhnya terhadap lingkungannya. Beberapa contoh bidang bahasan di antaranya: a) Teknologi informasi dalam pelayanan publik b) Teknologi informasi dalam proses produksi c) Teknologi informasi dalam perencanaan daerah d) Teknologi informasi dalam pengelolaan lingkungan
File ‘modul.xml’ <modul kodemdl="M 611-1" minggu="1" mk="Teknologi Informasi"> Asas Teknologi Informasi Memberikan pemahaman dasar mengenai konsep TI, implementasinya, tool-tool yang digunakan, serta keuntungan-keuntungannya <sumber tipe="Buku"> <judul>Information Technology, Tomorrows advantage today Stephen Haag McGraw-Hill 1996 <modul kodemdl="M 611-2" minggu="1" mk="Teknologi Informasi"> Perangkat Lunak Memberikan pemahaman mengenai fungsi, kedudukan dan peranan perangkat lunak dalam sistem TI <sumber tipe=""> <modul kodemdl="M 611-3" minggu="2" mk="Teknologi Informasi"> Input Output Memberikan gambaran umum aliran sistem komputer yang terdiri atas input-processing-output <sumber tipe=""> <modul kodemdl="M 611-4" minggu="3,4,5,6" mk="Teknologi Informasi"> Memori dan Piranti Penyimpan Memberikan gambaran tentang fungsi dan cara kerja memori dan piranti penyimpan dalam sistem informasi <sumber tipe=""> http://localhost/skripsi/topik/topik611.xml <modul kodemdl="M 611-5" minggu="7" mk="Teknologi Informasi"> Database Memberikan gambaran tentang pentingnya penyimpanan data dilihat dari aspek logicnya <sumber tipe=""> http://localhost/skripsi/topik/topik611.xml <modul kodemdl="M 611-6" minggu="8,9" mk="Teknologi Informasi"> Communication and Connectivity Memberikan pemahaman tentang konsep jaringan dan implementasinya dalam teknologi informasi. <sumber tipe="">
<modul kodemdl="M 611-7" minggu="10" mk="Teknologi Informasi"> Information Technology in Business Menjelaskan implementasi IT dalam bisnis sebagai business tool, dan bukan semata sebagai technology tool <sumber tipe=""> <modul kodemdl="M 611-8" minggu="11" mk="Teknologi Informasi"> Transaction Processing System Memberikan gambaran tentang implementasi TI dalam manajemen bisnis <sumber tipe=""> <modul kodemdl="M 611-9" minggu="12" mk="Teknologi Informasi"> Reaching The World Through IT Memberikan gambaran tentang bagaimana kita dapat saling berbagi informasi dengan berbagai macam budaya dan pengetahuan di seluruh dunia menggunakan TI <sumber tipe=""> <modul kodemdl="M 612-1" minggu="1,2" mk="Sistem Informatika"> Gambaran Umum Sistem Informasi dan Teknologi Informasi Memberikan gambaran umum tentang sistem informasi, mencakup definisi, contoh, sifat, kemampuan, model, dan lain-lain <sumber tipe=""> <modul kodemdl="M 612-2" minggu="3,4" mk="Sistem Informatika"> Konsep Dasar Sistem Informasi Menjelaskan konsep-konsep, istilah-istilah, serta peranan dasar informasi <sumber tipe=""> <modul kodemdl="M 612-3" minggu="5,6" mk="Sistem Informatika"> Komponen Sistem Informasi Menjelaskan komponen-komponen dan Arsitektur Sistem Informasi <sumber tipe=""> <modul kodemdl="M 612-4" minggu="7,8" mk="Sistem Informatika"> Ragam Sistem Informasi Menjelaskan jenis-jenis Sistem Informasi <sumber tipe=""> <modul kodemdl="M 612-5" minggu="9" mk="Sistem Informatika"> Pengembangan Sistem Informasi Membahas cara-cara dan tahapan pengembagan Sistem Informasi <sumber tipe=""> <modul kodemdl="M 612-6" minggu="10,11" mk="Sistem Informatika"> Pengadaan Sistem Informasi Membahas cara-cara untuk menerapkan Sistem Informasi
<sumber tipe=""> <modul kodemdl="M 621-1" minggu="1" mk="Rekayasa Sistem Informasi"> Introduction Membahas definisi Rekayasa Sistem Informasi dan keperluannya <sumber tipe=""> <modul kodemdl="M 621-2" minggu="2,3,4,5,6,7,8,9" mk="Rekayasa Sistem Informasi"> Assignment Penugasan mahasiswa dalam hal-hal menyangkut Rekayasa SI <sumber tipe=""> <modul kodemdl="M 621-3" minggu="2,3" mk="Rekayasa Sistem Informasi"> Software Project Management Menjelaskan urgensi memanage suatu proyek pembuatan software <sumber tipe=""> <modul kodemdl="M 621-4" minggu="4,5" mk="Rekayasa Sistem Informasi"> Object Oriented Development Process Menjelaskan cara-cara mengembangkan suatu software yang ditulis dengan bahasa Pemrograman Berorientasi Obyek <sumber tipe=""> <modul kodemdl="M 622-1" minggu="1,2" mk="Sistem Basis Data"> Introduction and E-R Model Menjelaskan definisi-definisi dan istilah-istilah dasar dari Sistem Basis Data serta Model E-R <sumber tipe=""> <modul kodemdl="M 622-2" minggu="3" mk="Sistem Basis Data"> Relational Model and SQL Menjelaskan konsep pemodelan database secara relational dan contoh query data menggunakan SQL (Structured Query Language) <sumber tipe=""> <modul kodemdl="M 622-3" minggu="4" mk="Sistem Basis Data"> Other Relational Language Menjelaskan bahasa-bahasa query selain SQL <sumber tipe=""> <modul kodemdl="M 622-4" minggu="5,6" mk="Sistem Basis Data"> Integrity and Security Menjelaskan syarat-syarat agar suatu database dapat dikatakan aman dan terintegrasi dengan baik <sumber tipe="">
<modul kodemdl="M 622-5" minggu="7,8" mk="Sistem Basis Data"> Relational Database Design Membahas perancangan suatu relational database <sumber tipe=""> <modul kodemdl="M 622-6" minggu="9,10" mk="Sistem Basis Data"> Object Oriented Database Menjelaskan konsep dan penerapan database berorientasi objek, keunggulan dan kelemahannya <sumber tipe=""> <modul kodemdl="M 622-7" minggu="11,12" mk="Sistem Basis Data"> Object Relational Database Menjelaskan konsep dan penerapan database relational berorientasi objek, keunggulan dan kelemahannya <sumber tipe=""> <modul kodemdl="M 623-1" minggu="1" mk="Perilaku Organisasional"> Pendahuluan Penjelasan mata kuliah, silabus, penilaian, dan konsep dasar perilaku organisasional <sumber tipe=""> <modul kodemdl="M 623-2" minggu="2" mk="Perilaku Organisasional"> Organizational Culture Membahas sifat, fungsi dan konsep dasar budaya organisasi dan pengaruhnya terhadap performa organisasi <sumber tipe=""> <modul kodemdl="M 623-3" minggu="3,4" mk="Perilaku Organisasional"> Perbedaan Individu Menjelaskan pengaruh perbedaan individu dalam perilaku organisasi. Bagaimana kita memahami perbedaan yang ada untuk menciptakan sinergi yang baik <sumber tipe=""> <modul kodemdl="M 623-4" minggu="5,6" mk="Perilaku Organisasional"> Motivasi dan Reward Menjelaskan fungsi dan peranan motivasi dan imbalan dalam peningkatan performa seseorang <sumber tipe=""> <modul kodemdl="M 623-5" minggu="7,8" mk="Perilaku Organisasional"> Dinamika Kelompok, Pembentukan Tim, dan Leadership Menjelaskan perilaku kelompok dan teamwork, perilaku antar kelompok, negosiasi, pembentukan tim, serta membahas kepemimpinan yang baik <sumber tipe=""> <modul kodemdl="M 623-6" minggu="9,10" mk="Perilaku Organisasional">
Organization Structure Menjelaskan fungsi dan peranan struktur organisasi <sumber tipe=""> <modul kodemdl="M 623-7" minggu="11,12" mk="Perilaku Organisasional"> Job Design, Komunikasi dan Pengambilan Keputusan yang Efektif Membahas pentingnya komunikasi dan pengambilan keputusan yang efektif dalam organisasi dan cara-caranya, serta perencanaan suatu penugasan <sumber tipe=""> <modul kodemdl="M 624-1" minggu="1" mk="Teknologi Informasi dan Masyarakat"> Budaya Menjelaskan konsep dasar dan komponen-komponen budaya <sumber tipe=""> <modul kodemdl="M 624-2" minggu="2,3" mk="Teknologi Informasi dan Masyarakat"> Emotional Intelligence Menjelaskan komponen-komponen Emotional Quotient (EQ) <sumber tipe=""> <modul kodemdl="M 624-3" minggu="4" mk="Teknologi Informasi dan Masyarakat"> Manajemen Perubahan Menjelaskan bagaimana kira tanggap dan responsif terhadap perubahab <sumber tipe=""> <modul kodemdl="M 624-4" minggu="5" mk="Teknologi Informasi dan Masyarakat"> Negosiasi Menjelaskan konsep, urgensi, dan cara negosiasi yang baik <sumber tipe=""> <modul kodemdl="M 624-5" minggu="6" mk="Teknologi Informasi dan Masyarakat"> Power Menjelaskan jenis dan konsep kekuasaan <sumber tipe=""> <modul kodemdl="M 624-7" minggu="7,8" mk="Teknologi Informasi dan Masyarakat"> Stratifikasi Sosial Menjelaskan penyebab terjadinya stratifikasi sosial <sumber tipe=""> http://localhost/skripsi/topik/topik624.xml <modul kodemdl="M 653-1" minggu="1,2,3" mk="Jaringan Informasi"> Model Referensi OSI Menjelaskan tentang model jaringan referensi OSI <sumber tipe="">
<modul kodemdl="M 653-1" minggu="4,5" mk="Jaringan Informasi"> Topologi Jaringan Menjelaskan tipe-tipe jaringan <sumber tipe=""> <modul kodemdl="M 653-1" minggu="6,7,8" mk="Jaringan Informasi"> Ethernet dan IEEE 802.3 Menjelaskan protokol ethernet dan IEEE 802.3 <sumber tipe="">
File ‘topik.xml’ <judul>Pendahuluan <modul>Asas Teknologi Informasi keuntungan asas teknologi informasi http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/611/Pendahuluan.ppt <judul>Pendahuluan (2) <modul>Asas Teknologi Informasi membangun sistem TI sistem TI karir http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/611/Pendahuluan2.ppt <judul>Asas Teknologi Informasi <modul>Asas Teknologi Informasi definisi informasi teknologi informasi piranti piranti input output http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/asas.xml
<judul>Pendahuluan <modul>Perangkat Lunak fungsi kedudukan http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/perangkat_lunak.xml <judul>Jenis-jenis Perangkat Lunak <modul>Perangkat Lunak perangkat lunak encarta spreadsheet word processing graphics video conferencing http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/Jenis.xml <modul>Perangkat Lunak 1st generation language layer application education http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/2-Software.ppt <judul>Input Output <modul>Input Output input output input output processing control http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/3InputOutput.ppt <judul>Tren Input Output <modul>Input Output logic unit logic convert
storage trend http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/IOTrend.doc <judul>Pendahuluan (Sejarah CPU) <modul>Memori dan Piranti Penyimpan location hard disk penyimpan memori http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/4CPU_internal_memory.ppt <judul>Cara Kerja CPU <modul>Memori dan Piranti Penyimpan akses karakteristik CPU http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/carakerja_CPU.ppt <judul>Pengukuran CPU <modul>Memori dan Piranti Penyimpan RAM ROM capacity kapasitas http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/pengukuranCPU.ppt <judul>Overview <modul>Memori dan Piranti Penyimpan sequential random associative http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/CPUOverview.ppt <judul>Piranti Penyimpan <modul>Memori dan Piranti Penyimpan
http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/7-STORAGE%20DEVICES.ppt <judul>Sistem Bus <modul>Memori dan Piranti Penyimpan direct I/O http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/SISTEM%20BUS.doc <judul>Pendahuluan <modul>Database database physical storage logical view conventional files traditional file environment http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/8-Databases.ppt <judul>Database Management System (DBMS) <modul>Database file processing data redundancy security data sharing dbms http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/dbms.ppt <judul>Relational DBMS <modul>Database data administration panning development http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/rdbms.ppt <judul>Communication and Connectivity <modul>Communication and Connectivity
hybrid terminal distributed network centralized network type private public MAN WAN LAN client server client star bus ring mesh token FDDI fiber link transmision media cable coaxial optical microwave satellite switches multiplexer cluster bridge router gateway internetworking http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/9-com_and_conn.ppt <judul>Information Technology in Business <modul>Information Technology in Business bisnis revenue organization http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/12-ITBisnis.ppt <judul>Informasi dalam manajemen <modul>Information Technology in Business process planning staffing
granularity http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/information.ppt <judul>Transaction Processing System <modul>Transaction Processing System management decision support system information executive http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/12-Transaction%20Processing%20System.ppt <judul>Reaching The World Through IT <modul>Reaching The World Through IT global business world bank foreign market radio network WRN http://localhost/skripsi/latihan/lat12.php http://localhost/skripsi/modul/611/13-Reach_World_IT.ppt <judul>Pendahuluan <modul>Gambaran Umum Sistem Informasi dan Teknologi Informasi CBIS telemetri EDI electronic data interchange http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SIIntro.ppt <judul>Penerapan SI dalam bisnis <modul>Gambaran Umum Sistem Informasi dan Teknologi Informasi E-Government komputasi numerik otomatisasi sosioteknologi proses bisnis http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SIBisnis.ppt
<judul>Konsep Dasar Sistem <modul>Konsep Dasar Sistem Informasi sistem informasi aset manajemen internal eksternal arus informasi data citra audio video siklus pengetahuan knowledge hierarki record elemen http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SI-2-2.ppt <judul>Konsep Dasar Informasi <modul>Konsep Dasar Sistem Informasi karakteristik masukan proses keluaran umpan balik batas boundary subsistem supersistem antarmuka penapisan pengkodean pendekodean pendeteksian penyanggatan pengamanan pengikhtisaran abstrak klasifikasi http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SI-2.ppt <judul>Komponen Sistem Informasi
<modul>Komponen Sistem Informasi komponen sistem informasi basis data prosedur jaringan pribadi http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SI-3.ppt <judul>Arsitektur Informasi <modul>Konsep Dasar Sistem Informasi private network arsitektur sentralisasi desentralisasi http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SIArsitektur.ppt <judul>Tambahan <modul>Konsep Dasar Sistem Informasi server end user euc http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SITambahan.ppt <judul>Ragam Sistem Informasi (1) <modul>Ragam Sistem Informasi ragam sistem informasi klasifikasi sistem informasi level organisasi akuntansi manufaktur keuangan http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/si-4.ppt <judul>Ragam Sistem Informasi (2) <modul>Ragam Sistem Informasi pemasaran SDM CIM produksi Transaction Processing System
TPS http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/si-4-2.ppt <judul>Ragam Sistem Informasi (3) <modul>Ragam Sistem Informasi Management Infromation System MIS Office Automation System OAS batch online hibrid http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/si-4-3.ppt <judul>Sistem Informasi Manajemen (SIM) <modul>Ragam Sistem Informasi Decision Support System DSS Executive Infromation System EIS ISS Group Support System GSS Intelligent Support System http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/SIM.ppt <judul>Pengembangan Sistem Informasi <modul>Pengembangan Sistem Informasi pengembangan sistem informasi System Development Life Cycle analisis sistem informasi disain sistem informasi implementasi sistem informasi studi kelayakan implementasi sistem informasi pengujian http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/si-5.ppt <judul>Pengadaan Sistem Informasi
<modul>Pengadaan Sistem Informasi prototipe SDLC RAD Rapid Application Development Computer-Aided Software Engineering Computer-Assisted Software Engineering CASE outsourcing cara menerapkan sistem informasi http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/si-6-1.ppt <judul>Data Warehouse, Data Mart, OLAP, dan Data Mining <modul>Pengadaan Sistem Informasi Data Warehouse Mart OLAP Mining OLTP SmartMart IBM Visual Warehouse PowerMart Informatica http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/612/si-6-2.ppt <judul>Pendahuluan <modul>Introduction Information System Engineering human paradigm life cycle prototyping modelling generic http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/621/intro.ppt <judul>Assignment <modul>Assignment target evaluation presentation documentation http://localhost/skripsi/latihan/lat6111-01.php
http://localhost/skripsi/modul/621/first%20presentation.ppt <judul>Evaluation <modul>Assignment rule schedule software http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/621/evaluation.ppt <judul>Project Management <modul>Software Project Management software project management metrics estimation risk analysis resource allocation controlled budget size function oriented maintainability usability cost decomposition task scheduling http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/621/project_mngmt.ppt <judul>Object Oriented Development Process (1) <modul>Object Oriented Development Process object oriented development process OODP Waterfall Incremental Spiral use case discrete signature requirement gathering http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/621/reqanalysis.ppt <judul>Object Oriented Development Process (2) <modul>Object Oriented Development Process
post processing partitioning analysis business rule data dictionary model scenario decision table sequence diagram http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/621/reqgathering.ppt <judul>Introduction <modul>Introduction and E-R Model Purpose Database System Data Model Data Definition Language Transaction Management Administrator Users file Structure physical logical abstraction http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch1.ppt <judul>E-R Model <modul>Introduction and E-R Model entity relationship relational model semantic constraint mapping attribute set composite cardinality one to many many to many one to one role http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch2.ppt <judul>SQL <modul>Introduction and E-R Model
primary ternary binary non-binary weak entitiy specialization generalization aggregation decision symbols UML multivalued redundancy http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch4.ppt <judul>Relational Model <modul>Relational Model and SQL structure relational database model algebra calculus tuple domain extended view attribute relation schema instance E-R Diagram key superkey candidate key query language select project union set difference cartesian product composition rename set intersection natural join division assignment aggregate outer join null value deletion predicate formula Basic Operations Aggregate Functions
Nested Subquery Derived Relations Data Definition Language Embedded SQL ODBC JDBC where clause from string duplicate multiset min count group having comparison with conditional transaction char varchar int smallint numeric real double precision float date time timestamp create table construct integrity alter cursor dynamic catalog metadata two tier three tier http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch3.ppt <judul>QBE <modul>Other Relational Language relational language query by example QBE datalog Basic Structure One Relation query Several Relations query Condition Box Relation Ordering Display Tuples Aggregate Operations
Modification negation avg max http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch5.ppt <judul>Datalog <modul>Other Relational Language sum cnt UNQ insertion delete insert microsoft access recursion safety rules semantic iteration monotonicity report generator http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch5b.ppt <judul>Integrity <modul>Integrity and Security Domain Constraints Referential Integrity Assertions Trigger Authorization SQL subset dependency update http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch6.ppt <judul>Assertions and Triggers <modul>Integrity and Security primary key unique key foreign key cascade set null event action
for each statement MS-SQL server http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch6b.ppt <judul>Security <modul>Integrity and Security authentication Eavesdropping Masquerading network index resource alteration drop grant privilege specification revoke encryption http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch6c.ppt <judul>Relational Database Design (1) <modul>Relational Database Design First Normal Form Pitfalls Relational Database Design Functional Dependencies Boyce-Codd Third Normal Form Multivalued Form Overall Process atomicity redundancy http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch7.ppt <judul>Relational Database Design (2) <modul>Relational Database Design Non Lossless Join Attribute Sets canonical cover extraneous normalization lossy join BCNF
preservation 2NF 3NFFDMVD denormalization http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch7b.ppt <judul>Object Oriented Database <modul>Object Oriented Database Complex Data Types Object Oriented Data Model Persistent Programming C programming variable message method class hierarchy multiple inheritance identity containment access ODMG manipulation constructor OML pointer java http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch8.ppt <judul>Object Relational Database <modul>Object Relational Database Nested Relation Complex Types Object Orientation Querying Object Oriented Relational Databases 1NF4NF schema SQL:1999 structured collection inheritance multiple table storage supertable subtable reference user generated identifier unnesting
nesting function procedure SQL security sandbox http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/622/ch9.ppt <judul>Pendahuluan <modul>Pendahuluan perilaku organisaional organisational behaviour attribut materi level scientific human relation classical organizational theory fundamental assumption pengembangan sumber daya manusia http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB1-02.ppt <judul>Organizational Culture <modul>Organizational Culture organizational culture budaya organisasi korporat philosophy belief attitudes history tradition Schein sosialisasi efektif Hofstede http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB2-BUDAYA.ppt <judul>Perbedaan Individu <modul>Perbedaan Individu perbedaan individu behaviour kurt lewin Attraction Selection Attrition ASA
perception attitude motive bias Fundamental Attribution Error internal causes Halo Effect Similar-To-Me First-Impression Selective Stereotyping Contrast hygiene motivator http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB3-individual%20difference.ppt <modul>Motivasi dan Reward <judul>Pendahuluan movere arousal direction maintenance exogen endogen Teori-teori motivasi content theories teori kepuasan Contemporary hirarki kebutuhan maslow ERG alderfer herzberg mcclelland teori harapan expectation theory http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB4-Motivasi.ppt <modul>Motivasi dan Reward <judul>Motivasi dan Reward victor vroom porter lawler bf skinner penetapan tujuan locke latham
contemporer Equity ekstrinsik intrinsik reinforcement expectancy finansial promosi golden handcuff borgol emas http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB5-Reward.ppt <judul>Dinamika Kelompok <modul>Dinamika Kelompok, Pembentukan Tim, dan Leadership dinamika kelompok pembentukan tim teamwork equilibrium model negosiasi efektif konflik intergroup conflict resolution effective negotiation groupthink decision making leadership kepemimpinan ability http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB6-groupdynamic.ppt <judul>Leadership <modul>Dinamika Kelompok, Pembentukan Tim, dan Leadership personality motivation traits theory behaviour theory teori situasional teori kontingensi contingency theory teori kemungkinan lpc-contingency theory fiedler path goal atribusi likert
karismatik http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB8-leadership.ppt <judul>Organization Structure <modul>Organization Structure organization structure drucker organisasi desain homogen heterogen departementalisasi spesialisasi authority matrix divisional international transformasi Sub contracting Strategic alliances Franchising boundaryless company virtual learning modular horizontal interorganizational Transnational Corporation TNC Mintzberg contingency mechanistic organic http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB9-ORGSTRC.ppt <judul>Job Design <modul>Job Design, Komunikasi dan Pengambilan Keputusan yang Efektif job design quality work of life QWL conseptual model performance redesign content requirement context rotation enlargement enrichment
http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB10-JOB%20DESIGN.ppt <judul>Komunikasi yang Efektif <modul>Job Design, Komunikasi dan Pengambilan Keputusan yang Efektif komunikasi efektif komunikasi non verbal media communication individual differences sex differences cross cultural differences differences interpersonal tipe manajer otokratik egosentris http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB11-komunikasi.ppt <judul>Pengambilan keputusan <modul>Job Design, Komunikasi dan Pengambilan Keputusan yang Efektif kerangka berpikir selektif value judgement kredibilitas sumber semantik kelompok status video mediated communication VMC managing effective decision making processes effective decision making environment certain risk uncertain risk stretegic empowerment http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/623/OB12-DECMAK.ppt <judul>Budaya <modul>Budaya teknologi informasi dan masyarakat masyarakat stratifikasi institusi sosial
distance individualism collectivism masculinity femininity uncertainty avoidance identifikasi artifact values assumption simbol bahasa ide norma sikap http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/624/BUDAYA.ppt <judul>Emotional Intelligence <modul>Emotional Intelligence emotional intelligence emosi motivasi reaksi psikis psikologi intuisi stress energy tiredness tense calm energi charging stimulus respon kontrol kepribadian empati ekspresi gesture komunikasi http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/624/EQ%20Telkom.ppt <judul>Manajemen Perubahan <modul>Manajemen Perubahan driving forces tekanan
momentum restraining FFA resistance http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/624/Manajemen%20Perubahan.ppt <judul>Negosiasi <modul>Negosiasi negosiasi negosiator value claimer value creator paradigma distributive bargaining integrative bargaining distributif integratif range strategy http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/624/Negosiasi.ppt <judul>Power <modul>Power power kekuasaan position personal Legitimate Coercive Reward Expert Referent politik ketrampilan diagnostik taktik http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/624/Power.ppt <judul>Stratifikasi Sosial <modul>Stratifikasi Sosial stratifikasi sosial kelas http://localhost/skripsi/latihan/lat6111-01.php
http://localhost/skripsi/modul/624/Stratifikasi%20Sosial.ppt <judul>Model Referensi OSI <modul>Model Referensi OSI OSI reference model jaringan informasi jaringan network protocol protokol protocol enkapsulasi komunikasi peer to peer peer to peer phisical fisik hub data link NIC switch microsegmentation segmentation local area network transport session http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/653/Microsoft_PowerPoint_-_mti-01.pdf <judul>Topologi Jaringan <modul>Topologi Jaringan topologi jaringan physical network shared media token ring point to point multipoint http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/653/Microsoft_PowerPoint_-_mti-02.pdf <judul>Ethernet dan IEEE 802.3 <modul>Ethernet dan IEEE 802.3 ethernet IEEE 802.3 CSMA/CD OSI frame MAC
flat scheme collision back off algorithm JAM signal http://localhost/skripsi/latihan/lat6111-01.php http://localhost/skripsi/modul/653/Microsoft_PowerPoint_-_mti-03.pdf
File ‘global.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template name="global_header" match="/"> <xsl:template name="global_pic" match="/"> <xsl:attribute name="width">1000<xsl:attribute name="border"> 0<xsl:attribute name="cellpadding">0 <xsl:attribute name="cellspacing">0 | <xsl:attribute name="src">http://localhost/skripsi/images/home_01.jpg <xsl:attribute name="width">385 <xsl:attribute name="height">106 | <xsl:attribute name="src">http://localhost/skripsi/images/home_02.jpg <xsl:attribute name="width">301 <xsl:attribute name="height">106 | |
| <xsl:attribute name="src">http://localhost/skripsi/images/home_03.jpg <xsl:attribute name="width">385 <xsl:attribute name="height">54 | <xsl:attribute name="valign">top <xsl:attribute name="src">http://localhost/skripsi/images/home_04.jpg <xsl:attribute name="width">301 <xsl:attribute name="height">40 | |
File ‘kuliah.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="global.xsl"/> <xsl:template match="/"> <xsl:attribute name="bgcolor">#CCCC99 <xsl:attribute name="text">#000000
<xsl:attribute name="leftmargin">2 <xsl:attribute name="topmargin">0 <xsl:attribute name="marginwidth">0 <xsl:attribute name="marginheight">0 <xsl:call-template name="global_pic"/> <xsl:call-template name="global_header"/> <xsl:attribute name="name">top <xsl:template match="kuliah"> Database mata kuliah yang diajarkan di MTI : <xsl:apply-templates/> <xsl:template match="mk"> <xsl:choose> <xsl:when test="jenis='Wajib'">
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2 Kode: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@kodemk"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2 Nama: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="nama"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Jumlah SKS:
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="sks"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Jenis: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="jenis"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Semester: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="semester"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Tujuan: | |
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="tujuan"/> |
<xsl:when test="jenis='Pilihan'"> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Kode: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@kodemk"/> |
<xsl:attribute name="face">Verdana
<xsl:attribute name="size">2Nama: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="nama"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Jumlah SKS: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="sks"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Jenis: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="jenis"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Tujuan: | |
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="tujuan"/> |
File ‘modul.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="global.xsl"/> <xsl:template match="/">
<xsl:attribute name="bgcolor">#CCCC99 <xsl:attribute name="text">#000000 <xsl:attribute name="leftmargin">2 <xsl:attribute name="topmargin">0 <xsl:attribute name="marginwidth">0 <xsl:attribute name="marginheight">0 <xsl:call-template name="global_pic"/> <xsl:call-template name="global_header"/> <xsl:attribute name="name">top | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2 <xsl:apply-templates/> | |
| td width="700"><xsl:attribute name="face">Verdana <xsl:attribute name="size">2 <xsl:attribute name="href">#topke atas |
<xsl:template match="top"> Index modul <xsl:apply-templates/> <xsl:template match="modul">
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Kode: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@kodemdl"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Nama: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="nama"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Mata Kuliah: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@mk"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Tujuan: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="tujuan"/> |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Sumber: |
|
<xsl:call-template name="pilih_tipe"/> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Diselenggarakan: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Minggu ke <xsl:value-of select="@minggu"/> |
| |
Klik di <xsl:element name="A"><xsl:attribute name="HREF"> http://localhost:8080/skripsi/servlet/Panggiltopik?modul=<xsl:value-of select="nama"/>&mk=<xsl:value-of select="@mk"/> sini untuk melihat daftar topik dari modul ini |
<xsl:template name="pilih_tipe"> <xsl:for-each select="sumber"> <xsl:choose> <xsl:when test='@tipe="Web"'> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Tipe : | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@tipe"/> |
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Alamat : |
<xsl:for-each select="alamat"> | <xsl:attribute name="href"> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="."/> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="."/> -- |
<xsl:when test='@tipe="Buku"'> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Tipe : | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@tipe"/> |
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Judul :<xsl:value-of select="judul"/> |
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Pengarang :<xsl:value-of select="pengarang"/> |
| <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Penerbit :<xsl:value-of select="penerbit"/>,
<xsl:value-of select="tahun"/> --- |
File ‘topikktk.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <xsl:attribute name="bgcolor">#CCCC99 <xsl:attribute name="text">#000000 <xsl:attribute name="leftmargin">2 <xsl:attribute name="topmargin">0 <xsl:attribute name="marginwidth">0 <xsl:attribute name="marginheight">0 <xsl:attribute name="width">81% <xsl:attribute name="src">http://localhost/skripsi/images/home_31.jpg <xsl:attribute name="width">150 <xsl:attribute name="height">50 |
<xsl:attribute name="top"> <xsl:attribute name="href">http://localhost/skripsi/index_cari.htm <xsl:attribute name="target">_top<xsl:attribute name="face">Verdana <xsl:attribute name="size">2 | HOME |
<xsl:attribute name="face">Verdana <xsl:attribute name="size">2Index kata kunci berdasar mata kuliah
<xsl:apply-templates/> <xsl:template match="top"> <xsl:for-each select="topik/ktkunci"> <xsl:sort select="."/> <xsl:attribute name="href"> http://localhost:8080/skripsi/servlet/Ciptatpk?query=<xsl:value-of select="."/> <xsl:attribute name="target">mainFrame<xsl:value-of select="."/>
<xsl:attribute name="href">#topke atas
File ‘topik.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:template match="/"> <xsl:apply-templates/> <xsl:template match="judul"> <xsl:apply-templates/>
<xsl:template match="penulis"> <xsl:apply-templates/>
<xsl:template match="body"> <xsl:apply-templates/>
<xsl:template match="body/sub"> <xsl:apply-templates/>
<xsl:template match="//penting"> <xsl:apply-templates/> <xsl:template match="//gambar"> <xsl:attribute name="src">http://localhost/skripsi/images/<xsl:value-of select="url"/>
<xsl:value-of select="keterangan"/>
<xsl:template match="//tabel"> <xsl:template match="//tabel/nama"> <xsl:apply-templates/>
<xsl:template match="//tabel/baris"> <xsl:apply-templates/>
<xsl:template match="//tabel/baris/kolom"> <xsl:apply-templates/> |
File ‘query.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="global.xsl"/> <xsl:variable name="n_lokal"><xsl:value-of select="query/nilai"/> <xsl:variable name="remote" select="document('http://localhost/skripsi/kuliah.xml')/kuliah"/> <xsl:variable name="tipe"><xsl:value-of select="query/tipe"/> <xsl:template match="/"> <xsl:attribute name="bgcolor">#CCCC99 <xsl:attribute name="text">#000000 <xsl:attribute name="leftmargin">2 <xsl:attribute name="topmargin">0 <xsl:attribute name="marginwidth">0 <xsl:attribute name="marginheight">0 <xsl:call-template name="global_pic"/> <xsl:call-template name="global_header"/> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2 <xsl:choose> <xsl:when test='$tipe="kode"'> <xsl:variable name="upperkode" select="translate($n_lokal, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/> <xsl:choose> <xsl:when test="$upperkode=$remote/mk/@kodemk">
| Anda mencari <xsl:value-of select="$upperkode"/> Nama : | <xsl:value-of select="$remote/mk[@kodemk=$upperkode]/nama"/> | Jumlah SKS : | <xsl:value-of select="$remote/mk[@kodemk=$upperkode]/sks"/> | Jenis : | <xsl:value-of select="$remote/mk[@kodemk=$upperkode]/jenis"/> | Semester : | <xsl:value-of select="$remote/mk[@kodemk=$upperkode]/semester"/> | Tujuan : | <xsl:value-of select="$remote/mk[@kodemk=$upperkode]/tujuan"/> |
| |
<xsl:when test='$tipe="sks"'>
| Anda mencari mata kuliah yang jumlah sksnya <xsl:value-of select="$n_lokal"/> Ditemukan : | |
<xsl:for-each select="$remote/mk"> <xsl:choose> <xsl:when test="$n_lokal=sks">
| Kode : | <xsl:value-of select="@kodemk"/> | Nama : | <xsl:value-of select="nama"/> | Jenis : | <xsl:value-of select="jenis"/> | Semester : | <xsl:value-of select="semester"/> | Tujuan : | <xsl:value-of select="tujuan"/> | | |
<xsl:when test='$tipe="jenis"'> <xsl:variable name="upperjenis" select="translate($n_lokal, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/>
| Anda mencari mata kuliah bersifat <xsl:value-of select="$upperjenis"/>
| |
<xsl:for-each select="$remote/mk"> <xsl:variable name="isi"><xsl:value-of select="jenis"/> <xsl:variable name="upperisi" select="translate($isi, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/> <xsl:choose> <xsl:when test="$upperjenis=$upperisi">
| Kode : | <xsl:value-of select="@kodemk"/> | Nama : | <xsl:value-of select="nama"/> | Jumlah SKS : | <xsl:value-of select="sks"/> | Semester : | <xsl:value-of select="semester"/> | Tujuan : | <xsl:value-of select="tujuan"/> | | |
<xsl:when test='$tipe="semester"'>
| Anda mencari mata kuliah yang diajarkan di semester <xsl:value-of select="$n_lokal"/> Ditemukan : | |
<xsl:for-each select="$remote/mk[semester=$n_lokal]">
| Kode : | <xsl:value-of select="@kodemk"/> |
Nama : | <xsl:value-of select="nama"/> | Jumlah SKS : | <xsl:value-of select="sks"/> | Jenis : | <xsl:value-of select="jenis"/> | Tujuan : | <xsl:value-of select="tujuan"/> | | |
<xsl:when test='$tipe="tujuan"'> <xsl:variable name="uppertujuan" select="translate($n_lokal, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/>
| Anda mencari mata kuliah yang tujuannya mengandung kata <xsl:value-of select="$uppertujuan"/> | |
<xsl:for-each select="$remote/mk"> <xsl:variable name="isi"><xsl:value-of select="tujuan"/> <xsl:variable name="upperisi" select="translate($isi, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/> <xsl:choose> <xsl:when test="contains($upperisi,$uppertujuan)">
| Kode : | <xsl:value-of select="@kodemk"/> | Nama : | <xsl:value-of select="nama"/> | Jumlah SKS : | <xsl:value-of select="sks"/> | Jenis : | <xsl:value-of select="jenis"/> | Semester : | <xsl:value-of select="semester"/> | Tujuan : | <xsl:value-of select="tujuan"/> |
| |
<xsl:when test='$tipe="ktkunci"'> <xsl:variable name="upperktkunci" select="translate($n_lokal, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/>
| Anda mencari mata kuliah yang mengandung kata kunci <xsl:value-of select="$upperktkunci"/> | |
<xsl:for-each select="$remote/mk"> <xsl:variable name="isi"><xsl:value-of select="ktkunci"/> <xsl:variable name="upperisi" select="translate($isi, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/> <xsl:choose> <xsl:when test="contains($upperisi,$upperktkunci)">
| Kode : | <xsl:value-of select="@kodemk"/> | Nama : | <xsl:value-of select="nama"/> | Jumlah SKS : | <xsl:value-of select="sks"/> | Jenis : | <xsl:value-of select="jenis"/> | Semester : | <xsl:value-of select="semester"/> | Tujuan : | <xsl:value-of select="tujuan"/> | | |
File ‘querytpk.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="global.xsl"/> <xsl:template match="/"> <xsl:attribute name="bgcolor">#CCCC99 <xsl:attribute name="text">#000000 <xsl:attribute name="leftmargin">2 <xsl:attribute name="topmargin">0 <xsl:attribute name="marginwidth">0 <xsl:attribute name="marginheight">0 <xsl:call-template name="global_pic"/> <xsl:call-template name="global_header"/> <xsl:variable name="remote" select="document('http://localhost/skripsi/topik.xml')/top"/> <xsl:variable name="kata" select="query/nilai"/> <xsl:variable name="upperkata" select="translate($kata, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/> | Topik-topik yang sesuai dengan query <xsl:value-of select="$upperkata"/> | |
<xsl:for-each select="$remote/topik"> <xsl:variable name="ktkunci" select="."/> <xsl:variable name="upperktkunci" select="translate($ktkunci, 'abcdefghijklmnopqrstuvwxyz', 'ABCDEFGHIJKLMNOPQRSTUVWXY')"/> <xsl:choose> <xsl:when test="contains($upperktkunci, $upperkata)">
|
Judul Topik : | <xsl:value-of select="judul"/> | Modul : | <xsl:value-of select="modul"/> | Mata Kuliah : | <xsl:value-of select="@mk"/> | | |
<xsl:choose> <xsl:when test="isi[@tipe='url']">
| File disimpan dalam bentuk <xsl:value-of select="isi/@doctype"/> berukuran <xsl:value-of select="isi/@size"/> Klik di <xsl:element name="A"><xsl:attribute name="HREF"> <xsl:value-of select="isi"/> <xsl:attribute name="target"> _blanksini untuk melihat isi topik | |
<xsl:when test="isi[@tipe='lokal']"> <xsl:value-of select="isi"/>
File ‘topikq.xsl’ <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:import href="global.xsl"/> <xsl:param name="modul" select="topik/modul"/> <xsl:param name="mk" select="topik/mk"/> <xsl:variable name="remote" select="document('http://localhost/skripsi/topik.xml')/top"/> <xsl:template match="/"> <xsl:attribute name="bgcolor">#CCCC99 <xsl:attribute name="text">#000000 <xsl:attribute name="leftmargin">2 <xsl:attribute name="topmargin">0 <xsl:attribute name="marginwidth">0 <xsl:attribute name="marginheight">0 <xsl:call-template name="global_pic"/> <xsl:call-template name="global_header"/> <xsl:attribute name="face">Verdana <xsl:attribute name="size">2 | Topik-topik dalam modul <xsl:value-of select="$modul"/> Mata Kuliah <xsl:value-of select="$mk"/> | |
<xsl:for-each select="$remote/topik"> <xsl:if test="modul=$modul and @mk=$mk"> | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Kode: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="@kodetpk"/> | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2Judul: | <xsl:attribute name="face">Verdana <xsl:attribute name="size">2<xsl:value-of select="judul"/> |
| |
<xsl:choose> <xsl:when test="isi[@tipe='url']">
| File disimpan dalam bentuk <xsl:value-of select="isi/@doctype"/> berukuran <xsl:value-of select="isi/@size"/> Klik di <xsl:element name="A"><xsl:attribute name="HREF"> <xsl:value-of select="isi"/> <xsl:attribute name="target"> _blanksini untuk melihat isi topik | |
<xsl:when test="isi[@tipe='lokal']"> <xsl:value-of select="isi"/>
File ‘Cipta.java’ import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.lang.*; public class Cipta extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/xml"); PrintWriter out = res.getWriter(); String input,pilih,kode,nama,sks,tujuan,jenis,semester,ktkunci; input = req.getParameter("query"); pilih = req.getParameter("pilih");
String A = new String("kode"); String B = new String("nama"); String C = new String ("sks"); String D = new String ("jenis"); String E = new String ("semester"); String F = new String ("tujuan"); String G = new String ("ktkunci"); if (pilih.equals(A)) { kode = input; out.println(""); out.println(""); out.println(""+kode+""); out.println(""+pilih+""); } else if (pilih.equals(B)) { nama = input; out.println(""); out.println(""); out.println(""+nama+""); out.println(""+pilih+""); } else if (pilih.equals(C)) { sks = input; out.println(""); out.println(""); out.println(""+sks+""); out.println(""+pilih+""); } else if (pilih.equals(D)) { jenis = input; out.println(""); out.println(""); out.println(""+jenis+""); out.println(""+pilih+""); } else if (pilih.equals(E)) { semester = input; out.println(""); out.println(""); out.println(""+semester+""); out.println(""+pilih+""); } else if (pilih.equals(F)) { tujuan = input; out.println(""); out.println(""); out.println(""+tujuan+""); out.println(""+pilih+"");
} else if (pilih.equals(G)) { ktkunci = input; out.println(""); out.println(""); out.println(""+ktkunci+""); out.println(""+pilih+""); } } public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet (req,res); } }
File ‘Ciptatpk.java’ import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.lang.*; public class Ciptatpk extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/xml"); PrintWriter out = res.getWriter(); String input = req.getParameter("query");
out.println(""); out.println(""); out.println(""+input+"");
} public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet (req,res); } }
File ‘Panggiltopik.java’ import javax.servlet.*; import javax.servlet.http.*; import java.io.*; import java.lang.*; public class Panggiltopik extends HttpServlet { public void doGet (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { res.setContentType("text/xml"); PrintWriter out = res.getWriter(); String modul,mk; modul = req.getParameter("modul"); mk = req.getParameter("mk"); out.println(""); out.println(""); out.println("<modul>"+modul+"<mk>"+mk+""); } public void doPost (HttpServletRequest req, HttpServletResponse res) throws ServletException, IOException { doGet (req,res); } }