<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blognya Riza Agustiansyah</title>
	<atom:link href="http://riza.blog.ittelkom.ac.id/blog/feed/" rel="self" type="application/rss+xml" />
	<link>http://riza.blog.ittelkom.ac.id/blog</link>
	<description>next step...</description>
	<lastBuildDate>Tue, 24 Apr 2012 10:01:48 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Membuat Relationship N to N</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-n-to-n/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-n-to-n/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 20:53:07 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[many to many]]></category>
		<category><![CDATA[Membuat Relationship N to N]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=372</guid>
		<description><![CDATA[Melanjutkan pembahasan sebelumnya berjudul Membuat Relationship 1 to N, pada pembahasan kali ini kita akan mempelajari bagaimana membuat hubungan antar tabel dengan relationship N:N. Buatlah tabel baru dengan nama project dengan atribut no_project dengan tipe char(10) dan nama_project dengan tipe &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-n-to-n/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Melanjutkan pembahasan sebelumnya berjudul <strong>Membuat Relationship 1 to N</strong>, pada pembahasan kali ini kita akan mempelajari bagaimana membuat hubungan antar tabel dengan relationship N:N.</p>
<p>Buatlah tabel baru dengan nama <strong>project</strong> dengan atribut <strong>no_project</strong> dengan tipe <strong>char(10)</strong> dan<strong> nama_project</strong> dengan tipe <strong>varchar(50)</strong> dan <strong>budget</strong> dengan tipe <strong>int</strong>. Set<strong> no_project</strong> sebagai <strong>primary key</strong>, kemudian masukkan beberapa data seperti pada gambar 1.</p>
<p align="center"><a title="pic 3.1 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967483885/"><img src="http://farm8.staticflickr.com/7053/6967483885_77f51bd4f1.jpg" alt="pic 3.1" width="500" height="167" /></a></p>
<p align="center">Gambar 1. Tabel project</p>
<p><span id="more-372"></span></p>
<p>Selanjutnya coba buat tampilan tabel tersebut menggunakan php. Buat file baru dengan nama <strong>project.php</strong> kemudian isikan kode program berikut:</p>
<p><code>&lt;?php<br />
//membuat koneksi dengan mysql<br />
mysql_connect('localhost','root','') or die ("koneksi gagal !!!");<br />
//membuat koneksi dengan database<br />
mysql_select_db('perusahaan');<br />
//membuat tabel project<br />
echo "&lt;table border=1&gt;";<br />
echo "&lt;tr&gt;";<br />
echo "&lt;th&gt;Nomor Project&lt;/th&gt;<br />
&lt;th&gt;Nama Project&lt;/th&gt;<br />
&lt;th&gt;Budget&lt;/th&gt;";<br />
echo "&lt;/tr&gt;";<br />
//membaca semua data dari tabel project<br />
$query = "select * from project";<br />
$result = mysql_query($query)or die ("Wrong Query:".mysql_error());<br />
while($data=mysql_fetch_array($result))<br />
{<br />
echo "&lt;tr&gt;";<br />
echo "&lt;td&gt;$data[no_project]&lt;/td&gt;<br />
&lt;td&gt;$data[nama_project]&lt;/td&gt;<br />
&lt;td&gt;$data[budget]&lt;/td&gt;";<br />
echo "&lt;/tr&gt;";<br />
}<br />
?&gt;<br />
</code></p>
<p>Jalankan browser anda , kemudian ketikkan alamat <a href="http://localhost/perusahaan/project.php">http://localhost/perusahaan/project.php</a> kemudian <strong>enter</strong>. Anda akan mendapatkan tampilan seperti pada gambar 2.</p>
<p align="center"><a title="pic 3.2 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967488629/"><img src="http://farm8.staticflickr.com/7049/6967488629_d807514643.jpg" alt="pic 3.2" width="500" height="134" /></a></p>
<p align="center">Gambar 2. Tabel project melalui browser</p>
<p><strong>Tabel project</strong> mempunyai hubungan <strong>N:N (many to many)</strong> dengan <strong>tabel karyawan </strong>yang telah kita pelajari pada pembahasan sebelumnya berjudul <strong>Membuat Database dan Tabel menggunakan MySQL dan PHP</strong>. Satu project dapat terdiri dari banyak karyawan , sementara sebaliknya 1 orang karyawan boleh bekerja untuk beberapa project pada saat yang sama. Dalam hal ini kita perlu membuat tabel baru untuk memecah hubungan many to many antara tabel project dan karyawan. Buat tabel baru dengan nama <strong>project_karyawan</strong> dengan atribut <strong>Pnumber</strong> dengan tipe <strong>char(10)</strong>, <strong>Ekode</strong> dengan tipe <strong>char(10)</strong>, <strong>jabatan</strong> dengan tipe <strong>varchar(30)</strong> dan <strong>lama_kerja</strong> dengan tipe <strong>int</strong>. Tabel baru tersebut akan menjadi <strong>child entity</strong> dari tabel karyawan dan tabel project yang keduanya sebagai <strong>parent entity</strong>.</p>
<p><strong>Pnumber</strong> akan menjadi <strong>foreign key</strong> yang merujuk pada <strong>no_project</strong> dari tabel <strong>project</strong>, sedangkan <strong>Ekode</strong> akan menjadi <strong>foreign key</strong> yang merujuk pada <strong>kd_karyawan</strong> dari tabel <strong>karyawan</strong>. Karena seorang karyawan hanya dapat menjabat satu posisi tertentu saja pada satu project maka <strong>Pnumber</strong> dan <strong>Ekode</strong> juga akan kita gunakan sebagai <strong>primary key</strong> dari tabel <strong>karyawan_project</strong></p>
<p>Bukalah kembali <strong>phpmyadmin</strong>, kemudian buatlah tabel <strong>project_ karyawan</strong> seperti dijelaskan diatas. Untuk membuat Pnumber dan Ekode sebagai primary key, check atribut Pnumber dan Ekode, kemudian klik <strong>icon primary key</strong> di bawah tabel.</p>
<p align="center"><a title="pic 3.3 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967488647/"><img src="http://farm8.staticflickr.com/7185/6967488647_80c4289697.jpg" alt="pic 3.3" width="500" height="212" /></a></p>
<p align="center">Gambar 3. Tabel project_karyawan</p>
<p>Selanjutnya adalah membuat atribut <strong>Pnumber</strong> dan <strong>Ekode</strong> sebagai <strong>foreign key</strong>. Pertama dengan mengakses menu <strong>Designer</strong> pada database perusahaan, kemudian akan muncul semua tabel yang terdapat pada database <strong>perusahaan</strong>. Tampilkan semua atributnya dengan mengklik tombol panah yang terdapat di samping kiri nama tabel. Pilih menu <strong>create relation</strong> yang terdapat pada toolbar, arahkan <strong>referenced key</strong> yaitu <strong>no_project</strong> pada <strong>tabel project</strong> dan <strong>foreign key</strong> yaitu <strong>Pnumber</strong> pada <strong>tabel project_karyawan</strong>. Lakukan hal yang sama untuk <strong>kd_karyawan</strong> di tabel  <strong>karyawan</strong> dan <strong>Ekode</strong> di tabel <strong>project_karyawan</strong>. Hasil akhirnya seperti terlihat pada gambar 4.</p>
<p align="center"><a title="pic 3.4 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967488651/"><img src="http://farm8.staticflickr.com/7065/6967488651_dc2b5286f7.jpg" alt="pic 3.4" width="500" height="145" /></a></p>
<p align="center">Gambar 4. Membuat relationship N:N</p>
<p>Selanjutnya adalah mengisi tabel project karyawan. Perhatikan bahwa data <strong>Pnumber</strong> dan <strong>Ekode</strong> bukan berupa isian tetapi combo box yang nilainya masing-masing berasal dari <strong>no_project</strong>  dan <strong>kd_karyawan</strong>.</p>
<p align="center"><a title="pic 3.5a oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967488655/"><img src="http://farm8.staticflickr.com/7182/6967488655_7f55bda2fc.jpg" alt="pic 3.5a" width="500" height="266" /></a></p>
<p align="center"><a title="pic 3.5b oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967488657/"><img src="http://farm8.staticflickr.com/7053/6967488657_39b0fceabe.jpg" alt="pic 3.5b" width="500" height="269" /></a></p>
<p align="center"><a title="pic 3.5c oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967488663/"><img src="http://farm8.staticflickr.com/7067/6967488663_1c70534282.jpg" alt="pic 3.5c" width="500" height="217" /></a></p>
<p align="center">Gambar 5. Mengisi data pada tabel project_karyawan</p>
<p>Dengan adanya relationship antara tabel <strong>project</strong> dan tabel <strong>karyawan</strong> melalui tabel <strong>project_karyawan</strong> maka kita dapat menampilkan data gabungan dari kedua tabel tersebut, contohnya menampilkan nama project dan karyawan yang bekerja di dalamnya. Buka kembali file <strong>project.php</strong> kemudian tambahkan kode program berikut :</p>
<p><code>//membuat tabel project_karyawan</p>
<p>echo "&lt;table border=1&gt;";</p>
<p>echo "&lt;tr&gt;";</p>
<p>echo "&lt;th&gt;Nomor Project&lt;/th&gt;</p>
<p>&lt;th&gt;Nama Project&lt;/th&gt;</p>
<p>&lt;th&gt;Kode Karyawan&lt;/th&gt;</p>
<p>&lt;th&gt;Nama Karyawan&lt;/th&gt;</p>
<p>&lt;th&gt;Jabatan&lt;/th&gt;</p>
<p>&lt;th&gt;Lama Bekerja&lt;/th&gt;";</p>
<p>echo "&lt;/tr&gt;";</code></p>
<p>//membaca semua data dari tabel project_karyawan, project dan karyawan</p>
<p>$query1 = &#8220;select * from project_karyawan,project,karyawan where project_karyawan.Pnumber = project.no_project and project_karyawan.Ekode = karyawan.kd_karyawan&#8221;;</p>
<p>$result1 = mysql_query($query1)or die (&#8220;Wrong Query:&#8221;.mysql_error());</p>
<p>while($data1=mysql_fetch_array($result1))</p>
<p>{</p>
<p>echo &#8220;&lt;tr&gt;&#8221;;</p>
<p>echo &#8220;&lt;td&gt;$data1[no_project]&lt;/td&gt;</p>
<p>&lt;td&gt;$data1[nama_project]&lt;/td&gt;</p>
<p>&lt;td&gt;$data1[kd_karyawan]&lt;/td&gt;</p>
<p>&lt;td&gt;$data1[nama_depan]&lt;/td&gt;</p>
<p>&lt;td&gt;$data1[jabatan]&lt;/td&gt;</p>
<p>&lt;td&gt;$data1[lama_kerja]&lt;/td&gt;&#8221;;</p>
<p>echo &#8220;&lt;/tr&gt;&#8221;;</p>
<p>}</p>
<p>Jalankan kembali browser anda , kemudian ketikkan alamat <a href="http://localhost/perusahaan/project.php">http://localhost/perusahaan/project.php</a> kemudian <strong>enter</strong>. Anda akan mendapatkan tampilan seperti pada gambar 6.</p>
<p align="center"><a title="pic 3.6 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6967490347/"><img src="http://farm8.staticflickr.com/7179/6967490347_61fdfa01f7.jpg" alt="pic 3.6" width="500" height="244" /></a></p>
<p align="center">Gambar 6. Tampilan gabungan data tabel project_karyawan, project dan karyawan</p>
<p><a href="http://www.mediafire.com/download.php?c1j3fhhlocvzaga"><img class="alignleft size-full wp-image-197" src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-n-to-n/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Membuat Relationship 1 to N</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-1-to-n/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-1-to-n/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 20:29:25 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[Membuat Relationship 1 to N]]></category>
		<category><![CDATA[one to many]]></category>
		<category><![CDATA[relationship myql]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=367</guid>
		<description><![CDATA[Melanjutkan pembahasan sebelumnya berjudul Membuat Database dan Tabel menggunakan MySQL dan PHP, pada pembahasan kali ini kita akan mempelajari bagaimana membuat hubungan antar tabel dengan relationship 1:N. Buatlah tabel baru dengan nama departemen dengan atribut no_departemen dengan tipe int dan &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-1-to-n/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Melanjutkan pembahasan sebelumnya berjudul <strong>Membuat Database dan Tabel menggunakan MySQL dan PHP</strong>, pada pembahasan kali ini kita akan mempelajari bagaimana membuat hubungan antar tabel dengan relationship 1:N.</p>
<p>Buatlah tabel baru dengan nama <strong>departemen</strong> dengan atribut <strong>no_departemen</strong> dengan tipe <strong>int</strong> dan<strong> nama_departemen</strong> dengan tipe <strong>varchar</strong>. Set<strong> no_departemen</strong> sebagai <strong>primary key</strong>, kemudian masukkan beberapa data seperti pada gambar 1.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6821352184/" title="pic 2.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7190/6821352184_7a7f763859.jpg" width="500" height="256" alt="pic 2.1"></a></p>
<p align="center">Gambar 1. Tabel departemen</p>
<p><span id="more-367"></span><br />
Selanjutnya coba buat tampilan tabel tersebut menggunakan php. Buat file baru dengan nama <strong>departemen.php</strong> kemudian isikan kode program berikut:</p>
<p><code>&lt;?php<br />
//membuat koneksi dengan mysql<br />
mysql_connect('localhost','root','') or die ("koneksi gagal !!!");<br />
//membuat koneksi dengan database<br />
mysql_select_db('perusahaan');<br />
&nbsp;<br />
//membuat tabel departemen<br />
echo "&lt;table border=1&gt;";<br />
echo "&lt;tr&gt;";<br />
echo "&lt;th&gt;Nomor Departemen&lt;/th&gt;<br />
&lt;th&gt;Nama Departemen&lt;/th&gt;";<br />
echo "&lt;/tr&gt;";<br />
&nbsp;<br />
//membaca semua data dari tabel departemen<br />
$query = "select * from departemen";<br />
$result = mysql_query($query)or die ("Wrong Query:".mysql_error());<br />
while($data=mysql_fetch_array($result))<br />
{<br />
echo "&lt;tr&gt;";<br />
echo "&lt;td&gt;$data[no_departemen]&lt;/td&gt;<br />
&lt;td&gt;$data[nama_departemen]&lt;/td&gt;";<br />
echo "&lt;/tr&gt;";<br />
}<br />
?&gt;</code></p>
<p>Jalankan browser anda , kemudian ketikkan alamat <a href="http://localhost/perusahaan/departemen.php">http://localhost/perusahaan/departemen.php</a> kemudian enter. Anda akan mendapatkan tampilan seperti pada gambar 2.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6821352188/" title="pic 2.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7063/6821352188_41d3dc1028.jpg" width="500" height="163" alt="pic 2.2"></a></p>
<p align="center">Gambar 2. Tabel departemen melalui browser</p>
<p>Tabel departemen mempunyai hubungan 1:N (one to many) dengan tabel karyawan yang telah kita pelajari pada pembahasan sebelumnya berjudul <strong>Membuat Database dan Tabel menggunakan MySQL dan PHP</strong>. Satu departemen dapat mempunyai banyak karyawan , sementara sebaliknya 1 orang karyawan hanya boleh bekerja untuk 1 departemen saja, atau dengan kata lain tabel departemen merupakan <strong>parent entity</strong> dari <strong>child entity</strong> yaitu tabel karyawan.</p>
<p>Untuk menandakan adanya hubungan antara kedua tabel tersebut diperlukan atribut yang mewakili parent entity di child entity (analogi: nama ayah yang dipakai di nama belakang anak ). Atribut tersebut dinamakan sebagai <strong>Foreign Key</strong>. Nilai dari foreign key yang berada di child entity akan merujuk ke nilai primary key dari parent entity.</p>
<p>Bukalah kembali phpmyadmin, kemudian tambahkan atribut baru pada tabel karyawan dengan nama <strong>Dnumber</strong> seperti pada gambar 3. Caranya adalah buka menu <strong>structure</strong> pada tabel karyawan kemudian klik tombol <strong>Go</strong> yang berada di bawah struktur tabel tersebut. Setelah mengisikan nama atribut dan tipe datanya, tekan tombol save untuk menyimpan perubahan tersebut. Perhatikan syntax sql untuk merubah struktur tabel dan perhatikan bahwa atribut Dnumber sudah masuk kedalam struktur tabel.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6821352192/" title="pic 2.3a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7205/6821352192_93c82499e3.jpg" width="500" height="208" alt="pic 2.3a"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6821352202/" title="pic 2.3b oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7056/6821352202_cb621d0bea.jpg" width="500" height="203" alt="pic 2.3b"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967477353/" title="pic 2.3c oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7188/6967477353_2f8434396f.jpg" width="500" height="220" alt="pic 2.3c"></a></p>
<p align="center">Gambar 3. Menambahkan atribut baru pada tabel karyawan</p>
<p>Selanjutnya adalah membuat atribut <strong>Dnumber</strong> sebagai <strong>foreign key</strong> yang merujuk ke <strong>no_departemen</strong> yang merupakan <strong>primary key</strong> dari <strong>tabel departemen</strong>. Caranya seperti diperlihatkan pada gambar 4. Pertama dengan mengakses menu <strong>Designer</strong> pada database perusahaan, kemudian akan muncul tabel karyawan dan tabel departemen. Tampilkan semua atributnya dengan mengklik tombol panah yang terdapat di samping kiri nama tabel. Pilih menu <strong>create relation</strong> yang terdapat pada toolbar, pilih <strong>referenced key</strong> yaitu <strong>no_departemen</strong> pada <strong>tabel departemen</strong> dan <strong>foreign key</strong> yaitu <strong>Dnumber</strong> pada <strong>tabel karyawan</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967477365/" title="pic 2.4a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7036/6967477365_d15625379c.jpg" width="500" height="125" alt="pic 2.4a"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967477373/" title="pic 2.4b oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7036/6967477373_5fd0c29eea.jpg" width="500" height="168" alt="pic 2.4b"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967477375/" title="pic 2.4c oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7186/6967477375_fe9c945e43.jpg" width="500" height="164" alt="pic 2.4c"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967477381/" title="pic 2.4d oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7194/6967477381_22555d8227.jpg" width="500" height="181" alt="pic 2.4d"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967477387/" title="pic 2.4e oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7187/6967477387_050127e741.jpg" width="500" height="166" alt="pic 2.4e"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967483855/" title="pic 2.4f oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7179/6967483855_cdd63317a6.jpg" width="500" height="165" alt="pic 2.4f"></a></p>
<p align="center">Gambar 4. Membuat relationship 1:N</p>
<p>Setelah membuat relationship antara tabel departemen dan tabel karyawan, selanjutnya adalah mengisi nilai <strong>Dnumber</strong>. Bukalah tabel karyawan kemudian pilih semua data dengan pilihan <strong>Check All</strong> yang berada di bagian kiri bawah tabel, kemudian pilih menu <strong>change</strong> seperti pada gambar 5. Perhatikan pada bagian Dnumber, inputan bukan berupa isian tetapi berupa combo box yang isinya merupakan nilai dari primary key yang tersedia di tabel departemen. Isikan nomor departemen untuk semua karyawan yang terdapat di tabel karyawan.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967483871/" title="pic 2.5a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7038/6967483871_f32b947c59.jpg" width="500" height="209" alt="pic 2.5a"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967483875/" title="pic 2.5b oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7189/6967483875_7bb1d200f9.jpg" width="500" height="325" alt="pic 2.5b"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967483877/" title="pic 2.5c oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7055/6967483877_69e6e6de01.jpg" width="500" height="86" alt="pic 2.5c"></a></p>
<p align="center">Gambar 5. Menambahkan data nomor departemen pada tabel karyawan</p>
<p>Dengan adanya relationship antara tabel departemen dan tabel karyawan maka kita dapat menampilkan data gabungan dari kedua tabel tersebut, contohnya menampilkan nama departemen dan karyawan yang bekerja di dalamnya. Buka kembali file <strong>departemen.php</strong> kemudian tambahkan kode program berikut :</p>
<p><code>//membuat tabel karyawan yang bekerja di departemen tertentu<br />
echo "&lt;table border=1&gt;";<br />
echo "&lt;tr&gt;";<br />
echo "&lt;th&gt;Nomor Departemen&lt;/th&gt;<br />
&lt;th&gt;Nama Departemen&lt;/th&gt;<br />
&lt;th&gt;Kode Karyawan&lt;/th&gt;<br />
&lt;th&gt;Nama Karyawan&lt;/th&gt;<br />
&lt;th&gt;Gaji&lt;/th&gt;";<br />
echo "&lt;/tr&gt;";<br />
&nbsp;<br />
//query data dari 2 tabel<br />
$query1 = "select * from karyawan,departemen where departemen.no_departemen=karyawan.Dnumber";<br />
$result1 = mysql_query($query1)or die ("Wrong Query:".mysql_error());<br />
while($data1=mysql_fetch_array($result1))<br />
{<br />
echo "&lt;tr&gt;";<br />
echo "&lt;td&gt;$data1[no_departemen]&lt;/td&gt;<br />
&lt;td&gt;$data1[nama_departemen]&lt;/td&gt;<br />
&lt;td&gt;$data1[kd_karyawan]&lt;/td&gt;<br />
&lt;td&gt;$data1[nama_depan]&lt;/td&gt;<br />
&lt;td&gt;$data1[gaji]&lt;/td&gt;";<br />
echo "&lt;/tr&gt;";<br />
}</code></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967483883/" title="pic 2.6 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7044/6967483883_273509a1dd.jpg" width="500" height="235" alt="pic 2.6"></a></p>
<p align="center">Gambar 6. Tampilan gabungan data tabel departemen dan karyawan</p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-relationship-1-to-n/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Membuat Database Menggunakan MySQL dan PHP</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-database-menggunakan-mysql-dan-php/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-database-menggunakan-mysql-dan-php/#comments</comments>
		<pubDate>Fri, 09 Mar 2012 20:07:26 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Database]]></category>
		<category><![CDATA[database]]></category>
		<category><![CDATA[Membuat Database Menggunakan MySQL dan PHP]]></category>
		<category><![CDATA[menampilkan tabel mysql dengan php]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=355</guid>
		<description><![CDATA[Untuk dapat membantu mengerti mengenai perancangan database, ada baiknya jika kita mengetahui bagaimana bentuk dari database itu sendiri. Pada intinya di dalam suatu database terdapat tabel-tabel dimana kita akan menyimpan data sesuai dengan kebutuhan dari aplikasi yang akan kita buat. &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-database-menggunakan-mysql-dan-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Untuk dapat membantu mengerti mengenai perancangan database, ada baiknya jika kita mengetahui bagaimana bentuk dari database itu sendiri. Pada intinya di dalam suatu database terdapat tabel-tabel dimana kita akan menyimpan data sesuai dengan kebutuhan dari aplikasi yang akan kita buat.</p>
<p>Pada pembahasan ini kita akan coba membuat database menggunakan mysql dan menampilkan hasilnya menggunakan php. Untuk dapat mempermudah melakukannya, anda cukup menggunakan paket aplikasi XAMPP dimana didalamnya antara lain terdapat aplikasi database <strong>MySql</strong>, <strong>Php</strong> dan <strong>Apache server</strong>. Anda dapat mendownloadnya melalui link berikut:<br />
<span id="more-355"></span><br />
<a href="http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7/xampp-win32-1.7.0-installer.exe/download"><img class="size-full wp-image-197 aligncenter" src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" /></a></p>
<p>Selesai mendownload, lakukan instalasi dengan mengikuti langkah-langkah yang diberikan. Setelah aplikasi XAMPP berhasil diinstall, jalankan XAMPP Control Panel dan jalankan (start) modules Apache dan MySql.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967458119/" title="pic 1.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7040/6967458119_25168065b3.jpg" width="500" height="395" alt="pic 1.1"></a></p>
<p align="center">Gambar 1. Menjalankan module apache dan mysql</p>
<p>Selanjutnya bukalah browser anda (firefox,chrome,opera, dsb.), kemudian ketikkan <strong>http://localhost</strong> di alamat url kemudian enter. Apabila pada browser browser anda muncul tampilan seperti pada gambar 2, berarti anda telah berhasil menginstall XAMPP dan siap membuat aplikasi database berbasis web.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967458123/" title="pic 1.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7066/6967458123_77237b1457.jpg" width="500" height="188" alt="pic 1.2"></a></p>
<p align="center">Gambar 2. Tampilan localhost XAMPP</p>
<p>Selanjutnya bukalah folder tempat anda menginstal XAMPP yang biasanya berada di <strong>C:\xampp</strong>. Bukalah folder <strong>htdocs</strong>, folder ini merupakan folder penyimpanan file web kita. Buatlah folder baru di dalam folder htdocs misalnya dengan nama <strong>perusahaan</strong> untuk menyimpan aplikasi database yang akan kita buat. Buatlah file baru di dalam folder perusahaan dengan nama index.php kemudian isikan kode program berikut (anda dapat menggunakan <strong>notepad</strong> atau editor yang lain):</p>
<p><code>&lt;?php<br />
echo "Hore...Saya berhasil membuat aplikasi PHP:)";<br />
?&gt;</code></p>
<p>Jalankan kembali browser anda kemudian ketikkan alamat <a href="http://localhost/perusahaan/"><strong>http://localhost/perusahaan/</strong></a></p>
<p>Apabila tampilan wweb anda seperti pada gambar 3 maka anda berhasil membuat aplikasi php pertama anda dengan sukses</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967458125/" title="pic 1.3 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7058/6967458125_f48d55aa3c.jpg" width="500" height="201" alt="pic 1.3"></a></p>
<p align="center">Gambar 3. Tampilan aplikasi awal</p>
<p>Setelah berhasil membuat aplikasi awal, selanjutnya kita belajar menggunakan database. Bukalah alamat <a href="http://localhost/phpmyadmin/">http://localhost/phpmyadmin/</a> , maka browser anda akan menampilkan semua database yang terdapat pada MySQL anda. Buatlah database baru dengan nama <strong>perusahaan</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967458129/" title="pic 1.4 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7070/6967458129_5a96cbe6cf.jpg" width="500" height="271" alt="pic 1.4"></a></p>
<p align="center">Gambar 4. Tampilan phpmyadmin</p>
<p>Selanjutnya buat tabel karyawan pada database perusahaan tersebut dengan jumlah atribut sebanyak 7 buah seperti pada gambar 5.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967458133/" title="pic 1.5 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7191/6967458133_a57beaec56.jpg" width="500" height="165" alt="pic 1.5"></a></p>
<p align="center">Gambar 5. Membuat tabel baru pada database perusahaan</p>
<p>Buatlah atribut-atribut untuk karyawan dengan tipe data yang sesuai untuk masing-masing atribut seperti contoh pada gambar 6.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967458135/" title="pic 1.6 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7062/6967458135_a9030660a5.jpg" width="500" height="279" alt="pic 1.6"></a></p>
<p align="center">Gambar 6. Membuat atribut baru pada tabel karyawan</p>
<p>Setelah memasukkan atribut-atribut baru kemudian simpan dengan menggunakan tombol <strong>save</strong>. Selanjutnya anda akan melihat bahwa tabel karyawan sudah terbentuk. Anda juga akan melihat sintax sql untuk membuat tabel tersebut. Langkah selanjutnya adalah mencoba memasukkan data pada tabel tersebut. Pilih menu insert, kemudian masukkan data karyawan seperti pada gambar 8.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967465329/" title="pic 1.7 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7059/6967465329_7072341340.jpg" width="500" height="284" alt="pic 1.7"></a></p>
<p align="center">Gambar 7. Tampilan awal tabel karyawan</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967465337/" title="pic 1.8 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7182/6967465337_60ce743c6b.jpg" width="500" height="240" alt="pic 1.8"></a></p>
<p align="center">Gambar 8. Menambahkan data baru di tabel karyawan</p>
<p>Setelah memasukkan data karyawan, simpan menggunakan tombol <strong>Go</strong>. Anda akan melihat perintah sql untuk memasukkan data.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967465341/" title="pic 1.9 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7202/6967465341_15a9878614.jpg" width="500" height="260" alt="pic 1.9"></a></p>
<p align="center">Gambar 9. Tampilan setelah menambahkan data baru di tabel karyawan</p>
<p>Untuk melihat data yang telah anda masukkan, pilih menu <strong>browse</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967465345/" title="pic 1.10 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7194/6967465345_c73c82ccd4.jpg" width="500" height="212" alt="pic 1.10"></a></p>
<p align="center">Gambar 10. Melihat data di tabel karyawan</p>
<p>Cobalah memasukkan data baru yang persis sama di tabel karyawan, anda akan melihat bahwa data tersebut berhasil dimasukkan ke tabel karyawan. Hal tersebut  seharusnya tidak boleh terjadi, duplikasi data akan menimbulkan masalah pada proses – proses yang menggunakan data dari tabel tersebut. Hapuslah salah satu data yang sama tersebut dengan mengklik tanda silang pada awal data. Selanjutnya buatlah primary key pada tabel tersebut untuk mencegah duplikasi data yang sama persis. Pilih menu <strong>Structure</strong>, kemudian set atribut kd_karyawan sebagai primary key dengan mengklik <strong>tanda kunci</strong> seperti pada gambar 12.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967465349/" title="pic 1.11 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7043/6967465349_2f0b778320.jpg" width="500" height="105" alt="pic 1.11"></a></p>
<p align="center">Gambar 11. Duplikasi data di tabel karyawan</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6967465355/" title="pic 1.12 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7209/6967465355_92cb3cc797.jpg" width="500" height="166" alt="pic 1.12"></a></p>
<p align="center">Gambar 12. Membuat primary key di tabel karyawan</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6821352172/" title="pic 1.13 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7037/6821352172_d514b1903f.jpg" width="500" height="210" alt="pic 1.13"></a></p>
<p align="center">Gambar 13. Atribut kd_karyawan sebagai primary key di tabel karyawan</p>
<p>Anda dapat mencoba kembali memasukkan data yang sama persis dengan data yang ada pada tabel, kemudian lihat bahwa anda akan mendapat pesan error seperti berikut:</p>
<p><code><strong>MySQL said: </strong><br />
#1062 - Duplicate entry 'A101234' for key 'PRIMARY'</code></p>
<p>Masukkan beberapa data lagi pada tabel karyawan tersebut. Selanjutnya kita akan mencoba menampilkan tabel karyawan tersebut pada halaman web.</p>
<p>Bukalah kembali file <strong>index.php</strong> yang berada di folder <strong>C:\xampp\htdocs\perusahaan</strong> menggunakan notepad atau text editor yang lain. Masukkan kode berikut pada file tersebut:</p>
<p><code>&lt;?php<br />
//membuat koneksi dengan mysql<br />
mysql_connect('localhost','root','') or die ("koneksi gagal !!!");<br />
//membuat koneksi dengan database<br />
mysql_select_db('perusahaan');<br />
&nbsp;<br />
//membuat tabel karyawan<br />
echo "&lt;table border=1&gt;";<br />
echo "&lt;tr&gt;";<br />
echo "&lt;th&gt;Kode Karyawan&lt;/th&gt;<br />
&lt;th&gt;Nama Depan&lt;/th&gt;<br />
&lt;th&gt;Nama Belakang&lt;/th&gt;<br />
&lt;th&gt;Jenis Kelamin&lt;/th&gt;<br />
&lt;th&gt;Tanggal Lahir&lt;/th&gt;<br />
&lt;th&gt;Alamat&lt;/th&gt;<br />
&lt;th&gt;Gaji&lt;/th&gt;";<br />
echo "&lt;/tr&gt;";<br />
&nbsp;<br />
//membaca semua data dari tabel karyawan<br />
$query = "select * from karyawan";<br />
$result = mysql_query($query)or die ("Wrong Query:".mysql_error());<br />
while($data=mysql_fetch_array($result))<br />
{<br />
echo "&lt;tr&gt;";<br />
echo "&lt;td&gt;$data[kd_karyawan]&lt;/td&gt;<br />
&lt;td&gt;$data[nama_depan]&lt;/td&gt;<br />
&lt;td&gt;$data[nama_belakang]&lt;/td&gt;<br />
&lt;td&gt;$data[jenis_kelamin]&lt;/td&gt;<br />
&lt;td&gt;$data[tanggal_lahir]&lt;/td&gt;<br />
&lt;td&gt;$data[alamat]&lt;/td&gt;<br />
&lt;td&gt;$data[gaji]&lt;/td&gt;";<br />
echo "&lt;/tr&gt;";<br />
}<br />
?&gt;</code></p>
<p>Jalankan browser anda, kemudian ketikkan alamat <a href="http://localhost/perusahaan/">http://localhost/perusahaan/</a> kemudian enter. Anda akan mendapatkan tampilan tabel seperti terlihat pada gambar 14.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6821352180/" title="pic 1.14 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7069/6821352180_03f5db07cf.jpg" width="500" height="175" alt="pic 1.14"></a></p>
<p align="center">Gambar 14. Tampilan tabel karyawan di browser</p>
<p>&nbsp;</p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/03/10/membuat-database-menggunakan-mysql-dan-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Memodifikasi Font</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/02/04/memodifikasi-font/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/02/04/memodifikasi-font/#comments</comments>
		<pubDate>Fri, 03 Feb 2012 17:00:09 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[font]]></category>
		<category><![CDATA[font visual c++]]></category>
		<category><![CDATA[modifikasi font]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=344</guid>
		<description><![CDATA[Pada pembahasan kali ini kita akan mempelajari bagaimana cara merubah font pada suatu text menggunakan list font yang terdapat pada windows. Untuk mengakses list font yang terdapat pada window, kita akan menggunakan Callback Function dari Windows API (Application Programming Interface). &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/02/04/memodifikasi-font/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pada pembahasan kali ini kita akan mempelajari bagaimana cara merubah font pada suatu text menggunakan list font yang terdapat pada windows. Untuk mengakses list font yang terdapat pada window, kita akan menggunakan <strong>Callback Function</strong> dari <strong>Windows API (Application Programming Interface)</strong>. Untuk langkah pertama, buatlah project MFC baru dengan tipe dialog based, kemudian buatlah tampilan form seperti pada gambar 1 menggunakan objek-objek kontrol yang terdapat pada toolbox:</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6812520129/" title="19.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7161/6812520129_08527f464f.jpg" width="500" height="366" alt="19.1"></a></p>
<p align="center">Gambar 1. Tampilan aplikasi font</p>
<p><span id="more-344"></span><br />
Pada tampilan tersebut terdapat 3 objek kontrol utama pada aplikasi font ini yaitu edit box untuk memasukkan teks, list box untuk menampilkan daftar font, serta static text untuk menampilkan hasil perubahan font berdasarkan pilihan pada list box. Untuk itu kita perlu membuat variable untuk ketiga objek tersebut seperti berikut:</p>
<p align="center">Tabel 1. Variabel yang dibutuhkan pada aplikasi font</p>
<div align="center">
<table border="1" cellspacing="0" cellpadding="0">
<tbody>
<tr>
<td valign="top" width="106"><strong>Objek kontrol</strong></td>
<td valign="top" width="110"><strong>Nama variabel</strong></td>
<td valign="top" width="73"><strong>Kategori</strong></td>
<td valign="top" width="72"><strong>Tipe</strong></td>
</tr>
<tr>
<td valign="top" width="106">Edit box</td>
<td valign="top" width="110">edit_teks</td>
<td valign="top" width="73">value</td>
<td valign="top" width="72">CString</td>
</tr>
<tr>
<td valign="top" width="106">&nbsp;</td>
<td valign="top" width="110">ctrl_edit_teks</td>
<td valign="top" width="73">control</td>
<td valign="top" width="72">CEdit</td>
</tr>
<tr>
<td valign="top" width="106">List Box</td>
<td valign="top" width="110">list_font</td>
<td valign="top" width="73">value</td>
<td valign="top" width="72">CString</td>
</tr>
<tr>
<td valign="top" width="106">&nbsp;</td>
<td valign="top" width="110">ctrl_list_font</td>
<td valign="top" width="73">control</td>
<td valign="top" width="72">CListBox</td>
</tr>
<tr>
<td valign="top" width="106">Static text</td>
<td valign="top" width="110">static_hasil</td>
<td valign="top" width="73">value</td>
<td valign="top" width="72">CString</td>
</tr>
<tr>
<td valign="top" width="106">&nbsp;</td>
<td valign="top" width="110">ctrl_static_hasil</td>
<td valign="top" width="73">control</td>
<td valign="top" width="72">CStatic</td>
</tr>
</tbody>
</table>
</div>
<p>&nbsp;</p>
<p>Setelah menyiapkan tampilan serta variabel yang dibutuhkan untuk aplikasi font, selanjutnya kita akan mengambil daftar font yang terdapat pada windows untuk dimasukkan pada list box yang terdapat pada aplikasi font ini. Seperti dijelaskan sebelumnya, untuk mengambil daftar font pada windows, kita perlu membuat fungsi pemanggil (callback function) dari windows API. Deklarasi fungsi akan kita buat pada file <strong>dlg.cpp</strong> sedangkan prototype (pemanggilan fungsi di awal aplikasi) kita buat di file <strong>dlg.h</strong>.</p>
<p>Berikut adalah prototype fungsi yang kita buat pada file <strong>dlg.h</strong>:</p>
<p><code>// Lat_FontDlg.h : header file<br />
#pragma once<br />
#include "afxwin.h"<br />
&nbsp;<br />
//prototype fungsi untuk memanggil semua font yang terdapat pada windows<br />
int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm, DWORD nFontType, long lParam);<br />
&nbsp;<br />
// CFontDlg dialog<br />
class CFontDlg : public CDialogEx<br />
{<br />
.<br />
.<br />
.<br />
</code></p>
<p>&nbsp;<br />
Untuk deklarasi fungsinya kita letakkan pada akhir file dlg.cpp :</p>
<p><code>int CALLBACK EnumFontFamProc(LPENUMLOGFONT lpelf,LPNEWTEXTMETRIC lpntm, DWORD nFontType, long lParam)<br />
{<br />
//membuat pointer ke Window<br />
CLat_FontDlg* pWnd = (CLat_FontDlg*) lParam;<br />
&nbsp;<br />
//memasukkan font kedalam list box<br />
pWnd-&gt;ctrl_list_font.AddString(lpelf-&gt;elfLogFont.lfFaceName);<br />
&nbsp;<br />
//return 1 to continue font enumeration<br />
return 1;<br />
}</code></p>
<p>&nbsp;<br />
Selanjutnya kita perlu membuat fungsi untuk mengisi listbox pada aplikasi yang kita buat, dimana fungsi tersebut akan menggunakan callback function yang telah kita buat sebelumnya. Buatlah fungsi dengan right-click pada <strong>class dlg</strong>, pilih <strong>return type</strong> fungsi <strong>void</strong> dan tipe akses <strong>private</strong>. Beri nama fungsi misalnya dengan <strong>FillFontList</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6812520143/" title="19.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7027/6812520143_43a22b4e77.jpg" width="500" height="374" alt="19.2"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6812520151/" title="19.2a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7023/6812520151_f145d59fb6.jpg" width="500" height="427" alt="19.2a"></a></p>
<p align="center">Gambar 2. Membuat fungsi untuk mengisi list box</p>
<p>Isi fungsi tersebut dengan kode program seperti berikut:</p>
<p><code>void CLat_fontDlg::FillFontList()<br />
{<br />
LOGFONT lf;<br />
//inisialisasi struktur LOGFONT<br />
lf.lfCharSet = DEFAULT_CHARSET;<br />
StrCpyW(lf.lfFaceName,L"");<br />
//kosongkan list box<br />
ctrl_list_font.ResetContent();<br />
//create a device context variable<br />
CClientDC dc (this);<br />
//enumerate the font families<br />
::EnumFontFamiliesEx((HDC) dc,&amp;lf,(FONTENUMPROC) EnumFontFamProc, (LPARAM) this, 0);<br />
}</code></p>
<p>&nbsp;<br />
Fungsi tersebut di atas harus dipanggil di awal aplikasi dijalankan agar daftar font muncul pada list box. Untuk itu kita perlu memanggil fungsi tersebut pada fungsi OnInitDialog() seperti berikut:</p>
<p><code>BOOL CFontDlg::OnInitDialog()<br />
{<br />
.<br />
.<br />
.<br />
// TODO: Add extra initialization here<br />
//mengisi list box font<br />
FillFontList();<br />
&nbsp;<br />
return TRUE;  // return TRUE  unless you set the focus to a control<br />
}</code></p>
<p>&nbsp;<br />
Jalankan aplikasi anda, perhatikan bahwa pada listbox sudah muncul daftar font, akan tetapi terdapat duplikasi. Untuk menghilangkan duplikasi pada font tersebut, ubahlah fungsi <strong>FillFontList </strong>menjadi seperti berikut<strong>:</strong></p>
<p><code>void CLat_fontDlg::FillFontList()<br />
{<br />
int iCount; //jumlah font<br />
int iCurCount; // jumlah font saat ini<br />
CString strCurFont; //nama font saat ini<br />
CString strPrevFont =L""; //nama font sebelumnya<br />
LOGFONT lf;<br />
//inisialisasi struktur LOGFONT<br />
lf.lfCharSet = DEFAULT_CHARSET;<br />
StrCpyW(lf.lfFaceName,L"");<br />
//kosongkan list box<br />
ctrl_list_font.ResetContent();<br />
//create a device context variable<br />
CClientDC dc (this);<br />
//enumerate the font families<br />
::EnumFontFamiliesEx((HDC) dc,&amp;lf,(FONTENUMPROC) EnumFontFamProc, (LPARAM) this, 0);<br />
//hitung jumlah fon di dalam list box<br />
iCount = ctrl_list_font.GetCount();<br />
//ulangi dari akhir listbox sampai awal<br />
//cari dan hapus data yang sama<br />
for(iCurCount=iCount; iCurCount&gt;0; iCurCount--)<br />
{<br />
//Ambil nama font saat ini<br />
ctrl_list_font.GetText((iCurCount-1),strCurFont);<br />
//cek apakah sama dengan nama font sebelumnya<br />
if(strCurFont==strPrevFont)<br />
{<br />
//apabila ya, hapus<br />
ctrl_list_font.DeleteString((iCurCount-1));<br />
}<br />
//set nama font sebelumnya menjadi nama font saat ini<br />
strPrevFont=strCurFont;<br />
}<br />
}</code></p>
<p>&nbsp;<br />
Setelah kita berhasil menampilkan font pada list box, langkah selanjutnya adalah membuat fungsi untuk mengisi static text dengan teks yang kita ketikkan pada edit box. Untuk membuatnya cukup dengan double-click pada edit box kemudian isikan dengan kode program seperti berikut:</p>
<p><code>void CLat_fontDlg::OnEnChangeEdit1()<br />
{<br />
// TODO:  If this is a RICHEDIT control, the control will not<br />
// send this notification unless you override the CDialogEx::OnInitDialog()<br />
// function and call CRichEditCtrl().SetEventMask()<br />
// with the ENM_CHANGE flag ORed into the mask.<br />
&nbsp;<br />
// TODO:  Add your control notification handler code here<br />
//update data dari kotak dialog ke variabel<br />
UpdateData(true);<br />
//isi variabel static teks dengan nilai dari variabel edit box<br />
static_hasil=edit_teks;<br />
//update isi variabel ke kotak dialog<br />
UpdateData(false);<br />
}</code></p>
<p>&nbsp;<br />
Langkah terakhir yang perlu kita lakukan adalah membuat fungsi pada list box agar ketika kita memilih salah satu font dari list box, maka teks yang terdapat pada static text akan berganti font. Akan tetapi sebelumnya kita harus membuat variabel bertipe CFont pada file dlg.h untuk menampung pilihan font. Buat variabel tersebut misalnya dengan nama font_pilihan. Untuk membuatnya cukup deklarasikan pada file dlg.h pada bagian public :</p>
<p><code>CFont font_pilihan</code></p>
<p>Untuk memudahkan memodifikasi aplikasi nantinya, fungsi perubahan font tidak kita letakkan langsung pada edit box. Buatlah fungsi baru pada class dlg sama seperti fungsi <strong>FillFontList</strong>, yaitu dengan <strong>nilai return</strong> <strong>void</strong> dan tipe akses <strong>private</strong>. Buat fungsi tersebut misalnya dengan nama <strong>SetMyFont</strong>, kemudian isikan kode program berikut pada fungsi tersebut:</p>
<p><code>void CLat_fontDlg::SetMyFont(void)<br />
{<br />
CRect rRect; // variabel menampung area persegi dari static text hasil<br />
int iHeight; //variabel menampung tinggi dari area static text untuk digunakan pada font<br />
&nbsp;<br />
// cek apakah ada font yang dipilih<br />
if(list_font !="")<br />
{<br />
//ambil ukuran luas dari static text dimana font akan ditampilkan<br />
ctrl_static_hasil.GetWindowRect(&amp;rRect);<br />
//hitung tingginya<br />
iHeight = rRect.top- rRect.bottom;<br />
//pastikan nilainya positif<br />
if(iHeight&lt;0)<br />
iHeight=0-iHeight;<br />
//hilangkan akses pada current font<br />
font_pilihan.Detach();<br />
//create font yang akan digunakan<br />
font_pilihan.CreateFont((iHeight-5),0,0,0,FW_NORMAL,0,0,0,DEFAULT_CHARSET,OUT_CHARACTER_PRECIS,CLIP_CHARACTER_PRECIS, DEFAULT_QUALITY,DEFAULT_PITCH|FF_DONTCARE,list_font);<br />
&nbsp;<br />
//set font tersebut pada static teks hasil<br />
ctrl_static_hasil.SetFont(&amp;font_pilihan);<br />
}<br />
}</code></p>
<p>&nbsp;<br />
Selanjutnya buat fungsi pada list box dengan cara double-click pada list box, kemudian panggil fungsi <strong>SetMyFont</strong> di atas.</p>
<p><code>void CLat_fontDlg::OnLbnSelchangeList1()<br />
{<br />
//mengupdate pilihan pada list box ke dalam variabel<br />
UpdateData(true);<br />
//memanggil fungsi SetMyFont<br />
SetMyFont();<br />
}</code></p>
<p>&nbsp;<br />
Jalankan aplikasi, lihat apakah aplikasi font telah berjalan dengan baik.</p>
<p><a href="http://www.mediafire.com/download.php?pipiya6aaq6m7t4"><img src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" class="alignleft size-full wp-image-197" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/02/04/memodifikasi-font/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Membuat Query Pencarian dan Pengurutan Data</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-query-pencarian-dan-pengurutan-data/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-query-pencarian-dan-pengurutan-data/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 07:28:44 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[filter]]></category>
		<category><![CDATA[pencarian]]></category>
		<category><![CDATA[pengurutan]]></category>
		<category><![CDATA[queri]]></category>
		<category><![CDATA[query]]></category>
		<category><![CDATA[sort]]></category>
		<category><![CDATA[sql]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=328</guid>
		<description><![CDATA[Pembahasan ini merupakan kelanjutan dari pembahasan sebelumnya yaitu Membuat Aplikasi Pengolahan Database. Pada pembahasan kali ini kita akan mempelajari bagaimana mencari dan mengurutkan data dengan melakukan query terhadap tabel dengan format aplikasi MFC. Untuk pencarian data, langkah pertama yang perlu &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-query-pencarian-dan-pengurutan-data/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pembahasan ini merupakan kelanjutan dari pembahasan sebelumnya yaitu Membuat Aplikasi Pengolahan Database. Pada pembahasan kali ini kita akan mempelajari bagaimana mencari dan mengurutkan data dengan melakukan query terhadap tabel dengan format aplikasi MFC.</p>
<p>Untuk pencarian data, langkah pertama yang perlu kita lakukan adalah membuat kotak dialog baru dengan tampilan seperti berikut.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758773025/" title="18.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7008/6758773025_9dd716e7a2.jpg" width="500" height="338" alt="18.1"></a></p>
<p align="center">Gambar 1. Kotak dialog pencarian data</p>
<p><span id="more-328"></span><br />
Buatlah kotak dialog seperti tampilan gambar 1 dengan menggunakan objek-objek kontrol yang terdapat pada toolbox. Ubah properties semua edit box menjadi disable. Untuk dapat menggunakan kotak dialog tersebut, langkah pertama yang harus kita lakukan adalam membuat class. Caranya right-click pada kotak dialog tersebut kemudian pilih <strong>Add Class</strong>. Beri nama class tersebut misalnya <strong>CPencarian</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758773029/" title="18.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7013/6758773029_2ea5512b88.jpg" width="500" height="427" alt="18.2"></a></p>
<p align="center">Gambar 2. Membuat class untuk kotak dialog pencarian</p>
<p>Setelah membuat class, langkah selanjutnya adalah membuat variabel untuk objek-objek yang terdapat pada class baru tersebut.</p>
<p>Untuk semua edit box buat variabel <strong>CString</strong> misalnya dengan nama <strong>edit_cari_judul</strong>, <strong>edit_stok_min</strong> dan <strong>edit_stok_maks</strong>. Untuk radio button, buat variabel hanya untuk <strong>radio button1</strong>. Sebelumnya ubah properties <strong>group</strong> dari radio button tersebut menjadi <strong>true</strong>. Buat variabel <strong>integer</strong> misalnya dengan nama <strong>radio_cari</strong>. Terakhir buat variabel global bertipe <strong>integer</strong> misalnya dengan nama <strong>tombol_cari</strong> untuk menampung pilihan tombol mana yang anda tekan apakah tombol search atau cancel.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758773031/" title="18.3 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7035/6758773031_bfa09a1e1c.jpg" width="443" height="373" alt="18.3"></a></p>
<p align="center">Gambar 3. Membuat variabel kotak dialog</p>
<p>Fungsi pertama yang akan kita buat adalah untuk menampilkan kotak dialog pencarian. Buat sub menu baru pada menu record misalnya dengan nama <strong>search record</strong>. Buat fungsi pada menu tersebut dan letakkan pada class view, kemudian isikan kode program seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnRecordSearchrecord()<br />
{<br />
//membuat objek untuk mengakses kotak dialog pencarian<br />
CPencarian pencarian;<br />
//menampilkan kotak dialog pencarian<br />
pencarian.DoModal();<br />
}</code></p>
<p>Perhatikan bahwa pada fungsi tersebut kita mengakses class CPencarian. Untuk dapat mengakses class tersebut sebelumnya anda harus menambahkan <strong>#include &#8220;Pencarian.h&#8221;</strong> pada bagian atas dari file <strong>view.cpp</strong>.</p>
<p>Jalankan aplikasi untuk melihat apakah kotak dialog pencarian sudah terhubung dengan fungsi dari sub menu pencarian. Selanjutnya kita buat fungsi untuk radio button. Double-click radio button 1 untuk membuat fungsi dan isikan kode program berikut:</p>
<p><code>void CPencarian::OnBnClickedRadio1()<br />
{<br />
//mengupdate kondisi kotak dialog ke dalam variabel<br />
UpdateData(true);<br />
switch(radio_cari)<br />
{<br />
//nilai radio_cari=0 apabila radio button pertama dipilih<br />
//mengaktifkan pencarian berdasarkan judul<br />
case 0: GetDlgItem(IDC_EDIT1)-&gt;EnableWindow(true);<br />
GetDlgItem(IDC_EDIT1)-&gt;SetFocus();<br />
GetDlgItem(IDC_EDIT2)-&gt;EnableWindow(false);<br />
GetDlgItem(IDC_EDIT3)-&gt;EnableWindow(false);<br />
break;<br />
//nilai radio_cari=1 apabila radio button pertama dipilih<br />
//mengaktifkan pencarian berdasarkan jumlah stok<br />
case 1: GetDlgItem(IDC_EDIT1)-&gt;EnableWindow(false);<br />
GetDlgItem(IDC_EDIT2)-&gt;EnableWindow(true);<br />
GetDlgItem(IDC_EDIT2)-&gt;SetFocus();<br />
GetDlgItem(IDC_EDIT3)-&gt;EnableWindow(true);<br />
break;<br />
}<br />
}</code></p>
<p>Untuk radio button 2 isi dengan nama fungsi dari radio button 1.</p>
<p><code>void CPencarian::OnBnClickedRadio2()<br />
{<br />
OnBnClickedRadio1();<br />
}</code></p>
<p>Jalankan aplikasi anda untuk melihat apakah fungsi radio button berjalan dengan baik. Agar tidak ada radio button yang terpilih pada saat kotak dialog pencarian muncul, inisialisasi variabel <strong>radio_cari</strong> dengan nilai <strong>-1</strong> pada fungsi <strong>OnInitDialog()</strong>. Untuk membuat fungsi OnInitDialog, buka properties dari class <strong>CPencarian</strong> kemudian pilih menu <strong>overrides</strong> lalu tambahkan fungsi OnInitDialog().</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758777693/" title="18.4 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7171/6758777693_0741d80fe2.jpg" width="279" height="280" alt="18.4"></a></p>
<p align="center">Gambar 4. Membuat fungsi OnInitDialog()</p>
<p><code>BOOL CPencarian::OnInitDialog()<br />
{<br />
CDialog::OnInitDialog();<br />
&nbsp;<br />
// TODO:  Add extra initialization here<br />
radio_cari=-1;<br />
UpdateData(false);<br />
&nbsp;<br />
return TRUE;  // return TRUE unless you set the focus to a control<br />
// EXCEPTION: OCX Property Pages should return FALSE<br />
}</code></p>
<p>Selanjutnya buat fungsi <strong>OnClose()</strong> pada class <strong>CPencarian</strong> dengan cara mengakses properties kemudian pilih messages, pilih event <strong>WM_CLOSE</strong> kemudian <strong>add OnClose()</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758777699/" title="18.5 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7154/6758777699_8136058e2e.jpg" width="299" height="296" alt="18.5"></a></p>
<p align="center">Gambar 5. Membuat fungsi OnClose()</p>
<p>Isikan kode program berikut pada fungsi OnCLose().</p>
<p><code>void CPencarian::OnClose()<br />
{<br />
//mengisikan variabel tombolcari = 1 ketika kotak dialog di tutup<br />
tombolcari=1;<br />
&nbsp;<br />
CDialog::OnClose();<br />
}</code></p>
<p>Buat juga fungsi untuk tombol search kemudian isi dengan perintah <strong>OnOK()</strong> untuk menutup kotak dialog. Untuk tombol Cancel buat fungsi dan isikan dengan fungsi <strong>OnClose()</strong> dan <strong>OnOK()</strong> agar ketika tombol cancel ditekan maka fungsi OnClose() akan dijalankan dan kotak dialog ditutup.</p>
<p><code>//fungsi tombol search<br />
void CPencarian::OnBnClickedButton1()<br />
{<br />
OnOK();<br />
}<br />
//fungsi tombol cancel<br />
void CPencarian::OnBnClickedButton2()<br />
{<br />
OnClose();<br />
OnOK();<br />
}</code></p>
<p>Pada kotak dialog utama tambahkan tombol <strong>refresh</strong> untuk merefresh kembali data awal. Ubah properties visible pada tombol tersebut menjadi false agar pada saat awal tombol tersebut tidak terlihat. Buat variabel control untuk tombol tersebut misalnya dengan nama <strong>ctrl_btn_refresh</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758777709/" title="18.6 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7029/6758777709_607b9486d1.jpg" width="444" height="300" alt="18.6"></a></p>
<p align="center">Gambar 6. Membuat tombol refresh</p>
<p>Tambahkan kode program berikut pada fungsi search record:</p>
<p><code>void CLat_DatabaseView::OnRecordSearchrecord()<br />
{<br />
//membuat objek untuk mengakses kotak dialog pencarian<br />
CPencarian pencarian;<br />
//menampilkan kotak dialog pencarian<br />
pencarian.DoModal();<br />
&nbsp;<br />
//mengupdate data dari kotak dialog ke variabel<br />
UpdateData(true);<br />
//buat variabel filter untuk menampung query filter<br />
CString filter;<br />
if(pencarian.radio_cari==0)<br />
{<br />
//membuat variabel filter untuk menampung query pencarian<br />
filter = _T("judul_buku LIKE '%");<br />
filter.Append(pencarian.edit_cari_judul);<br />
filter.Append(L"%'");<br />
}<br />
else<br />
{<br />
//membuat variabel filter untuk menampung query pencarian<br />
//CString filter = _T("stok BETWEEN 10 AND 15");<br />
filter = _T("stok BETWEEN ");<br />
filter.Append(pencarian.edit_stok_min);<br />
filter.Append(L" AND ");<br />
filter.Append(pencarian.edit_stok_maks);<br />
}<br />
//query pencarian data<br />
m_pSet-&gt;m_strFilter = filter;<br />
//menutup dan membuka dataset agar hanya menampilkan hasil pencarian<br />
m_pSet-&gt;Close();<br />
m_pSet-&gt;Open();<br />
UpdateData(false);<br />
//Menampilkan tombol refresh<br />
ctrl_btn_refresh.ShowWindow(true);<br />
&nbsp;<br />
if (pencarian.tombolcari==1)<br />
ctrl_btn_refresh.ShowWindow(false);<br />
}</code></p>
<p>Buat fungsi pada tombol refresh dan isikan kode program seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnBnClickedButton3()<br />
{<br />
//filter dengan atribut ID dan tanpa kondisi<br />
m_pSet-&gt;Close();<br />
m_pSet-&gt;m_strFilter = "[ID]";<br />
m_pSet-&gt;Open();<br />
UpdateData(false);<br />
//Menghilangkan tombol refresh<br />
ctrl_btn_refresh.ShowWindow(false);<br />
}</code></p>
<p>Jalankan aplikasi untuk melihat apakah fungsi pencarian yang kita buat telah berjalan dengan baik.</p>
<p>Selanjutnya untuk mengurutkan data buat kotak dialog baru dan buat class baru untuk kotak dialog tersebut misalnya dengan nama <strong>CPengurutan</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758777715/" title="18.7 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7152/6758777715_0566759799.jpg" width="500" height="340" alt="18.7"></a></p>
<p align="center">Gambar 7. Membuat kotak dialog Pengurutan Data</p>
<p>Buatlah tampilan kotak dialog tersebut seperti pada gambar 7 dengan menggunakan objek-objek kontrol yang terdapat pada toolbox.</p>
<p>Masukkan header class CPengurutan yaitu pengurutan.h ke bagian atas dari file view.cpp agar class CPengurutan dapat  diakses oleh class view.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758777719/" title="18.8 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7018/6758777719_4463537a7d.jpg" width="382" height="286" alt="18.8"></a></p>
<p align="center">Gambar 8. File header pada file view.cpp</p>
<p>Buat sub menu baru pada menu record misalnya sort record, kemudian buat fungsi pada sub menu tersebut, lalu isikan dengan kode program seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnRecordSortrecord()<br />
{<br />
//membuat objek untuk mengakses kotak dialog pengurutan<br />
CPengurutan pengurutan;<br />
//menampilkan kotak dialog pencarian<br />
pengurutan.DoModal();<br />
}</code></p>
<p>Ubah properties <strong>group</strong> untuk radio button 1 menjadi true. Selanjutnya buat variabel pada radio button 1 saja dengan tipe integer, misalnya dengan nama <strong>radio_urut</strong>. Buat fungsi OnInitDialog() pada class CPengurutan kemudian isikan kode program seperti berikut:</p>
<p><code>BOOL CPengurutan::OnInitDialog()<br />
{<br />
CDialog::OnInitDialog();<br />
&nbsp;<br />
// TODO:  Add extra initialization here<br />
radio_urut=-1;<br />
UpdateData(false);<br />
&nbsp;<br />
return TRUE;  // return TRUE unless you set the focus to a control<br />
// EXCEPTION: OCX Property Pages should return FALSE<br />
}</code></p>
<p>Perhatikan bahwa kode program tersebut menginisialisasi variabel radio_urut dengan nilai -1 agar tidak ada radio button yang terpilih pada saat awal kotak dialog dijalankan.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758777723/" title="18.9 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7031/6758777723_af7f031c51.jpg" width="500" height="425" alt="18.9"></a></p>
<p align="center">Gambar 9. Membuat variabel pada radio button</p>
<p>Buat fungsi untuk tombol sort dan tombol cancel. Isikan fungsi <strong>OnOK()</strong> pada kedua fungsi tersebut aga kotak dialog pengurutan ditutup ketika kedua tombol tersebut ditekan.</p>
<p>Terakhir lengkapi fungsi sort record pada file view.cpp dengan kode program seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnRecordSortrecord()<br />
{<br />
//membuat objek untuk mengakses kotak dialog pengurutan<br />
CPengurutan pengurutan;<br />
//menampilkan kotak dialog pencarian<br />
pengurutan.DoModal();<br />
&nbsp;<br />
UpdateData(true);<br />
switch(pengurutan.radio_urut)<br />
{<br />
case 0:     m_pSet-&gt;Close();<br />
m_pSet-&gt;m_strSort="[ID]";<br />
m_pSet-&gt;Open();<br />
break;<br />
case 1: m_pSet-&gt;Close();<br />
m_pSet-&gt;m_strSort="[judul_buku]";<br />
m_pSet-&gt;Open();<br />
break;<br />
}<br />
UpdateData(false);<br />
}</code></p>
<p>Jalankan aplikasi anda untuk melihat apakah fungsi pengurutan telah berjalan dengan sempurna.<br />
&nbsp;<br />
<a href="http://www.mediafire.com/download.php?whm3me5r33xembf"><img src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" class="alignleft size-full wp-image-197" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-query-pencarian-dan-pengurutan-data/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Membuat aplikasi pengolahan database</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-aplikasi-pengolahan-database/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-aplikasi-pengolahan-database/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 06:59:58 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[aplikasi database]]></category>
		<category><![CDATA[database MFC]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=324</guid>
		<description><![CDATA[Pokok bahasan ini merupakan lanjutan dari pembahasan sebelumnya tentang Menghubungkan Aplikasi MFC dengan Database. Pada bagian ini kita akan mempelajari bagaimana membuat fungsi-fungsi dasar pengolahan data seperti penambahan data, penghapusan data dan edit data. Untuk membuat  fungsi penambahan data, tambahkan &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-aplikasi-pengolahan-database/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pokok bahasan ini merupakan lanjutan dari pembahasan sebelumnya tentang <strong>Menghubungkan Aplikasi MFC dengan Database</strong>. Pada bagian ini kita akan mempelajari bagaimana membuat fungsi-fungsi dasar pengolahan data seperti penambahan data, penghapusan data dan edit data.</p>
<p>Untuk membuat  fungsi penambahan data, tambahkan tombol save dan cancel pada kotak dialog kemudian ubah properties <strong>visible</strong> menjadi <strong>false</strong> agar tombol-tombol tersebut tidak terlihat. Ubah juga properties <strong>disabled</strong> semua <strong>edit box</strong> menjadi <strong>true </strong>agar menjadi tidak aktif.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758769623/" title="17.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7167/6758769623_39c72a6c7d.jpg" width="500" height="325" alt="17.1"></a></p>
<p align="center">Gambar 1. Membuat tombol simpan</p>
<p><span id="more-324"></span><br />
Buat variabel control tombol tersebut dan semua edit box dengan cara right-click pada masing-masing objek kemudian pilih <strong>add variable</strong>, misal pada contoh ini dibuat dengan nama: <strong>ctrl_btn_simpan</strong>, <strong>ctrl_edit_kode</strong>, <strong>ctrl_edit_buku</strong> dan <strong>ctrl_edit_stok</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758769643/" title="17.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7171/6758769643_a4c729252b.jpg" width="500" height="424" alt="17.2"></a></p>
<p align="center">Gambar 2. Membuat variabel control</p>
<p>Buka kotak dialog menu pada resource view dan tambahkan sub menu New Record pada menu Record.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758773001/" title="17.3 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7018/6758773001_56b05f07e0.jpg" width="500" height="258" alt="17.3"></a></p>
<p align="center">Gambar 3. Menambah menu new record</p>
<p>Buat fungsi  untuk menu new record tersebut dengan cara right-click kemudian pilih <strong>add event handler</strong>. Pilih class <strong>view</strong> untuk menampung fungsi tersebut.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758773013/" title="17.4 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7170/6758773013_096bf64456.jpg" width="500" height="282" alt="17.4"></a></p>
<p align="center">Gambar 4. Membuat fungsi dari menu new record</p>
<p>Isikan kode program pada fungsi tersebut seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnRecordNewrecord()<br />
{<br />
//mengaktifkan edit box dan tombol simpan<br />
ctrl_edit_kode.EnableWindow(true);<br />
ctrl_edit_buku.EnableWindow(true);<br />
ctrl_edit_stok.EnableWindow(true);<br />
ctrl_btn_simpan.ShowWindow(true);<br />
ctrl_btn_batal.ShowWindow(true);<br />
//mengosongkan isi edit box<br />
ctrl_edit_kode.SetWindowTextW(CString(""));<br />
ctrl_edit_buku.SetWindowTextW(CString(""));<br />
ctrl_edit_stok.SetWindowTextW(CString(""));<br />
//set fokus pada edit box kode buku<br />
ctrl_edit_kode.SetFocus();<br />
//menambahkan data baru<br />
m_pSet-&gt;AddNew();<br />
}</code></p>
<p>Buat juga fungsi pada tombol simpan dan tambahkan kode program seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnBnClickedButton1()<br />
{<br />
UpdateData();<br />
if (m_pSet-&gt;Update())<br />
AfxMessageBox(_T("Database updated!"));<br />
else<br />
AfxMessageBox(_T("Failed updating database!"));<br />
// menyembunyikan kembali tombol<br />
ctrl_btn_simpan.ShowWindow(false);<br />
ctrl_btn_batal.ShowWindow(false);<br />
//menonaktifkan edit box<br />
ctrl_edit_kode.EnableWindow(false);<br />
ctrl_edit_buku.EnableWindow(false);<br />
ctrl_edit_stok.EnableWindow(false);<br />
//menampilkan data terakhir<br />
m_pSet-&gt;MoveLast();<br />
}</code></p>
<p>Terakhir buat fungsi pada tombol cancel dan isikan kode program seperti berikut:</p>
<p><code>void CLat_DatabaseView::OnBnClickedButton2()<br />
{<br />
// menyembunyikan kembali tombol<br />
ctrl_btn_simpan.ShowWindow(false);<br />
ctrl_btn_batal.ShowWindow(false);<br />
//menonaktifkan edit box<br />
ctrl_edit_kode.EnableWindow(false);<br />
ctrl_edit_buku.EnableWindow(false);<br />
ctrl_edit_stok.EnableWindow(false);<br />
//query ulang data<br />
m_pSet-&gt;Requery();<br />
UpdateData(false);<br />
}</code></p>
<p>Apabila anda ingin menambahkan icon penambahan data pada toolbar maka tampilkan menu toolbar melalui resource view, kemudian buatlah icon baru untuk penambahan data tersebut, terakhir ubahlah nama id icon tersebut pada properties menjadi sama dengan id dari fungsi new record.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758773017/" title="17.5 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7018/6758773017_8c4b9050d3.jpg" width="500" height="172" alt="17.5"></a></p>
<p align="center">Gambar 5. Membuat ikon toolbar untuk menu new record</p>
<p>Fungsi selanjutnya yang akan kita buat adalah fungsi edit data. Buat sub menu edit record pada menu record kemudian buat fungsi untuk menu tersebut. Fungsi edit ini kurang lebih sama dengan fungsi tambah data dan menggunakan tombol-tombol yang sama (tombol save dan cancel). Untuk itu kita perlu suatu variabel untuk membedakan fungsi mana yang sedang kita gunakan. Buat variabel global pada class view dengan cara right-click pada kotak dialog kemudian buat variabel dengan tipe integer (pada contoh ini nama variabel:<strong> tombol</strong>). Selanjutnya isikan kode program berikut pada fungsi edit record:</p>
<p><code>void CLat_DatabaseView::OnRecordEditrecord()<br />
{<br />
//nilai tombol=2 untuk fungsi edit data<br />
tombol=2;<br />
//mengaktifkan edit box dan tombol<br />
ctrl_edit_kode.EnableWindow(true);<br />
ctrl_edit_buku.EnableWindow(true);<br />
ctrl_edit_stok.EnableWindow(true);<br />
ctrl_btn_simpan.ShowWindow(true);<br />
ctrl_btn_batal.ShowWindow(true);<br />
//edit data pada database<br />
m_pSet-&gt;Edit();<br />
}</code></p>
<p>Perhatikan bahwa untuk fungsi edit nilai variabel tombol kita isi dengan nilai 2, untuk itu isi nilai variabel tombol pada fungsi tambah dengan nilai 1.</p>
<p><code>void CLat_DatabaseView::OnRecordNewrecord()<br />
{<br />
//nilai tombol=1 untuk fungsi tambah data<br />
tombol=1;<br />
.<br />
.<br />
.<br />
}</code></p>
<p>Ubah kode program untuk tombol save:</p>
<p><code>void CLat_DatabaseView::OnBnClickedButton1()<br />
{<br />
.<br />
.<br />
.<br />
if(tombol==1)<br />
m_pSet-&gt;MoveLast();//menampilkan data terakhir<br />
else<br />
return;//kembali ke kondisi sebelumnya<br />
}</code></p>
<p>Dan pada tombol cancel:</p>
<p><code>void CLat_DatabaseView::OnBnClickedButton2()<br />
{<br />
.<br />
.<br />
.<br />
if(tombol==1)<br />
m_pSet-&gt;Requery();//query ulang data<br />
else<br />
return;//kembali ke kondisi sebelumnya<br />
UpdateData(false);<br />
}</code></p>
<p>Fungsi selanjutnya yang akan kita buat adalah fungsi hapus data. Tambahkan sub menu delete rocord pada menu record, kemudian buat fungsi pada menu delete record tersebut. Isikan kode program berikut pada fungsi tersebut:</p>
<p><code>void CLat_DatabaseView::OnRecordDeleterecord()<br />
{<br />
int Answer = MessageBox(_T("Apakah anda yakin untuk menghapus data ini?"),_T("konfirmasi"),MB_YESNO);<br />
if( Answer == IDYES )<br />
{<br />
m_pSet-&gt;Delete();<br />
m_pSet-&gt;Requery();<br />
UpdateData(FALSE);<br />
}<br />
else<br />
return;<br />
}</code></p>
<p>Seperti pada fungsi new record, anda dapat menambahkan ikon pada fungsi delete record. Jalankan aplikasi untuk melihat apakah fungsi-fungsi di atas berjalan dengan baik.</p>
<p><a href="http://www.mediafire.com/download.php?whm3me5r33xembf"><img src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" class="alignleft size-full wp-image-197" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/membuat-aplikasi-pengolahan-database/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Menghubungkan Aplikasi MFC dengan Database</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/menghubungkan-aplikasi-mfc-dengan-database/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/menghubungkan-aplikasi-mfc-dengan-database/#comments</comments>
		<pubDate>Wed, 25 Jan 2012 06:34:22 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[database visual C++]]></category>
		<category><![CDATA[koneksi database MFC]]></category>
		<category><![CDATA[koneksi ODBC MFC]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=320</guid>
		<description><![CDATA[Pada pokok bahasan ini kita akan mempelajari bagaimana menghubungkan aplikasi MFC dengan database. Sebagai contoh, buat database menggunakan MS Access seperti contoh pada gambar 1  berikut untuk database perpustakaan dengan tabel buku. Simpan file access tersebut dengan tipe .mdb. Gambar &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/01/25/menghubungkan-aplikasi-mfc-dengan-database/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pada pokok bahasan ini kita akan mempelajari bagaimana menghubungkan aplikasi MFC dengan database. Sebagai contoh, buat database menggunakan MS Access seperti contoh pada gambar 1  berikut untuk database perpustakaan dengan tabel buku. Simpan file access tersebut dengan tipe <strong>.mdb</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758759455/" title="16.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7166/6758759455_e5951fce23.jpg" width="500" height="431" alt="16.1"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758762391/" title="16.1a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7005/6758762391_b545fbb51e.jpg" width="327" height="333" alt="16.1a"></a></p>
<p align="center">Gambar 1. Membuat database dengan MS Access</p>
<p><span id="more-320"></span><br />
Untuk menghubungkan database tersebut dengan aplikasi MFC yang akan kita buat, kita memerlukan koneksi ODBC (Open Database Connection). Fitur ODBC ini dapat anda temukan dengan mengakses <strong>Control Panel</strong> pada windows anda, kemudian pilih <strong>Administrative tools</strong> dan pilih menu <strong>Data Source (ODBC)</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758762401/" title="16.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7156/6758762401_4dafa00b50.jpg" width="500" height="249" alt="16.2"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758762405/" title="16.2a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7161/6758762405_d9915a5a53.jpg" width="500" height="167" alt="16.2a"></a></p>
<p align="center">Gambar 2. Mengakses Fitur ODBC</p>
<p>Buat koneksi baru dengan tombol add kemudian pilih driber MS Access.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758762407/" title="16.3 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7173/6758762407_f539420b28.jpg" width="500" height="203" alt="16.3"></a></p>
<p align="center">Gambar 3. Membuat koneksi ODBC</p>
<p>Isi nama data source kemudian pilih database yang akan digunakan.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758765747/" title="16.4 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7034/6758765747_21cf7ccbb5.jpg" width="500" height="164" alt="16.4"></a></p>
<p align="center">Gambar 4. Setting koneksi ODBC</p>
<p>Setelah melakukan setting koneksi ODBC di atas maka koneksi ODBC anda telah siap untuk digunakan pada aplikasi MFC. Langkah selanjutnya tentu saja adalah membuat project MFC baru. Untuk koneksi dengan database, MFC menyediakannya pada tipe aplikasi <strong>single document</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758765751/" title="16.5 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7028/6758765751_10c0d0b9ea.jpg" width="473" height="401" alt="16.5"></a></p>
<p align="center">Gambar 5. Tipe aplikasi Single Document untuk aplikasi database</p>
<p>Setting database support dengan memilih <strong>Database view without file support</strong> sebab kita tidak belum menghubungkan dengan file lain seperti file dokumen untuk laporan. Pilih client type ODBC kemudian tekan tombol Data Source, pilih koneksi ODBC yang telah anda buat sebelumnya dan pilih tabel yang akan digunakan.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758765755/" title="16.6 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7020/6758765755_0266986309.jpg" width="500" height="247" alt="16.6"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758765759/" title="16.6a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7160/6758765759_355bb76829.jpg" width="500" height="277" alt="16.6a"></a></p>
<p align="center">Gambar 6. Setting database Support</p>
<p>Setelah melakukan setting untuk database support maka akan terbentuk beberapa class pembentuk aplikasi database. Apabila anda menekan tombol finish akan muncul pesan warning yang mengingatkan bahwa pada aplikasi yang anda buat terdapat code yang berisi password ke database. Untuk sementara kita abaikan dulu pesan tersebut.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758765763/" title="16.7 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7016/6758765763_15fc894ce0.jpg" width="500" height="219" alt="16.7"></a></p>
<p align="center">Gambar 7. Pesan warning pada akhir pembuatan aplikasi database</p>
<p>Tampilkan kotak dialog yang telah terbentuk melalui resource view kemudian buat tampilan seperti berikut:</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758765767/" title="16.8 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7026/6758765767_3b37e30123.jpg" width="500" height="300" alt="16.8"></a></p>
<p align="center">Gambar 8. Kotak dialog aplikasi database</p>
<p>Coba jalankan aplikasi, akan ada pesan error dan apabila anda akses letak error tersebut mengarah pada warning terhadap adanya password yang kita temui sebelumnya. Sementara hal ini kita abaikan dengan membuat comment pada line code program tersebut menggunakan //.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758769599/" title="16.9 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7145/6758769599_94601fb3fa.jpg" width="500" height="394" alt="16.9"></a></p>
<p align="center">Gambar 9. Menangani pesan warning/error untuk security issue</p>
<p>Setelah mengangani masalah security issue tersebut, apabila anda jalankan aplikasi kembali maka akan berhasil, akan tetapi belum ada data yang ditampilkan pada edit box sebab edit box yang kita buat belum terhubung dengan database.</p>
<p>Buka file <strong>set.h</strong> maka anda akan menemukan variabel data yang terbentuk secara otomatis dan telah terhubung dengan database.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758769609/" title="16.10 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7018/6758769609_4822a65f7b.jpg" width="500" height="205" alt="16.10"></a></p>
<p align="center">Gambar 10. Variabel data dari database</p>
<p>Untuk menghubungkan variabel tersebut dengan edit box yang telah kita buat pada kotak dialog, bukalah file <strong>view.cpp</strong> kemudian akses fungsi <strong>DoDataExchange</strong>. Masukkan kode program berikut pada fungsi tersebut.</p>
<p><code>DDX_FieldText(pDX, IDC_EDIT1, m_pSet-&gt;m_ID, m_pSet);<br />
DDX_FieldText(pDX, IDC_EDIT2, m_pSet-&gt;m_judul_buku, m_pSet);<br />
DDX_FieldText(pDX, IDC_EDIT3, m_pSet-&gt;m_stok, m_pSet);</code></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758769611/" title="16.11 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7032/6758769611_81613218ce.jpg" width="500" height="228" alt="16.11"></a></p>
<p align="center">Gambar 11. Menghubungkan edit box dengan database</p>
<p>Perhatikan bahwa kode program tersebut menghubungkan antara id dari edit box pada kotak dialog dengan variabel dataset.</p>
<p>Jalankan aplikasi anda, maka edit box anda akam menampilkan data dari database. Perhatikan anda bisa penggunakan menu toolbar untuk mengakses data lainnya.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6758769617/" title="16.12 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7172/6758769617_f0d3166116.jpg" width="500" height="288" alt="16.12"></a></p>
<p align="center">Gambar 12. Edit box terhubung dengan database</p>
<p>Perhatikan bahwa ukuran kotak dialog perlu diubah agar tidak terlalu besar. Untuk mengubahnya buka file MainFrm.cpp dan masukkan code program berikut pada fungsi <strong>OnCreate</strong> dan <strong>PreCreateWindow</strong>.</p>
<p><code>int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)<br />
{<br />
.<br />
.<br />
.<br />
// TODO: Delete these three lines if you don't want the toolbar to be dockable<br />
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);<br />
EnableDocking(CBRS_ALIGN_ANY);<br />
DockControlBar(&amp;m_wndToolBar);<br />
//Set posisi dan nama kotak dialog<br />
this-&gt;CenterWindow();<br />
this-&gt;SetWindowText(_T("Sistem Administrasi Perpustakaan - Data Buku"));<br />
&nbsp;<br />
return 0;<br />
}<br />
&nbsp;<br />
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT&amp; cs)<br />
{<br />
if( !CFrameWnd::PreCreateWindow(cs) )<br />
return FALSE;<br />
// TODO: Modify the Window class or styles here by modifying<br />
//  the CREATESTRUCT cs<br />
&nbsp;<br />
//Set ukuran kotak dialog dan title<br />
cs.cx = 500;<br />
cs.cy = 450;<br />
cs.style &amp;= ~FWS_ADDTOTITLE;<br />
&nbsp;<br />
return TRUE;<br />
}</code></p>
<p>Jalankan kembali aplikasi anda untuk melihat tampilan yang baru</p>
<p><a href="http://www.mediafire.com/download.php?whm3me5r33xembf"><img src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" class="alignleft size-full wp-image-197" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/01/25/menghubungkan-aplikasi-mfc-dengan-database/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Membuat Count Down</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/01/17/membuat-count-down/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/01/17/membuat-count-down/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 05:49:57 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[aplikasi visual c++]]></category>
		<category><![CDATA[count down]]></category>
		<category><![CDATA[hitung mundur]]></category>
		<category><![CDATA[kuis]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=311</guid>
		<description><![CDATA[Melanjutkan pembahasan sebelumnya tentang timer pada artikel Menggunakan Fungsi Pengolahan Waktu, pada pokok bahasan kali ini kita akan mempelajari bagaimana membuat fungsi countdown. Berikut adalah contoh aplikasi hitung mundur yang sederhana: Gambar 1. Contoh aplikasi count down Untuk membuat aplikasi &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/01/17/membuat-count-down/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Melanjutkan pembahasan sebelumnya tentang timer pada artikel <strong>Menggunakan Fungsi Pengolahan Waktu</strong>, pada pokok bahasan kali ini kita akan mempelajari bagaimana membuat fungsi countdown. Berikut adalah contoh aplikasi hitung mundur yang sederhana:</p>
<p align="center"><a title="15.1 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6712630849/"><img src="http://farm8.staticflickr.com/7151/6712630849_65a82fed9c.jpg" alt="15.1" width="436" height="324" /></a></p>
<p align="center">Gambar 1. Contoh aplikasi count down</p>
<p><span id="more-311"></span><br />
Untuk membuat aplikasi tersebut, seperti biasa yang kita lakukan adalah membuat project baru dengan template MFC Application, tipe aplikasi dialog base. Selanjutnya buatlah tampilan seperti pada gambar 1 menggunakan objek kontrol yang terdapat pada toolbox.</p>
<p>Buat variabel pada static text dengan tipe data integer. Pada contoh ini nama variabelnya adalah <strong>waktu</strong>. Sama seperti contoh aplikasi pada pembahsan sebelumnya untuk menggunakan fungsi timer maka kita perlu menjalanjan fungsi <strong>SetTimer()</strong> pada fungsi <strong>OnInitDialog()</strong> agar dijalankan pada awal aplikasi. Masukkan kode program berikut pada fungsi OnInitDialog():</p>
<p><code>SetTimer(1,1000,NULL);<br />
waktu=10;//mengisi nilai awal variabel waktu</code></p>
<p>Selanjutnya kita perlu mengakses fungsi <strong>OnTimer()</strong> milik class dialog (pada contoh ini <strong>Clat_countdownDlg</strong>). Akses menu messages pada class tersebut kemudian isikan kode program berikut:</p>
<p><code>void CLat_countdownDlg::OnTimer(UINT_PTR nIDEvent)<br />
{<br />
UpdateData(true);<br />
waktu=waktu - 1;<br />
if(waktu==0)<br />
{<br />
KillTimer(1);<br />
UpdateData(false);<br />
MessageBox(_T("waktu habis"));<br />
}<br />
UpdateData(false);<br />
CDialog::OnTimer(nIDEvent);<br />
}</code></p>
<p align="center"><a title="15.2 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6712630857/"><img src="http://farm8.staticflickr.com/7141/6712630857_bca53072de.jpg" alt="15.2" width="500" height="451" /></a></p>
<p align="center">Gambar 2. Membuat fungsi OnTimer()</p>
<p>Jalankan aplikasi, kemudian lihat apakah fungsi hitung mundur (count down) berjalan dengan baik. Selanjutnya kita akan mencoba membuat pengembangan aplikasi menggunakan fungsi hitung mundur tersebut misalnya aplikasi kuis seperti pada tampilan berikut:</p>
<p align="center"><a title="15.3 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6712630859/"><img src="http://farm8.staticflickr.com/7152/6712630859_8b9f0e00d0.jpg" alt="15.3" width="480" height="359" /></a></p>
<p align="center">Gambar 3. Contoh aplikasi kuis menggunakan countdown</p>
<p>Buat project MFC application dengan tipe dialog base, kemudian buatlah tampilan dialog seperti contoh tampilan aplikasi pada gambar 1 menggunakan objek-objek kontrol yang terdapat pada toolbox. Langkah selanjutnya adalah membuat variabel pada static text berisikan data yang kita gunakan. Pada aplikasi ini, ada 4 static text yang berisikan data. Variabel static text kita buat adalah <strong>static_nomor</strong> dengan tipe data integer untuk menampung nomor pertanyaan, <strong>waktu</strong> dengan tipe data integer untuk menampung waktu countdown, <strong>static_pertanyaan</strong> untuk menampung pertanyaan, <strong>static_pilihan1</strong> sampai <strong>static_pilihan4</strong> untuk menampung pilihan jawaban dan terakhir <strong>static_nilai</strong> untuk menampung jumlah jawaban yang benar.</p>
<p>Selain variabel objek dialog, kita juga perlu membuat variabel global dan variabel array tipe bentukan untuk menampung data soal pada class dialog. Berikut adalah contoh deklarasinya pada file dialog header:</p>
<p><code>typedef struct {<br />
CString isi;<br />
CString pilihan1;<br />
CString pilihan2;<br />
CString pilihan3;<br />
CString pilihan4;<br />
char jawaban;<br />
}bentuksoal;//deklarasi tipe bentukan soal<br />
typedef struct bentuksoal TabSoal[100];//deklarasi array tipe bentukan<br />
TabSoal soal;//deklarasi variabel array tipe bentukan<br />
int i;//nomor elemen array<br />
int n;//jumlah data array<br />
CString jawaban;//meyimpan jawaban yang benar</code></p>
<p>Isikan deklarasi variabel tersebut pada bagian public dari dialog header (pada contoh ini Lat_WaktuDlg.h) pada bagian <strong>public</strong> agar dapat diakses pada semua fungsi.</p>
<p>Setelah pembuatan variabel selesai, selanjutnya adalah membuat agar aplikasi menampilkan data soal pertama. Untuk itu maka kita perlu mengakses fungsi <strong>OnInitDialog()</strong>. Isikan kode program berikut pada fungsi tersebut:</p>
<p><code>//variabel sementara untuk menampung string<br />
char x[250];<br />
char a[100];<br />
char b[100];<br />
char c[100];<br />
char d[100];<br />
//Membaca data dari file dan memasukkannya kedalam variabel array<br />
FILE *Fin;<br />
fopen_s(&amp;Fin,"soal.txt","r");<br />
fscanf_s(Fin,"%d\n",&amp;n);<br />
for(i=1;i&lt;=n;i++)<br />
{<br />
fgets(x,250,Fin);<br />
soal[i].isi=x;<br />
fgets(a,100,Fin);<br />
soal[i].pilihan1=a;<br />
fgets(b,100,Fin);<br />
soal[i].pilihan2=b;<br />
fgets(c,100,Fin);<br />
soal[i].pilihan3=c;<br />
fgets(d,100,Fin);<br />
soal[i].pilihan4=d;<br />
fscanf_s(Fin,"%c\n",&amp;soal[i].jawaban);<br />
}<br />
fclose(Fin);<br />
i=1;<br />
static_nomor=i;<br />
static_pertanyaan=soal[i].isi;<br />
static_pilihan1=soal[i].pilihan1;<br />
static_pilihan2=soal[i].pilihan2;<br />
static_pilihan3=soal[i].pilihan3;<br />
static_pilihan4=soal[i].pilihan4;<br />
waktu=10; //inisialisasi waktu countdown<br />
radio_pilih=-1; //inisialisasi variabel radio button dengan -1 agar di awal aplikasi sidak ada radio button yang terpilih<br />
static_nilai=0; //inisialisasi nilai jawaban yang benar<br />
UpdateData(false);<br />
//membuat timer dengn fungsi SetTimer dengan ID 1, waktu refresh 1000 mili second<br />
SetTimer(1,1000,NULL); //membuat timer</code></p>
<p>Jangan lupa untuk membuat file text sebagai inputan data untuk aplikasi ini. Pada contoh aplikasi ini diberi nama soal.txt dengan isi seperti pada gambar berikut:</p>
<p align="center"><a title="15.4 oleh r_agustiansyah, di Flickr" href="http://www.flickr.com/photos/72537951@N03/6712630861/"><img src="http://farm8.staticflickr.com/7141/6712630861_8da2e68cc9.jpg" alt="15.4" width="408" height="311" /></a></p>
<p align="center">Gambar 4. Contoh file text sebagai inputan soal</p>
<p>Data pertama pada file tersebut adalah untuk menampung jumlah data soal, sedangkan data berikutnya berulang dengan urutan: <strong>soal</strong>, <strong>pilihan a</strong>, <strong>pilihan b</strong>, <strong>pilihan c</strong>, <strong>pilihan d</strong>, dan <strong>jawaban yang benar</strong>.</p>
<p>Untuk menampung jawaban yang benar dari radio button, sebelumnya kita telah membuat variabel <strong>jawaban</strong> bertipe <strong>CString</strong> (lihat pada deklarasi variabel pada file header). Untuk radio button sendiri, kita hanya perlu membuat variabel pada radio button pertama. Tapi sebelumnya ubah terlebih dulu properties <strong>group</strong> pada radio button tersebut menjadi <strong>true</strong>. Selanjutnya buat fungsi pada radio button pertama tersebut dengan melakukan double-click, kemudian isikan kode program berikut:</p>
<p><code>void CLat_kuisDlg::OnBnClickedRadio1()<br />
{<br />
UpdateData(true);<br />
switch(radio_pilih)<br />
{<br />
case 0:jawaban="a";<br />
break;<br />
case 1:jawaban="b";<br />
break;<br />
case 2:jawaban="c";<br />
break;<br />
case 3:jawaban="d";<br />
break;<br />
}<br />
UpdateData(false);<br />
}</code></p>
<p>Buat juga fungsi untuk radio button yang lain dan isikan dengan nama fungsi dari radio button yang pertama seperti pada contoh berikut:</p>
<p><code>void CLat_kuisDlg::OnBnClickedRadio2()<br />
{<br />
OnBnClickedRadio1();<br />
}</code></p>
<p>Selanjutnya buat fungsi OnTimer() dengan cara mengakses <strong>Class dialog properties</strong> pada <strong>class view</strong>, kemudian pada menu properties pilih <strong>messages</strong>, pilih <strong>WM_Timer</strong>, lalu <strong>&lt;add&gt;OnTimer</strong>. Pada fungsi OnTimer() yang terbentuk masukkan kode program berikut:</p>
<p><code>void CLat_kuisDlg::OnTimer(UINT_PTR nIDEvent)<br />
{<br />
UpdateData(true);<br />
i=static_nomor;<br />
waktu=waktu - 1;<br />
if(waktu==0)<br />
{//1<br />
if (soal[i].jawaban==jawaban)<br />
static_nilai=static_nilai+1;<br />
i=i+1;<br />
if(i&gt;n)<br />
{//2<br />
KillTimer(1);<br />
UpdateData(false);<br />
MessageBox(_T("selesai"));<br />
}//2<br />
else<br />
{//3<br />
static_nomor=i;<br />
static_pertanyaan=soal[i].isi;<br />
static_pilihan1=soal[i].pilihan1;<br />
static_pilihan2=soal[i].pilihan2;<br />
static_pilihan3=soal[i].pilihan3;<br />
static_pilihan4=soal[i].pilihan4;<br />
waktu=10;<br />
radio_pilih=-1;<br />
}//3<br />
UpdateData(false);<br />
}//1<br />
UpdateData(false);<br />
CDialog::OnTimer(nIDEvent);<br />
}</code></p>
<p><a href="http://www.mediafire.com/download.php?3zxy49q4b3c7i23"><img class="alignleft size-full wp-image-197" src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" /></a></p>
<p><a href="http://www.mediafire.com/download.php?tv4l9wmnmwtp716"><img class="alignleft size-full wp-image-197" src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/01/17/membuat-count-down/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Menggunakan Fungsi Pengolahan Waktu (Timer)</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2012/01/17/menggunakan-fungsi-pengolahan-waktu-timer-2/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2012/01/17/menggunakan-fungsi-pengolahan-waktu-timer-2/#comments</comments>
		<pubDate>Tue, 17 Jan 2012 05:20:46 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[absensi]]></category>
		<category><![CDATA[absensi visual c++]]></category>
		<category><![CDATA[fungsi waktu visual c++]]></category>
		<category><![CDATA[timer]]></category>
		<category><![CDATA[timer visual c++]]></category>
		<category><![CDATA[waktu]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=306</guid>
		<description><![CDATA[Pada pokok bahasan kali ini kita akan mempelajari bagaimana menggunakan beberapa fungsi pengolahan waktu yang terdapat pada class Ctimer. Untuk mempermudah mempelajarinya berikut contoh aplikasi yang akan kita buat: Gambar 1. Contoh aplikasi pengolahan waktu Langkah pertama yang perlu kita &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2012/01/17/menggunakan-fungsi-pengolahan-waktu-timer-2/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pada pokok bahasan kali ini kita akan mempelajari bagaimana menggunakan beberapa fungsi pengolahan waktu yang terdapat pada class Ctimer. Untuk mempermudah mempelajarinya berikut contoh aplikasi yang akan kita buat:</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6712616633/" title="14.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7149/6712616633_bda599e48c.jpg" width="500" height="365" alt="14.1"></a></p>
<p align="center">Gambar 1. Contoh aplikasi pengolahan waktu</p>
<p><span id="more-306"></span><br />
Langkah pertama yang perlu kita buat seperti biasa adalah project baru. Buat project MFC application dengan tipe dialog base, kemudian buatlah tampilan dialog seperti contoh tampilan aplikasi pada gambar 1 menggunakan objek-objek kontrol yang terdapat pada toolbox. Langkahselanjutnya adalah membuat variabel pada static text berisikan data yang kita gunakan. Pada aplikasi ini, ada 6 static text yang berisikan data, 3 untuk menampung data waktu sistem, data waktu masuk dan waktu keluar dan 3 lagi untuk menampung selisih waktu masuk dan keluar. Contoh pada aplikasi ini variabel waktu yang kita buat adalah <strong>static_waktu</strong>, <strong>static_masuk</strong> dan <strong>static_keluar</strong> yang bertipe <strong>CString</strong> dan variabel selisih waktu yaitu <strong>static_jam</strong>, <strong>static_menit</strong> dan <strong>static_detik</strong> yang bertipe <strong>integer</strong>.</p>
<p>Selain variabel objek dialog, kita juga perlu membuat variabel global pada class dialog. Berikut adalah contoh deklarasinya pada file dialog header:</p>
<p><code>//deklarasi tipe bentukan waktu<br />
typedef struct{<br />
int jam,menit,detik;<br />
}waktu;<br />
//deklarasi variabel penampung waktu:<br />
//temp menampung waktu sementara<br />
// waktu1 menampung waktu masuk, waktu2 menampung waktu keluar<br />
waktu temp,waktu1,waktu2;</code></p>
<p>Isikan deklarasi variabel tersebut pada bagian public dari dialog header (pada contoh ini Lat_WaktuDlg.h) pada bagian <strong>public</strong> agar dapat diakses pada semua fungsi.</p>
<p>Setelah pembuatan variabel selesai, selanjutnya adalah membuat agar static text menampilkan waktu jam sistem. Karena kita ingin agar jam sistem tersebut muncul pada awal aplikasi dijalankan maka kita perlu mengakses fungsi <strong>OnInitDialog()</strong>. Isikan kode program berikut pada fungsi tersebut:</p>
<p><code>//membuat timer dengn fungsi SetTimer dengan ID 1, waktu refresh 1000 mili second<br />
SetTimer(1,1000,NULL);</code></p>
<p>Selanjutnya buat fungsi OnTimer() dengan cara mengakses <strong>Class dialog properties</strong> pada <strong>class view</strong>, kemudian pada menu properties pilih <strong>messages</strong>, pilih <strong>WM_Timer</strong>, lalu <strong>&lt;add&gt;OnTimer</strong>. Pada fungsi OnTimer() yang terbentuk masukkan kode program berikut:</p>
<p><code>void CLat_WaktuDlg::OnTimer(UINT_PTR nIDEvent)<br />
{<br />
CTime waktu = CTime::GetCurrentTime();//mengambil waktu sistem<br />
//memasukkan variabel waktu ke static text dengan format tertentu<br />
static_waktu = waktu.Format("%H:%M:%S");<br />
//mengambil komponen jam, menit dan detik ke variabel sementara(temp)<br />
temp.jam=waktu.GetHour();<br />
temp.menit=waktu.GetMinute();<br />
temp.detik=waktu.GetSecond();<br />
UpdateData(false);//update variabel ke kotak dialog<br />
CDialog::OnTimer(nIDEvent);<br />
}</code></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6712616647/" title="14.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7005/6712616647_249e26f35f.jpg" width="500" height="404" alt="14.2"></a></p>
<p align="center">Gambar 2. Membuat fungsi OnTimer()</p>
<p>Jalankan aplikasi kemudian lihat apakah waktu sistem sudah muncul pada static text pertama. Apabila berhasil maka selanjutnya adalah membuat fungsi pada tombol <strong>Absen</strong>. Fungsi yang ingin kita buat adalah apabila tombol ditekan pertama kali maka waktu masuk akan tercatat, kemudian apabila tombol tersebut ditekan kedua kalinya maka waktu keluar akan tercatat sekaligus menghitung selisih antara waktu keluar dan waktu masuk dan menampilkannya pada static text selisih waktu. Buat fungsi pada tombol Absen dengan cara double-click pada tombol tersebut, kemudian masukkan kode program berikut:</p>
<p><code>//cek apakah waktu masuk kosong. Apabila kosong, isi waktu masuk<br />
if(static_masuk.IsEmpty()==true)<br />
{     //mengisi waktu masuk dengan waktu sistem ketika tombol ditekan<br />
static_masuk=static_waktu;<br />
//mengisi komponen jam,menit,detik dari waktu masuk dengan nilai variabel temp<br />
waktu1.jam=temp.jam;<br />
waktu1.menit=temp.menit;<br />
waktu1.detik=temp.detik;<br />
}<br />
else//apabila waktu masuk sudah terisi, masukkan waktu keluar<br />
{     //mengisi waktu masuk dengan waktu sistem ketika tombol ditekan<br />
static_keluar=static_waktu;<br />
//mengisi komponen jam,menit,detik dari waktu keluar dengan nilai variabel temp<br />
waktu2.jam=temp.jam;<br />
waktu2.menit=temp.menit;<br />
waktu2.detik=temp.detik;<br />
//menghitung selisih waktu<br />
//selisih waktu dalam satuan detik<br />
int selisih=waktu2.jam*3600+waktu2.menit*60+waktu2.detik-(waktu1.jam*3600+waktu1.menit*60+waktu1.detik);<br />
static_jam=selisih/3600;//menghitung jam<br />
int sisa=selisih%3600;<br />
static_menit=sisa/60;//menghitung menit<br />
static_detik=sisa%60;//menghitung detik<br />
}<br />
UpdateData(false);</code></p>
<p>Jalankan aplikasi, apabila berhasil maka akan menghasilkan tampilan seperti berikut:</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6712616653/" title="14.3 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7155/6712616653_71033db844.jpg" width="500" height="369" alt="14.3"></a></p>
<p align="center">Gambar 3. Tampilan jalannya aplikasi</p>
<p><a href="http://www.mediafire.com/download.php?kuu880ktkmfb5u5"><img src="http://riza.blog.ittelkom.ac.id/blog/files/2011/12/download1.jpg" alt="" width="170" height="114" class="alignleft size-full wp-image-197" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2012/01/17/menggunakan-fungsi-pengolahan-waktu-timer-2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MEMBUAT VARIABEL (LANJUTAN)</title>
		<link>http://riza.blog.ittelkom.ac.id/blog/2011/12/27/membuat-variabel-lanjutan/</link>
		<comments>http://riza.blog.ittelkom.ac.id/blog/2011/12/27/membuat-variabel-lanjutan/#comments</comments>
		<pubDate>Tue, 27 Dec 2011 10:12:43 +0000</pubDate>
		<dc:creator>riz</dc:creator>
				<category><![CDATA[Visual C++]]></category>
		<category><![CDATA[membuat variabel]]></category>
		<category><![CDATA[variabel]]></category>
		<category><![CDATA[variabel visual c++]]></category>

		<guid isPermaLink="false">http://riza.blog.ittelkom.ac.id/blog/?p=299</guid>
		<description><![CDATA[Pada bagian ini akan dibahas mengenai beberapa hal yang perlu diperhatikan dalam pembuatan variabel. Pembahasan ini merupakan lanjutan dari pembahasan sebelumnya yaitu Membuat Fungsi Dan Variabel, serta Mengubah kotak dialog awal aplikasi, menghapus fungsi dan variabel. Sampai dengan pokok bahasan &#8230; <a href="http://riza.blog.ittelkom.ac.id/blog/2011/12/27/membuat-variabel-lanjutan/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Pada bagian ini akan dibahas mengenai beberapa hal yang perlu diperhatikan dalam pembuatan variabel. Pembahasan ini merupakan lanjutan dari pembahasan sebelumnya yaitu <strong>Membuat Fungsi Dan Variabel</strong>, serta <strong>Mengubah kotak dialog awal aplikasi, menghapus fungsi dan variabel.</strong></p>
<p>Sampai dengan pokok bahasan ini, kita dapat membedakan beberapa jenis variabel berdasarkan kriteria tertentu. Berikut adalah beberapa jenis variabel yang kita ketahui yaitu:<br />
<span id="more-299"></span><br />
1. Variabel objek dialog yang terdiri dari:</p>
<ul>
<li>Kategori value</li>
<li>Kategori kontrol</li>
</ul>
<p>2. Variabel berdasarkan ruang lingkupnya yang terdiri dari:</p>
<ul>
<li>Variabel lokal</li>
<li>Variabel global</li>
</ul>
<p>3. Variabel array</p>
<ul>
<li>Array tipe dasar</li>
<li>Array tipe bentukan</li>
</ul>
<p>Beberapa jenis variabel di atas pastinya sudah kita sebelumnya apabila kita mempelajari bahasa C/C++, akan tetapi kita akan membahas bagaimana menggunakannya pada visual C++ dan apa saja yang perlu diperhatikan ketika kita membuat, menggunakan dan menghapusnya.<strong></strong></p>
<p><strong>1.       </strong><strong>Variabel Objek Dialog</strong></p>
<p>Variabel jenis ini dibagi 2 pilihan yaitu <strong>kategori value</strong> dan <strong>kategori kontrol</strong>. Seperti yang sering kita gunakan pada pembahasan sebelumnya, kita memilih <strong>kategori value</strong> apabila kita ingin menggunakan <strong>nilai</strong> dari variabel objek dialog pada kode program kita. Variabel kategori value ini mempunyai pilihan tipe data sesuai dengan jenis objeknya. Sementara itu variabel kategori kontrol hanya mempunyai 1 pilihan tipe data yang tergantung objeknya misal untuk edit box <strong>CEdit</strong>, dan untuk combo box <strong>CComboBox</strong>. Pilihan tipe data untuk variabel kategori kontrol tersebut mengacu pada class dari masing-masing jenis objek tersebut, sehingga apabila kita membuat variabel jenis kontrol sama saja dengan membuat objek (instansiasi) berdasarkan class objek dialog tersebut. Akibatnya variabel kategori kontrol yang kita buat dapat digunakan untuk mengakses fungsi-fungsi milik class object tersebut, misalnya kita dapat menggunakan fungsi <strong>Setfocus()</strong> untuk edit box, <strong>GetLBText()</strong> untuk combo box dan sebagainya. Hal ini tentu saja mengingatkan kita ketika mempelajari fungsi <strong>GetDlgItem()</strong> untuk memanggil objek tertentu pada kotak dialog. Apabila misalnya kita mempunyai sebuah objek edit box dengan ID : IDC_EDIT1 dan variabel kategori kontrol dengan nama <strong>ctrl_edit_hasil</strong>, lalu kita menggunakan kode berikut pada program:</p>
<p><strong>GetDlgItem(IDC_EDIT1)-&gt;SetFocus();</strong></p>
<p>akan sama hasilnya dengan:</p>
<p><strong>ctrl_edit_hasil. SetFocus();</strong></p>
<p><strong> </strong><strong>2.       </strong><strong>Variabel Berdasarkan ruang lingkupnya</strong></p>
<p>Berdasarkan ruang lingkup penggunaannya, suatu variabel dapat kita pisahkan menjadi ruang lingkup lokal dan global. Konsep lokal dan global untuk variabel merupakan konsep yang dipelajari ketika kita mempelajari tentang fungsi pada bahasa C/C++ atau pemrograman lainnya. Pada pemrograman visual C++ menggunakan MFC, yang dimaksud dengan variabel global adalah variabel yang dideklarasikan pada level class sehingga seluruh fungsi yang dimiliki oleh class tersebut dapat menggunakannya. Seperti yang kita ketahui, sampai saat ini kebanyakan kita masih melakukan pemrograman di dalam class milik kotak dialog.</p>
<p>Pembuatan variabel global ini mirip dengan pembuatan variabel objek dialog. Caranya adalah dengan memilih menu <strong>add variable</strong> ketika right-click pada kotak dialog atau pada class dialog melalui class view.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6580569833/" title="13.1 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7174/6580569833_2b21f9c4a5.jpg" width="500" height="391" alt="13.1"></a></p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6580569839/" title="13.1a oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7167/6580569839_6640b3dfa5.jpg" width="455" height="402" alt="13.1a"></a></p>
<p align="center">Gambar 1. Membuat variabel global</p>
<p>Hal lain yang perlu diperhatikan pada variabel global adalah referensi yang terbentuk ketika kita membuat variabel tersebut. Tentu saja kita ingat bahwa pengetahuan tentang letak referensi dari suatu variabel penting ketika kita akan menghapus variabel tersebut dari kotak dialog. Perhatikan gambar 2 yang menunjukkan letak referensi dari variabel global. Referensi no.2 merupakan deklarasi dari variabel, sementara deklarasi no.1 merupakan penentuan nilai awal dari variabel berdasarkan tipe datanya. Perhatikan pada contoh bahwa nilai awal untuk <strong>int</strong> adalah <strong>0</strong> sedangkan untuk <strong>CString</strong> adalah <strong>“”</strong>.</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6580569847/" title="13.2 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7148/6580569847_e4b8a1ffa6.jpg" width="500" height="493" alt="13.2"></a></p>
<p style="text-align: center">Gambar 2. Referensi variabel global pada suatu class</p>
<p>Sementara itu, variabel objek dialog semuanya bersifat global karena berlaku untuk semua fungsi di dalam class dialog dimana objek tersebut berada. Lalu seperti apa yang dimaksud dengan variabel lokal? Apabila kita berada di dalam suatu class, yang dimaksud dengan variabel lokal adalah variabel yang kita deklarasikan di dalam salah satu fungsi pada class tersebut, sehingga variabel tersebut hanya dapat digunakan pada fungsi tersebut saja. Perhatikan pada gambar berikut untuk melihat penggunaan variabel lokal:</p>
<p align="center"><a href="http://www.flickr.com/photos/72537951@N03/6580569849/" title="13.3 oleh r_agustiansyah, di Flickr"><img src="http://farm8.staticflickr.com/7141/6580569849_6f69bf053c.jpg" width="500" height="305" alt="13.3"></a></p>
<p align="center">Gambar 3. Contoh variabel lokal pada suatu fungsi</p>
<p>Pada contoh di atas, variabel x dan y merupakan variabel lokal karena dideklarasikan di dalam fungsi OnInitDialog(), sehingga variabel tersebut hanya digunakan di dalam fungsi OnInitDialog().<strong></strong></p>
<p><strong>3.       </strong><strong>Variabel Array</strong></p>
<p>Variabel array juga merupakan istilah biasa apabila kita mempelajari pemrograman. Yang menjadi permasalahan adalah bagaimana menggunakannya di visual C++ dan apa yang perlu diperhatikan pada penggunaannya. Perbedaan array dan variabel biasa adalah suatu array mampu meyimpan beberapa nilai serta dapat dilakukan proses terhadap semua elemennya pada suatu saat yang sama bahkan tanpa perlu berurut pemanggilannya. Variabel array dapat berupa variabel lokal maupun global, tergantung penggunaan yang kita harapkan pada program.</p>
<p>Variabel array tipe dasar adalah array yang berisi data dengan nilai bertipe dasar tertentu. Array jenis ini hanya dapat menampung satu jenis tipe data pada saat tertentu. Agar suatu array dapat menampung beberapa tipe data dasar pada saat bersamaan, maka dibuatlah array tipe data bentukan. Pembentukan array jenis ini sudah kita pelajari pada pembahasan mengenai <strong>pembuatan data array dengan file text</strong>.</p>
<p>Contoh deklarasi array tipe bentukan:</p>
<p><code>struct login      //tipe bentukan login<br />
{<br />
CString username;<br />
int password;<br />
};<br />
typedef login Tablogin[100];  //membuat array tipe bentukan<br />
Tablogin log; //mendeklarasikan variabel array tipe bentukan<br />
int i;      //menampung nomor elemen array<br />
int n;  //menampung jumlah elemen array</code></p>
]]></content:encoded>
			<wfw:commentRss>http://riza.blog.ittelkom.ac.id/blog/2011/12/27/membuat-variabel-lanjutan/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
<!-- WP Super Cache is installed but broken. The path to wp-cache-phase1.php in wp-content/advanced-cache.php must be fixed! -->
