46
Database Operation di VC++ Insert, Update, Select, Delete Statements terhubung dengan MySQL © FGroupIndonesia.com modul kelas khusus pemprograman VC++

Database operation di C++

Embed Size (px)

Citation preview

Page 1: Database operation di C++

Database Operation di VC++Insert, Update, Select, Delete Statements terhubung dengan MySQL

© FGroupIndonesia.com modul kelaskhusus pemprograman VC++

Page 2: Database operation di C++

• Menjelaskan praktek langsung interaksiDatabase dengan VC++ Programming di Visual Studio 2010.

• .NET Frameworks v. 3,5 / 4.0 / 4.5

• Windows XP, Vista, 7, dan 8.

• MySQL bundled via XAMPP v. 3,2

Page 3: Database operation di C++

Connector

• Bagian terpenting sebagai penghubung agar Visual Studio 2010 dapat berinteraksi dgnMySQL.

• Download dari http://dev.mysql.com

• 2 File tersebut:

1. mysql-for-visualstudio-1.1.4.msi

2. mysql-connector-net-6.9.7.msi

Page 4: Database operation di C++

• Saat Instalasi Connector, pastikan :

▫ Visual Studio 2010 tidak sedang running.

▫ Instalasi program lain tidak dijalankanbersamaan.

▫ Lakukan instalasi satu per-satu dari no.urutfile yang disebutkan.

Page 5: Database operation di C++

Konsep Database

• Untuk persiapan awal, perlu dibuat terlebih dahulusebuah Database (Root directory) dan juga sebuahTable.

• Sebuah Table dapat terdiri dari minimal satuColumn atau lebih.

• Suatu Column dapat menerapkan salah satu darijenis Data Type yg terpilih.

• Data tersimpan setiap satu Row pada Table.• Suatu Table dapat menerapkan PRIMARY KEY

sebagai memudahkan index pembacaan.

Page 6: Database operation di C++

• Setiap Table pada suatu Database dapatdiciptakan dengan perintah : CREATE.

• Setiap penyimpanan data ke dalam Tablemenggunakan perintah : INSERT.

• Setiap editing data spesifik suatu Column tertentu menggunakan perintah : UPDATE.

• Setiap menghapus data pada suatu Table menggunakan perintah : DELETE.

Page 7: Database operation di C++

Penamaan Database

• Penamaan Column, dan juga Table padaDatabase tidak diperbolehkan menggunakankarakter spasi.

• Boleh menggunakan karakter selain alphabetical.

• Contoh :

▫ Data Karyawan (salah)

▫ Data_Karyawan (benar)

▫ Alamat_1 (benar)

▫ Alamat 1 (salah)

Page 8: Database operation di C++

Column Data Type

• Setidaknya ada beberapa Data Type yg umumdigunakan dalam pembuatan Column pertamakali.

• Angka : DOUBLE, INT, LONG, atau pun TINYINT

• Text : VARCHAR, CHAR, TEXT, BLOB

• True/False : BOOLEAN

• Tanggal : DATE, TIME

Page 9: Database operation di C++

Database Name : Database_Hendro

Table Name : Table_Formulir

Column : 4 buah

Data Row : 2

ID Nama Kelamin Alamat

1 Anthon Pria Jl. Pamekar

2 Budi Pria Jl. Mawar

Page 10: Database operation di C++

phpMyAdmin

• Merupakan suatu Bundle dalam XAMPP yang memudahkan pengaturan database MySQL.

• Pastikan Apache & MySQL running padaXAMPP.

• Segera buka Browser lalu ketik pada URL : http://localhost/phpmyadmin

Page 11: Database operation di C++

MySQL dan Apache running pada XAMPP Control Panel

Page 12: Database operation di C++
Page 13: Database operation di C++

Pembuatan Database

Pertama Kali• Dalam phpMyAdmin tadi, klik pada

Database menu.

• Biarkan pilihan pada Collation sebagai pilihanDefault.

• Ketik nama yang sesuai, lalu klik CREATE.

• Untuk kelengkapan materi ini, kita gunakannama : databaseawal.

Page 14: Database operation di C++
Page 15: Database operation di C++

Create

• Pada bagian ini sebuah Table akan langsungdibuat (di-CREATE) dengan jumlah Column yg fixed.

• Untuk kelengkapan materi, maka Table ini kitaberi nama : tab_formulir.

• Pilih 4 sebagai Number of Column, lalu klikGO.

Page 16: Database operation di C++
Page 17: Database operation di C++

• Kemudian berikan 4 Column tadi dengan definisi sebagaiberikut :

• Column : id, jenis INT, Length 4, Default None, Attribute Unsigned, Index Primary, A_I (Auto Increment)

• Column : nama, jenis VARCHAR, Length 45, Default None

• Column : kelamin, jenis VARCHAR, Length 6, Default None

• Column : alamat, jenis VARCHAR, Length 150, Default As Defined -.

• Jika sudah klik GO / SAVE

Page 18: Database operation di C++
Page 19: Database operation di C++

Object MySqlConnection^

• Digunakan untuk menghubungkan koneksi dariC++ ke MySQL Server

• Sertakan reference pada project C++ yang terkait.

• Lengkapi using namespace pada bagian atascode C++

Page 20: Database operation di C++
Page 21: Database operation di C++
Page 22: Database operation di C++
Page 23: Database operation di C++

Test Connection

using namespaceMySql::Data::MySqlClient;

String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";

String^ perintahSQL = “SQL Statement disini”;

