Budaya Dunia Maya (Netiket)

 

Netiket berkaitan erat dengan dua istilah, yaitu etiket dan etika. Etiket didefinisikan sebagai “aturan konvensional perilaku pribadi dalam masyarakat yang menyangkut kesopanan”. Adapun Etika yaitu: “berkaitan dengan moral yang baik dan terhormat” (lihat definisi keduanya dalam Concise Oxford Dictionary). Kelly (1996) mengatakan bahwa penulis beberapa artikel netiket lebih suka menggunakan kata “nethics” untuk mengistilahkan “pelanggaran berat di dunia maya daripada netiket,” dan netiket untuk pelanggaran ringan. Namun, sebagian besar peneliti tidak membuat perbedaan antara nethics dan netiket ketika mengacu pada kedua masalah moral dan standar kesopanan (Scheuermann,  1997).

Terdapat beberapa pedoman dasar dalam Etika yang disebut oleh Rinaldy (1996) sebagai “The Ten Commandment of Computer Ethics, yaitu:

  1. Tidak menggunakan komputer untuk merugikan orang lain.
  2. Tidak mengganggu komputer orang lain.
  3. Tidak mengintai file orang lain.
  4. Tidak menggunakan komputer untuk mencuri.
  5. Tidak menggunakan komputer untuk mengucapkan saksi dusta.
  6. Tidak menggunakan atau menyalin perangkat lunak bajakan.
  7. Tidak menggunakan sumber daya komputer orang lain tanpa otorisasi.
  8. Tidak mencuri hasil karya orang lain.
  9. Berpikir tentang konsekuensi sosial dari program atau posting yang Anda tulis.
  10. Menggunakan komputer dengan cara bijak dan dengan rasa hormat pada pengguna lain.

Mengenai etiket, Brakeman (1995) menyajikan The Ten Commandment of Etiquette, yaitu:

  1. Jangan pernah lupa bahwa pengguna lain adalah juga manusia.
  2. Hendaknya menulis atau berkomentar secara singkat dan tepat.
  3. Hormati pesan atau komentar orang lain.
  4. Gunakan judul yang tidak menipu dalam posting/pesan.
  5. Fahami siapa audiens dari posting Anda.
  6. Hindari humor yang bersifat sarkasme.
  7. Selalu tinjau kembali apa yang sudah Anda katakan
  8. Bersosialisasilah (kembali kepada masyarakat yang riil).
  9. Tidak terus mengulangi apa yang telah dikatakan.
  10. Cantumkan referensi secara tepat.

Dari berbagai buku maupun jurnal-jurnal ilmiah yang dipublikasikan online, baik dipublikasikan secara terbuka maupun secara tertutup (seperti di Proquest, Ebsco, maupun portal jurnal online lain) terdapat beberapa panduan Netiket, yang dapat diringkas ke dalam beberapa poin penting.  Virginia Shea (1994) pernah menulis buku khusus dengan judul “Netiquette” bisa dibaca offline di perpustakaan, bahkan ia membagikan bukunya secara gratis di laman ini. Virginia Shea menulis lengkap mengenai berbagai pedoman Netiket. Ia menulis 10 pedoman dasar mengenai Netiket.

Berikut ini adalah ringkasan dari pedoman netiket yang disarikan dari buku Virginia Shea dan dari beberapa jurnal penelitian:

  1. Pikirkan dulu sebelum posting (Think first before posting)

Karakteristik sebuan pesan atau tulisan di dunia maya yaitu dapat disalin dan diteruskan secara cepat. Pertimbangan yang matang sebelum menulis mutlak diperlukan agar tidak terjadi dampak yang tidak diinginkan. Hindari menulis di saat kesal atau marah. Lebih baik menunggu satu hari atau beberapa saat daripada menulis atau menjawab komentar secara tergesa-gesa

  1. Tulis judul posting dan komentar dalam huruf besar dan kecil. Huruf KAPITAL semua (uppercase) akan dipersepsi oleh orang lain seperti “BERTERIAK”, sementara jika huruf kecil semua akan menyulitkan untuk dibaca.
  2. Hindari singkatan alay

Singkatan ini mungkin umum digunakan seperti “Pls, fwd, asap ” dan sejenisnya, tapi tidak semua orang faham.

  1. Menulis dan berkomentar secara singkat dan fokus

Menulis atau berkomentar secara singkat dan fokus memiliki dampak yang jauh lebih besar daripada ngalor-ngidul, ingin semua dibahas, menjadi tidak fokus. Singkat bukan berarti satu atau dua kata saja, tetapi fokus pada apa yang hendak disampaikan dengan bahasa yang singkat dan mudah dimengerti oleh semua orang. Ingatlah, bahwa manusia hanya akan mengingat kata terakhir saja atau kata yang menurutnya penting saja sebagai kata kunci dalam merespons. Gunakan spasi dan baris dengan baik untuk dapat menekankan informasi mudah untuk dibaca.

  1. Hindari smiley atau emoticon

Tidak semua orang faham dengan arti dari sebuah emoticon. Seperti diungkapkan oleh Scheuermann (1997), emoticon dengan “gambar kepala orang yang sedang mengisap rokok” misalnya, si pembaca akan bertanya-tanya “apa maksudnya dari ini”? Saya juga tidak tahu sampai saat ini apa arti dari emoticon itu.

