Tuesday, January 8, 2019

C++ Programming 1 - Mengenal C++

Assalamu'alaikum

Selamat pagi, selamat beraktifitas. Berjumpa lagi dengan saya yang selalu setia memberikan artikel artikel menarik untuk di baca pembaca, semoga ya gaiss :v ngarep betul hahha. Di kesempatan kali ini saya ingin memulai membahas tentang programming yaitu tentang bahasa C++ yang saat ini sedang saya pelajari di matakuliah saya. Semoga nantinya bisa berlanjut ke materi materi programming lainnya. 

C++ Adalah

C++ adalah salah satu bahasa pemrogramman dari sekian banyak bahasa pemrogramman komputer. Bahasa C++ sendiri merupakan pengembangan dari bahasa C dengan tambahan fasilitas class. Program C++ berupa sekumpulan fungsi, bahkan program utama juga berbentuk fungsi, yaitu fungsi main(). Berikut sifat dasar dari program C++ : 
  • bahasa yang digunakan sudah mendukung pemograman berarah objek atau lebih sering di kenal dengan object oriented programming (OOP).
  • Kode C++ bersifat case sensitive, artinya membedakan antara huruf kecil dan besar dalam codingan harus di perhatikan.
  • Bahasa C dan C++ merupakan bahasa yang sangat populer dalam dunia perkembangan perangkat lunak (software). Kedua bahasa ini digolongkan kedalam bahasa tingkat menengah.
  • C++ bisa di jalankan di berbagai jenis platform seperti windows, linux, unix, mac dll. 

Alat Perang

Untuk menjalankan C++ pada dasarnya kita membutuhkan text editor dan compiler C++nya. Tergantung dari platform apa yang kalian gunakan, di artikel ini saya menggunakan aplikasi Dev C ++ untuk platform windows yang sudah mendukung text editor + compiler bahasa C. Aplikasi dev C++ bisa kalian download disini. Setelah di download langsung di install dan di jalankan.



Untuk membuat project baru kalian bisa mengklik di icon pada gambar berikut atau bisa dengan menggunakan shortcut ctrl+n. Kebetulan versi yang saya pakai saat ini versi 5.11. 

Menampilkan Hello World 

Pada project baru kita akan coba buat program awal yang sangat sederhana yaitu program menampilkan beberapa kata. Masukan pseuducode seperti contoh berikut ini.


Pada dasarnya, program c++ membutuhkan header file #include <iostream>  untuk menjalankan perintah cin dan cout (Input dan Output). Lalu apa yang dimaksud cin dan cout untuk input dan output? berikut penjelasannya :
  • cin untuk inputan keyboard (program c++ yang akan menyimpan inputan keyboard dalam bentuk variabel)
  • sedangkan cout adalah output atau jelasnya untuk menampilkan suatu kata dan cout juga bisa menampilkan variabel yg disimpan oleh program C++ pada inputan cin sebelumnya.   
  • Perintah cin dilengkapi dengan >> sedangkan cout di lengkapi <<.
  • Setiap perintah pada c++ harus dilengkapi titik koma ; untuk mengakhiri perintah program.  
Sisanya using namespace std adalah perintah yang digunakan untuk mendeklarasikan kepada compiler bahwa kita akan menggunakan semua  fungsi/class/file. Dan terakhir int main() adalah suatu fungsi utama dimana program akan menjalankan fungsi utama tersebut. Program yang kita tanam pada fungsi main() harus berada di dalam kurung kurawal {} setelah fungsi main.  Karena sudah dijelaskan semua, sekarang kita jalankan programmnya. 



Di Dev C++ untuk mengkompiler dan menjalankan program bisa dengan menggunakan tombol atau icon yang mirip seperti logo windows. Secara otomatis dev c++ akan meminta kalian untuk saving program yg telah dibuat dan langsung mengkompiler dan menjalankannya.  Maka kira kira hasilnya, command prompt akan keluar, dan menampilkan hasil output yang kita program tadi.


Demikian penjelasan mengenai pengenalan bahasa pemrograman c++ di pertemuan selanjutnya kita akan membahas tentang konstanta, tipe data, variabel pada c++. Semoga artikel kali ini bermanfaat buat kalian, sekian dari saya, terima kasih, selamat beraktifitas kembali.
 

Monday, January 7, 2019

Database Instrumental 3 - Model Data

Assalamu'alaikum

Selamat siang, salam sejahtera untuk kita semua. Siang ini melanjutkan artikel kembali kembali ke topik database basic, basic terus nih :v. Kali ini saya akan membahas tentang model data pada database. Apa itu model data dan apa kaitannya pada database langsung saja di materi berikut.

Model Data

