BAB II TINJAUAN PUSTAKA
Bab ini memaparkan mengenai teori dasar pendukung yang mendasari proses pembuatan Rancang Bangun Sistem Silsilah Keluarga Berbasis Tree berdasarkan Hukum Adat Bali seperti:
2.1 Pengertian Silsilah Silsilah raja, silsilah keluarga, bagan silsilah, ataupun diagram silsilah adalah suatu bagan yang menampilkan hubungan keluarga (silsilah) dalam suatu struktur pohon (Wikipedia, 2012). Data genealogi ini dapat ditampilkan dalam berbagai format. Salah satu format yang sering digunakan dalam menampilkan silsilah adalah bagan dengan generasi yang lebih tua di bagian atas dan generasi yang lebih muda di bagian bawah. Bagan keturunan yang menampilkan semua keturunan dari satu individu memiliki bagian yang paling sempit di bagian atas.
2.2 Perkawinan Menurut Hukum Adat Hindhu di Bali Perkawinan menurut Hindhu adalah perintah agama yang dianggap suatu jalan untuk melepaskan derita leluhurnya atau orang tuanya yang telah meninggal (Ida Bagus Anom, 2010). Pengertian lain tentang perkawinan yaitu suatu hubungan antara seorang laki-laki dengan seorang atau lebih wanita yang diakui oleh Undang-undang, dan menyangkut hak dan kewajiban tertentu yang mengikat kedua belah pihak yang bersatu menjadi satu dan dalam hubungannya dengan anak-anak yang lahir dari akibat perkawinan tersebut.
Jadi perkawinan
merupakan suatu hubungan seks yang dibenarkan atau diatur dalam hukum, dan ini juga merupakan pranata sosial ekonomi karena akan menyangkut harta milik yang timbul sebagai akibatnya.
2.2.1 Arti dan Tujuan Perkawinan Arti dan tujuan perkawinan menurut Undang-undang No. 1 Tahun 1974 adalah sebagai berikut:
5
6
“Perkawinan adalah suatu ikatan lahir batin antara seorang pria dengan seorang wanita sebagai suami istri dengan tujuan membentuk keluarga (rumah tangga) yang bahagia dan kekal berdasarkan Ketuhanan Yang Maha Esa”. Dari pengetian diatas dapat dilihat beberapa unsur dari perkawinan tersebut yaitu (Gede Raka Mas, 2002): 1. Ikatan lahir bathin. 2. Antara seorang pria dengan seorang wanita. 3. Sebagai suami istri. 4. Membentuk keluarga (rumah tangga) yang bahagia dan kekal. 5. Berdasarkan Ketuhanan Yang Maha Esa. Penjelasan diatas merupakan arti dan tujuan dari perkawinan menurut Undang-undang No.1 Tahun 1974. Arti dan tujuan perkawinan menurut Hukum Hindhu akan dijelaskan sebagai berikut. Menurut Manawa Dharmasastra, perkawinan atau Wiwaha itu sama dengan Samshara yang mendudukkan perkawinan sebagai lembaga yang erat kaitannya dengan agama Hindhu, sehingga semua persyaratan yang ditentukan harus ditaati oleh umat Hindhu. Perkawinan adalah suatu puncak upacara Manusa Yadnya yang membayar hutang kepada orang tua atau leluhur sehingga perkawinan adalah suatu dharma. (Ida Bagus Anom, 2010)
2.2.2 Sistem Perkawinan di dalam Hukum Adat Hindhu di Bali Menurut Hukum Adat Hindhu di Bali ada bebarapa sistem atau bentuk perkawinan secara tradisional yaitu (Ida Bagus Anom, 2010): 1. Sistem Mepadik : pihak calon suami meminta datang kepihak calon istri untuk mengadakan perkawinan, biasanya kedua calon mempelai telah saling mengenal dan ada kesepakatan berumah tangga. Dan sistem perkawinan ini dipandang terhormat. Ada 4 tahap pelaksanaan perkawinan ini yaitu: meminta, mengambil, nyakapang, dan nguya. 2. Sistem Ngerorod : bentuk perkawinan cinta sama cinta berjalan berdua atau beserta keluarga laki-laki secara resmi tidak diketahui keluarga perempuan.
7
3. Sistem Nyentana/ Nyeburin : bentuk perkawinan berdasarkan perubahan status sebagai purusa dari pihak wanita dan sebagai predana dari pihak laki-laki. Tahapannya sama dengan Mepadik. 4. Sistem Melegandang : bentuk perkawinan secara paksa tidak didasarkan cinta sama cinta . 5. Sistem Ngrenain : juga disusul dengan cara ngerorod. 6. Sistem Nadua Umah/ Pada Gelahang: kedua tempat baik laki-laki maupun perempuan sama-sama berhak atas keturunan / waris dan upakaranya di kedua tempat.
2.2.3 Perkawinan Campuran Menurut Undang-undang Perkawinan Pasal 57, tentang perkawinan campuran antara mereka yang berbeda kewarganegaraan dan mereka yang berbeda agama. Menurut ordonasi perkawinan campuran, maka hukum agama pihak suami yang harus diikuti oleh pihak istri. Ada pula perkawinan campuran pada masyarakat Hindhu Bali tentang kawin antar kasta. 1. Menurut agama Hindhu agar perkawinan dianggap sah haruslah kedua calon pengantin disamakan dahulu agamanya dengan upacara Sudhi Wadani, dengan persyaratan pihak wanita lain agama Hindhu rela mengikuti agama suaminya. 2. Perkawinan Campuran antar kasta di bali ada 2 macam (Ida bagus Anom, 2010): a. Wanita kawin naik kepada kasta yang lebih tinggi, setelah diupacarai sah sebagai suami istri, nama wanita diubah dengan panggilan jero made, jero nyoman, dan lain-lain. Perkawinan dengan lelaki lebih rendah nyentana ke rumah kasta yang lebih tinggi belum bisa diterima oleh keluarga besar kasta wanita tersebut, dan apabila tidak mau menuruti dresta keluarga besar, maka keluarga yang mengangkat laki-laki tidak mau menuruti dresta keluarga besar, maka keluarga yang mengangkat laki-laki dari kasta yang lebih rendah itu keluar/tidak diajak “mesidikari” lagi.
8
b. Wanita atau laki-laki dari kasta yang lebih tinggi kawin atau nyeburin kepada kasta yang lebih rendah, maka orang tersebut keluar dari keluarga kecil maupun keluarga besar, dan dalam perkawinan sebelumnya diadakan upacara Pamati Wangi mengelilingi Bale Agung di pura desa tiga kali lalu berganti nama kasta yang mengambil, agar keturunannya tidak menjadi rebutan.
2.3 Kedudukan Anak Angkat Menurut Hukum Waris Adat Bali Kedudukan anak angkat dalam hukum waris adat umumnya ditentukan oleh sistem hukum dalam proses pengangkatan anak, sistem kekeluargaan dan sistem pewarisan yang dilakukan. Pengertian pengangkatan anak secara umum adalah suatu tindakan mengambil anak orang lain berdasarkan ketentuan-ketentuan hukum yang berlaku di masyarakat bersangkutan (Arif Gosita, 1998). Sedangkan ada pengertian lain mengenai pengangkatan anak yaitu perbuatan hukum yang melepaskan anak itu dari pertalian kekeluargaan dengan orang tua sendiri yang memasukkan anak itu ke dalam keluarga bapak angkatnya sehingga anak itu sendiri seperti anak kandung (R. Soepomo, 2000). Sementara itu pengertian pengangkatan anak menurut Hukum Adat Bali pada dasarnya sama dengan pengertian pengangkatan anak dari pendapat kedua sarjana tersebut, yaitu mengangkat anak orang lain dan menempatkan sebagai anak kandung dengan tujuan melanjutkan keturunan dari si pengangkat. Tujuan lembaga mengangkat sentana ialah melanjutkan keturunan dari keluarga purusa, agar kemudian sesudah pengangkat meninggal, ada orang yang melakukan abenan mayatnya dan penghormatan pada rohnya dalam sanggah yang mengangkat (I Gede Panetje, 1986). Masyarakat Hukum Adat Bali memiliki ikatan kekeluargaan patrilineal, yaitu berdasarkan pada garis keturunan bapak. Hal ini membawa konsekwensi adanya peranan yang sangat penting bagi anak laki-laki sebagai penerus keturunan bagi keluarganya, sedangkan tidak demikian halnya dengan anak perempuan. Anak
laki-laki
sebagai
penerus
keturunan,
mempunyai
kewajiban
9
bertanggungjawab terhadap pemujaan leluhurnya, oleh karena itu ia berhak terhadap harta warisan orang tuanya. Selanjutnya bagi mereka yang tidak mempunyai anak laki-laki seringkali akan melakukan perbuatan mengangkat anak sebagai penerus keturunan keluarganya. Seorang anak laki-laki menjadi tumpuan harapan orang tuanya, yang berkewajiban memelihara orang tuanya di kemudian hari setelah tidak mampu bekerja lagi, terlebih untuk kesempurnaan peribadatan orang tuanya saat meninggal dunia. Pengertian mengenai pengangkatan anak di dalam masyarakat Adat Bali sebagai berikut (Ter Haar, 1980): Pengangkatan anak di Bali (nyentanayang) terselenggaranya hampir selalu dalam lingkungan keluarga besar dari pada hukum keluarga, yang karib menurut naluri (purusa), walaupun di masa akhir-akhir ini lebih (lagi) diperbolehkan memungut anak berasal di luar lingkungan itu ; dalam beberapa dusun juga sanak saudaranya si istri (dari predana) diambil anak. Pendapat Ter Haar tersebut di atas, menyebutkan bahwa terselenggaranya pengangkatan anak saat ini di dalam masyarakat hukum adat Bali sudah tidak saja dapat diambil dari keluarga purusa. Pengangkatan anak bisa pula diambil dari keluarga istri yang masih dalam lingkungan keluarganya. Hal tersebut diperbolehkan bila suami istri si pengangkat merupakan satu klan keluarga besar. Apabila pihak istri tersebut tidak merupakan satu kerabat dengan pihak suami, maka hal tersebut tidak diperbolehkan. Larangan tersebut mengingat sistem kekeluargaan yang terdapat di dalam masyarakat hukum adat Bali, yaitu sistem patrilineal / kebapakan. Adapun tujuan pengangkatan anak perempuan adalah untuk dijadikan sentana rajeg, yakni anak perempuan yang memiliki status sebagai anak laki-laki dalam perkawinan nyeburin di Bali. Ini merupakan suatu terobosan terhadap nilainilai adat Bali sesuai dengan kemajuan pandangan masyarakat. Walaupun demikian, dasar pemikiran dari pengangkatan anak adalah untuk mendapatkan anak sebagai penerus keturunan dan tidak terlepas dari kewajiban pada saat orang tua meninggal. Di dalam soal pengangkatan anak pada masyarakat hukum adat Bali yang penting adalah terpenuhinya persyaratan pengangkatan, yaitu adanya
10
upacara peras, siar dan harus pula adanya persetujuan para pihak yang berkepentingan. Pengangkatan anak di dalam masyarakat hukum adat Bali dianggap sah apabila telah dilakukan sesuai dengan prosedur dan persyaratan yang telah ditentukan oleh hukum adat Bali, yaitu seperti adanya persetujuan dari pihakpihak yang bersangkutan, adanya Dewa Saksi dan Manusia Saksi, serta adanya Siar (Beni, 1989 ). Pendapat di atas jelas menyebutkan sahnya pengangkatan anak menurut hukum adat Bali harus adanya upacara Dewa Saksi, Manusia Saksi dan adanya Siar. Dewa Saksi di dalam masyarakat hukum adat Bali disebutkan dengan Peras, sedangkan Manusia Saksi merupakan persetujuan serta kesaksian dari pihak yang berkepentingan. Siar merupakan pengumuman terhadap pengangkat anak tersebut yang biasanya dilakukan di dalam pertemuan masyarakat adat atau banjar dimana yang bersangkutan tunduk pada hukum adatnya.
2.3.1 Pengangkatan Anak Menurut Hukum Adat 2.3.1.1 Pengertian Adopsi atau Pengangkatan Anak Dari segi etimologi yaitu asal usul kata, adopsi berasal dari bahasa Belanda “Adoptie” atau “Adaption” ( Bahasa Inggris ) yang berarti pengangkatan anak. Dalam bahasa Arab disebut “Tabanni” yang menurut Prof. Mahmud Yunus diartikan dengan : mengambil anak angkat. Menurut Kamus munjid diartikan: menjadikannya sebagai anak. Pengertian dalam bahasa Belanda menurut kamus hukum berarti pengangkatan seorang anak sebagai anak kandungnya sendiri (Zaini, 1985). Segi terminologi, adopsi diartikan dalam kamus umum bahasa Indonesia dijumpai arti anak angkat yaitu anak orang lain yang diambil dan disamakan dengan anaknya sendiri. Ensiklopedia umum menyebukan, adopsi adalah suatu cara untuk mengadakan hubungan antara orang tua dan anak yang diatur dalam pengaturan perundang-undangan. Biasanya adopsi dilaksanakan untuk mendapatkan pewaris atau untuk mendapatkan anak bagi orang tua yang tidak beranak.
11
Adopsi adalah suatu lembaga hukum yang menyebabkan seseorang beralih ke hubungan kekeluargaan yang lain sehingga timbul hubungan-hubungan hukum yang sama atau sebagian sama dengan hubungan antara anak yang sah dengan orang tuanya. Di Jawa Tengah, pengangkatan anak adalah pengangkatan anak orang dengan maksud supaya anak itu menjadi anak dari orang tuanya. Anak angkat adalah anak orang lain yang dianggap anak sendiri oleh orang tua angkat yang resmi menurut hukum adat setempat, dikarenakan tujuan untuk kelangsungan keturunan atas kekayaan rumah tangga.
2.3.1.2 Macam-macam Pengangkatan Anak Anak angkat adalah anak orang lain yang dijadikan anak dan secara lahir dan batin diperlakukan seakan-akan sebagai anak kandungnya sendiri. Dalam hukum adat, dikenal adanya dua macam pengangkatan anak, yaitu (Sugangga, 1995): Pertama, pengangkatan anak secara terang dan tunai, artinya pengangkatan anak yang dilakukan secara terbuka dan dihadiri oleh segenap keluarga, pemukapemuka adat/pejabat adat ( ini pengertian terang ) dan seketika itu juga diberikan pembayaran uang adat ( pengertian terang ). Di Bali, selain pengangkatan anak dihadiri oleh seorang pendanda ( pemuka agama ), diadakan upacara pamit dari para leluhur asal dari anak tersebut dan kemudian di desa. Kedua, secara terang dan tidak tunai, artinya pengangkatan anak yang dilakukan secara diam-diam, tanpa mengundang keluarga seluruhnya, biasanya hanya keluarga tertentu saja, tidak dihadiri oleh pemuka atau pejabat adat atau desa, dan tidak dengan membayar uang adat. Hal ini biasanya bermotif hanya atas dasar perikemanusiaan, ingin mengambil anak tersebut untuk memelihara, dan juga ingin meringankan beban tanggungan dari orang tua asli anak tersebut. Perbedaan antara pengangkatan anak secara terang dan tunai dengan pengangkatan anak secara tidak terang dan tidak tunai terletak pada akibat hukumnya, yaitu pada pengangkatan anak secara terang dan tunai, anak angkat tersebut putus hubungan hukum dengan orang tua aslinya, masuk menjadi
12
keluarga orang tua angkatnya dan tidak mewaris dari orang tua aslinya. Sebaliknya pengangkatan anak secara tidak terang dan tidak tunai, anak angkat tersebut bertempat tinggal secara hukum dengan orang tua asalnya. Dengan demikian anak angkat itu masih tetap mempunyai hak mewaris dari orang tua asalnya.
2.3.1.3 Alasan Pengangkatan Anak a. Pengertian pengangkatan anak menurut Hukum Adat Bali Hukum adat Bali mengenal pengangkatan anak dalam beberapa istilah seperti meras pianak atau meras sentana. Kata sentana berarti anak atau keturunan dan kata meras berasal dari kata peras yaitu semacam sesajen atau banten untuk pengakuan / pemasukan si anak ke dalam keluarga orang tua angkatnya. Disamping istilah tersebut di atas ada pula yang memakai istilah atau menyebut dengan ngidih sentana / ngidih pianak. Penyebutan tersebut mengandung pula pengertian sama dengan pengertian meras senatana ataupun meras pianak. Pengertian pengangkatan anak di Bali kiranya tidak jauh berbeda dengan yang dikemukakan di atas. Adapun yang dimaksud dengan anak angkat dalam hukum adat Bali adalah anak orang lain diangkat oleh orang tua angkatnya menurut adat setempat, sehingga dia mempunyai kedudukan sama seperti anak kandung yang dilahirkan oleh orang tua angkatnya tersebut. Hal ini selanjutnya akan membawa akibat hukum dalam hubungan kekeluargaan, waris dan kemasyarakatan. Konsekuensinya disini segala hak dan kewajiban yang ada ada orang tua angkatnya akan dilanjutkan oleh anak angkat itu sendiri, sebagaimana layaknya seperti anak kandung. Pengertian pengangkatan menurut Hukum Adat Bali seperti tersebut di atas dapat dijabarkan : 1. Adanya perbuatan melepas anak dari kekuasaan orang tua kandung. 2. Adanya perbuatan memasukkan anak ke dalam kekerabatan orang tua angkatnya.
13
Pengertian melepaskan anak adalah perbuatan berupa permintaan calon orang tua angkat terhadap orang tua kandung anak atau kerabat anak. Permintaan itu untuk melepas anak dari kekuasaan orang tua kandungnya atau kerabatnya yang selanjutnya masuk ke dalam keluarga orang tua angkat untuk berperansebagai pelanjut keturunan. Perbuatan hukum ini termasuk pula pengumuman atau siaran yaitu pengumuman yang ditujukan kepada masyarakat adat maupun kepada kerabat-kerabat si anak itu. Adapun maksud dari pengumuman itu agar ada kata sepakat untuk melepas si anak tersebut dan perbuatan tersebutpun menjadi terang. Pengertian memasukkan anak ke dalam kerabat orang tua angkatnya tercermin dalam perbuatan yang berupa pelaksanaan upacara pemerasan atau mewidiwidana. Secara keagamaan hal ini mengandung arti bahwa anak akan dilepas dari kekuasaan baik dari orang tua kandungnya atau kerabat maupun leluhurnya untuk selanjutnya dimasukkan dalam lingkungan kerabat orang tua angkatnya. Upacara tersebut juga mengandung arti bahwa si orang tua angkat selanjutnya akan mengakui anak tadi sebagai anak kandung sendiri. Mulai saat itulah timbul hubungan hukum antara anak angkat terhadap orang tua angkatnya. Secara yuridis anak angkat dengan orang tua kandungnya tidak lagi ada hubungan waris mewaris tapi ia mewaris pada orang tua angkatnya. b. Alasan-alasan pengangkatan anak menurut Hukum Adat Bali Masyarakat Bali adalah menganut sistem kekeluargaan yang patrilineal dimana pihak istri akan masuk ke dalam keluarga suaminya, demikian pula dengan anak-anak yang dilahirkan. Sistem patrilineal ini membawa kedudukan bahwa seorang laki-laki menjadi utama, anak laki-laki akan meneruskan keturunan keluarga tersebut dan sebaliknya tidak demikian halnya dengan anak perempuan. Menonjolnya kedudukan anak laki-laki dalam masyarakat adat Bali, berakibat setiap keluarga menginginkan adanya keturunan laki-laki, maka berkembanglah lembaga pengangkatan anak.
14
Alasan-alasan yang mendorong orang untuk mengangkat anak adalah : 1. Karena tidak mempunyai anak sendiri, sehingga dengan mengangkat anak tersebut, merupakan jalan untuk mendapatkan keturunan. 2. Karena belum dikaruniai anak, sehingga dengan mengangkat anak ini diharapkan akan mempercepat kemungkinan mendapatkan anak. 3. Terdorong oleh rasa belas kasihan terhadap anak yang bersangkutan misalnya karena hidupnya kurang terurus dan lain sebagainya. Pada masyarakat adat Bali bagi seorang yang tidak mempunyai anak akan berusaha mengangkat anak dengan alasan antara lain : 1. Tidak mempunyai anak atau keturunan. 2. Alasan kepercayaan bahwa dengan mengangkat anak akan dapat melahirkan anak kandung sendiri. 3. Meneruskan keturunan yang berkaitan dengan peribadatan. Mulanya alasan pengangkatan anak di Bali dilakukan semata-mata untuk melanjutkan dan mempertahankan garis keturunan dalam suatu keluarga yang tidak mempunyai anak. Selain itu sebagai pancingan agar dapat melahirkan anak kandung, dan keabsahan kekuatan hukum pengangkatan anak tidak terganggu apabila nantinya ibu angkat melahirkan anak kandung. Dengan demikian pengangkatan anak dengan sendirinya mempersaudarakan anak kandung dengan anak angkat. Tujuan perkawinan masyarakat Bali yang beragama Hindu adalah untuk memperoleh anak (putra), yang diharapkan dapat melanjutkan peribadatan keluarga seperti melakukan persembahyangan di pura, melaksanakan pemujaan terhadap leluhur mereka dengan tujuan agar keluarga tersebut selamat dan memperoleh kehidupan yang lebih baik. Begitu pentingnya keturunan (anak) ini dalam suatu perkawinan sehingga tidak jarang menimbulkan berbagai peristiwa sebagai akibat ketiadaan anak seperti perceraian, poligami dan pengangkatan anak itu sendiri. Apabila dalam suatu perkawinan telah ada keturunan (anak) maka tujuan perkawinan dianggap telah tercapai dimana proses pelanjutan generasi dapat pula berlangsung.
15
Menurut ketentuan Undang-undang Nomor 1 Tahun 1974 tampak pula bahwa keturunan mempunyai peranan penting dalam kehidupan keluarga karena adanya anak diharapkan dapat melanjutkan keturunan keluarga tersebut.
2.3.1.4 Sistem Pengangkatan Anak dalam Hukum Adat Bali Masyarakat hukum adat Bali adalah menganut sistem kekeluargaan patrilineal, artinya menarik keturunan selalu hanya melalui garis pihak laki-laki saja yang dalam bahasa Bali disebut dengan garis kepurusa. Sistem kekeluargaan patrilineal pada masyarakat Bali merupakan suatu prinsip, suatu sikap yang magis religius. Adapun ciri-ciri hukum kekeluargaan patrilineal di Bali tampak dalam penguasaan kepada anak laki-laki untuk melaksanakan pemujaan leluhur, dan mengabdi kepada desa yang banyak memerlukan tenaga bagi warga desa. Konsekwensi menganut sistem kekeluargaan patrilineal dalam masyarakat hukum Bali menyebabkan kedudukan anak laki-laki adalah sangat menonjol, termasuk dalam pewarisan dari harta peninggalan orang tua. Penyebab keadaan tersebut pada dasarnya karena anak laki-laki di masyarakat hukum adat Bali adalah berkedudukan di samping sebagai penerus keturunan, juga berkewajiban pada peribadatan keluarga. Ketentuan tersebut tidak berlaku bagi anak perempuan, sebab anak perempuan setelah kawin akan mengikuti keluarga pihak suami dan putus hubungan hukumnya dengan keluarga asalnya. Menonjolnya kedudukan anak laki-laki dalam kekeluargaan masyarakat hukum adat Bali disebabkan oleh beberapa faktor antara lain : 1. Faktor Magis Religius Bagi masyarakat hukum adat Bali yang beragama Hindu anak laki-laki akan mempunyai kedudukan yang istimewa dalam keluarganya. Anak laki-laki dinamakan Putra karena dipandang sebagai juru selamat nenek moyang yang telah meninggal dunia. Adapun maksud dari pandangan magis religius terhadap anak laki-laki karena hanya anak laki-laki yang dapat mengantarkan arwah orang tuanya yang telah meninggal ke surga, yaitu dengan cara melakukan upacara pemujaan terhadap leluhurnya tersebut.
16
Menurut hukum adat Bali, pada prinsipnya hanya anak laki-laki yang terlahir dari perkawinan yang sah yang dapat menjadi ahli waris dari orang tuanya. Namun ketentuan tersebut dapat ditrobos dengan jalan menjadikan anak perempuan berhak mewaris sebagai anak laki-laki. Terobosan tersebut dalam hukum adat Bali dilakukan dengan jalan menjadikan anak perempuan sebagai sentana rajeg, sehingga dalam aspek hukum statusnya sebagai anak laki-laki pada penerimaan harta warisan orang tuanya. Hal yang perlu diperhatikan dalam sentana rajeg adalah perkawinan yang menyertainya. Seorang anak perempuan yang berkedudukan sebagai sentana rajeg, maka pihak suami masuk dan menjadi atau mengikuti keluarga pihak istri. Selanjutnya keturunan yang dihasilkan adalah merupakan pelanjut dari pihak keluarga istri, dengan perkataan lain dalam kekeluargaan dan pewarisan laki-laki tersebut berkedudukan atau berstatus sebagai wanita. Adapun bentuk perkawinan laki-laki dengan perempuan sentana rajeg disebut kawin nyeburin. Demikian pula dalam suatu keluarga yang sama sekali tidak mempunyai anak atau keturunan, biasanya mereka akan mengangkat anak sehingga dapatlah melanjutkan keturunannya. Hukum adat Bali menentukan peranan seorang anak laki-laki dalam keluarga di Bali khususnya dalam pemeliharaan tempat persembahyangan keluarga ( sanggah / pemerajan ), melakukan ayahan di Banjar, yang tidak dapat dilakukan oleh anak perempuan. 2. Faktor Kekeluargaan Hubungan kekeluargaan dalam masyarakat hukum adat Bali yang memegang peranan penting adalah anak laki-laki (garis kepurusa). Bagi masyarakat hukum adat Bali yang tidak mempunyai anak atau keturunan sama sekali, maka dilakukan perbuatan mengangkat anak. Oleh karena itu hukum adat Bali mengenal lembaga pengangkatan anak. Keluarga yang tidak mempunyai keturunan dapat mengambil anak laki-laki dari keluarga terdekat dengan maksud untuk dijadikan sebagai anak kandungnya sendiri. Proses pengangkatan anak tersebut harus dilakukan dengan persetujuan pihak-pihak yang bersangkutan, serta dilangsungkan menurut cara atau prosedur tertentu, antara lain diadakannya upacara pemerasan dan diumumkan dihadapan masyarakat. 30 Anak angkat yang
17
demikian di dalam masyarakat hukum adat Bali disebut sentana peperasan. Kedudukan hukum sentana peperasan sama dengan anak kandung, baik dalam hubungan hukum kekeluargaan, hukum pewarisan, serta dalam hubungan kemasyarakatan. Jadi sentana peperasan atau anak angkat, adalah pelanjut keturunan serta berhak penuh sebagai ahli waris terhadap orang tua angkatnya. Berdasarkan uraian di atas dapat dikatakan bahwa hubungan hukum mengangkat anak pada masyarakat hukum adat Bali dapat mengakibatkan status seorang anak berubah. Perubahan ini terjadi dengan perbuatan hukum berganda, yaitu : a) Perbuatan hukum yang bertujuan melepaskan anak yang bersangkutan dari ikatan keluarganya. Biasanya dengan jalan pembakaran suatu benang, dan pembayaran secara adat, yaitu berupa seribu kepeng, dan satu stel pakaian wanita. b) Memasukkan anak itu dalam lingkungan keluarga yag mengangkat dinamakan peras. Sebelum pengangkatan anak berlangsung terlebih dahulu diadakan permufakatan di antara pihak-pihak yang berkepentingan, baik dari pihak keluarga pengangkat maupun pihak keluarga anak yang diangkat, serta memintakan persetujuan kepada anak yang akan diangkat ( apabila sudah dianggap bisa / dapat memberikan persetujuan). Setelah mendapat persetujuan, maka niat itu diumumkan pada seluruh masyarakat hukum adat. Pengumuman tersebut dinamakan siar. Untuk menguatkan tanda pengesahan anak itu, dibuatkan surat oleh kepala desa / lurah yang dinamakan surat peras. Surat Peras itu berisi Berita Acara Pengangkatan Anak yaitu tentang identitas orang tua angkat, orang tua kandung si anak angkat dan si anak angkat sendiri serta pengesahan upacara pengangkatannya, yang fungsinya sebagai surat bukti pengangkatan anak. Tujuan dari pengangkatan anak dalam masyarakat adat Bali, adalah untuk melanjutkan keturunan orang tua angkat. Akibat dari tujuan ini maka anak angkat sepenuhnya menjadi anggota keluarga yang mengangkat, terutama dalam hal meneruskan kewajiban serta hak orang tua angkat. Adapun hubungan hukum anak dengan orang tua kandungnya menjadi putus. Pengangkatan anak tidak saja oleh
18
keluarga yang utuh ( suami istri ), tetapi juga dapat dilakukan oleh janda / duda yang ditinggal mati, dan harus mendapat persetujuan terlebih dahulu dari pihak keluarga purusa.
2.4 Stuktur Data Pohon Sebuah pohon adalah suatu struktur data yang digunakan secara luas yang menyerupai struktur pohon dengan sejumlah simpul yang terhubung (Wikipedia, 2012).
2.4.1 Simpul (Node) Sebuah simpul dapat mengandung sebuah nilai atau suatu kondisi atau menggambarkan sebuah struktur data terpisah atau sebuah bagian pohon itu sendiri. Setiap simpul dalam sebuah pohon memiliki nol atau lebih simpul anak (child nodes), yang berada dibawahnya dalam pohon (menurut perjanjian, pohon berkembang ke bawah, tidak seperti yang dilakukannya di alam). Sebuah simpul yang memiliki anak dinamakan simpul ayah (parent node) atau simpul leluhur (ancestor node) atau superior. Sebuah simpul paling banyak memiliki satu ayah. Tinggi dari pohon adalah panjang maksimal jalan ke sebuah daun dari simpul tersebut. Tinggi dari akar adalah tinggi dari pohon. Kedalaman dari sebuah simpul adalah panjang jalan ke akarnya dari simpul tersebut.
2.4.2 Daun (Leaf Node) Semua simpul yang berada pada tingkat terendah dari pohon dinamakan daun (leaf node). Sejak mereka terletak pada tingkat paling bawah, mereka tidak memiliki anak satupun. Seringkali, daun merupakan simpul terjauh dari akar. Dalam teori grafik, sebuah daun adalah sebuah sudut dengan tingkat 1 selain akar (kecuali jika pohonnya hanya memiliki satu sudut; maka akarnya adalah daunnya juga). Setiap pohon memiliki setidaknya satu daun. Dalam pohon berdasarkan genetic programming sebuah daun (juga dibilang terminal) adalah bagian terluar dari sebuah program pohon. Jika dibandingkan dengan fungsinya atau simpul dalam, daun tidak memiliki argumen.
19
2.4.3 Simpul Dalam (Internal Node) Sebuah simpul dalam adalah semua simpul dari pohon yang memiliki anak dan bukan merupakan daun. Beberapa pohon hanya menyimpan data di dalam simpul dalam, meskipun ini memengaruhi dinamika penyimpanan data dalam pohon. Sebegai contoh, dengan daun yang kosong, seseorang dapat menyimpan sebuah pohon kosong dengan satu daun. Bagaimanapun juga dengan daun yang dapat menyimpan data, tidak dimungkinkan untuk menyimpan pohon kosong kecuali jika seseorang memberikan beberapa jenis penanda data di daun yang menandakan bahwa daun tersebut seharusnya kosong (dengan demikian pohon itu seharusnya kosong juga). Sebaliknya, beberapa pohon hanya menyimpan data dalam daun, dan menggunakan simpul dalam untuk menampung metadata yang lain, seperti jarak nilai dalam sub pohon yang berakar pada simpul tersebut. Jenis pohon ini berguna untuk jarak yang meragukan.
2.4.4 Sub Pohon (Subtrees) Sebuah sub pohon adalah suatu bagian dari pohon struktur data yang dapat dilihat sebagai sebuah pohon lain yang berdiri sendiri. Simpul apapun dalam pohon P, bersama dengan seluruh simpul dibawahnya, membentuk sebuah sub pohon dari P. Sub pohon yang terhubung dengan akar merupakan keseluruhan pohon tersebut. Sub pohon yang terhubung dengan simpul lain manapun dinamakan sub pohon asli (proper subtree). Penyusunan pohon Terdapat dua jenis pohon. Sebuah pohon tidak terurut (unordered tree) adalah sebuah pohon dalam arti struktural semata-mata, yang dapat dikatakan memberikan sebuah simpul yang tidak memiliki susunan untuk anak dari simpul tersebut. Sebuah pohon dengan suatu susunan ditentukan, sebagai contoh dengan mengisi bilangan asli berbeda ke setiap anak dari simpul tersebut, dinamakan sebuah pohon terurut (ordered tree), dan struktur data yang dibangun di dalamnya dinamakan pohon terurut struktur data (ordered tree data structures). Sejauh ini
20
pohon terurut merupakan bentuk umum dari pohon struktur data. Pohon biner terurut merupakan suatu jenis dari pohon terurut.
2.4.5 Kegunaan Stuktur Data Pohon Operasi umum yang diasa terjadi dalam struktur data pohon adalah sebagai berikut: 1.
Menghitung seluruh materi (item)
2.
Pencarian untuk sebuah materi
3.
Menambahkan sebuah materi pada sebuah posisi tertentu dalam pohon
4.
Menghapus sebuah materi
5.
Mengeluarkan seluruh bagian dari sebuah pohon pruning
6.
Menambahkan seluruh bagian ke sebuah pohon grafting
7.
Menemukan akar untuk simpul apapun
2.5 PHP PHP merupakan singkatan dari PHP Hipertext Processor yang digunakan sebagai bahasa script server-side dalam penegmbangan Web yang disisipkan dalam dokumen HTML (Peranginangin, 2006). PHP digunakan untuk memungkinkan agar Web dapat dibuat secara dinamis sehingga maintenance terhadap situs Web tersebut akan menjadi lebih mudah dan efisien. PHP dikatakan sebagai bahasa script server-side seperti yang dikatakan diatas memiliki arti bahwa sintaks-sintaks dan perintah yang diberikan sepenuhnya dijalankan di server, sementara itu pada web browser hanya menerima hasil dari proses yang sepenuhnya dikerjakan di server berupa halaman HTML sehingga script PHP sendiri tidak akan tampak pada web browser. Prinsipnya, server akan bekerja jika ada permintaan dari browser/client. Proses yang dijalankan oleh server yaitu sebagai berikut: 1. Server menerima permintaan dari browser/client berupa kode-kode PHP. 2. Membaca permintaan dari browser/client. 3. Mencari halaman/page di server.
21
4. Menjalankan instruksi yang terkandung pada kode-kode PHP yang diminta oleh browser/clien
untuk memodifikasi halaman/page sesuai dengan
instruksi. 5. Mengirimkan kembali halaman/page tersebut kepada browser/client yang berupa halaman HTML tanpa ada script PHP didalamnya. PROSES PADA CLIENT
CLIENT
PROSES PADA SERVER
SERVER
request HTTP
jalankan intruksi kode PHP
hasil proses
Web page hasil Hello!!! request
mengirimkan hasil proses ke browser/ client
Hello!!!
Gambar 2.1 Cara Kerja Server pada Script PHP
2.5.1 Sejarah PHP PHP diciptakan pertama kali oleh Rasmus Lerdorf pada tahun 1994 (Peranginangin, 2006). Awalnya, PHP digunakan untuk mengetahui berapa jumlah orang yang berkunjung di homepage-nya dan siapa saja orang-orang tersebut. Selanjutnya Rasmus merilis kode sumber tersebut untuk umum dan menamakannya PHP/FI. Dengan perilisan kode sumber ini menjadi sumber terbuka, maka banyak pemrogram yang tertarik untuk ikut mengembangkan PHP. Pada November 1996, dirilis PHP/FI 2.0. Pada rilis ini, interpreter PHP sudah diimplementasikan dalam program C. Dalam rilis ini disertakan juga modulmodul ekstensi yang meningkatkan kemampuan PHP/FI secara signifikan. Tahun 1996, sebuah perusahaan pengembangan software yang terdiri dari Rasmus, Zeew Suraski, andi Gutman, Stig Bakken, Shane Caraveo dan Jim
22
Winstead bekerja sama untuk menyempurnakan PHP 2.0. Akhirnya pada Juni 1998, perusahaan tersebut merilis interpreter baru untuk PHP dan meresmikan rilis tersebut sebagai PHP 3.0 dan singkatan PHP dirubah menjadi akronim berulang PHP: Hypertext Preprocessing. Pertengahan tahun 1999, Zend merilis interpreter PHP baru dan rilis tersebut dikenal dengan PHP 4.0. PHP 4.0 adalah versi PHP yang paling banyak dipakai pada awal abad ke-21. Versi ini banyak dipakai disebabkan kemampuannya untuk membangun aplikasi web kompleks tetapi tetap memiliki kecepatan dan stabilitas yang tinggi. Juni 2004, Zend merilis PHP 5.0. Dalam versi ini, inti dari interpreter PHP mengalami perubahan besar. Versi ini juga memasukkan model pemrograman berorientasi objek ke dalam PHP untuk menjawab perkembangan bahasa pemrograman ke arah paradigma berorientasi objek. Sejak peluncurannya tahun 1994, PHP segera menjadi popular karena kemudahan-kemudahan yang ditawarkan, yaitu (Swastika, 2006): 1. Mudah digunakan. Sintaks bahasa PHP mudah dipelajari, bahkan untuk kalangan non-programmer. 2. Serbaguna. PHP dapat berjalan pada bermacam-macam sistem operasi seperti Windows, Linux, dan MacOS. 3. Gratis. PHP dapat digunakan dengan gratis. 4. Bantuan penggunaan banyak tersedia. Aman. Selama kode PHP diprogram dengan benar, user tidak akan pernah dapat melihat kode PHP. Hal ini berbeda dengan Java Script yang dapat dilihat kode sumbernya dengan menggunakan menu view source di browser.
2.5.2 Sintaks PHP Ada beberapa cara untuk mulai menuliskan script PHP, yaitu (Peranginangin, 2006): 1.
23
Contoh:
2. <script language=”PHP”>… Contoh:
3. Contoh: <script language = “php”> Script PHP anda ditulis dibagian ini.
4. <%...%> Contoh: <% Script PHP anda ditulis dibagian ini. %>
Script pertama merupakan format yang dianjurkan tetapi lebih sering para programmer menggunakan script kedua karena lebih ringkas. Beberapa editor dan web server tidak menerima pemakaian script PHP yang pertama dan yang kedua, untuk itu script ketiga digunakan untuk mengantisipasi masalah tersebut. Selain itu juga bisa menggunakan cara penulisan ASP, tetapi tentu saja ada beberapa konfigurasi yang perlu ditambahkan terlebih dahulu pada file konfigurasi php. Kode PHP disimpan sebagai plain text dalam format ASCII, sehingga kode PHP dapat ditulis hampir di semua editor text seperti windows notepad, windows wordpad, dan lain-lain. Kode PHP adalah kode yang disertakan di sebuah halaman HTML dan kode tersebut dijalankan oleh server sebelum dikirim ke browser seperti yang telah dijelaskan sebelumnya.
2.5.3 Tipe Data PHP PHP tidak memerlukan pendeklarasian tipe data suatu variable secara eksplisit, tetapi lebih ditentukan oleh runtime program PHP, tergantung pada konteks bagaimana variable tersebut digunakan.
24
PHP mendukung delapan jenis tipe data, yaitu (Suprianto,2008): 1. Tipe scalar. Tipe scalar tidak bisa dipecah lagi menjadi bagian yang lebih kecil, boleh dikatakan merupakan tipe dasar. a. Boolean b. Integer c. Float(floating point,’double’) d. String 2. Tipe compound/Tipe campuran a. Array b. Object 3. Tipe special/Tipe khusus a. Resource b. Null
2.5.4 Operator PHP Operator adalah simbol yang digunakan untuk memanipulasi data, seperti penambahan dan pengurangan untuk memberikan suatu hasil. Ada operator yang menggunakan satu operand, ada juga yang menggunakan dua operand. Sedangkan operand adalah data yang dioperasikan atau dimanipulasi. Di sini operand dapat digantikan dengan variabel. Operator pada PHP dibedakan menjadi (Peranginangin, 2006): 1. Operator Aritmatika Operator
aritmatika
merupakan
operator
yang
berhubungan
dengan
perhitungan matematis. 2. Operator Assigment Operator assignment adalah operator dimana operand di sebelah kiri mendapatkan nilai dari operand di sebelah kanan. 3. Operator Bit Operator bit adalah operator yang digunakan untuk operasi bit (binary digit) yang beroperasi pada level bit (0 dan 1)
25
4. Operator Relasi Operator relasi digunakan untuk melakukan suatu pembandingan antara dua ekspresi atau nilai untuk mendapatkan hasil yang bernilai True (benar) atau False (salah). 5. Operator Ternary Operator ternary adalah operator kondisi lain yang mengevaluasi ekspresi yang merupakan model penyederhanaan dari statement if..else… Penulisan dari operator ternary yaitu sebagai berikut: (ekspresi1) ? (ekspresi2) : (ekspresi3);
Jika ekspresi1 bernilai true maka ekspresi2 yang dijalankan dan jika ekspresi2 bernilai false maka ekspresi3 dijalankan. 6. Operator Control Error Operator control error jika ditambahkan pada suatu ekspresi PHP, maka informasi kesalahan yang dihasilkan oleh ekspresi tersebut akan diabaikan. Lain halnya jika fitur track_error di_enable maka informasi kesalahan yang dihasilkan
oleh
ungkapan
akan
disimpan
dalam
variabel
global
$php_errormsg. Isi variabel ini akan selalu diganti dengan (overwritten) informasi kesalahan yang baru setiap evaluasi ulang dilakukan. 7. Operator Eksekusi Operator eksekusi digunakan untuk mengeksekusi isi yang terdapat dalam apitan backticks (``) sebagai suatu perintah shell (shell comand) dan hasilnya ditampung dalam suatu variabel untuk kemudian menampilkannya pada browser. 8. Operator Increment/Decrement Operator
increment/decrement
digunakan
untuk
penambahan
dan
pengurangan nilai dengan menerapkan prinsip pre- dan post 9. Operator Logika Operator logika adalah operator yang digunakan untuk membandingkan dua nilai agar menghasilkan suatu nilai sehingga didapatkan hasil true (benar) atau false (salah).
26
10. Operator String Terdapat dua operator string yaitu (Peranginangin, 2006): 1. Operator penggabungan dengan ‘.’ yang menghasilkan penggabungan argumentasi kanan dan kiri. 2. Operator penggabungan dengan operator
assignment (‘.=’)
yang
menambahkan argument sisi kanan terhadap argument sisi kiri. 11. Operator Array Satu-satunya
operator
array
dalam
PHP
adalah
operator
+
yang
menggabungkan array tanpa menimpa isi array yang digabung
2.5.5 Struktur Kontrol PHP Script PHP terdiri dari serangkaian statement yang dapat berupa pemberi nilai (assignment), pemanggil fungsi, perulangan (loop), statement kondisi atau apapun termasuk statement kosong. Statement ini diatur cara kerjanya oleh struktur kontrol.
2.5.6 Fungsi Rekursif dengan PHP Fungsi Rekursif adalah fungsi yang memanggil dirinya sendiri. Fungsi Rekursif banyak ditemui pada proses pengurutan (shorting) atau juga pada perhitungan nilai faktorial dari suatu bilangan. Contoh format penulisan: fungsi satu() { … fungsi satu(); … }
2.6 Konsep Basis Data dan DBMS Basis data adalah koleksi data yang saling terkait atau secara praktis dapat dianggap sebagai suatu penyusunan data yang terstruktur yang disimpan dalam media pengingat (hard disk) yang tujuannya adalah agar data tersebut dapat diakses dengan mudah dan cepat (Kadir, 2008).
27
2.6.1 Basis Data Data dapat didefinisikan sebagai bahan keterangan tentang kejadiankejadiannyata atau fakta-fakta yang dirumuskan dalam sekelompok lambang tertentu yang tidak acak yang menunjukkan jumlah, tindakan, atau hal (Sutanta, 2004). Sedangkan informasi adalah data yang diolah menjadi bentuk yang berguna dan lebih berarti bagi yang menerimanya (Hartono, 2005). Salah satu definisi yang cukup lengkap dan baik tentang istilah basis data adalah sebaga berikut (Martin, 1975): “A database may be defined as a collection of interrelated data stored together without harmful or unnecessary redundancy to serve more one or more applications in an optimal fashion; the data are stored so that they are independent of programs with use the data; a common and controlled approach its used in adding new data and in modifying and retrieving data within database”.
2.6.1.1 Model Data Data yang disimpan menggambarkan beberapa aspek dari suatu organisasi. Model data, adalah himpunan deksripsi data level tinggi yang dikonstruksi untuk menyembunyikan beberapa detail dari penyimpanan level rendah. Beberapa manajemen basis data didasarkan pada model data relasional, model data hirarkis, atau model data jaringan. 1. Model Data Hirarkis Model hirarkis biasa disebut model pohon, karena menyerupai pohon yang dibalik. Model ini menggunakan pola hubungan orang tua-anak. Setiap simpul (biasa dinyatakan dengan lingkaran atau kotak) menyatakan sekumpulan medan. Simpul yang terhubung ke simpul pada level di bawahnya disebut orang tua. Setiap orang tua bisa memiliki satu (hubungan 1:1) atau beberapa anak (hubungan 1:M), tetapi setiap anak hanya memiliki satu orang tua. Simpul – simpul yang dibawahi oleh simpul orang tua disebut anak. Simpul orang tua yang tidak memiliki orang tua disebut akar. Simpul yang tidak mempunyi anak disebut daun. Adapun hubungan antara anak dengan orang tua disebut cabang.
28
2. Model Data Jaringan Model jaringan distandarisasi pda tahun 1971 oleh Data Base Task Group(DBTG). Itulah sebabnya disebut model DBTG. Model ini juga disebut model CODASYL (Conference on Data System Languages), karena DBTG adalah bagian dari CODASYL. Model ini menyerupai model hirarkis, dengan perbedaan suatu simpul anak bisa memilki lebih dari satu orang tua. Oleh karena sifatnya demikian, model ini bias menyatakan hubungan 1:1 (satu arang tua punya satu anak), 1:M (satu orang tua punya banyak anak), maupun N:M (beberapa anak bisa mempunyai beberapa orangtua). Pada model jaringan, orang tua diseut pemilik dan anak disebut anggota. 3. Model Data Relasional Model relasional adalah model data yang paling banyak digunakan saat ini. Pembahasan pokok pada model ini adalah relasi, yang dimisalkan sebagai himpunan dari record. Deskripsi data dalam istilah model data disebut skema. Pada model relasional, skema untuk relasi ditentukan oleh nama, nama dari tiap field (atau atribut atau kolom), dan tipe dari tiap field.
2.6.2 Database Management System (DBMS) Data yang ada tidak hanya diletakkan dan disimpan begitu saja dalam sebuah media penyimpanan, akan tetapi dikelola dengan sebuah sistem pengaturan basisdata yang sering disebut dengan Database Management System (DBMS) (Nugroho, 2005). Dengan begitu suatu data dengan jumlah besar dan kompleks dapat tersusun sangat baik sehingga memungkinkan pengaksesan data dengan mudah dan cepat oleh pengguna. DBMS dapat menjadi alternative penggunaan secara khusus untuk aplikasi, semisal penyimpanan data dalam file dan menulis kode aplikasi yang spesifik untuk pengaturannya.
2.6.2.1 Elemen Utama DBMS Elemen utama DBMS dapat dibagi menjadi 4 macam (Sutanta, 2004) : 1. Basis data sebagai inti dari sistem basis data.
29
2. Perangkat lunak (software) untuk perancangan dan pengelolaan basis data. 3. Perangkat keras (hardware) sebagai pendukung operasi pengolahan data. 4. Manusia (brainware) yang mempunyai peran penting dalam sistem tersebut, yaitu: sebagai pemakai atau para spesialis informasi yang mempunyai fungsi sebagai perancang atau pengelola.
2.6.2.2 Keuntungan Penggunaan DBMS Pengunaan
DMBS
untuk
mengelola
data
mempunyai
beberapa
keuntungan, yaitu (Herman, 2004): 1. Kebebasan data dan akses yang efisien 2. Mereduksi waktu pengembangan aplikasi 3. Integritas dan keamanan data 4. Administrasi keseragaman data 5. Akses bersamaan dan perbaikan dari terjadinya crashes (tabrakan dari proses serentak).
2.6.2.3 Level Abstraksi dalam Database Data dalam DBMS dapat digambarkan dalam tiga level abstraksi (Herman, 2004), yaitu konseptual, fisik, dan eksternal. Data definition language (DDL) digunakan untuk mendefinisikan skema eksternal dan konseptual. Semua vendor DBMS menyertakan perintah SQL untuk menggambarkan aspek dari skema fisik. Informasi tentang skema konseptual, eksternal dan fisik disimpan dalam katalog sistem.
30
View 1
View 2
View 3
CONCEPTUAL SCHEMA
PHYSICAL SCHEMA
Gambar 2.2 Level Abstraksi Sumber : www.asep-hs.web.ugm.ac.id
2.6.3 MySQL 2.6.3.1 Pengertian MySQL Mysql sebagai database server mendukung printah SQL SQL kependekan dari Structured Query Language. Secara khusus, MySQL juga menambahkan sejumlah fungsi yang membuat perintah SQL pada Mysql sangat variatif. Perintah yang dapat dipahami oleh MySQL disebut sebagai pernyataan. Pernyataan adalah sebuah perintah yang dapat dikerjakan oleh MySQL dengan ciri-ciri diakhiri dengan tanda titik-koma (;)(Abdul Kadir, 2008).
2.6.3.2 Tipe Data MySQL MySQL mendukung banyak tipe data yang dibagi kedalam beberapa kategori yaitu tipe numeric, tipe date and time dan tipe string.
31
a. Tipe data numeric Tabel 2.1 Tipe Data Numeric
TIPE DATA
TINYINT
SMALLINT
MEDIUMINT
INT INTEGER BIGINT
FLOAT DOUBLE DOUBLE PRECISION REAL
KETERANGAN Ukuran 1 byte. Bilangan bulat terkecil, dengan jangkauan untuk bilangan bertanda -128 sampai dengan 127 dan untuk yang tidak bertanda 0 sampai dengan 255. Bilangan tak bertanda ditandai dengan kata UNSIGNED Ukuran 2 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -32768 sampai dengan 32767 dan untuk yang tidak bertanda 0 sampai dengan 65535 Ukuran 3 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -8388608 sampai dengan 8388607 dan untuk yang tidak bertanda 0 sampai dengan 16777215 Ukuran 4 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -2147483648 sampai dengan 2147483647 dan untuk yang tidak bertanda 0 sampai dengan 4294967295 Sama dengan INT. Ukuran 8 byte. Bilangan bulat dengan jangkauan untuk bilangan bertanda -9223372036854775808 sampai dengan 9223372036854775807 dan untuk yang tidak bertanda 0 sampai dengan 184467440737079551615 Ukuran 4 byte. Biilangan pecahan. Ukuran 8 byte. Bilangan pecahan. Ukuran 8 byte. Bilangan pecahan berpresisiganda.
Ukuran 8 byte. Sinonim dari DOUBLE. Ukuran M byte. Bilangan pecahan. Misalnya DECIMAL(5,2) DECIMAL(M,D) dapat digunakan untuk menyimpan bilangan -99,99 sampai dengan 99,99 NUMERIC(M,D) Ukuran M byte. Sama dengan Decimal.
32
b. Tipe data date and time Tabel 2.2 Tipe Data Date and Time
TIPE DATA DATETIME DATE TIMESTAMP TIME YEAR
KETERANGAN Ukuran 8 byte. Kombinasi tanggal dan jam dengan jangkauan dari ‘1000-01-01 00:00:00’ sampai dengan ‘9999-12-31 23:59:59’ Ukuran 8 byte. Kombinasi tanggal dan jam dengan jangkauan dari ‘1000-01-01’ sampai dengan ‘9999-12-31 ’ Ukuran 4 byte. Kombinasi tanggal dan jam dengan jangkauan dari ‘1970-01-01’ sampai dengan ‘2037 ’ Ukuran 3 byte.waktu dengan jangkauan dari -838:59:59 sampai dengan 838:59:59 Ukuran 1 byte. Data tahun antara 1901 sampai dengan 2155
c. Tipe data string Tabel 2.3 Tipe Data String
TIPE DATA
KETERANGAN Ukuran M byte, 1<=M<=255. Data string dengan CHAR(M) panjang yang tetap. CHAR(1) cukup ditulis dengan CHAR. Ukuran L+1 byte dengan L<=M dan 1<=M<=255. VARCHAR(M) Data string dengan panjang bervariasi tergantung datanya. L+1 byte, dengan L<28 . Tipe TEXT atau BLOB TINYBLOB, TINYTEXT dengan panjang maksimum 255 karakter. L+2 byte, dengan L<216 . Tipe TEXT atau BLOB BLOB, TEXT dengan panjang maksimum 65535 karakter. MEDIUMBLOB, L+3 byte, dengan L<224. Tipe TEXT atau BLOB MEDIUMTEXT dengan panjang maksimum 1677215 karakter. LONGBLOB, L+4 byte, dengan L<232. Tipe TEXT atau BLOB LONGTEXT dengan panjang maksimum 4294967295 karakter. Ukuran 1 atau 2 byte tergantungnilai enumerasinya ENUM(‘nilai1’,’nilai2’,..) maks 65535 nilai Ukuran 1,2,3,4 atau 8 byte tergantung jumlah anggota SET(‘nilai1’,’nilai2’,..) himpunan maks 64 anggota. 2.6.4 PHP dan MySQL Pengaksesan database MySQL dengan PHP banyak menggunakan fungsi built-in yang telah disediakan oleh PHP.
33
2.6.4.1 Koneksi MySQL dengan PHP Perlu adanya sebuah koneksi untuk memanipulasi tabel dalam database MySQL dengan PHP melalui script PHP. PHP telah menyediakan fungsi built-in untuk membuat koneksi dengan MySQL. Berikut contoh penulisan skripnya: mysql_connect(address, username, password);
address merupakan alamat IP(internet protocol) atau nama host computer tempat software MySQL server bekerja. username merupakan nama user yang berhak mengakses database MySQL. password merupakan kata sandi yang telah dibuat di dtatabase MySQL.
2.6.4.2 Query SQL dengan PHP Perintah-perintah query SQL dapat dibuat dengan PHP. Fungsi PHP yang digunakan adalah mysql_query. Contoh penggunaan fungsi tersebut adalah sebagai berikut: mysql_query(“isi query”);
Fungsi mysql_query akan mengembalikan nilai kebenaran TRUE atau FALSE. Hal ini menandakan sukses atau gagalnya suatu query. MySQL sendiri dapat mengetahu berapa banyak baris dari tabel yang dihapus, di-input ataupun diubah dari
setiap
perintah
query
SQL.
Fungsi
yang
digunakan
adalah
mysql_affected_row.
2.7 Extensible Markup Language (XML) Kata “extensible” dalam bahasa pemrograman berarti pengembang dapat mengembangkan kemampuannya. Informasi dalam XML disimpan didalam tag. Markup berarti sebuah bahasa ayng dibangun dengan menggunakan tag untuk mengelilinginya atau markup text. Tag didefinisikan dan diterjemahkan oleh browser. Tag akan mengatakan kepada browser untuk memformat objek seperti text, image dan form. Pada XML tidak ada struktur informasi yang disampaikan seperti pada HTML sehingga untuk menampilkan informasi diperlukan parser untuk menerjemahkannya antara data dan tag. XML dapat digunakan sebagai alternatif dalam menukar data antar aplikasi. Komunikasi antardata biasanya meng-exsport kedalam format tertentu, mengelola
34
kembali data, kemudia meng-import kedalam software baru. Sebagian software aplikasi tidak men-share format data sehingga XML sangat berguna dalam pertukaran data tersebut.
2.7.1 Struktur Dokumen XML XML dibagi menjadi beberapa bagian penting. Bagian-bagian tersebut menunjukkna koleksi dari isi yang berarti juga aturan membangun XML. Berikut ini pembagian dari dokumen XML (Andi Sunyoto, 2010): a. Element b. Attribute c. Text d. Entitie e. Comment
2.7.1.1 Elemen Sebuah dokumen XML dapat berisi satu atau lebih elemen. Elemen mengenalkan dan menandakan isi. Berikut contoh sebuah elemen:
Isi Tag
Elemen dapat berisi elemen yang lain dan juga elemen dapat tidak diberi nilai. Penulisan elemen sama dengan pada HTML yaitu berisi tag pembuka dan tag penutup. Ketika elemen berisi elemen yang lain, elemen yang diisi disebut parent dan elemen didalamnya disebut child. Sementara itu, elemen pertama dalam sebuah dokumen XML disebut dengan root.
Root
Child nodes
Sibling nodes
Gambar 2.3 Ilustrasi Struktur Node sebuah Dokumen XML
35
2.7.1.2 Atribut Atribut berfungsi sebagai pemberi informasi tambahan sebuah elemen. Atribut disimpan didalam tag pembuka sebuah elemen setelah nama elemen. Atribut terdiri dari nama atribut dan nilai atribut. Berikut contoh dari penulisan atribut.
Isi Tag
2.7.1.3 Text Text menggambarkan isi informasi diantara tag pembuka dan tag penutup elemen. Text diantara tag pembuka dan teag penutup dalam sebuah elemen akan diproses dalam pengolahan XML sehingga special karakter seperti “<” dan “>” diganti dengan entity &alt; dan >. Berikut contoh penulisan text: Disini ditulis text
2.7.1.4 Comment Comment dalam XML sama dengan comment dalam HTML, yaitu dimulai dengan karakter “”. Berikut adalah contoh dari penulisan comment:
2.7.2 Deklarasi Opsional XML 2.7.2.1 Deklarasi XML Sebuah dokumen XML biasanya dimulai dengan
XML declaration,
meskipun itu bersifat optional. Deklarasi XML berada pada baris pertama dokumen XML. Deklarasi XML berisi versi dari XML. Contoh pendeklarasian XML adalah sebagai berikut:
2.7.2.2 Document Type Definition (DTD) Document Type Definition (DTD) dan deklarasi DOCTYPE merupakan pasangan jika dideklarasikan pada XML. Sebuah DTD menyediakan informasi tentang elemen mana yang legal dalam sebuah dokumen XML dan memberi tahu
36
elemen mana yang wajib dan elemen mana yang optional. DTD menyediakan validasi aturan dokumen XML. Contoh penulisan DTD adalah sebagai berikut:
2.7.3 Loading XML dengan Flash Proses loading sebuah dokumen XML kedalam Flash terbagi menjadi tiga langkah, yaitu (Andi Sunyoto, 2010) : 1. Membuat objek XML 2. Menentukan apa yang terjadi setelah dokumen XML di-load, yaitu membuat sebuah function tentang informasi XML yang di-load. 3. Load dokumen eksternal ke objek XML. Flash memilah (parse) menjadi dokumen XML bentuk pohon (XML document tree) Bentuk skrip dari langkah-langkah pengolahan XML diatas dapat dilihat sebagai berikut: 1. Langkah pertama untuk me-load XML kedalam Flash adalah membuat bentuk instan. Vax myXML = new XML();
2. Pada pembuatan instan XML, diberikan opsi untuk menambahkan string sebagai parameternya. Var myXML = new XML(“<judul>Belajar XML”);
3. Langkah kedua adalah me-load file eksternal XML kedalam bentuk instan objek XML menggunakan method xml.load myXML.load(“path_to_xml/data.xml”);
Ketika XML telah di-load kedalam objek instan XML, kemudian XML diparser, data XML ditransformasi ke bentuk document tree.
2.7.3.1 Function onLoad Setelah dokumen XML selesai di-load, Flash akan memanggil function yang ditentukan pada baris onLoad. Function dipanggil melalui event Handler onLoad, dan akan dijalankan setelah dokumen XML berhasil di-load oleh Flash dan diparsing menjadi sebuah XML document tree.
37
Function onload didefinisikan sebagai berikut: myXML.onLoad = functionName;
Tipe ActionScript sebelumnya, function harus menggunakan tanda kurung atau functionName(). Pada function onLoad dapat menambahkan parameter untuk mengethaui apakah file yang di-load berhasil atau tidak. Selanjutnya didalam function onLoad harus mengecek parameter sebelum memulai memproses dokumen XML. Dapat juga mengecek properti status dokumen dan melihat jika ada masalah pada saat proses loading.
2.7.3.2 Error XMLocating pada Sebuah File XML Ketika me-load dokumen XML eksternal ke Flash bisa terjadi kesalahan yang mungkin terjadi. Sebuah dokumen XML gagal di-load biasanya disebabkan beberapa hal: 1. File tidak ditemukan. 2. Dokumen XML yang di-load tidak well formed. Ketika suatu dokumen XML dikatakan tidak well formed maka Falsh akan menemui kesulitan untuk memparsing ke dalam bentuk XML document tree. Flash akan mengindikasikan dokumen sukses di-load jika XML dapat diparsing. Pada class XML mempunyai properti status yang mengindikasikan terjadi kesalahan ketika parsing dokumen XML. Properti ini akan mengembalikan nilai dari 0 dan -10. Nilai properti dapat dilihat sebai berikut:
38
Tabel 2.4 Daftar Nilai Kesalahan Loading XML
Nilai
Keterangan
0
No Error, proses parsing berhasil
-2
Kesalahan pada section CDATA
-3
Kesalahan pada deklarasi XML
-4
Kesalahan pada DOCTYPE
-5
Kesalahan pada comment
-6
Sebuah elemen XML malfored
-7
Aplikasi out of memory (memory tidak cukup)
-8
Ada kesalahan pada pmeberian nilai atribut
-9
Sebuah tag pembuka tidak sesuai dengan tag penutup
-10
Sebuah tag pembuka tanpa ada tag penutup
Sumber: Andi Sunyoto, 2010
2.8 ActionScript Pemrograman dengan Actionscript dapat digunakan untuk pembuatan visualisasi disegala bidang terutama aplikasi interaktif berbasis web. Actionscript adalah pemrograman visual berorientasi objek. Seperti JavaScript, Actionscript mempunyai sintaks, tata bahasa dan struktur yang mirip dengan bahasa pemrograman C++. Actionscript mempunyai beberapa komponen, seperti predefine objek dan fungsi. Actionscript mengikuti sintaks (syntax), keywords, operator dan variabel untuk meyimpan dan mengambil informasi. European Computers Manufacturer Association (ECMA) membuat dokumen ECMA-262 yang diambil dari JavaScript, dan ECMA-262 menjadi spesifikasi Actionscript. Actionscript merupakan bahasa pemrograman yang digunakan dalam Macromedia Flash. Penggunaan Actionscript mempunyai tujuan : 1. Memberikan kebebasan berkreasi bagi desainer 2. Membuat animasi interkatif 3. Dapat menampilkan animasi tertentu (non linier)
39
2.8.1 Sintaks Actionscript mempunyai aturan dan tata bahasa dan tanda baca tersendiri sehingga mengenali awal dan akhir sebuah pernyataan, suatu pernyataan diakhiri dengan tanda semicolon (;). Sintaks dalam Actionscript ada dua macam, yaitu: dot sintaks dan slash sintaks. a. Dot sintaks, digunakan untuk menunjukkan properti dari method sebuah objek atau movie clip dan untuk mengenali target path ke suatu movie clip atau variabel. Contohnya : LingkaranMc. _x; {untuk menunjukkan ordinat x dari movie clip lingkaranMc} LingkaranM.play();{untuk memulai sebuah movie clip}
b. Slash sintaks, digunakan dalam Flash 3 dan 4 untuk menunjukkan target phat dari movie clip atau variabel. Sintaks ini masih dapat digunakan pada Flash 5, tetapi tidak disarankan. Contohnya : LingkaranMc/childMovieClip:myVariable
c. Kurung Kurawal, pernyataan pada Actionscript dikelompokkan bersama ke dalam satu blok dengan kurung kurawal ({ }), seperti script berikut: on(release) { gotoAndPlay("mulai"); }
d. Semicolons, suatu pernyataan dalam Actionscript diakhiri dengan semicolon (;), seperti contoh : Hasil Nilai
= "benar"; = 1;
e. Huruf besar dan huruf kecil, digunakan sesuai keinginan, kecuali keywords. Penggunaan huruf besar ekivalen dengan huruf kecil seperti contoh berikut: Warna.setRGB(0x00cc33); WARNA.setRGB(0x00cc33) ;
Kebiasaan
menuliskan
secara
konsisten
dapat
memudahkan
Actionscript untuk mengenali nama fungsi dan variabel dengan baik. f. Komentar, bermanfaat dalam pengembangan sistem dan pihak lain yang memerlukannya. Komentar diawali dengan tanda //. Contoh: on(release) { gotoAndPlay("mulai");//digunakan untuk masuk ke frame mulai
40
g. Keywords, digunakan untuk keperluan tertentu sehingga tidak dapat digunakan sebagai variabel, fungsi atau nama label. Keyword dalam Actionscript seperti dalam table berikut: Tabel 2.5 Keyword dalam Actionscript
break continue delete else
for function if in
new return this typeof
var void while with
h. Konstanta, merupakan nilai tetap yang sudah disediakan oleh Flash. Contohnya: BACKSPACE, ENTER, QUOTE, RETURN, SPACE, sedangkan TAB adalah properti dari objek Key yang berhubungan dengan tombol pada keyboard, untuk memeriksa apakah pengguna menekan tombol Enter, digunakan pernyataan berikut: If (keycode() == Key.ENTER){ Hasil = "Game Selesai"
i. Tipe data, dapat berupa tipe data primitive dan tipe data referensi. Tipe data primitif berupa string, number dan Boolean. Tipe data referensi berupa movie clip dan object j. Variabel, merupakan komponen yang penting dalam pemrograman. Variabel digunakan untuk menyimpan nilai, dan nilai yang ada padanya dapat diubah selama eksekusi program berlangsung. k. Operator, adalah symbol yang biasa dilibatkan dalam program untuk melakukan operasi dan manipulasi. Operator dapat dikelompokkan menjadi 7 kategori yaitu: 1. Operator numeric, seperti tambah, kurang, kali, bagi, dan menjalankan operasi aritmatika. Tabel 2.6 Operator numerik Operator Keterangan +
Tambah
*
Perkalian
/
Pembagian
%
Modulo
-
Kurang
++
Penambahan
—
Pengurangan
41
2. Operator pembanding : digunakan untuk membandingkan nilai pada suatu ekspresi dan mengembalikan nilai Boolean. Table 2.7 Operator pembanding
Operator Keterangan < Lebih kecil > Lebih besar <= Lebih kecil atau sama dengan >= Lebih besar atau sama dengan 3. Operator String : Operator '+' mempunyai akibat khusus bila digunakan untuk operasi pada string, yaitu menggabungkan dua operasi string, contohnya: "Selamat ulang tahun " + "Maria" = "Selamat ulang tahun Maria" 4. Operator Logika adalah operator yang menghasilkan nilai Boolean (True dan False). Tabel 2.8 Operator Logika
Operator && || 1 5. Operator
Keterangan Logika AND Logika OR Logika NOT Bitwise, operator ini memanipulasi angka floating point dan
berubah menjadi integer 32 bit yang lebih mudah dikerjakan Tabel 2.9 Operator Bitwise
6.
Operator Keterangan & Bitwise And | Bitwise Or Bitwise Xor A Bitwise Not Shift left « Shift right » Shift right zero Operator kesamaan dan assignment, digunakan untuk mengenali apakah fill nilai dari dua operan identik. Perbandingan ini menghasilkan nilai Boolean (True dan False).
42
Tabel 2.10 Operator kesamaan dan assigment
Operator == != = += -= *_ %= /= <<= >>= >>>= A|= &=
Keterangan Equality Inequality Assignment Addition and Assignment Substraction and Assignment Multiplication and assignmnet Modulo and assignment Division and assignment Bitwise shift left and assignment Bitwise shift right and Shift right zero fill and assigment Bitwise Xor and assignment assigment Bitwise Or and assignment Bitwise And and assignment