Emoticon sangat sedikit yang dapat dimengerti, kebanyakannya membingungkan. Banyak cara yang lebih baik untuk menyampaikan perasaan daripada dengan sebuah emoticon.

  1. Hindari flaming

Pedoman ini adalah “Golden Rule“, aturan utama dalam netiket. Flaming secara mudahnya dapat diartikan penghinaan atau komentar kasar terhadap orang lain. Flaming juga dapat berarti lari dari substansi atau fokus diskusi.  Secara lebih luas flaming adalah tindakan provokasi, mengejek, ataupun penghinaan yang menyinggung pengguna lain.

Menurut Virginia Shea, flaming dalam sebuah diskusi bisa berarti “perdebatan sengit” (istilah kitanya mungkin “debat kusir”). Flaming dalam arti debat, menurut Shea, kalaupun hendak mendebat hindari mendebat secara membabi-buta.

Hindari mendebat pada pemula ataupendatang baru yang mungkin berstatemen agak “bodoh”. Karena mungkin ilmunya masih terbatas atau belum mempelajari karakteristik dari forum yang ia ikuti.

Debat kusir tidak akan mencerminkan bahwa “Anda populer” atau “Anda pintar”, justru mendebat dengan membabi buta seringkali menyebabkannya terjebak pada komentar yang “bodoh” (poorly executed flames). Dalam buku Netiquette diingatkan bahwa, “Remember that a poorly executed flame is worse than no flame at all” (silahkan diartikan, saya susah untuk mencari padanan katanya).

  1. Hindari sikap mudah tersinggung

Beberapa pesan berupa posting atau komentar mungkin tidak bermaksud untuk menggoda atau mencemooh. Misalnya, seseorang yang berkomentar tentang bagaimana cuaca di sekitarnya yang menurutnya menyenangkan.  Lantas hal ini dipersepsi berbeda dan dikomentari oleh seseorang, bahwa cuaca di lingkungan sekitarnya jelek (bad weather). Padahal keduanya berbeda negara atau berbeda wilayah. Hal ini akan memicu salah pengertian. Keduanya sebetulnya benar, tetapi ketika bertemu dalam satu frame menjadi satu hal yang kontradiktif.

  1. Hindari sikap atau kata-kata yang menggurui

Jauh lebih baik untuk menulis argumentasi dengan alasan yang logis daripada berkhotbah. Scheuermann (1997) mengutip pendapat dari seorang pendeta bernama Bob Crispen yang mengatakan: “Setiap orang dari waktu ke waktu selalu ingin mengkhotbahi orang lain, melangkah dengan berani ke perkemahan musuh dan menyampaikan ajaran atau keyakinannya, Anda benar, Anda salah, Anda masuk surga, Anda masuk neraka, dan seterusnya”.

  1. Memaafkan kesalahan orang lain

Memaafkan bukan hanya di dunia nyata tetapi juga penting di dunia maya. Tentang ini saya rasa tidak usah dijabarkan lebih lanjut.

  1. Kenali audiens

Posting dengan maksud yang benar tetapi disampaikan pada saat yang tidak tepat akan memicu pertengkaran. Hal ini karena penulis gagal memahami audiens dari tulisannya. Misalnya tulisan tentang kritik pada kondisi kemerdekaan RI tetapi disampaikan pada saat hari HUT Kemerdekaan dengan mengatakan “Kita Belum Merdeka”. Bayangkan jika ibu atau kekasih Anda sedang ulang tahun, apakah Anda akan tega mengkritiknya pada saat ia ulang tahun?**[harjasaputra]

Referensi:

Scheuermann, Larry; Taylor, Gary, Netiquette, Jurnal Internet Research 7. 4  (1997): 269-273.

Shea, Virginia. Netiquette. Cornell Univ: Albio Publisher, 1994, digitized 2004.

http://www.harjasaputra.com/riset/pedoman-dalam-berinteraksi-di-dunia-maya-netiquette.html

Kelly, P. J. (1996), “Netiquette and Nethics” from Back to Netropolitan Life, Mind your Manners, available: http://www-home.calumet.yorku.a/pkelly/www/ nquette.htm

Brakeman, L. (1995), “E-mail Lists are the Ultimate Electronic Penpals, ” Managed Healthcare, Vol. 5, July, p. 50.

 

Saya adalah salah satu orang yang sulit untuk merancang masa depan. Mau jadi apa saya 10 tahun kedepan? Akan jadi apakah saya dalam 4 tahun kedepan? Akan berada dimana saya 2 tahun kedepan? Apa yang saya kerjakan 5 tahun kedepan? Jawabannya hanya satu yaitu, saya tidak tahu. Yang saya rasakan saat ini adalah wajar kalau saya tidak tahu.Terlebih teman-teman sepermainan saya pun berpikiran samayaitu tidak tahu apa yang akan dia kerjakan kedepan sehingga saya merasa normal-normal saja memiliki pemikiran seperti itu.