Model data pada database adalah suatu atau jenis permodelan atau penggambaran terhadap data yang kita tangani. Karena yang dibahas model, maka model data selalu di gambarkan dalam bentuk chart yang dihubung hubungkan. Model data di klasifikasikan dalam 2 bentuk, yaitu model data berbasis objek dan model data bebasis record



Tujuan dari model data terhadap database adalah untuk penggambarannya. Karena pada dasarnya database yang ingin di rancang harus digambarkan agar lebih mudah di siapkan dan dengan begitu perancang dan pemakai bisa tau kegunaan masing masing entitas pada data terhubung ke entitas mana saja. Dan yang terpenting dari model data adalah untuk memudahkan perancangan basis datanya.

Model Data Berbasis Objek

Model data berbasis obyek ini adalah model data yang menyiapkan setiap node / chartnya dengan basis objek database. Dengan menggunakan konsep seperti entitas, attribute dan relasi, objek yang dimaksud adalah sebuah entitas. Karena entitas adalah sebuah objek yang memiliki karakteristik (attribute) yang bisa di bedakan dengan objek lainnya. Contohnya orang, tempat, barang, atau kejadian. Contoh model data berbasis objek pada umumnya adalah :
  • Model data semantik, model data semantic adalah relasi antar obyek yg dinyatakan dengan kata kata (semantic). 
 
  • Model data  ERD (Entity Relationship Diagram). ERD adalah salah satu model data berbasis objek yang paling sering digunakan. Jenis dan bentuk ERD dari tahun ke tahun pun berbeda beda. ERD adalah cara penggambaran real case yang terjadi sesuai kasusnya. Dengan ERD kita bisa menggambarkan bagaimana entitas satu bisa terhubung dengan entitas lainnya.


Model Data Berbasis Record

Model data ini berbeda dari model data berbasis objek. Model data ini mengambil nodenya berdasarkan record-record yang di perlukan dari database. Record sendiri adalah rekaman-rekaman data yang tersimpan di database. Contoh-contoh model data berbasis record yaitu :


  • Model database hirarki. Model data ini disajikan dari kumpulan record dan relasi yang digambarkan seperti bentuk pohon (tree). Model data ini memungkinkan satu node hanya untuk memiliki satu orang tua.
  • Model database jaringan. Network data model hampir menyerupai model data hirarki. Namun pada model data ini, memungkinan satu node bisa memiliki lebih dari satu orang tua.
  • Model database relational. Model database yang disajikan dalam bentuk tabel yang terdiri dari kolom dengan nama yang unik dan baris-baris yang menyimpan data yang berbeda. Model data ini digambarkan berdasarkan recordnya dan yang paling sering digunakan untuk memudahkan perancangan sebuah database.
Demikian penjelasan mengenai model data dan keterkaitan model data dengan database. Semoga bermanfaat bagi pembaca sekalian. Pertanyaan dan saran silahkan lemparkan ke kolom komentar. Sekian dari saya, selamat beraktifitas.

Algoritma dan Mengenal Programming Dasar

Assalamu'alaikum

Selamat pagi, selamat beraktifitas dan salam networking. Pagi ini saya berencana membahas how to basic kembali. Pembahasan yang akan di bahas kali ini adalah tentang algoritma dan pemrograman dasar. Btw melengceng sangat jauh dari networking :v. Mungkin next time saya akan membahas tentang networking lagi. Apa aja sih yang dibahas di sini langsung saja ke berikut. 

Algoritma dan Pemrograman Dasar

Pada dasarnya algoritma tidak terlepas dari kata programming. Algoritma juga pada dasarnya tidak terlepas dari kehidupan kita sehari hari. Karena nyatanya, algoritma adalah urutan langkah-langkah logis penyelesaian sebuah masalah dan algoritma tidak akan terpisahkan dari teknologi dan informasi.  Seperti contoh algoritma dalam kehidupan sehari-hari, yaitu ketika anda ingin mengirim surat, maka langkah-langkah penyelesaiannya adalah :
  • Mempersiapkan kertas dan amplop 
  • Menyiapkan alat tulis 
  • Mulai menulis 
  • Memasukan kertas kedalam amplop 
  • Mengirim surat ke tukang pos


Sebelum sebuah program di buat dan di jalankan, terlebih dahulu kita menyiapkan perencanaan termasuk urutan langkah langkah (algoritma) yang ingin kita terapkan dalam program kita. Algoritma pada programming sering di gambarkan dengan poin poin atau dengan sebuah flow chart. Algoritma adalah sesuatu yg harus di kuasai pemrogram, karena algoritma adalah metode konversi suatu permasalahan ke dalam bentuk sebuah program.

Pemrograman Komputer