MySqlConnection^ connectDB = gcnewMySqlConnection(koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand(perintahSQL, connectDB);

Page 24: Database operation di C++

try{

connectDB->Open();

}catch(Exception^ ex) {

MessageBox::Show("Some error occurred! " + ex->Message);

}

Page 25: Database operation di C++

Insert Statement

• Langkah yg digunakan ialah:

▫ Membuka Object dari MySQLConnection,

▫ Menyisipkan INSERT STATEMENT kedalamnya,

▫ Menjalankan STATEMENT tersebut pada Form terkait.

Page 26: Database operation di C++

using namespaceMySql::Data::MySqlClient;

String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";

String^ perintahSQL = “SQL Statement disini”;String^ semuaData;

MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);

Page 27: Database operation di C++

try{

connectDB->Open();

commandDB->ExecuteReader();

}catch(Exception^ ex) {

MessageBox::Show("Some error occurred! " + ex->Message);

}

Page 28: Database operation di C++

Ubah dari :

“SQL Statement disini”;

Menjadi :

“INSERT INTO tab_formulir VALUES(null, " + semuaData + ");"

Page 29: Database operation di C++

> Ubah dari :

semuaData;

> Menjadi :

semuaData = “col1, col2, col3”;

> Contoh :

semuaData = “0, ‘nilai1’, ‘nilai2’ ”;

Page 30: Database operation di C++

Update Statement

▫ Membuka Object dari MySQLConnection,

▫ Menyisipkan UPDATE STATEMENT kedalamnya,

▫ Menjalankan STATEMENT tersebut pada Form terkait.

Page 31: Database operation di C++

using namespaceMySql::Data::MySqlClient;

String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";

String^ perintahSQL = “SQL Statement disini”;String^ semuaData;

MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);

Page 32: Database operation di C++

try{

connectDB->Open();

commandDB->ExecuteNonQuery();

connectDB->Close();

}catch(Exception^ ex) {

MessageBox::Show("Some error occurred! " + ex->Message);

}

Page 33: Database operation di C++

Ubah dari :

“SQL Statement disini”;

Menjadi :

“UPDATE tab_formulir " + semuaData + “ WHERE id=“ + nilaiID;

Page 34: Database operation di C++

> Ubah dari :

semuaData;

> Menjadi :

semuaData = “col1=0, col2=‘nilai’, col3=‘ssuatu’”;

> Contoh :

semuaData = “nama=‘budi’, pass=‘ganti’, alamat=‘jl. Merdeka’ “;

Page 35: Database operation di C++

Delete Statement

▫ Membuka Object dari MySQLConnection,

▫ Menyisipkan DELETE STATEMENT kedalamnya,

▫ Menjalankan STATEMENT tersebut pada Form terkait.

Page 36: Database operation di C++

using namespaceMySql::Data::MySqlClient;

String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";

String^ perintahSQL = “SQL Statement disini”;String^ semuaData;

MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);

Page 37: Database operation di C++

try{

connectDB->Open();

commandDB->ExecuteNonQuery();

connectDB->Close();

}catch(Exception^ ex) {

MessageBox::Show("Some error occurred! " + ex->Message);

}

Page 38: Database operation di C++

Ubah dari :

“SQL Statement disini”;

Menjadi :

“DELETE FROM tab_formulir WHERE id=“ + nilaiID;

Page 39: Database operation di C++

> Ubah dari :

nilaiID;

> Menjadi :

nilaiID = angka Integer;

> Contoh :

nilaiID = 1;

Page 40: Database operation di C++

Select Statement

▫ Membuka Object dari MySQLConnection,

▫ Menyisipkan SELECT STATEMENT kedalamnya,

▫ Menjalankan STATEMENT tersebut pada Form terkait.

▫ Mengembalikan value yg dikehendaki padaReader Object.

Page 41: Database operation di C++

using namespaceMySql::Data::MySqlClient;

String^ koneksi=L"datasource=localhost;port=3306;username=root;password=;database=parahyangan;";

String^ perintahSQL = “SQL Statement disini”;String^ semuaData;

MySqlConnection^ connectDB = gcnewMySqlConnection (koneksi);MySqlCommand^ commandDB = gcnewMySqlCommand (perintahSQL, connectDB);MySqlDataReader^ readerDB;

Page 42: Database operation di C++

try{connectDB->Open();commandDB->ExecuteNonQuery();

readerDB = commandDB->ExecuteReader();

while(readerDB->Read()){

Karyawan objectKaryawan;

objectKaryawan.setID(readerDB->GetInt32("id"));objectKaryawan.setName(convertToString(readerDB->GetString("nama")));objectKaryawan.setAlamat(convertToString(readerDB->GetString("alamat")));objectKaryawan.setTelp(convertToString(readerDB->GetString("telepon")));

wadah2.push_back(objectKaryawan);

connectDB->Close();} catch (Exception^ ex) {

MessageBox::Show("Some error occurred! " + ex->Message);}

Page 43: Database operation di C++

Ubah dari :

“SQL Statement disini”;

Menjadi :

“SELECT * FROM tab_formulir “;

Page 44: Database operation di C++

Exercise

• Buat beberapa Window Frame serupa denganbeberapa operasi Database berikut :

▫ Login Frame : (operasi login)

▫ Management User Frame : (operasi UPDATE, SELECT, dan DELETE)

Page 45: Database operation di C++

• https://codesimplified.com/2009/12/01/difference-between-executequery-and-execute-nonquery/

• http://tutorialspoint.com

Reff :

Page 46: Database operation di C++

FGroupIndonesia.com

Jl. Parahyangan no.18, Komp. Panghegar Permai I

Ujung Berung, Bandung 40614

(022) 92800446 / 95244964

BBM. 7DF95683 / 7CD59179

WA. 085795569337 / 085721261437