Namun pemikiran tersebut berubah menjadi krusial ketika suatu bencana menimpa keluarga saya. Ya, ayah saya menderita penyakit yang menurut saya adalah suatu momok yang menakutkan. Beliau, divonis menderita penyakit diabetes mellitus tipe 2. Iya diabetes yang merenggut hampir 25 kg berat badan ayah saya hanya dalam kurun waktu 2 bulan saja. Seketika saya merenung, merasa ketakutan, gelisah tidak karuan. Harus menerima kenyataan melihat ayah saya yang harus rela tubuhnya disuntikan makhluk hidup berupa insulin setiap harinya hingga 2 kali banyaknya.  Dan harus ikhlas mengalokasikan pembelajaan bulanan hasil kerja PNS ayah saya untuk biaya pengobatan. Ya Allah betapa beratnya beban yang harus ditanggung oleh keluarga kami. Mungkin ini cara Allah menyayangi diri saya beserta keluarga saya, karena saya yakin Allah mencintai hambanya juga dengan cara memberi cobaan.

Sebagai anak laki-laki tertua dikeluarga saya sadar diri harus mempersiapkan segala kemungkinan yang ada. Maka saya mulai memikirkan kembali pertanyaan-pertanyaan tadi. Seketika berubah merujuk kesatu pernyataan saya harus menjadi apa. Ya saya mahasiswa akhir dengan umur 21 tahun harus dan wajib menjadi “apa”. Harus menjadi “apa” yang bisa meringankan beban orang tua saya, setidaknya tidak menyusahkan beliau. Harus menjadi “apa” yang dicita-citakan orangtua saya melihat saya wisuda secepatnya. Harus menjadi “apa” yang mendapat pekerjaan dengan gaji yang bisa memenuhi segala kebutuhan orangtua,adik laki-laki saya serta saya. Harus menjadi “apa” yang selalu  mendoakan orangtua saya. Sehingga pertanyaan diatas menghasilkan satu pertanyaan yang sangat besar, apa yang harus saya lakukan esok hari?

“Sometimes it’s hard to find motivation, but sometimes motivation finds you!”

Kecerdasan Buatan Di Masa Depan

Saat ini kecerdasan buatan atau Artificial Intelligence (AI) merupakan bidang ilmu computer yang semakin berkembang pesat. Banyak aplikasi yang telah digunakan untuk kemamjuan teknologi automatisasi, seperti sistem pakar, robotika, sistem sensor , game playing, peramalan menggunakan jaringan syaraf tiruan dan masih banyak lagi.

Dengan pemanfaatan kecerdasan buatan segala aktifitas manusia dapat didukung. Apalagi di era teknologi saat ini manusia modern sangat mengandalkan teknologi. Dengan kecerdasan buatan pekerjaan manusia menjadi efisien dan maksimal. Contohnya dalam bidang robotika. Saat ini banyak sekali contoh aplikasi kecerdasan buatan dalam bidang robotika yang sangat berguna untuk membantu manusia salah satunya adalah robot mini Andros II.

 Image

Mini Andros II

Mini Andros II, sebuah robot penjinak bom melepaskan ‘bom’ dari ujung mobil dalam demo untuk wartawan di Miami. The federal Bureau of Alcohol, Tobacco, Firearms and Explosives menunjukkan bagaimana robot melepaskan dan mejinakan bahan peledak dengan aman.

 

Kecerdasan Buatan Di Masa Depan 

Kecerdasan buatan di masa depan mungkin akan terfokus kedalam bidang robotika. Apalagi dengan kembiasaan manusia modern saat ini yang sangat membutuhkan automatisasi dalam kehidupan sehari-hari. Dengan memanfaatkan kecerdasan buatan tentulah robot di masa depan akan lebih pintar . Semakin berkembangnya kecerdasan buatan maka akan semakin berkembang juga ilmu robotika.

Di Indonesia sendiri aplikasi kecerdasan buatan robotika ini lebih baik difokuskan kedalam bidang pertanian. Tak hanya pekerjaan yang terkait dengan industri besar saja, pekerjaan yang biasa dikerjakan secara tradisional seperti di bidang pertanian juga membutuhkannya. Dilihat dari basis Indonesia sebagai Negara agraris maka pengimplentasian robot didalam bidang pertanian akan semakin meningkatkan kualitas dan kuantitas dari hasil pertaniannya.

Masa depan pertanian bukan tentang mendapatkan efisiensi lebih banyak dari masing masing petani tetapi bagaimana petani mengoptimalkan teknologi dan bukan teknologi mengoptimalkan petani. Masa depan pertanian terletak tidak dengan rekayasa genetika benih atau super-pupuk, melainkan dapat datang dalam cara baru untuk menanam, tumbuh dan panen tanaman menggunakan robot bukan traktor,Sehingga mendapatkan hasil yang melimpah dari setiap petak lahan pertanian yang di olah.

         Image

Prospero Robot

                Salah satu proyek robot pertanian yang sedang dikembangkan saat ini adalah prospero robot. Robot ini dikembangkan oleh seorang ilmuan bernama David Dorhout. Beliau telah membangun sebuah Robot yang disebut Prospero yang dapat menanam benih secara individu dan yang paling menarik adalah robot bisa mengingat dimana dia menanam benih serta memplot bagian bagian yang belum di tanami.

Prospero hanya awal, kata Dourhout melalui discovery. Dia ingin membangun sebuah robot yang bisa menanam, memelihara dan juga mampu untuk memanen secara mandiri dan yang lebih penting adalah cara yang paling efisien. Robot petani diwaktu senggang juga bisa di fungsikan untuk membantu petani menjaga lahan pertanian dari hama dan Gulma tanpa menggunakan bahan kimia sehingga produk pertanian yang dihasilkan sangat sehat dan hasil panen yang meningkat. Prospero merupakan robot berkaki enam sebagai langkah awal dalam merevolusi sistem pertanian di masa depan, dan ini merupakan Visi dari Dourhout.

