Showing posts with label Teori. Show all posts
Showing posts with label Teori. Show all posts

Wednesday, January 9, 2019

C++ Programming 3 - Operator Di C/C++

Assalamu'alaikum

Selamat malam, salam programming. Lanjut lagi pembahasan kita mengenai C++ Programming. Setelah mengetahui variabel, konstanta dan tipe data c++ sekarang saya akan membahas tentang operator pada c++/c. Apa itu operator dan bagaimana cara menggunakan operator tersebut pada program yang ingin kita jalankan? Berikut penjelasannya.

Operator C++

Operator yang di maksud pada c++ programming adalah sebuah simbol yang fungsinya untuk mengolah nilai suatu variabel sehingga menghasilkan suatu nilai yang baru. Operator merupakan pondasi utama di setiap bahasa pemrogramman artinya tidak hanya c++ saja. Fungsi operator bermacam-macam ada yang untuk menjumlahkan, mengurangkan, membedakan, atau merumuskan logic suatu perintah. Operator pada c++ dikelompokkan menjadi 4 bagian yaitu : 


  • Operator assigment
  • Operator Unary
  • Operator Binary (aritmatika, logika, relational, bitwise)
  • dan Operator Ternary

1. Operator Assigment

Operator assigment adalah operator yang berfungsi untuk memberikan suatu nilai kedalam suatu variabel. Operator ini dilambangkan dengan sama dengan (=).  Contoh operator assigment :
  • char huruf = 'A';
  • string kalimat = "Alfa";
  • int angka = 17;
  • float phi = 3.14;

2. Operator Unary

Operator unary adalah operator yang berfungsi hanya pada satu operand / kondisi saja. Operator unary sering digunakan pada program loop yang nantinya akan kita bahas. Contoh dari operator unary antara lain :
  • + : Positif. Contohnya +7 
  • - : Negatif. Contohnya -7 
  • ++ : Increment. Salah satu operator yang sering di gunakan di program loop. Fungsi dari operator ini adalah untuk menambah suatu nilai awal sehingga menghasilkan nilai yang baru yaitu nilai awal yang telah di tambah 1.   
  • -- : Decrement. Fungsi ini merupakan kebalikan dari increment. Yaitu mengurangi suatu nilai awal sehingga menghasilkan nilai yang baru yaitu nilai awal yang telah di kurangi 1. Decrement juga sering digunakan pada program looping. 

3. Operator Binary

Operator binary adalah operator yang sudah mengoperasikan 2 buah operand / kondisi. Operator binary terbagi lagi menjadi 4 jenis yaitu :
  • Operator Aritmatika yaitu operator yang melakukan operasi-operasi perhitungan aritmatika seperti penjumlahan, pengurangan. Contoh operasi-operasi aritmatika diantaranya :
    • + : penjumlahan
    • - : pengurangan
    •  * : perkalian
    • / : pembagian
    • % : modulus / sisa bagi 
#include <iostream>
#include <conio.h>

using namespace std;

int main(){
    int x = 10, y = 5;
    int jumlah, kurang, kali, bagi, sisa_bagi;
  
    jumlah = x + y;
    kurang = x - y;
    kali = x * y;
    bagi = x / y;
    sisa_bagi = x % y;
  
    cout << "Hasil penjumlahan = " << jumlah << endl;
    cout << "Hasil pengurangan = " << kurang << endl;
    cout << "Hasil perkalian = " << kali << endl;
    cout << "Hasil pembagian = " << bagi << endl;
    cout << "Hasil sisa bagi = " << sisa_bagi << endl;
  
    getch();
}
  • Operator Logika yaitu operator untuk menggabungkan 2 atau lebih kondisi untuk melengkapi eveluasi kondisi asli dengan pertimbangan. Hasil dari operator logika adalah nilai boolean yang terdiri dari true (1) dan false (0). Yang termasuk operator logika yaitu : 
    • Operator And (&&)
    • Operator Or (| |)
    • Operator Not (!)

  • Operator Relational yaitu operator untuk menentukan relasi atau hubungan dari 2 buah operand. Operator ini sering digunakan untuk pengecekkan sebuah kondisi dalam struktur percabangan (2 opsi programming). Contoh operator relasional diantaranya :
    • < : lebih kecil 
    • > : lebih besar
    • <= : lebih kecil atau sama dengan
    • >= : lebih besar atau sama dengan
    • == : sama dengan 
    • != : tidak sama dengan 
  • Operator Bitwise yaitu operator operator yang digunakan untuk pemanipulasian bit. Contoh operasi bitwise diantaranya : 
    • << : shift left
    • >> : shift right
    • && : operasi bit AND
    • | | : operasi bir OR
    • ^ : operasi bit XOR
    • ~ : operasi bit NOT

4. Operator Ternary

Operator ternary adalah operator yang sudah melibatkan 3 buah operand. Bentuk umumnya:

Ekspresi1? Ekspresi2: Ekspresi3;
Jika ekspresi1 bernilai benar, maka program akan mengeksekusi ekspresi2. Namun, jika ekspresi1 bernilai salah, maka program akan mengeksekusi ekspresi 3.

#include <iostream>
#include <conio.h>

using namespace std;

int main(){
  int angka;
 
  cout<<"Masukkan bilangan: ";
  cin>>angka;
  (angka %2 ==0) ? (cout << angka << " adalah bilangan Genap \n") : (cout << angka << " adalah bilangan Ganjil \n");
 
  getch();
}
Demikian penjelasan mengenai operator pada c++, semoga bisa kalian pahami dan semoga bisa bermanfaat. Bagi yang masih kurang jelas atau ada yang pertanyaan silahkan letakkan di kolom komentar. Sekian dari saya, terima kasih sudah berkunjung, salam programming. 