Setelah algoritma ditentukan maka program bisa di bentuk berdasarkan algoritmanya. Lalu apa itu program? program adalah bahasa komputer untuk menjalankan instruksi instruksi yang ingin kita berikan. Karena komputer bukan seorang manusia, tentu dia tidak mengerti bahasa inggris apalagi bahasa jawa :v. Karena komputer punya bahasa sendiri, maka kita pun harus bisa menguasai bahasa komputer.

Di dalam programming bahasa komputer tidak hanya satu, namun banyak bahasa bahasa yg jenis, struktur coding dan bahkan fungsi bahasa untuk menjalankan program pun berbeda. Jenis bahasa komputer yg berbeda beda ini terjadi dikarenakan, berkembangnya bahasa untuk mempermudah bahasa awal yaitu bahasa mesin digital yang hanya betul betul di mengerti oleh komputer. Dalam hal ini kita menyebutnya bahasa mesin.

Dari bahasa mesin di kembangkanlah bahasa assembly yang sudah menggunakan huruf atau dalam program assembly sering disebut mnemonic code. Tentu sebagai manusia bahasa ini lebih mudah di pahami ketimbang bahasa mesin yang hanya dapat membaca 0 dan 1. 



Pada dasarnya, bahasa assembly ini pun masih sulit juga untuk di kembangkan karena struktur bahasa yg rumit dan masih berbentuk code code. Maka di kembangkanlah terus menerus hingga kita bisa bertemu dengan bahasa bahasa program yang saat ini digunakan. Bahasa pemrogramman saat ini sering disebut sebagai bahasa generasi ketiga (3GL). Banyak contoh bahasa program yang menggunakan bahasa generasi ketiga ini seperti : basic, pascal, c, c++, COBOL dll. Kelima bahasa yg disebutkan pun memiliki struktur bahasa yg berbeda.

Dari bahasa pascal, c sampai c++ merupakan hasil perluasan yg dikembangkan. Ceperti contoh codingannya :
  • Pascal : writeln (‘hello world’);
  • C : printf (“hello world\n\r”);
  • C ++ : cout « “hello world” « endl; 
Selain bahasa bahasa yang di sebutkan diatas, masih banyak bahasa pemrograman yang telah di kembangkan. Beberapanya ada yang sering digunakan seperti bahasa C, C++, atau java (berbasis android umumnya), atau html, javascript, php yang sering ditemui di website atau bahasa bahasa lainnya. Kalian bisa cek disini https://id.wikipedia.org/wiki/Daftar_bahasa_pemrograman untuk bahasa pemrograman lengkapnya. 

Langkah-langkah Pemrograman Komputer

Membuat sebuah program adalah suatu proses dari salah satu terciptanya program yang baik dan terawat. Karena itu adalah langkah perencanaan, pembuatan dan perawatan yang sering dijumpai pada setiap kasus. Berikut langkah-langkahnya :
  • Mendefinisikan masalah
  • Menentukan solusi
  • Memilih algoritma
  • Membuat Program
  • Menguji Program (testing dan implementasi)
  • Membuat dokumentasi
  • Melakukan perawatan pada program
Demikian yang dapat saya sampaikan di kesempatan kali ini semoga artikel ini bermaanfaat bagi pembaca. Di next perjumpaan program akan saya bahas tentang bahasa C++ yang saat ini sedang di pelajari di matakuliah :D. Terima kasih sudah berkunjung, sekian salam networking. 

Sunday, January 6, 2019

DBMS Query Translation - Aljabar Relational Part2

Assalamu'alaikum

Selamat siang, senang berjumpa lagi dengan kalian setelah lama hibernasi :v maklum orang sibuk gaiss :v. Di kesempatan kali ini saya ingin melanjutkan pembahasan tentang aljabar relational lanjutan dari part sebelumnya. Cek disini untuk kilas balik materi sebelumnya karena tidak akan saya jelaskan ulang. Langsung saja kita ke TKP.

Tabel 

Berikut tabel yang sama seperti artikel sebelumnya, yaitu tabel mahasiswa, matakuliah dan nilai. Di artikel kali ini saya hanya akan membahas 1 jenis operasi saja yaitu operasi set - cartesian product. Karena pada dasarnya pencarian data dalam struktur database di setiap entitas kurang lebih melibatkan 3 operasi utama yang 2 diantaranya sudah dibahas di penjelasan artikel sebelumnya.

Operasi Set - Cartesian Product

Operasi selanjutnya setelah operasi unary selection dan projection sekarang kita bahas tentang operasi set, yaitu operasi yang sudah melibatkan 2 relasi atau 2 tabel. Cartesian product sendiri adalah jenis pencarian data yang melibatkan 2 relasi dari hasil penggabungan setiap kolom yang ingin dilibatkan dalam pencarian data. Sehingga menghasilkan pencarian yang lebih spesifik. 




Notasi pencarian aljabar relational di notasikan dengan Relasi1 x Relasi2. Contohnya, Tampilkan NPM, nama mahasiswa (dari relasi mahasiswa) dan KodeMatkul, Semester, Tahun, Nilai (dari relasi Nilai). 