Referensi

Implementasi Constraint Untuk Menjamin Integritas Data Dalam Basis Data

Implementasi Constraint Untuk Menjamin Integritas Data Dalam Basis Data

BAB 1 PENDAHULUAN

                Data adalah sesuatu yang mewakilkan objek dan peristiwa yang memiliki arti sangat penting bagi pemakai (user) . Data adalah fakta yang dapat disimpan dan memiliki arti, sehingga dapat disimpulkan bahwa data adalah fakta yang terjadi atau representasi dunia nyata,  memiliki arti  dan dapat disimpan serta dapat diatur sedemikian rupa sehingga dapat menjadi sebuah form yang dapat digunakan untuk berbagai tujuan.

                Dapat dilihat dari definisi diatas data sangatlah krusial, apabila kita salah memasukan data atau membaca data maka efeknya akan sangat besar, karena data merupakanan respresentasi dunia nyata. Untuk menjamin keabsahan data maka diperlukan sebuah data yang terintegritas. Dalam basis data integritas data mengacu kepada menjaga dan memastikan akurasi dan konsistensi data yang disimpan, ditambahkan maupun digunakan. Rusaknya integritas data diantara lain disebabkan oleh :

  1. Pengelolaan data yang tidak sesuai syarat

Dapat terjadi saat memasukan,memodifikasi maupun menghapus data yang tidak sesuai dengan syarat.

  1. Kegagalan Sistem

Kerusakan data akibat proses yang terinterupsi (system down, aplikasi crash, dll).

  1. Interaksi antar user

Data yang rusak atau tercampur akibat akses secara bersamaan dari user pada suatu data

                Data yang sahih (valid)  menjadi syarat wajib bagi basis data yang handal. Dalam praktik penggunaan basis data, berbagai sebab dapat mengakibatkan rusaknya konsistensi data, maka dari itu perlu diambil langkah untuk menjaga integritas data salah satunya dengan menentukan Constrtaint atau batasan.

BAB 2 TINJAUAN PUSTAKA

Constraint/ batasan dalam database pada dasarnya adalah pembatasan nilai-nilai yang  diperbolehkan untuk diisikan dalam sebuah kolom atau kolom-kolom yang terdapat dalam sebuah tabel. Dengan menerapkan batasan-batasan dalam sebuah tabel maka dapat dipastikan bahwa hanya data-data yang sesuai dengan batasan tersebut saja yang dapat di sikan dalam tabel tersebut. Fungsi utama dari penerapan batasan-batasan/ constraint dalam sebuah tabel adalah untuk menjamin konsistensi dan integritas data-data yang diisikan dalam sebuah tabel. Beberapa waktu yang lalu sebelum basis data berkembang seperti saat ini, banyak programmer dan Database  Administrator (DBA) menerapkan validasi data pada sisi client/ program aplikasi dantidak pada sisi pemrograman servernya. Tentunya hal ini sangat memerlukan keahlian pemrograman client yang cukup baik dari seorang programmer jika ingin menerapkan validasi yang cukup ketat untuk setiap data-data yang nantinya akan diisikan oleh seorang user dari sisi antarmuka aplikasi clientnya. Contohnya adalah dengan menggunakan visual basic seorang programmer akan membuat listing program tambahan untuk melakukan pengecekan apakah seorang user sudah mengisikan datanya sesuai dengan yang seharusnya diatur dalam business rulesnya. Seiring dengan berkembangnya database, maka saat ini banyak vendor/ perusahaan pembuat aplikasi database seperti Oracle.

Microsoft mulai membuat Database Management System (DBMS) Server yang didalamnya terdapat fitur-fitur yang dapat melakukan validasi terhadap data-data yang dapat diisikan pada sisi server dan bukan lagi pada sisi aplikasi client seperti yang selama ini digunakan oleh programmer. Fitur tersebut disebut dengan constraint. Berikut adalah beberapa contoh constraint yang terdapat dalam produk DBMS, yaitu: PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL. Tentunya jenis-jenis constraint tersebut dapat berbeda untuk masing-masing DBMS yang ada di pasaran saat ini.  Pada oracle Constraint  dapat dideklarasikan dengan dua cara yaitu:

  • Sebagai bagian dari definisi pada sebuah kolom atau atribut. Ini disebut sebagai in-line
  • Sebagai bagian dari definisi tabel yang di sebut out-of-line.

Kedua cara tersebut dapat dilakukan pada seluruh deklarasi constraint, kecuali constraint NOT NULL yang harus di deklarasikan secara in-Line.

Tipe- tipe constraints :

Constraint

Keterangan

NOT NULL

Menentukan suatu kolom tidak boleh berisi NULL.

UNIQUE

Untuk mencegah suatu kolom memiliki 2 baris atau lebih berisi data yang sama.

PRIMARY KEY

Mengkombinasikan constraint NOT NULL dan UNIQUE dalam satu deklarasi.Mengidentifikasikan secara unik setiap baris pada tabel.

FOREIGN KEY

Memaksakan nilai pada suatu tabel untuk bernilai sama dengan tabel lain.