Tuesday, January 8, 2019

C++ Programming 2 - Variabel, Konstanta dan Tipe data

Assalamu'alaikum

Selamat malam, salam programming. Untuk memenuhi waktu lenggang malam saya, saya sempatkan menulis demi mengejar target penulisan agar selesai pada waktunya. Di kesempatan malam ini saya ingin menjelaskan tentang lanjutan materi pengenalan C++. yaitu tentang materi variabel, konstanta dan tipe data pada c++. Apa itu variabel, konstanta dan tipe data apa saja yang ada pada c++? Langsung saja kita bahas di penjelasan berikut.

Variabel, Konstanta dan Tipe Data

Secara teori, variabel pada programming adalah suatu penamaan yang digunakan untuk menyimpan suatu nilai dari variabel tertentu. Sedangkan konstanta hampir mirip seperti variabel yang fungsinya sama sama untuk menyimpan suatu nilai tertentu, bedanya konstanta adalah nilai yang tidak berubah setelah nilai tersebut di deklarasikan. 
Sedangkan tipe data sendiri adalah tipe variabel yang ingin di deklarasikan itu seperti apa sih? Apakah tipe datanya sebuah bilangan, atau sebuah kalimat, atau sebuah pembanding? Karena pada dasarnya setiap variabel yang ingin di deklarasikan membutuhkan informasi tipe data variabel tersebut. 7 tipe data dasar yang ada pada c++ diantaranya :



1. Tipe Data Integer (int)

Tipe data integer adalah tipe data yang memungkinkan kita untuk meyimpan data dalam bentuk bilangan bulat. Besarnya memori yg dibutuhkan tipe data int adalah 4byte atau 32bit. Dengan menggunakan tipe data int kita bisa melakukan operasi aritmatika seperti penjumlahan, pengurangan, perkalian dan pembagian. 

#include <iostream>
using namespace std;

int main(){
    int programming1 = 15;
    int programming2 = 3;
   
    cout << programming1 << endl;
    cout << programming2;
   
    return 0;
}
Keterangan : perintah endl untuk perintah untuk membuat baris baru (enter) dan perintah return 0 adalah untuk menyelesaikan fungsi main sedangkan 1 untuk kembali ke fungsi main.

2. Tipe Data Karakter (Char)

Tipe data char adalah salah satu tipe data yang memungkinkan kita untuk menyimpan memory berbentuk huruf, angka ataupun simbol dengan sebuah karakter tunggal. Berbeda dari tipe data int, tipe data char tidak bisa di lakukan operasi aritmatika. Perlu di ingat, char hanya dapat menyimpan 1 karakter saja,  jika kalian memberikan lebih dari 1 karakter, maka yg tersimpan hanya karakter pertama saja.

#include <iostream>
using namespace std;

int main(){
    char huruf;
  
    cout << "Masukan huruf yang anda sukai = ";
    cin >> huruf;
    cout << "Huruf yang anda sukai adalah = " << huruf;

    return 0;
}
Keterangan : perintah cin digunakan untuk inputan keyboard, masukan nilai 1 karakter lalu enter, maka program akan menjalankan perintah selanjutnya. Untuk memasukan kalimat seperti diatas, kalimat harus di deklarasikan didalam 2kutip2 ("kalimat").

3. Tipe Data Boolean

Boolean adalah jenis tipe data pembeda yang fungsinya membedakan sebuah perintah yang di deklarasikan benar atau salah. Tipe data boolean hanya memiliki 2 opsional yaitu benar (true=1) atau salah (false=0).  


4. Tipe Data Float

Hampir sama seperti tipe data int, namun tipe data float memungkinkan kita menyimpan data numerik yang bentuknya bilangan pecahan. Biasanya tipe data float digunakan untuk menghitung program yang menggunakan bilangan koma. Seperti menghitung keliling atau luas lingkaran yang phinya menggunakan bilangan pecahan.

#include <iostream>
using namespace std;

int main(){
       float r, hasil;
       float phi = 3.14;

       cout << "Masukan Jumlah jari-jari = ";
       cin >> r;
 
       hasil = (phi * r) * 2;
       cout << "Luas dari Lingkaran adalah " << hasil;

       return 0;
}

5. Tipe Data Double Floating Point (Double)

Tipe data ini sama seperti tipe data float yaitu untuk menyimpan bilangan pecahan. Namun, penyimpanan tipe data double lebih besar dibanding tipe data float. Jika tipe data float hanya membutuhkan memory 4 byte, tipe data double memerlukan penyimpanan memory sebesar 8 byte.

6. Tipe Data String (string)

Tipe data string adalah tipe data yang memungkinan kita untuk menyimpan kumpulan karakter (artinya lebih dari 1 karakter). Sama seperti char, tipe data string yang bernilai angka tidak bisa di operasi aritmatika. Karena nilai yang ditangani tipe data string berbentuk kalimat, maka nilai tipe data string harus di deklarasikan di dalam 2kutip2 ("kalimat").

#include <iostream>
using namespace std;

int main(){
    string kalimat1 = "Hello World";
    cout << kalimat1;
}

7. Tipe Data Valueless (Void)

Valueless adalah salah satu tipe data yang berarti “tidak ada” atau “tidak mempunyai tipe data”. Void masih di dalam katagori tipe data tetapi kita tidak bisa menggunakanya pada variabel biasa, void biasanya digunakan pada function yang tidak mempunyai return value.

Dan itulah pemahaman mengenai variabel, konstanta dan tipe data yang ada pada c++. Semoga bermanfaat untuk kalian semua. Sekian dari saya kurang lebihnya mohon maaf, salam programming. 

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. 

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