Aljabar Relational :  (πNPM, NamaMhsw(MAHASISWA)) x (πNilai, KodeMatkul, Semester, Tahun, Nilai (NILAI))
Output : 


Hasil diatas salah karena banyaknya data yang rangkap informasi yang salah. Bisa diketahui bahwa arham answar adalah mhs jurusan sistem informasi dan sintia amelia yg mhs akutansi tidak mungkin mengambil matakuliah yang sama dan belum tentu ada mata kuliah tersebut. Ini membuktikan bahwa informasi pencarian data menggunakan aljabar relasional seperti diatas masih kurang spesifik. Operasi lengkapnya adalah sebagai berikut : 

σMAHASISWA.NPM = NILAI.NPM ((πNPM, NamaMhsw(MAHASISWA)) x (πKodeMatkul, Semester, Tahun, Nilai (NILAI)).

Berbeda dari operasi unary, operasi set tidak bisa langsung dieksekusi perintah aljabar relationalnya. Diawal eksekusinya harus di tambahkan terlebih dahulu perintah penghubung antara relasi mahasiswa dan relasi nilai. Penghubungnya apa? Penghubungnya disini adalah NPM sehingga kita bisa menghubungkannya menggunakan sama dengan (=)

Setelah ditambahkan ketentuan penghubungnya barulah bisa kita eksekusi menggunakan perintah operasi set - cartesian product. Sehingga hasilnya akan seperti berikut ini.


Contoh 2 : tampilkan NPM, nama mahasiswa (dari relasi mahasiswa) dan kodeMatkul, Semester, Tahun, Nilai (dari relasi nilai) dan NamaMatkul (dari relasi matakuliah)

Aljabar Relational : σMAHASISWA.NPM = NILAI.NPM ^ MATAKULIAH.KodeMatKul = NILAI.KodeMatKul (πNPM, NamaMhsw(MAHASISWA)) x (πKodeMatkul, Semester, Tahun, Nilai (NILAI)x (πNamaMatKul (MATAKULIAH)))

Di contoh kedua ini, kita melakukan sortir pencarian data di 3 entitas, yaitu entitas mahasiswa, matakuliah dan nilai. Karena 3 entitas tersebut, setiap entitas dihubungkan dengan primary keynya (NPM untuk mahasiswa-nilai dan KodeMatkul untuk matakuliah-nilai). Iingat! kita menghubungkan 3 entitas. Jadi, 2 entitas yg dihubungkan oleh primary key harus di hubungkan dengan simbol v terbalik seperti contoh diatas.




Setelah 3 entitas dihubungkan, barulah di eksekusi spesifikasi pencariannya seperti memunculkan kolom NPM, nama mahasiswa yg ada pada tabel mahasiswa. Lalu kolom KodeMatkul, Semester, tahun, nilai yang ada pada tabel nilai. Dan terakhir kolom NamaMatkul dari tabel Matakuliah. Maka kurang lebih hasilnya seperti berikut ini.


Kurang lebih seperti itu penjelasan mengenai aljabar relational tentang operasi set - cartesian product. Mengenai operasi operasi yang lain padaaljabar relational akan di jelaskan lain waktu mengingat hanya 3 operasi pertama saja yang kurang lebih sering digunakan. Insya allah tetap akan di jelaskan lain waktu. Kurang lebih mohon maaf semoga bisa bermanfaat untuk pembaca. Sekian, terima kasih.
 

Sunday, May 27, 2018

DBMS Query Translation - Aljabar Relational Part1

Assalamu'alaikum

Selamat siang, selamat berpuasa, salam data management. Di pertemuan kali ini saya kembali ingin mambahas masalah database, jadi mohon dimaafkan karena delay dulu artikel tentang jaringannya ya gaess. Lanjut, setelah membahas 2 pertemua database kebelakang tentang pengenalan mengenai database. Maka kali ini kita akan masuk kedalam pembahasan Aljabar Relational. Langsung saja disimak di pembahasan berikut ini.

Siklus Proses DBMS Mentranslasikan Bahasa Query

Seperti yang sudah saya bahas sebelumnya, database relational di kemukakan oleh Dr. E.F Codd dengan metode matematika. Tentu karena hal tersebut, relational database yang kita perlajari ini tidak luput dari proses matematika dimana proses ini diolah oleh si aplikasi DBMS dari sebuah bahasa query yang di lakukan oleh IT implement. 




Proses DBMS mentranslasikan bahasa query tersebut tidaklah secepat kita hanya menginput bahasa query saja. Namun, DBMS melakukan proses translasi salah satunya di proses translasi tersebut ada aljabar relational. Tidak hanya aljabar relational, di proses ini juga dilakukan translasi yang lain sehingga bahasa query yang kita inputkan bisa dijalankan oleh DBMS. Proses translasi tersebut adalah sebagai berikut.
  • SQL (Structured Query Languange) atau bahasa query yang di jalankan oleh seseorang akan di translasikan ke
  • Aljabar Relational, dimana proses ini menggunakan metode dan simbol simbol yang berkaitan erat dengan aljabar relational. 
  • Setelah sudah menjadi Aljabar relational, di olah kembali menjadi kalkulus relational tuple. Bentuk matematika yang lebih rumit setelah ajlabar.
  • Dan proses terakhir setelah kalkulus relational tuple terbentuk, diolah kembali lagi menggunakan metode kalkulus relational domain.
Baik Aljabar relational dan kalkulus relational adalah bahasa formal dan non user friendly languange. Jadi jangan salah kalau kita akan pusing karena mempelajari proses ini, wajarkan saja kalau proses ini hanya bisa ditangani oleh mesin DBMS :v. 

Aljabar Relational

Menurut Connolly, Begg, dan Strachan (2005), aljabar relasional adalah bahasa teoritis dengan operasi-operasi yang bekerja pada satu atau lebih relasi untuk mendefinisikan relasi lainnya   tanpa mengubah relasi aslinya. Baik operand maupun hasilnya merupakan relasi, dan juga output dari satu operasi dapat menjadi input bagi operasi yang lain. 

Hal ini memungkinkan ekspresi pada aljabar relasional menjadi bertingkat, sama seperti operasi aritmatik bertingkat. Dimana operasi operasi fundamental pada aljabar relasional adalah sebagai berikut
  • Selection > memilih
  • Projection > memilih yang diinginkan
  • Cartesian Product > Pencarian tabel berbeda dengan kolom (attribut) yang diinginkan.
  • Union
  • Set Difference > Mencari perbedaan antara tabel yang berbeda
  • Join
  • Intersection
  • Theta Join

Operasi Dasar Pada Aljabar Relational

Secara umum, operasi dasar pada pengelolaan database terbagi menjadi 2. Yaitu operasi yang hanya beroperasi pada satu relasi atau entitas (tabel) yaitu operasi Unary dan yang kedua adalah operasi yang bisa melibatkan lebih dari satu relasi yaitu operasi Set. Operasi Selection dan projection termasuk operasi unary dan operasi Cartersian product, union, set difference dan intersection merupakan bagian dari operasi Set.



Berikut ini contoh tabel database yang akan kita ujicoba kan pada operasi operasi dibawah. Disini, kita memiliki 3 tabel yaitu tabel Mahasiswa, tabel Matakuliah dan Tabel Nilai.

Operasi Unary - Selection

Dinotasikan dengan σ predicate (R). Operator ini digunakan untuk sebuah relasi saja, artinya hanya melakukan operasi pada satu tabel saja. Fungsi operasi ini untuk mendefinisikan atau menampilakan sebuah baris yang memenuhi kondisi yang diinginkan. Operasi ini dapat menggunakan operator matematika (<,>,>=,<=,=,#) dan juga bisa menggunakan operator ^ (And) atau v (Or).  

Contoh1 : Diminta tampilkan daftar mahasiswa dari jurusan sistem informasi
Aljabar Relational : σJurusan=’Sistem Informasi’(MAHASISWA)
Output :


Contoh2 : Diminta tampilkan mahasiswa dari jurusan sistem informasi atau akuntasi.
Aljabar Relational : σJurusan=’Sistem Informasi’  V Jurusan=’Akuntansi’  (MAHASISWA)
Output :

Operasi Unary - Projection

Dinotasikan dengan πcol1, col2, …, coln (R). Sama seperti selection, operasi ini digunakan untuk satu relasi saja. Perbedaannya, operasi ini menampilkan kolom kolom (attribute) yang diinginkan saja. 

Contoh1 : Diminta buat daftar semua nama mahasiswa, namun hanya menampilkan data NPM, NamaMhsw, dan Jurusan.
Aljabar Relational : πNPM, NamaMhsw, Jurusan (MAHASISWA)
Output : 

Contoh2 : Diminta buat daftar semua nama mahasiswa, tampilkan hanya data NPM, NamaMhsw, dan Jurusan. Dimana jurusannya hanya sistem informasi saja.
Aljabar Relational : πNPM, NamaMhsw, Jurusan(σJurusan=’Sistem Informasi’ (MAHASISWA))
Output :
 
Cukup sekian pertemuan di pembahasan kali ini, part2 mengenai aljabar relational akan kita bahas di pertemuan berikutnya. Insya Allah akan membahas tentang operasi operasi Set yang melibatkan lebih dari satu relasi. Sekian dari saya, saran dan pertanyaan bisa letakkan di kolom komentar. Terima kasih sudah berkunjung. Salam Data Management.

Saturday, May 26, 2018

Database Instrumental 2 - Ketergantungan Fungsional dan Relasi Antar Data pada Database


Assalamu'alaikum

Selamat pagi, selamat berakhir pekan dan Salam data management. Berjumpa lagi dengan saya mimin yang tampan, baik hati dan tidak sombong. Kali ini kita akan melanjutkan kembali pembahasan yang sudah di jelaskan sebelumnya yaitu tentang database. Karena di pembahasan sebelumnya kita sudah mengetahui apa itu database. Maka pada artikel kali ini saya ingin membahas tentang ketergantungan fungsional dan relasi antar data (bukan tabel) pada database.

Relational Data Model

Pada dasarnya database memiliki banyak jenis atau modelnya. Seperti model database jaringan, hirarki, atau database relational yang kita pelajari kali ini. Database relational ini pertama kali diperkenalkan oleh Dr. E.F. Codd, peneliti IBM tahun 1970 pada seminar "A Relational model of data for large shared banks", Communication of ACM, pada juni 1970. Dimana tujuan dari model data relational ini adalah :
  • Memungkinkan data independence, artinya program aplikasi tidak akan mempengaruhi perubahan data pada database. 
  • Menyediakan dasar substansi untuk berkaitan dengan data semantik, konsistensi data, dan masalah kerangkapan data.  
  • Memungkinkan ekspansi/perluasan bahasa manipulasi data yang berorientasi set.

Model data relasional adalah suatu model basis data yang menggunakan tabel dua dimensi yang terdiri dari baris dan kolom untuk menggambarkan record-record datanya.  

 

Struktur Data Relational 

Selain model, relational database juga memiliki struktur sebagai berikut. 
  • Entitas, adalah tabel dengan baris dan kolom. Contoh: tabel MAHASISWA, tabel DOSEN, tabel MATA KULIAH. 
  • Atribut, adalah nama kolom dari sebuah relasi. Contoh atribut dari MAHASISWA adalah NPM, nama mahasiswa, alamat, tempat lahir, tanggal lahir. 
  • Domain, adalah sekumpulan nilai untuk satu atau lebih atribut. 
  • Tuple, adalah baris dari suatu relasi. 
  • Degree, adalah derajat dari relasi yaitu jumlah atribut dalam sebuah relasi. 
  • Cardinality, adalah jumlah tuple dalam sebuah relasi. 
  • Basis data relasional adalah, kumpulan dari tabel-tabel normal.  
  
Keterangan :
  • Atribut: NPM, NamaMhsw, Jurusan, NoTelpon 
  • Domain(Jurusan)=char(20) 
  • Domain(NPM)=char (5) 
  • Cardinality(MAHASISWA)=5 
  • Degree(MAHASISWA)=4 

Ketergantungan Fungsional Database

Dalam sebuah tabel database, terdapat suatu hubungan data antar attribut pada suatu tabel. Hubungan inilah yang bisa kita sebut sebagai ketergantungan fungsional. Ketergantungan fungsional terjadi ketika nilai satu attribut menentukan nilai attribut yang kedua, ketiga dan lainnya sesuai ketentuan relasinya. Nilai attribut penentu nilai ini kita sebut sebagai determinant.


Namun, ada beberapa tabel yang memiliki lebih dari satu determinant (penentu nilai attribut yang lain). Ini lah yang disebut sebagai ketentuan dari ketergantungan fungsional. Untuk memudahkannya disini saya akan memberikan contoh ketergantungan fungsinal dari sebuah data. Semisal kita memiliki slip atau sebuah kertas transaksi yang berhubungan dengan database dengan contoh sebagai sebagai berikut.


Dari contoh slip transaksi tersebut, kita ubah kedalam ketergantungan fungsional attributnya. 


Maka list ketergantungan fungsionalnya adalah sebagai berikut.
  • No Sales > Tgl
  • No Sales > Nama
  • No Sales > Alamat
  • No Sales > Telp
  • No Sales > Kode Bag
  • No Sales > Grand Total
  • No Sales & Kode Bag > Jumlah
  • Kode Bag > Nama Barang
  • Kode Bag > Harga
  • Jumlah & Harga > Total
Pada data dalam database ini, terdapat lebih dari satu determinant. Hal ini dikarenakan suatu nilai attribut ada berdasarkan induk dari attribut tersebut (determinant). Hal ini menandakan bahwa semua attribut memiliki induk yang sama. Karena ini hubungan determinant dan nilai attribut disesuaikan dengan kondisi fungsionalnya. 



Dilihat dari list ketergantungan diatas, maka banyak timbul pertanyaan kenapa attribut ini bergantung pada determinant ini atau mengapa determinant ini menentukan nilai attribut tersebut. Berikut rinciannya.
  • No Sales > Tgl, Nama, Alamat, Telp. Determinant No Sales menentukan Tgl, Nama, Alamat, dan Telp ini sudah mutlak karena informasi no sales tersebut ada pada attribut yang disebutkan. 
  • No Sales > KodeBag. Hubungan ini juga termasuk mutlak karena Kode Bag tidak mungkin ada jika no sales tidak berjalan pada transaksi. Walaupun Kode Bag juga merupakan sebuah determinant.
  • No Sales > Grand Total. Hubungan ini terjadi karena nilai akhir sebuah data untuk melengkapi informasi No Sales. 
  • No Sales & Kode bag > Jumlah. Relasi ini memiliki 2 determinant untuk menentukan satu attribut. Hal ini dikarenakan jumlah tidak akan ada jika kedua determinant ini tidak ada. Karena itu nilai jumlah bergantung kepada kedua determinant ini.
  • Kode Bag > Nama Barang. Hubungan fungsional ini sudah mutlak karena ini merupakan data sebuah barang (inventory).
  • Kode Bag > Harga. Hubungan ini juga mutlak karena harga tidak bergantung kepada determinant No Sales. Namun, harga ada pada nilai jual sebuah barang. 
  • Jumlah & Harga > Total. Hubungan determinant ini terjadi dengan penggunaan operator jumlah. Dimana Jumlah + Harga akan menghasilan total harga. 
Demikian pembahasan kita kali ini, semoga memudahkan anda untuk memahami ketergantungan fungsional pada database dan semoga artikel ini bermanfaat untuk kita semua. Sekian dari saya, saran dan pertanyaan silahkan letakkan dikomentar atau juga bisa langsung kontek saya pada akun akun sosial media yang sudah saya sediakan. Terima kasih sudah berkunjung, salam data management. 

Sunday, May 20, 2018

Database Instrumental 1 - Pengenalan Basis Data (Database)

Assalamu'alaikum

Selamat pagi, selamat berakhir pekan. Salam data management. Di kesempatan kali ini saya ingin menyampaikan materi yang sedikit berbeda dari biasanya yaitu pembahasan mengenai basis data atau lebih sering dikenal dengan nama database secara internasionalnya. Memang sudah direncanakan bahwa nantinya akan ada update secara menyeluruh sehingga lingkup pembelajaran bisa lebih meluas bahkan nanti nya ke programming juga insya allah. Langsung saja. untuk memulai pembahasan kali ini yang perlu dilakukan adalah pengenalan terhadap database terlebih dahulu.

Apa itu database?

Sebelum adanya database penyimpanan user sering disebut dengan flat file management. Flat file management ini merupakan sistem yang sangat rentan terhadap update data. Maksud lain dari flat file management adalah penyimpanan manual sebuah data didalam sebuah file. Tentu penyimpanan ini tidak terpusat dan akan memungkinkan data yang ganda. Sehingga memungkinkan terjadinya mis-informasi. 

 
Karena faktor-faktor tersebutlah database diciptakan dan ditemukan oleh E.F Codd yang diperkenalkan di tahun 1970. Database menggunakan fungsi matematika yang sering dikenal dengal aljabar relational. Database saat ini digunakan banyak perusahaan sebagai model standar untuk penyimpanan data (database) komersial.




Berdasar hal tersebut, apa itu database? Database sendiri adalah sekumpulan data yang disimpan dalam bentuk tabel yang bisa di relasikan (dihubungkan) antar tabel satu dengan yang lainnya sehingga kumpulan tabel tabel tersebut menghasilkan sebuah informasi. Biasanya database digunakan pada aplikasi aplikasi yang ingin dirancang. Tujuannya agar aplikasi tersebut memiliki ingatan secara terpusat tentang apa saja yang di input/simpan oleh user.
Dengan begitu, dengan adanya database kita bisa meminimalisir data yang rangkap (ganda), data updating lebih mudah dan otomatis data juga terpusat. Sehingga data yang terpusat itulah yang bisa diakses bersama secara shared. 

Karakteristik Database

Seperti yang kita tau bahwa bentuk dari database adalah tabel tabel seperti pada excel umumnya. Memiliki baris dan kolom dan antar database juga memiliki relasi yang menghubungkannya. Karakteristik dari database adalah sebagai berikut.
  • Data disimpan pada tabel. Tabel terdiri dari baris dan kolom seperti yang terlihat pada spreadsheet. Basis data memiliki beberapa tabel, dimana setiap tabel menyimpan data tentang suatu hal yang berbeda. 
  • Setiap baris dalam suatu tabel menyimpan data dari instance yang berbeda.  
  • Setiap kolom dalam suatu tabel menyimpan karakteristik dari suatu instance tersebut. 
  • Basis data menyimpan data dan relasi.
 

Data dan Informasi Pada Database

Perlu kita ketahui perbedaan antara data dan informasi yaitu, data adalah fakta atau angka yang disimpan atau dicatat sedangkan informasi adalah pengolahan suatu data sehingga menghasilkan suatu arti dan tujuan. Namun pada basis data, selain untuk menyimpan data. Database juga mampu mengolah suatu informasi menggunakan Structured Query Languange (SQL). SQL inilah yang nantinya akan dipelajari dalam pembahasan pengolahan suatu database.



Istilah-Istilah Dalam Database

Untuk mempelajari database, kita harus paham betul istilah istilah asing yang nantinya akan sering di bahas di pertemuan-pertemuan pembahasan database selanjutnya. Diantaranya.
  • Entitas, yaitu suatu obyek yang terdapat di dunia nyata yang bisa dibedakan dengan obyek lainnya dan memiliki kata kunci. Contohnya pelanggan, mahasiswa, karyawan, penjualan dll. Entitas ini bisa kita gambarkan sebagai nama dari suatu tabel data.
  • Attribut, karakteristik dari suatu entitas. Merupakan baris baris pertama pada suatu kolom. Contohnya karakteristik dari entitas/tabel mahasiswa adalah : NIM, Nama, Alamat, Tgl Lahir, No.telp Dll.
  • Relasi, yaitu hubungan antar tabel menggunakan kata kunci yang sama (penghubung)
Ketergantungan Fungsional
  • Ketergantungan Fungsional, yaitu dimana nilai suatu attribute menentukan nilai attribut lainnya. Ketergantungan fungsional akan dijelaskan di pembahasan berikutnya.
  • Determinant, yaitu nilai attribute utama pada ketergantungan fungsionalnya.
 Key (Kata Kunci)
  • Candidate key, yaitu kata kunci atau suatu attribute yang dicalonkan untuk menjadi primary key dalam suatu tabel
  • Composite key, yaitu key yang terdiri dari dua atau lebih kolom (attribut).
  • Primary Key, yaitu kunci utama yang merupakan hasil pilihan dari candidate key. Suatu attribute yang menentukan identitas dari suatu tabel dan data didalam kolomnya berbeda beda (unik).
  • Surrogate key, yaitu nilai yang ditambahkan oleh DBMS secara otomatis pada suatu primary key. Tujuannya untuk membedakan antar baris suatu tabel.
  • Foreign Key, yaitu kunci tamu yang digunakan suatu tabel untuk merelasikan tabel tersebut ke tabel yang lain. Dan tentu, foreign key pada tabel1 merupakan primary key pada tabel2.
Sistem Relasi Database
  • Entity integrity constraints adalah yaitu dimana setiap relasi harus memiliki primary key.  Attribut-attribut yang merupakan primary key tidak boleh bernilai NULL. Attribute lain kadang-kadang juga dibatasi agar tidak bernilai NULL, meskipun bukan primary key (sesuai requirement-nya).
  • Referential Integrity Constraints adalah penerapan yang difokuskan pada foreign key. Constraints ini melibatkan 2 buah relasi/table yaitu referencing relation (yang memiliki foreign key) dan referenced relation (relasi yang sudah di referensikan).

Komponen dari Database

Komponen dari database adalah unsur-unsur yang diperlukan untuk menjalankan suatu database. Komponen-komponen tersebut diantaranya, ada user, aplikasi database atau aplikasi lainnya yang berpapasan dengan database, Sql (Jika database SQL), DBMS (Database Management), Dan Database itu sendiri.

Arsitektur 3 Level Basis Data 

Sesuai dengan ketentuan ANSI SPARC, database digolongkan menjadi 3 level yang berbeda. Diantaranya :
  • Level External, level ini adalah level cara pandang hanya sebatas entitas dan relasi dalam bentuk tabel tabel informasi yang diperlukan saja. Level ini lebih mengacu ke pemakaian user yang membutuhkan sebuah data dari tabel database.
  • Level Conseptual, level ini sudah masuk ke dalam pandangan suatu divisi yang mengelola database. Pada tingkatan ini, menggambarkan data apa yang disimpan dan relasi (hubungan) antar datanya. Tingkatan ini sudah condong ke konseptor atau implementor pengelola database.
  • Level Internal, level ini adalah level yang dikelola langsung oleh proggramer atau administrator sistem. Level ini menyajikan bagaimana data disimpan secara fisik dan bagaimana cara memanagement penggunaan data.

Kenal Saya

Follow My Twitter

Profil



Nama saya Alfa Farhan Syarief, web ini ada berdasarkan nama saya sendiri. Saya sendiri masih duduk tingkat SMK. Lebih lengkapnya saya masih bersekolah di SMKN 1

More »

Blog Archive

Recent Comment