CHECK

Menentukan suatu kondisi yang harus benar.

1.      NOT NULL

NOT NULL merupakan constraint yang digunakan untuk menjamin pengisian record ke sebuah tabel agar nilai record tersebut harus berisi data. Sebuah kolom jika di berikan constraint NOT NULL, maka kolom tersebut harus berisikan nilai untuk recordnya dan tidak boleh di kosongkan. NOT NULL hanya bisa di definisikan dalam sebuah tabel pada level kolom dan tidak bisa pada level tabel. Perbedaan antara NOT NULL dan PRIMARY KEY adalah bahwa setiap kolom yang dijadikan PRIMARY KEY pasti NOT NULL dan tidak berlaku sebaliknya.

Berikut adalah contoh penggunaan constraint NOT NULL:

CREATE TABLE dosen (

nip INTEGER

CONSTRAINT PK_dosen_nip PRIMARY KEY NOT NULL ,

nama_dosen VARCHAR(45),

alamat_dosen VARCHAR(255)

);

 

 

 

2.       UNIQUE

Constraint UNIQUE merupakan sebuah constraint yang akan membatasi pengisian record yang sama kedalam sebuah kolom jika kolom tersebut di berikan constraint UNIQUE dalam sebuah tabel. Constraint ini hampir sama dengan PRIMARY KEY, yaitu menjamin bahwa setiap nilai record yang ada dalam sebuah kolom UNIQUE tidak boleh ada yang sama (unik satu sama lain).

UNIQUE dapat dibuat pada level kolom ataupun level tabel. Sama dengan constraint PRIMARY KEY, FOREIGN KEY, CHECK.

CONSTRAINT U_(nama-tabel)_(nama-kolom) UNIQUE

 

 

Keterangan:

U = Singkatan dari UNIQUE

Nama-Tabel = Nama tabel tempat UNIQUE tersebut dibuat.

Nama-Kolom = Nama Kolom yang akan dijadikan UNIQUE

UNIQUE = Jenis constraint-nya, yaitu UNIQUE

Berikut adalah contoh penggunaan UNIQUE dan PRIMARY KEY secara in-line:

CREATE TABLE dosen (

nip INTEGER

CONSTRAINT pk_dosen_nip PRIMARY KEY ,

nama_dosen VARCHAR(45) CONSTRAINT UQ_dosen_nama

UNIQUE ,

alamat_dosen VARCHAR(255)

);

 

 

3.      PRIMARY KEY

PRIMARY KEY atau Kunci Utama dalam sebuah tabel merupakan kunci yang akan membatasi pengisian record dalam sebuah tabel agar tidak duplikat (redundant). Syarat sebuah kolom/ field dijadikan PRIMARY KEY dalam sebuah tabel adalah unik dan tidak boleh kosong (NOT NULL). Artinya bahwa nilai record-record dalam kolom yang dijadikan PRIMARY KEY haruslah unik satu sama lain dan nilainya tidak boleh di kosongkan. Jika sebuah kolom di beri constraint PRIMARY KEY maka sudah pasti kolom tersebut nilainya tidak boleh kosong atau harus berisi data. Berikut adalah perintah dasar pembuatan constraint PRIMARY KEY:

CONSTRAINT pk_(nama-tabel)_(nama-kolom) [jenis_constraint]

 

 

Keterangan:

PK = Singkatan dari jenis constraint yaitu PRIMARY KEY

Nama-tabel = Nama tabel tempat constraint tersebut di buat

Nama-kolom = Nama kolom yang akan di beri constraint

Jenis_constraint = Jenis-jenis constraint yang akan dibuat (PRIMARY KEY,

FOREIGN KEY, UNIQUE, NOT NULL, CHECK.

                Berikut merupakan contoh penggunaan PRIMARY KEY  secara in-line:

CREATE TABLE dosen (

nip INTEGER PRIMARY KEY ,

nama_dosen VARCHAR(45),

alamat_dosen VARCHAR(255)

);

 

 

                Berikut merupakan contoh penggunaan PRIMARY KEY  secara out-of-line:

CREATE TABLE dosen (

nip INTEGER,

nama_dosen VARCHAR(45),

alamat_dosen VARCHAR(255)

CONSTRAINT pk_dosen_nip PRIMARY KEY

);

 

 

4.      FOREIGN KEY

Foreign key disebut juga sebagai contraint Referential Integrity, constraint ini memastikan bahwa data pada suatu tabel didefinisikan pada tabel lainnya dan mengikat kedua tabel tersebut dalam hubungan parent/child atau referenced/dependent.

Saat kita menggunakan constraint FORIGN KEY, maka kita mengindetifikasikan bahwa suatu kolom pada suatu tabel harus ada pada kolom primary key atau unique pada tabel lain. Tabel dengan kolom primary key atau unique sebagai parent atau referenced, sedangkan tabel dengan foreign key sebagai child atau dependent.

CONSTRAINT fk_(nama-tabel)_(nama-kolom) FOREIGN KEY REFERENCES tabel-referensi(kolom-referensi)

 

Perintah dasar:

Keterangan:

FK = Singkatan dari FOREIGN KEY

Nama-Tabel = Nama tabel tempat FOREIGN KEY tersebut dibuat.

Nama-Kolom = Nama Kolom yang akan dijadikan FOREIGN KEY

FOREIGN KEY = Jenis constraint-nya, yaitu FOREIGN KEY

REFERENCES = Kata kunci untuk merelasikan tabel ini ke tabel utamanya (tabel

yang memiliki PRIMAR KEY)

Tabel-Referensi = Tabel yang akan dijadikan referensi (tabel utama).

Kolom-Referensi = Kolom yang menjadi referensi dari tabel utama.

Berikut adalah contoh penggunaan FOREIGN KEY secara in-line dan out-of-line:

       
   

CREATE TABLE mahasiswa(

nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY

KEY,

nip INTEGER

CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip),

nama_mhs VARCHAR(45),

alamat_mhs VARCHAR(255)

);

 

 
 

CREATE TABLE mahasiswa(

nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY

KEY,

nip INTEGER

nama_mhs VARCHAR(45),

alamat_mhs VARCHAR(255),

CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip)

);

 

 

 

Secara default, constraint foreign key mencegah penghapusan data pada tabel parent, apabila data tersebut di referensi oleh tabel child. Tetapi, jika kita tidak menginginkan hal demikian, kita dapat mengatur database agar secara otomatis menjaga referensial integrity dengan 2 cara, yaitu dengan menghapus data pada tabel child menggunakan klausa ON DELETE CASCADE dan mengubah nilai referensi pada tabel chile menjadi NULL menggunakan klausa ON DELETE SET NULL.

ON DELETE CASCADE

CREATE TABLE mahasiswa(

nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY

KEY,

nip INTEGER,

CONSTRAINT fk_mahasiswa_nim FOREIGN KEY REFERENCES dosen(nip) ON DELETE CASCADE,

nama_mhs VARCHAR(45),

alamat_mhs VARCHAR(255)

);

 

 

CREATE TABLE mahasiswa(

nim INTEGER CONSTRAINT pk_mahasiswa_nim PRIMARY

KEY,

nip INTEGER,

CONSTRAINT fk_mahasiswa_nimFOREIGN KEY REFERENCES dosen(nip) ON DELETE SET NULL,

nama_mhs VARCHAR(45),

alamat_mhs VARCHAR(255)

);

 

ON DELETE SET NULL

FOREIGN KEY YANG MEREFERENSIKAN DIRINYA SENDIRI

Tabel parent dan child tidak terbatas pada dua tabel yang berbeda, namun bisa juga pada dua kolom yang berbeda pada tabel yang sama, ini disebut dengan sel-referencing foreign key. Contohnya adalah tabel Pegawai yang membutuhkan data atasan dari tiap-tiap pegawai, dan atasan tersebut juga merupakan seorang pegawai. Dengan konfigurasi ini hierarki dalam tabel bisa dibuat lebih fleksibel.

5.      CHECK

Constraint CHECK fungsinya untuk pengecekan apakah sebuah kolom memenuhi sebuah kondisi spesifik yang dievaluasi dengan nilai boolean. Jika evaluasi menghasilkan nilai FLASE, maka oracle akan mengeluarkan eksepsi, dan klausa insert atau update akan gagal.

CREATE TABLE rekening (

No_rekening CHAR(15) CONSTRAINT

pk_rekening_no_rekening NOT NULL,

Kode_cabang CHAR(5)

CONSTRAINT fk_rekening_kode_cabang FOREIGN KEY REFERENCES cabang_bank(kode_cabang),

Pin CHAR(6),

Saldo MONEY CONSTRAINT chk_rekening_saldo CHECK(saldo > 50000)

 

Berikut adalah contoh penggunaan constraint CHECK dalam sebuah tabel:

BAB 3 PEMBAHASAN

                Data nilai merupakan data yang krusial, oleh karena itu dibutuhkan usaha untuk menjamin integritas datanya, maka salah satunya dibutuhkan constraint dalam pembuatan basis datanya. Dimulai dari ERD dibawah ini:

Lalu pada pembuatan table pada oracle maka dibutuhkan beberapa fungsi constraint untuk menjaga konsistensi datanya maka akan dibuat seperti ini:

  1. Pembuatan table mahasiswa secara in-line dan out-of lne:

Keterangan:

1 .NIM merupakan primary key

2. Nama harus berisi data atau syaratnya NOT NULL

3. Inisial harus UNIQUE berbeda antara satu dengan yang   lain

NIM merupakan primary key karena mahasiswa pasti memiliki NIM dan sudah pasti berbeda-beda setiap individunya oleh karena itu constraint PRIMARY KEY harus digunakan NIM. Selain itu pada entitas mahasiswa terdapat atribut inisial. Inisial menggunakan constraint UNIQUE, Constraint ini hampir sama dengan PRIMARY KEY, yaitu menjamin bahwa setiap nilai record yang ada dalam sebuah kolom UNIQUE tidak boleh ada yang sama (unik satu sama lain).

  1. Pembuatan tabel Nilai:

Keterangan:

1 .ID_NILAI merupakan primary key

2. NIM merupakan foreign key

3. Nilai antara 0 sampai 100

Id_nilai merepresentasikan kode nilai, jadi apabila jenis nilai yg diinput banyak maka id_nilai lah yang menjadi pembeda maka constraint PRIMARY KEY terdapat pada Id_nilai. NIM pada tabel nilai ini merupakan FOREIGN KEY dari table mahasiswa jadi data NIM pada tabel nilai dan  pada tabel mahasiswa sama, ini untuk mengetahui siapa pemegang dari nilai yang ada didalam tabel nilai. Dan juga pada constrain foreign key diatas menggunakan ON DELETE CASCADE ini untuk menjaga agar apabila data NIM di tabel mahasiswa terhapus maka NIM yang berada di tabel Nilai pun akan ikut terhapus. Ini dibutuhkan untuk menghindari data yang tidak konsisten.

Serta dibutuhkan sebuah constraint CHECK ini dibutuhkan untuk inputan nilai yang masuk ke dalam basis data, disini dibatasi antara 0 sampai dengan 100. Ini berarti sebuah data nilai yang masuk kedalam basis data harus dan pasti bernilai diantara 1 sampai 100 apabilai syarat itu tidak dipenuhi maka data tidak akan masuk kedalam basis data karena melanggar constraint dari CHECK.

Refferensi

  • Wibisono, Yudi. 2009. Integritas Data.ppt
  • Modul_Simbada_2.pdf

 

Integritas Data, Transaksi, Concurrency, Backend Programming dan XML

Integritas Data, Transaksi, Concurrency, Backend Programming dan XML pada basis data

Integritas Data

Dalam basis data integritas data mengacu kepada menjaga dan memastikan keakurasian dan kekonsistensian data yang disimpan, ditambahkan maupun digunakan. Data yang sahih (valid) menjadi syarat wajib basis data yang handal. Dalam praktik penggunaan basis data, berbagai sebab dapat mengakibatkan rusaknya konsistensi data, maka dari itu perlu diambil langkah untuk menjaga integritas data. Dalam menjaga hal-hal tersebut biasanya dilakukanlah serangkaian Constraints Integrity.

Berikut beberapa jenis  Constrain Integrity:

·        Entity Integrity (integritas entitas)

Integritas yang dicapai pada suatu entitas (tabel) dimana setiap data dalam tabel tersebut sesuai dengan konsep atau tujuan tabel tersebut. Integritas dicapai dengan menetapkan batasan (constraint) not null, unique, primary key.

·        Domain Integrity (Integritas Domain)

Memastikan nilai suatu kolom valid dengan membatasi himpunan nilai yang diperbolehkan untuk mengisi suati kolom. Dengan menggunakan create domain dan check.

–          Create Domain : Mendefinisikan batasan nilai dan tipe data untuk suatu kolom.

–          Check: Memeriksa nilai suatu kolom sesuai dengan rentang nilai tertentu

·        Referential Integrity (integritas referensial)

Integritas refernsial tercapai jika kolom pada suatu tabel mereferensi pada tabel lain (dengan foreign key) dengan konsisten. Dimana suatu kolom tidak dapat dirubah atau dihapus jika kolom tersebut menjadi referensi atau foreign key dalam tabel lain.

Transaksi

Transaksi dalam dunia IT berarti suatu aksi/perbuatan yang dilakukan oleh program bertujuan untuk mengakses atau mengubah data yang terdapat di database. Transaksi yang berlangsung tersebut, hanya mengenal dua hasil, yaitu berhasil secara keseluruhan, atau gagal sama sekali. Transaksi tersebut berarti tidak boleh berhasil setengah-setengah, harus berhasil secara keseluruhan.

Tujuan dari transaksi tersebut adalah untuk mencegah database dari kehilangan atau kerusakan data.

Transaksi haruslah memiliki 4 elemen, yaitu :

  • Atomicity : Ini berarti bahwa transaksi haruslah berhasil secara keseluruhan, atau gagal sama sekali.
  • Consistency : Menjaga konsistensi data di database
  • Isolation : Transaksi yang dilakukan secara bersamaan haruslah bisa dimulai dan bisa berakhir.
  • Durability : Setelah transaksi berakhir, data yang berubah tidak boleh kembali ke data awal walaupun sistem mati.

Dalam Transaksi terdapat 2 operasi untuk menjaga integritas data, yaitu Commit diibaratkan sebagai ijab qonul yang berfungsi bahwa transaksi telah selesai dilaksanakan, dan Rollback yang berfungsi untuk memberi tahu bahwa transaksi harus diulang. Rollback biasa digunakan dengan menggunakan save point. Save Point secara sederhana merupakan sebuah titik aman, dimana kita telah menyelesaiakan satu atau beberapa transaksi. Save point dianalogikan seperti sebuah check point saat kita bermain game. Fungsi dari save point adalah supaya pada saat kita ingin rollback atau ada transaksi yang gagal, transaksi tidak berjalan dari awal kembali, tetapi dari save poin yang telah kita buat.

Concurrency

Dalam basis data, penggunaan data secara bersamaan sangatlah memungkinkan. Penggunaan data secara bersamaan ini disebut concurrency atau dalam kata lain concurrency  merupakan transaksi data yang dilakukan dalam satu waktu. Penggunaan data secara bersamaan dapat menimbulkan beberapa masalah diantaranya:

  • Lost update problem

Hal ini terjadi ketika dua atau lebih user mengaskses data yang sama dalam satu waktu dan mengupdate data tersebut dengan hasil yang berbeda. Contoh :

Time

Transaksi 1 Transaksi 2
1 Retrieve A
2 Retrieve A
3 Update A
4 Update A
  • The Dirty Read Problem

Masalah ini terjadi akibat dari melakukan transaksi dengan pembacaan data hasil transaksi yang dibatalkan dan seharusnya tidak dibaca. Contoh:

Time Transaksi 1 Transaksi 2
1 Update A
2 Retrieve A
3 Rollback
4 Update A
  • Inconsistent Analysis Problem

Hal ini terjadi ketika transaksi membaca ulang data yang telah diubah oleh transaksi lainya. Contoh, nilai A = 50, B = 20, C = 40

Time Transaksi 1 Transaksi 2
1 Retrieve A

Total = 50

2 Retrieve B

Total = 70

3 Retrieve C
4 Update C 40 → 10
5 commit
6 Retrieve C

Total = 80 (bukan 110)

 

Dalam mencegah 3 masalah diatas, dilakukanlah Locking. Terdapat 2 jenis lock, yaitu Exclusive Lock (Xlock) dimana transaksi lain bisa melakukan pembacaan dan perubahan data, dan Shared Lock (Slock) dimana transaksi lain hanya bisa melakukan pembacaan data saja.

Dengan menggunakan locking, maka tidak ada transaksi yang akan kehilangan modifikasi.  Tapi, terdapat keadaan / masalah baru yaitu Deadlock, yaitu suatu kondisi dimana ke-2 transaksi dalam keadaan menunggu, sehingga keduanya tidak akan pernah selesai dieksekusi. Jika pelepasan kunci terlalu cepat dilakukan, maka bisa terjadi inkonsistensi informasi.  Tapi bila dilepas di akhir transaksi, bisa terjadi deadlock.  Hal ini merupakan kondisi dilematis pada sebuah sistem konkuren yang memanfaatkan mekanisme locking.

XML

XML (eXtended Markup Language) adalah merupakan suatu bahasa Markup. Markup yaitu bahasa yang berisikan kode-kode berupa tanda-tanda tertentu dengan aturan tertentu untuk memformat dokumen teks dengan tag sendiri agar dapat dimengerti. Hampir sama dengan Markup Languange lainya seperti HTML, XML juga memiliki tag-tag didalamnya. Hanya saja tag-tag tersebut bisa dinamakan sendiri, contoh nya <nama> </nama>. Tag-tag tersebut juga bisa memiliki atribut seperti <barang warna=”merah”> </barang>.

Keuntungan XML

  • Ekstensibilitas : dapat ditukar/digabung dengan dokumen XML lain.
  • Memungkinkan pemrograman yang lebih baik maka dibuat suatu software pengolah XML.
  • Memisahkan data dan presentasi. Yang akan direpresentasikan dalam XMLdan XSLT.
  • Pencarian data cepat karena XML merupakan data dalam format yang terstruktur.
  • Plain Text dan platform independent.
  • Untuk pertukaran data.

Back-end Programming

Backend adalah bagian belakan tempat administrator web mangatur keseluruhan bagian depan atau dengan kata lain memprogram tampilan web. Beberapa jenis fungsi-fungsi yang sering dipakai dalam back-end programming antara lain:

  • Stored Procedure : Stored Procedure adalah sekumpulan perintah SQL yang disusun dalam sebuah prosedur yang memiliki nama dan fungsi tertentu.
  • Function : Selain Stored Procedure, terdapat juga Function. Sedikit berbeda dengan Stored Procedure, disini ada nilai yang dikembalikan.
  • Trigger : Secara keseluruhan trigger hampir sama dengan Procedure dan Function, hanya saja untuk Trigger dioperasikan secara otomatis ketika terdapat aktivitas statement-statement SQL seperti Insert, Update dan Delete. Trigger ini bisa diaktivasi sebelum atau pun sesudah terjadinya satatement-statement tersebut.

Keamanan Basis Data

Keamanan basis data merupakan suatu proteksi terhadap pengrusakan data dan pemakaian data oleh pemakai yang tidak punya kewenangan. Untuk menjaga keamanan Basis Data, dapat dilakukan beberapa cara berikut ini :

  • Penentuan perangkat lunak Data Base Server yang handal.
  • Pemberian otoritas kepada user mana saja yang berhak mengakses, serta memanipulasi data- data yang ada.

Tujuan Keamanan Basis data :

  • Confidentiality
  • Integrity
  • Availability

Ancaman keamanan terhadap Basis data

  • Interuption
  • Interception
  • Modification
  • Fabrication

Tingkatan Pada Keamanan Database :

1. Fisikal

2. Manusia

3. Sistem Operasi

4. Sistem Database

Pengaturan Keamanan Basis Data :

1. Otorisasi

Pemberian wewenang atau hak istimewa (privilege) untuk mengakses sistem atau obyek database kepada pengguna yang bertanggung jawab

2. Tabel View

Tabel view merupakan metode pembatasan bagi pengguna untuk mendapatkan model database yang sesuai dengan kebutuhan perorangan. Metode ini dapat menyembunyikan data yang tidak digunakan atau tidak perlu dilihat oleh pengguna.

3. Backup data dan recovery

Backup adalah proses secara periodik untuk membuat duplikat dari database dan melakukan logging file (atau program) ke media penyimpanan eksternal.

Recovery merupakan upaya untuk mengembalikan basis data ke keadaaan yang dianggap benar setelah terjadinya suatu kegagalan.