Page |1
Page |2
ISBN : 978-602-7782-07-5
Belajar Cepat
Aplikasi MFC
Microsoft Visual Studio C++
Sasa Ani Arnomo, S.Kom., M.SI
Page |3
KATA PENGANTAR
Bismillahhirohmannirrohim.
Alhamdulillah, segala puji dan syukur kehadirat Allah SWT karena berkat
rahmat dan izin - Nya akhirnya penulis dapat menyelesaikan pembuatan buku
pemrograman, sehingga dapat bermanfaat bagi penulis dan pembaca.
Adapun buku yang penulis angkat adalah buku yang membahas tentang
Pemrograman MFC pada program Microsoft Visual Studio C++. Yang dimaksud
tema dari judul yang diangkat yaitu proses untuk mengemplementasikan urutan
langkah untuk menyelesaikan suatu masalah dalam bentuk program dengan
memanfaatkan aplikasi MFC yang ada pada Microsoft Visual Studio C++.
Sedangkan tujuan dalam pembelajarannya yang akan diarahkan diharapkan
dapat meningkatkan kehandalan pembuatan program, program yang dibuat mudah
dibaca dan mudah ditelusuri dalam penulisan kodenya. Kemudian programmer juga
mampu dalam menyederhanakan kerumitan program, pemeliharaan program, dan
mampu meningkatkan produktivitas pemrograman.
Demikian penulis membuat buku belajar cepat aplikasi MFC dengan
Pemrograman visual studio C++ ini diharapkan kedepannya dapat digunakan
sebaik-baiknya untuk proses belajar menangani suatu kasus dalam pembuatan
program sehingga benar-benar bermanfaat bagi kita semua.
Batam, Agustus 2012
Penulis
Sasa Ani Arnomo, S. Kom., M.SI
Page |4
DAFTAR ISI
Page |5
BAB I
PENGANTAR MFC
C++ adalah sebuah bahasa tingkat menengah yang merupakan
perkembangan dari bahasa C, dimana bahasa ini merupakan bahasa pemrograman
berorentasi objek. Dikatakan menengah karena bahasa ini berada di antara bahasa
tingkat tinggi dan rendah. Bahasa tingkat tinggi merupakan bahasa yang dekat
dengan bahasa manusia. Basic dan Pascal adalah dua dari beberapa contoh bahasa
tingkat tinggi. Sedangkan bahasa tingkat rendah adalah bahasa yang lebih
berorientasi kepada bahasa mesin sehingga bahasa ini tidak terlalu dekat dengan
bahasa manusia. Contoh dari bahasa tingkat rendah ini adalah Assembly.
C++ dikembangkan lebih jauh oleh Microsoft diantaranya menciptakan
MFC (Microsoft Foundation Classes) yang merupakan library dari C++ Classes.
Fasilitas ini bertujuan untuk mempermudah dalam pengembangan program c++
dalam wujud aplikasi form. MFC bersifat wrappers yaitu model kerangka
aplikasi yang menyatukan API Windows tanpa pemanggilan Win32 API secara
eksklusif.
Untuk membuat aplikasi MFC berikut langkah-langkahnya:
1. Buka Microsoft Visual Studio
2. Pada menu File pilih New dan dilanjutkan Project atau juga bisa dengan
menekan tombol keyboard Ctrl + Shift + N
Page |6
3. Muncul tampilkan New Project, pada Project Types pilih visual C++
sedangkan pada Templates pilih MFC Application.
Page |7
Page |8
IDE
(Integrated
Development
Environtment)
dalam
aplikasi. Komponen yang ada pada IDE tampilan awal antara lain:
Page |9
Menu Utama
ToolBar
Toolbox
Solution Explorer
Class View
Resource View
Properties Window
.suo
.vcproj
.cpp
.h
P a g e | 10
.ico
.exe
.opt
P a g e | 11
BAB II
IDENTIFIER, KOMENTAR, DAN TIPE DATA
2.1 KOMENTAR
Komentar merupakan bagian yang penting dalam program, karena
membantu programmer dalam membuat penjelasan mengenai program dan
bagian-bagiannya dan tidak menghasilkan tindakan ( tidak mempengaruhi
jalannya program ). Penjelasan pada komentar bisa berisi:
-
Untuk membuat komentar dipakai tanda // untuk satu baris dan /* ... */
untuk lebih dari satu baris.
Contoh:
1. // Komentar baris
//Contoh program menggunakan komentar
//nama program: komentar1.cpp
2. /* Komentar lebih dari satu baris */
/*Contoh program menggunakan komentar
Ini adalah komentar panjang
Yang banyaknya lebih dari satu baris */
2.2 Identifier
Identifier adalah nama yang diberikan untuk nama objek, nama fungsi,
nama variabel, dll.
Identifier pada C++ dapat terdiri dari :
1. Huruf A sampai Z
2. Huruf a sampai z
3. Underscore ( _ )
4. Bilangan antara 0 sampai 9
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 12
int bilangan_bulat;
long X2;
int A[5]
2.3 Variabel
Data yang nilainya dapat berubah pada saat program dijalankan disebut
variable. Variabel mempunyai nama, tipe dan dapat dipakai untuk menyimpan
suatu nilai. Sedangkan cara pembuatan variabel dalm Aplikasi Form:
1. Klik kanan pada form
2. Pilih Add Variabel
P a g e | 13
P a g e | 14
Kemudian hapus juga nama variabel yang tertera pada header pada file
*DLG.h. Lihat gambar berikut:
P a g e | 15
P a g e | 16
Range
char
-128 128
unsigned char
0 - 255
signed char
-128 127
Int
-32768 - 32767
unsigned int
0 65535
signed int
-32768 - 32767
short int
-32768 - 32767
0 - 65535
-32768 - 32767
Long
-2147483648 - 2147483648
long int
-2147483648 - 2147483648
-2147483648 - 2147483648
0 - 4294967295
Float
-3.4E+38 -3.4E+38
Double
-1.7E+308 - 1.7E+308
long double
-1.7E+308 - 17E+308
Tipe Keterangan
Digunakan untuk sembarang huruf, angka, tanda baca
tunggal. Ada 2 ( dua ) macam char, yaitu:
a. signed
Mendeklarasikan char bertanda, digunakan untuk nilai
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 17
Int,
long
Void
P a g e | 18
parameter apaun.
3. Bila diawali dengan operator *, menyatakan penunjuk
terhadap sembarang tipe data.
Contoh deklarasi void :
Void coba (char*, int) ; atau
Main (void); atau
Void* coba;
Int angka = 100;
coba = &angka;
Pointer
Struct, Union
2.5 Kontanta
Konstanta adalah suatu data yang sifatnya tetap.
Terdapat dua cara untuk mendeklarasikan konstanta
1. menggunakan sintax #define mendeklarasikan konstanta dengan cara ini
relatif lebih gampang dilakukan karena akan menyertakan #define sebagai
preprocesssor.
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 19
Properties
Static Text 1
Name : IDC_STATIC1
Caption : Jari-Jari
Static Text 2
Name : IDC_STATIC2
Caption : Luas Lingkaran
Static Text 3
Name : IDC_STATIC3
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 20
Name : IDC_EDIT1
Edit Control 2
Name : IDC_EDIT2
Edit Control 3
Name : IDC_EDIT3
Button
Name : IDC_BUTTON1
Caption :Hitung
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Category
jari
IDC_EDIT1
value
luas
IDC_EDIT2
value
keliling
IDC_EDIT3
value
P a g e | 21
P a g e | 22
5. Buatlah sebuah fungsi click pada button1 dengan cara klik 2x pada button1,
kemudian isi perintah berikut:
6. Masukkan konstata:
Cara 1: Dengan menulis #define phi 3.14 dibawah #include
Cara 2: Dengan menulis const double phi = 3.14; didalam fungsi button1
P a g e | 23
BAB III
Operator - Operator Dalam C++
OPERATOR
pada
bahasa
pemroograman
digunakan
untuk
mengoperasikan satu atau lebih operand. Pada bahasa pemrograman C++,
terdapat beberapa jenis operator. Berikut adalah jenis-jenis operator yang ada
pada C++. Operator-operator dalam C++ terdistribusi dalarn 15 hirarki
precedence yang dapat dilihat pada tabel di bawah ini.
Tabel Precedence dari Operator dalam C++
Associativity
Symbol
Description
Associativity
++
Prefix increment
Left to right
--
Prefix decrement
()
[]
Array subscript
->
Structure pointer
Structure member
Logical negation
1s complement
Unary negation
Unary plus
(type)
Type cast
Pointer dereference
&
Address of
sizeof
Size of
Multiplication
Division
Modolus
Addition
Substraction
<<
Right to left
Left to right
Left to right
Left to right
P a g e | 24
>>
<
Less Than
<=
>
Greater than
>=
==
Equal test
!=
Not equal to
&
Bitwise AND
Left to right
Bitwise exclusive OR
Left to right
10
Bitwise inclusive OR
Left to night
11
&&
Logical AND
Left to right
12
||
Logical inclusive OR
Left to right
13
?:
Conditional test
Right to left
14
Assignment
Right to left
+=
Compound add
-=
Compound substract
*=
Compound multiply
/=
Compound divide
%=
Compound modulus
<<=
>>=
&=
^=
|=
Sequence point
++
Postflx increment
--
Postfix decrement
15
Left to right
Left to right
Left to right
P a g e | 25
Contoh
Keterangan
Tambah
Kurang
Operand1 - Operand2
Kali
Operand1 * Operand2
Bagi
Operand1 / Operand2
Modulus
Operand1
Operand2
P a g e | 26
Properties
Static Text 1
ID : IDC_STATIC1
Caption : Angka Pertama
Static Text 2
ID : IDC_STATIC2
Caption : Angka Kedua
Static Text 3
ID : IDC_STATIC3
Caption : Hasil
Edit Control 1
ID : IDC_EDIT1
Edit Control 2
ID : IDC_EDIT2
Edit Control 3
ID : IDC_EDIT3
Button 1
ID : IDC_BUTTON1
Caption : x
Button 2
ID : IDC_BUTTON2
Caption : /
Button 3
ID : IDC_BUTTON3
Caption : +
Button 4
ID : IDC_BUTTON4
Caption : -
Button 5
ID : IDC_BUTTON5
Caption : %
10. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
P a g e | 27
Control ID
Category
Pertama
int
IDC_EDIT1
value
Kedua
int
IDC_EDIT2
value
Hasil
double
IDC_EDIT3
value
P a g e | 28
13. Buatlah sebuah fungsi click pada button2 untuk rumus pembagian dengan
cara klik 2x pada button2, kemudian isi perintah berikut:
P a g e | 29
14. Buatlah sebuah fungsi click pada button3 untuk rumus penjumlahan dengan
cara klik 2x pada button3, kemudian isi perintah berikut:
15. Buatlah sebuah fungsi click pada button4 untuk rumus pengurangan dengan
cara klik 2x pada button4, kemudian isi perintah berikut:
16. Buatlah sebuah fungsi click pada button5 untuk rumus modulus dengan
cara klik 2x pada button5, kemudian isi perintah berikut:
P a g e | 30
Keterangan
Not
!op1
&&
And
||
Or
op1||op2
Contoh
Keterangan
<
Operand1
Operand2
<=
>
Operand1
Operand2
>=
==
Sama dengan
Operand1
Operand2
!=
Tidak
dengan
sama Operand1
Operand2
P a g e | 31
ID : IDC_STATIC1
Caption : User
Static Text 2
ID : IDC_STATIC2
Caption : Password
Edit Control 1
ID : Ed_User
Edit Control 2
ID : Ed_Password
Button 1
ID : Blogin
Caption : Login
Button 2
ID :Bexit
Caption : Exit
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 32
Control ID
Category
User
CString
Ed_User
value
password
CString
Ed_Password
value
P a g e | 33
6. Buatlah sebuah fungsi click pada BExit untuk tombol login dengan cara
klik 2x pada BExit, kemudian isi perintah berikut:
P a g e | 34
j++;
posfix
j = j + 1;
1;
j +=
++
++j;
prefix
j = j + 1;
1;
j +=
--
j--;
posfix
j = j - 1;
1;
j -=
--
--j;
prefix
j = j 1;
1;
j -=
P a g e | 35
ID : IDC_EDIT1
Button 1
ID : IDC_BUTTON1
Caption : Increment
Button 2
ID : IDC_BUTTON2
Caption : Decrement
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Control ID
Category
Angka
IDC_EDIT1
value
int
P a g e | 36
6. Buatlah sebuah fungsi click pada Button2 untuk tombol Decrement dengan
cara klik 2x pada Button2, kemudian isi perintah berikut:
P a g e | 37
Contoh
Ekivalen
+=
bonus +=500;
-=
budget -= 50;
*=
gaji *= 1.2;
/=
faktor /= 50;
%=
jml_hari
7;
%= jml_hari = jml_hari % 7;
P a g e | 38
Properties
Static Text 1
ID : IDC_STATIC1
Caption : Nama
Static Text 2
ID : IDC_STATIC2
Caption : Harga
Static Text 3
ID : IDC_STATIC3
Caption : Jumlah
Static Text 4
ID : IDC_STATIC4
Caption : Diskon
Static Text 5
ID : IDC_STATIC5
Caption : Pajak (2%)
Static Text 6
ID : IDC_STATIC6
Caption : Total Bayar
Edit Control 1
ID : ID_Nama
Edit Control 2
ID : ID_Harga
P a g e | 39
Edit Control 3
ID : ID_Jumlah
Edit Control 4
ID : ID_Diskon
Disable : True
Edit Control 5
ID : ID_Pajak
Disable : True
Edit Control 6
ID : ID_Total
Disable : True
Button 1
ID : Bhitung
Caption : Hitung
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Control ID
Category
harga
int
ID_Harga
value
jumlah
int
ID_Jumlah
value
diskon
int
ID_Diskon
value
pajak
double
ID_Pajak
value
total
double
ID_Total
value
P a g e | 40
P a g e | 41
P a g e | 42
BAB IV
PERCABANGAN
Statement percabangan dalam dunia pemrograman merupakan salah ilmu
dasar pemrograman yang wajib dimiliki oleh setiap programmer. Logika dari
statement percabangan adalah layaknya ketika kita mencari sebuah jalan dari
beberapa jalan.
Percabangan juga digunakan untuk memecahkan persoalan untuk
mengambil suatu keputusan diantara sekian pernyataan yang ada. Untuk keperluan
pengambilan keputusan, C++ menyediakan beberapa perintah. Dalam
pemrograman C++ dikenal 2 (dua) buah jenis struktur yang digunakan untuk
mengimplementasikan suatu percabangan, yaitu dengan menggunakan struktur if
dan struktur switch. Statement-statement yang terdapat dalam sebuah blok
percabangan akan dieksekusi hanya jika kondisi yang didefinisikan terpenuhi
(bernilai benar true), artinya jika kondisi tidak terpenuhi (nilai salah false),
maka statement-statement tersebut juga tidak ikut dieksekusi atau dengan kata lain
akan diabaikan oleh compiler. Percabangan di dalam pemrograman digunakan oleh
komputer untuk menentukan langkah kerja instruksi. Percabangan menggunakan
operator kondisional yang akan menghasilkan nilai boolean (benar atau salah).
3.1.
kond
isi
salah
perintah
Benar
P a g e | 43
if (kondisi)
pernyataan;
Ket: Penulisan kondisi harus didalam tanda kurung dan berupa ekspresi
relasi dan penulisan pernyataan dapat berupa sebuah pernyataan tunggal,
pernyataan majemuk atau pernyataan kosong. Jika pemakaian if diikuti
dengan pernyataan majemuk, bentuk penulisannya sebagai berikut :
if (kondisi)
{
pernyataan;
P a g e | 44
Properties
Static Text 1
ID : IDC_STATIC1
Caption : Nilai
Static Text 2
ID : IDC_STATIC2
Caption : Keterangan
Edit Control 1
ID : ID_Nilai
Edit Control 2
ID : ID_Ket
Button 1
ID : BClick
Caption : Click
10. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Control ID
Category
nilai
Int
ID_Nilai
value
ket
CString
ID_Ket
value
P a g e | 45
P a g e | 46
3.2.
kond
isi
salah
Perintah-2
Peintah-1
benar
Gambar 1.2. Diagram Alir if-else
Bentuk umum dari pernyataan if
if (kondisi)
perintah-1;
else
perintah-2;
P a g e | 47
Contoh
Menentukan besarnya potongan dari pembelian barang yang diberikan seorang
pembeli, dengan kriteria :
jika total pembelian kurang dari Rp. 50.000,- potongan yang diterima
sebesar 5% dari total pembelian.
Jika total pembelian lebih dari atau sama dengan Rp. 50.000,- potongan
yang diterima sebesar 20% dari total pembelian.
P a g e | 48
Properties
Static Text 1
ID : IDC_STATIC1
Caption : Nama Barang
Static Text 2
ID : IDC_STATIC2
Caption : Harga
Static Text 3
ID : IDC_STATIC3
Caption : Jumlah
Static Text 4
ID : IDC_STATIC4
Caption : Total
Static Text 5
ID : IDC_STATIC5
Caption : Potongan
Static Text 6
ID : IDC_STATIC6
Caption : Total Bayar
Edit Control 1
ID : ID_Nama
Edit Control 2
ID : ID_Harga
Edit Control 3
ID : ID_Jumlah
Edit Control 4
ID : ID_Total
Disable : True
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 49
Edit Control 5
ID : ID_Potongan
Disable : True
Edit Control 6
ID : ID_Bayar
Disable : True
Button 1
ID : Bhitung
Caption : Hitung
Button 2
ID : BClear
Caption : Clear
Button 3
ID : BExit
Caption : Exit
9. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Control ID
Category
nama
Cstring
ID_Nama
value
harga
int
ID_Harga
value
Jumlah
int
ID_Jumlah
value
total
int
ID_Total
value
potongan
double
ID_Potongan
value
bayar
Double
ID_Bayar
value
P a g e | 50
P a g e | 51
P a g e | 52
11. Buatlah sebuah fungsi click pada BHitung untuk tombol Hitung dengan
cara klik 2x pada BHitung, kemudian isi perintah berikut:
12. Buatlah sebuah fungsi click pada BClear untuk tombol Clear dengan cara
klik 2x pada BClear, kemudian isi perintah berikut:
13. Buatlah sebuah fungsi click pada BExit untuk tombol Exit dengan cara klik
2x pada BExit, kemudian isi perintah berikut:
P a g e | 53
Contoh
Suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan
sebagai berikut:
Bila salesman dapat menjual barang hingga Rp. 20.000 ,- , akan diberikan uang
jasa sebesar Rp. 10.000 ditambah dengan uang komisi Rp. 10% dari
pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 20.000 ,- , akan diberikan uang
jasa sebesar Rp. 20.000 ditambah dengan uang komisi Rp. 15% dari
pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 50.000 ,- , akan diberikan uang
jasa sebesar Rp. 30.000 ditambah dengan uang komisi Rp. 20% dari
pendapatan yang diperoleh hari itu.
P a g e | 54
Properties
Static Text 1
ID : IDC_STATIC1
Caption : Nama
Static Text 2
ID : IDC_STATIC2
Caption : Gaji Pokok
Static Text 3
ID : IDC_STATIC3
Caption : Status
Static Text 4
ID : IDC_STATIC4
Caption : Jumlah Anak
Static Text 5
ID : IDC_STATIC5
Caption : Tunjangan Menikah
Edit Control 1
ID : ID_Nama
Edit Control 2
ID : ID_Gaji
Edit Control 3
ID : ID_Tunjangan
Disable : True
Radio Button 1
ID : ID_Nikah
Group : True
Radio Button 2
ID : ID_Belum
Combo Box
ID : ID_JmlAnak
Data : 0;1;2;3;4;5;6;7;8;9
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 55
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Control ID
Category
gaji
int
ID_Gaji
value
nikah
Bool
ID_Nikah
value
jmlanak
int
ID_JmlAnak
value
tunjangan
Double
ID_Tunjangan
value
P a g e | 56
P a g e | 57
6. Buatlah sebuah fungsi click pada ID_Belum untuk radio button Belum
Menikah dengan cara klik 2x pada ID_Belum, kemudian isi perintah
berikut:
7. Buatlah sebuah fungsi Select Cange pada ID_JmlAnak untuk Combo Box
dengan cara klik 2x pada ID_JmlAnak, kemudian isi perintah berikut:
P a g e | 58
Bentuk Penulisannya:
if (syarat)
{
perintah;
perintah;
}
else if (syarat)
{
perintah;
perintah;
}
else
{
perintah;
perintah;
}
Contoh 1:
Suatu perusahaan memberikan komisi kepada para selesman dengan ketentuan
sebagai berikut:
P a g e | 59
Bila salesman dapat menjual barang hingga Rp. 200.000 ,- , akan diberikan
uang jasa sebesar Rp. 10.000 ditambah dengan uang komisi Rp. 10% dari
pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 200.000 ,- , akan diberikan uang
jasa sebesar Rp. 20.000 ditambah dengan uang komisi Rp. 15% dari
pendapatan yang diperoleh hari itu.
Bila salesman dapat menjual barang diatas Rp. 500.000 ,- , akan diberikan uang
jasa sebesar Rp. 30.000 ditambah dengan uang komisi Rp. 20% dari
pendapatan yang diperoleh hari itu.
ID : IDC_STATIC1
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 60
ID : IDC_STATIC2
Caption : Penjualan
Static Text 3
ID : IDC_STATIC3
Caption : Bonus
Static Text 4
ID : IDC_STATIC4
Caption : Komisi
Static Text 5
ID : IDC_STATIC5
Caption : Total Gaji
Edit Control 1
ID : ID_Nama
Edit Control 2
ID : ID_Jual
Edit Control 3
ID : ID_Bonus
Disable : True
Edit Control 4
ID : ID_Komisi
Disable : True
Edit Control 5
ID : ID_Gaji
Disable : True
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
P a g e | 61
Control ID
Category
jual
Int
ID_Jual
value
bonus
Int
ID_Bonus
value
komisi
double
ID_Komisi
value
gaji
double
ID_Gaji
value
P a g e | 62
P a g e | 63
Contoh 2:
Contoh program kedua adalah program penilaian dari nahasiswa yang terdiri dari
nilai tugas, nilai uts dan nilai uas kemudian dimasukkan kedalam rumus nilai akhir
dengan ketentuan 20% nilasi uts, 30% nilai tugas dan 50% nilai uas. Sedangkan
rumus percabangannya sebagai berikut:
P a g e | 64
ID : IDC_STATIC1
Caption : NIM
Static Text 2
ID : IDC_STATIC2
Caption : Nama
Static Text 3
ID : IDC_STATIC3
Caption : Jurusan
Static Text 4
ID : IDC_STATIC4
Caption : Matakuliah
Static Text 5
ID : IDC_STATIC5
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 65
Caption : Uts
Static Text 6
ID : IDC_STATIC6
Caption : Tugas
Static Text 7
ID : IDC_STATIC7
Caption : Uas
Static Text 8
ID : IDC_STATIC8
Caption : Nilai Akhir
Static Text 9
ID : IDC_STATIC9
Caption : Grade
Edit Control 1
ID : ID_Nim
Edit Control 2
ID : ID_Nama
Edit Control 3
ID : ID_Jur
Edit Control 4
ID : ID_Mtk
Edit Control 5
ID : ID_Uts
Edit Control 6
ID : ID_Tgs
Edit Control 7
ID : ID_Uas
Edit Control 8
ID : ID_Na
Disable : True
Edit Control 9
ID : ID_Grade
Disable : True
Group Box
Caption : Nilai
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
P a g e | 66
Control ID
Category
uts
Int
ID_Uts
value
tgs
Int
ID_Tgs
value
uas
Int
ID_Uas
value
na
double
ID_Na
value
grade
double
ID_Grade
value
P a g e | 67
Gambar Variabel na
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 68
Gambar
Variabel
grade
5. Buatlah sebuah fungsi click pada BClick untuk Button Click dengan cara
klik 2x pada BClick, kemudian isi perintah berikut:
P a g e | 69
default :
perintah;
perintah;
}
P a g e | 70
Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi
dan default akan dijalankan jika semua cabang diatasnya tidak terpenuhi.
Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika
pernyataan ini tidak ada, maka program akan diteruskan kecabang cabang yang
lainnya.
Contoh program application MFC menggunakan rumus percabangan
dengan format switch case dapat mengikuti langkah-langkah berikut:
1. Buatlah sebuah project application MFC Type Dialog Based dengan nama
case
2. Design tampilan form seperti pada gambar
Properties
GroupBox
Static Text 1
ID : IDC_STATIC1
Caption : Harga
Static Text 2
ID : IDC_STATIC2
Caption : Jumlah Pesan
Static Text 3
ID : IDC_STATIC3
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 71
ID : ID_BJ
Caption : Batam - Jakarta
Radio Button 2
ID : ID_BS
Caption : Batam - Singapure
Radio Button 3
ID : ID_BM
Caption : Batam Medan
Radio Button 4
ID : ID_BB
Caption : Batam - Bandung
Edit Control 1
ID : ID_Hrg
Disable : True
Edit Control 2
ID : ID_Jml
Edit Control 3
ID : ID_Total
Disable : True
Button
ID : BHitung
Caption : Hitung
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
P a g e | 72
Control ID
Category
hrg
int
ID_Hrg
value
jml
int
ID_Jml
value
total
int
ID_Total
value
tiket
int
ID_BJ
value
P a g e | 73
6. Buatlah sebuah fungsi click pada ID_Bj untuk radio button Batam - Jakarta
dengan cara klik 2x pada ID_Bj, kemudian isi perintah berikut:
P a g e | 74
7. Buatlah sebuah fungsi click pada ID_Bs untuk radio button Batam Singapure dengan cara klik 2x pada ID_Bs, kemudian isi perintah berikut:
8. Buatlah sebuah fungsi click pada ID_Bm untuk radio button Batam
Medan dengan cara klik 2x pada ID_Bm, kemudian isi perintah berikut:
9. Buatlah sebuah fungsi click pada ID_Bb untuk radio button Batam Bandung dengan cara klik 2x pada ID_Bb, kemudian isi perintah berikut:
P a g e | 75
P a g e | 76
BAB V
PENGULANGAN ( LOOP )
5.1. Pengertian Pengulangan ( Loop )
Pengulangan / loop adalah sebuah struktur bahasa pemograman yang
digunakan untuk mengulang sekumpulan perintah sesuai dengan kondisi
yang diberikan. Pengulangan juga dapat diartikan sebagai suatu proses yang
melakukan statemen - statemen dalam sebuah program secara terus menerus
sampai terdapat kondisi untuk menghentikannya. Proses pengulangan
biasanya digunakan untuk mengulang proses pemasukan data, mengulang
proses perhitungan dan mengulang untuk proses penampilan hasil
pengolahan data, dengan jumlah tertentu jika sebuah kondisi belum
terpenuhi.
Pada bahasa pemrograman, pengulangan proses ditangani dengan suatu
mekanisme yang dinamakan dengan nama loop. Dengan loop, suatu proses
yang berulang dapat diimplementasikan dengan menggunakan statementstatement yang pendek, tanpa harus menuliskan statemen berulang-ulang.
5.2. Jenis - Jenis Pengulangan Dalam C++
Terdapat 3 (tiga) cara untuk melakukan pengulangan di C++ yaitu :
1. For statement
2. While statement
3. Do while statement
1. For Statment
For statment adalah salah satu jenis statement pengulangan yang
digunakan untuk melakukan pengulangan yang telah diketahui banyaknya
pengulangan. Pernyataan for digunakan untuk melakukan looping. Pada
Umumnya looping yang dilakukan oleh for telah diketahui batas awal,
syarat looping dan perubahannya. Selama kondisi terpenuhi, maka
pernyataan akan terus dieksekusi. Statement for memiliki 3 parameter, yaitu
nilai awal (initial value), syarat atau tes kondisi yang menentukan akhir
loop, dan penentu perubahan nilai atau pencacah.
P a g e | 77
1.
2.
3.
Contoh Program
1. Buatlah sebuah project application MFC Type Dialog Based dengan nama
perulangan1
2. Design tampilan form seperti pada gambar
P a g e | 78
ID : ID_input
List Box
ID : IDC_LIST1
Button 1
ID : Bclick
Caption : Click
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
P a g e | 79
Control ID
Category
input
ID_input
value
CString
P a g e | 80
Contoh Program
Ubahlah perintah dari button Clik dari program diatas menjadi berikut:
Ada beberapa kasus dimana kita melakukan deklarasi dengan cara berbeda,
tidak sesuai dengan bentuk di atas.
Sebagai sebagai berikut contoh:
INPUT DATA
#include <iostream>
#include <conio.h>
using namespace std;
int main()
{
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 81
P a g e | 82
ID : ID_input
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 83
List Box
ID : IDC_LIST1
Button 1
ID : Bclick
Caption : Click
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
Control ID
Category
Input
ID_input
value
CString
P a g e | 84
5. Buatlah sebuah fungsi click pada BClick untuk tombol Click dengan cara
klik 2x pada BClick, kemudian isi perintah berikut:
P a g e | 85
Contoh Program:
1. Buatlah sebuah project application MFC Type Dialog Based dengan nama
perulangan1
2. Design tampilan form seperti pada gambar
ID : ID_input
List Box
ID : IDC_LIST1
Button 1
ID : Bclick
Caption : Click
3. Buatlah variabel dengan cara klik kanan form dan pilih add variabel.
P a g e | 86
Control ID
Category
Input
ID_input
value
CString
P a g e | 87
BAB VI
Mengolah Data Array dengan File Text
Untuk mempelajari pengolahan data array dengan file text, kita akan
mencoba membuat aplikasi administrasi data mahasiswa dengan tampilan berikut:
P a g e | 88
Jenis Object
Nama Variabel
Tipe Data
Edit Box
edit_nim
int
Edit Box
edit_nama
CString
Edit Box
edit_uts
int
Edit Box
edit_uas
int
Edit Box
edit_tugas
int
Static Text
static_total
float
Static Text
static_grade
CString
P a g e | 89
fscanf_s(Fin,"%d\n",&n);
for (i=1;i<=n;i++)
{
fgets(x,30,Fin);
fscanf_s(Fin,"%d",&Mhs[i].NIM);
fscanf_s(Fin,"%d",&Mhs[i].UTS);
fscanf_s(Fin,"%d",&Mhs[i].UAS);
fscanf_s(Fin,"%d\n",&Mhs[i].Tugas);
Mhs[i].Nama = x;
}
fclose(Fin);
Perhatikan bahwa urutan pembacaan berdasarkan urutan data pada file text.
Data yang pertama dibaca adalah jumlah elemen array dan dilanjutkan dengan
pengisian array menggunakan perulangan for. Setelah data masuk ke dalam
variabel array, selanjutnya adalah mengisikan nilai array tersebut kedalam variabel
dialog, menghitung nilai dan grade serta menampilkannya di layar. Tentu saja data
yang ditampilkan pada awal dialog adalah data array pertama (i=1). Karena proses
pengisian array, penghitungan nilai dan grade serta menampilkannya ke layar ini
nantinya akan dilakukan beberapa kali, maka buatlah fungsi baru misal dengan
nama hitungnilai(). Seperti yang pernah dipelajari sebelumnya, untuk pembuatan
fungsi global dengan cara right-click pada class dialog pada class view (pada
contoh ini class dialog adalah CArrayMahasiswaDlg), kemudian add function.
Ubah return type menjadi void, kosongkan parameter type serta beri nama
fungsi pada bagian function name.
P a g e | 90
P a g e | 91
StaticGrade="E";
UpdateData(FALSE);//mengupdate nilai variabel agar muncul di dialog
Selanjutnya kita kembali pada fungsi OnInitDialog(), tambahkan kode program
berikut sebelum return TRUE:
//menampilkan data pertama array pada kotak dialog
i=1;
HitungNilai();
Jalankan aplikasi anda, maka data array pertama akan muncul pada dialog.
Apabila terjadi kesalahan, cek kembali folder dari file text anda danurutan dari
penulisan data pada file text.
Setelah berhasil menampilkan data pertama dari array, untuk dapat melihat
data lainnya maka tugas kita selanjutnya adalah membuat fungsi pada tombol next
dan previous. Buat fungsi pada tombol next, kemudian isikan kode program
berikut:
UpdateData(TRUE);
i=EditNomor;//nilai i diisi dengan edit box edit nomor
if((i>=1)&&(i<n))//isi nilai i dengan i+1
i=i+1;
else
i=n;//isi nilai i dengan n apabila indeks >n
HitungNilai();
Buat juga fungsi pada tombol previous dan isikan dengan kode program berikut:
UpdateData(TRUE);
i=EditNomor;
if((i>1)&&(i<=n))
i=i-1;
else
i=1;//untuk i < 1, isi nilai i dengan 1
HitungNilai();
Jalankan aplikasi anda, coba tombol next dan previous apakah sudah
berfungsi sesuai yang kita harapkan.
Agar nantinya proses penambahan tidak dilakukan ketika data ditampilkan
di awal ataupun ketika menggunakan tombol next dan previous, maka sebaiknya
semua edit box di nonaktifkan (disable). Caranya adalah mengubah masing-masing
properties disable dari edit box menjadi true.
Selanjutnya adalah membuat fungsi menambahkan data array mahasiswa.
Buat fungsi pada tombol tambah, kemudian isikan dengan kode program berikut:
P a g e | 92
P a g e | 93
Mhs[i].Tugas);
}
fclose(Fout);
MessageBox(_T("Data berhasil
disimpan"),_T("Hasil"),MB_OK|MB_ICONINFORMATION);
//menampilkan kembali tombol next dan previous serta menonaktifkan kembali
semua edit box
GetDlgItem(IDC_BUTTON1)->ShowWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->ShowWindow(TRUE);
GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE);
Jalankan aplikasi, coba masukkan data baru, apabila tidak terjadi kesalahan,
kita lanjutkan pada pembuatan fungsi edit data. Pada prinsipnya fungsi edit data
mirip dengan fungsi penambahan data. Perbedaannya hanya pada letak dari data
array yang diubah, pada proses edit, perubahan dapat dilakukan pada elemen array
manapun sedangkan pada penambahan terjadi perubahan pada jumlah elemen array
dan pengisinan data terakhir. Kedua proses tersebut diakhiri dengan penyimpanan
data ke file text melalui tombol simpan. Untuk itu kita perlu membuat variabel baru
untuk menampung nilai variabel pembeda antara proses tambah dan edit. Pada
contoh ini variabel tersebut diberi nama tombol dan bertipe integer. Variabel
tersebut akan digunakan pada beberapa fungsi sehingga perlu dibuat variabel
global. Right-click pada kotak dialog, pilih add variable, kemudian isikan nama
variabelnya.
P a g e | 94
P a g e | 95
Buat fungsi pada tombol edit data, kemudian masukkan kode program
berikut pada fungsi tersebut:
tombol=2;
//mengisi nilai tombol dengan 2 untuk edit data
//mengaktifkan kembali edit box kecuali edit box nomor
GetDlgItem(IDC_EDIT2)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT3)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT4)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT5)->EnableWindow(TRUE);
GetDlgItem(IDC_EDIT6)->EnableWindow(TRUE);
//menyembunyikan tombol next dan previous
GetDlgItem(IDC_BUTTON1)->ShowWindow(FALSE);
GetDlgItem(IDC_BUTTON2)->ShowWindow(FALSE);
//memfokuskan pada edit box NIM
GetDlgItem(IDC_EDIT2)->SetFocus();
Perhatikan pada kode program di atas, terdapat pengisian pada variabel tombol
dengan nilai 2 untuk edit data, tambahkan juga pengisian variabel tombol tersebut
pada fungsi dari tombol tambah dengan nilai 1. Selanjutnya ubahlah fungsi pada
tombol simpan menjadi seperti berikut:
UpdateData(TRUE);
switch(tombol)
{
case 1:
{
//mengisi array n dengan variabel pada kotak dialog
n= EditNomor;
Mhs[n].NIM=EditNim;
Mhs[n].Nama=EditNama;
Mhs[n].UTS=EditUTS;
Mhs[n].UAS=EditUAS;
Mhs[n].Tugas=EditTugas;
//menampilkan data baru pada kotak dialog
i=n;
HitungNilai();
break;
}
case 2:
{
i=EditNomor;
Mhs[i].NIM=EditNim;
Mhs[i].Nama=EditNama;
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 96
Mhs[i].UTS=EditUTS;
Mhs[i].UAS=EditUAS;
Mhs[i].Tugas=EditTugas;
i=EditNomor;
HitungNilai();
break;
}
}
//menyimpan data ke file text
FILE *Fout;
fopen_s(&Fout,"mahasiswa.txt","w");
fprintf_s(Fout,"%d\n",n);
for (i=1;i<=n;i++)
{
fwprintf_s(Fout,_T("%s\n"),Mhs[i].Nama);
fprintf_s(Fout,"%d %d %d %d\n",Mhs[i].NIM, Mhs[i].UTS, Mhs[i].UAS,
Mhs[i].Tugas);
}
fclose(Fout);
MessageBox(_T("Data berhasil
disimpan"),_T("Hasil"),MB_OK|MB_ICONINFORMATION);
//menampilkan kembali tombol next dan previous serta menonaktifkan kembali
semua edit box
GetDlgItem(IDC_BUTTON1)->ShowWindow(TRUE);
GetDlgItem(IDC_BUTTON2)->ShowWindow(TRUE);
GetDlgItem(IDC_EDIT2)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT3)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT4)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT5)->EnableWindow(FALSE);
GetDlgItem(IDC_EDIT6)->EnableWindow(FALSE);
Jalankan kembali aplikasi anda dan lihat apakah tombol tambah dan edit
berfungsi dengan benar. Terakhir adalah membuat fungsi pada tombol hapus.
Isikan kode program berikut pada fungsi tersebut:
//message box untuk konfirmasi penghapusan data
int pilihan= MessageBox(_T("Apakah anda yakin untuk menghapus data
ini?"),_T("Konfirmasi"),MB_YESNO|MB_ICONQUESTION);
if (pilihan==IDNO)
MessageBox(_T("Penghapusan batal"));
else
{
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 97
UpdateData(TRUE);
//elemen array yang akan dihapus ditimpa dengan elemen selanjutnya dari array
//proses dilakukan sampai elemen array n-1
i= EditNomor;
for (i=EditNomor;i<=n-1;i++)
{Mhs[i].NIM=Mhs[i+1].NIM;
Mhs[i].Nama=Mhs[i+1].Nama;
Mhs[i].UTS=Mhs[i+1].UTS;
Mhs[i].UAS=Mhs[i+1].UAS;
Mhs[i].Tugas=Mhs[i+1].Tugas;
}
n=n-1;//jumlah elemen array berkurang 1
//menyimpan data array kedalam file text
FILE *Fout;
fopen_s(&Fout,"mahasiswa.txt","w");
fprintf_s(Fout,"%d\n",n);
for (i=1;i<=n;i++)
{
fwprintf_s(Fout,_T("%s "),Mhs[i].Nama);
fprintf_s(Fout,"%d %d %d %d\n",Mhs[i].NIM, Mhs[i].UTS, Mhs[i].UAS,
Mhs[i].Tugas);
}
fclose(Fout);
MessageBox(_T("Data berhasil
dihapus"),_T("Hasil"),MB_OK|MB_ICONINFORMATION);
//menampilkan nilai baru dari elemen yang dihapus
UpdateData(TRUE);
if ((i>=1)&&(i<n))
{
i=EditNomor;}
if (i==n)
{ i=EditNomor-1;}
HitungNilai();
}
Ujilah kembali aplikasi anda, apakah semua fungsi telah berjalan dengan
benar. Apabila anda berhasil membuat aplikasi ini maka anda sudah mampu
membuat aplikasi yang cukup kompleks. Sebagai bahan latihan, coba gabungkan
dengan pembuatan menu pada pembahasan sebelumnya.
P a g e | 98
BAB VII
MENGOLAH DATA DENGAN FILE TEXT
Ada beberapa bentuk pengolahan data yang dapat dilakukan dengan bahasa
C/C++ baik menggunakan compiler visual C++ ataupun yang lain. Pada
pembahasan ini kita akan mempelajari salah satu cara mengolah data menggunakan
inputan dari file text serta mengeluarkan hasilnya juga melalui file text. Berikut
adalah contoh aplikasi yang akan kita buat berikut file text input dan outputnya:
P a g e | 99
Nama Variabel
Tipe Data
Edit Box
edit_nim
int
Edit Box
edit_nama
CString
Edit Box
edit_uts
float
Edit Box
edit_uas
float
Edit Box
edit_tugas
float
Static Text
static_total
float
Static Text
static_grade
CString
P a g e | 100
Selanjutnya buat fungsi pada tombol hitung grade, kemudian isikan kode
program berikut:
UpdateData(true);
static_total=0.3*edit_uts+0.3*edit_tugas+0.4*edit_uas;
if(static_total>=80)
static_grade="A";
else if ((static_total>=70)&&(static_total<80))
static_grade="B";
else if ((static_total>=60)&&(static_total<=70))
static_grade="C";
else if ((static_total>=50)&&(static_total<60))
static_grade="D";
else
static_grade="E";
UpdateData(false);
Terakhir adalah membuat fungsi pada tombol cetak. Masukkan kode
berikut pada fungsi dari tombol cetak:
FILE *Fout;
fopen_s(&Fout,"cetak.txt","w");
fprintf_s(Fout,"********************************************\n");
fprintf_s(Fout,"****
LAPORAN DATA MAHASISWA
****\n");
fprintf_s(Fout,"********************************************\n");
fprintf_s(Fout,"Nim
: %d\n",edit_nim);
fwprintf_s(Fout,_T("Nama
: %s"),edit_nama);
fprintf_s(Fout,"Nilai UTS : %0.2f\n",edit_uts);
fprintf_s(Fout,"Nilai UAS : %0.2f\n",edit_uas);
fprintf_s(Fout,"Nilai Tugas : %0.2f\n",edit_tugas);
fprintf_s(Fout,"-----------------------------\n");
fprintf_s(Fout,"Nilai Total : %0.2f\n",static_total);
fprintf_s(Fout,"Grade
: %s",static_grade);
UpdateData(false);
fclose(Fout);
MessageBox(_T("Data sudah di cetak"));
Perhatikan perbedaan modus pembacaan file, untuk menuliskan data
kedalam file text kita menggunakan modus write (w). Untuk fungsi penulisan data
selain string menggunakan fprintf_s() sedangkan untuk string (dengan spasi)
menggunakan fwprintf_s().
P a g e | 101
BAB VIII
MENGGUNAKAN FUNGSI PENGOLAHAN WAKTU (TIMER)
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 a g e | 102
P a g e | 103
P a g e | 104
P a g e | 105
BAB IX
MENGUBAH KOTAK DIALOG AWAL APLIKASI, MENGHAPUS
FUNGSI DAN VARIABEL.
Mungkin ketika anda mencoba membuat aplikasi sendiri setelah
mempelajari pembahasan-pembahasan sebelumnya, anda menemukan beberapa
masalah seperti bagaimana mengubah kotak dialog awal aplikasi dengan kotak
dialog yang lain, lalu bagaimana menghapus fungsi dan variabel yang sudah kita
buat sebelumnya secara aman atau tidak merusak aplikasi yang telah kita buat.
9.1. Mengubah kotak dialog awal aplikasi
Apabila kita mempunyai suatu aplikasi dengan beberapa kotak dialog, misalkan
pada project latihan password berikut terdapat 2 kotak dialog yaitu
IDD_PASSWORD_DIALOG dan IDD_LOGIN_DIALOG.
IDD_PASSWORD_DIALOG merupakan kotak dialog awal yang terbentuk
ketika kita membuat project MFC sedangkan IDD_LOGIN_DIALOG adalah kotak
dialog baru yang dibuat untuk proses login.
P a g e | 106
Apabila kita ingin pada awal aplikasi dijalankan langsung muncul kotak
dialog login (IDD_LOGIN_DIALOG) maka kita harus mengubah fungsi
InitInstance() pada file .cpp dari class aplikasi. Seperti yang pernah kita bahas
sebelumnya bahwa pada saat kita membuat suatu project MFC maka secara
otomatis akan terbentuk 2 class yang diberi nama mengikuti nama project yang kita
buat. Pada contoh ini nama project adalah Password, maka secara otomatis
terbentuk 2 class yaitu class CPasswordApp (application class) dan
CPasswordDlg (dialog class). Masing-masing class tersebut terdiri dari file .h dan
.cpp, CPasswordApp terdiri dari file Password.h dan Password.cpp
sedangkan CPasswordDlg terdiri dari PasswordDlg.h dan PasswordDlg.cpp
P a g e | 107
program dari fungsi InitInstance() di atas menjadi Clogin yang merupakan nama
class dari kotak dialog login.
Apabila aplikasi tersebut dijalankan kembali maka kotak dialog login akan
muncul pertama kali.
9.2. Menghapus fungsi
Mungkin anda pernah mengalami masalah ketika menghapus fungsi,
misalnya ketika anda secara tidak sengaja melakukan double-click pada salah satu
objek pada kotak dialog, akan muncul fungsi baru, lalu anda hapus fungsi tersebut
dari file .cpp anda. Apa yang akan terjadi? Pasti aplikasi project anda akan menjadi
error. Lalu apa yang sebenarnya terjadi? Ketika kita membuat suatu fungsi maka
fungsi itu tidak hanya tertulis pada bagian tertentu pada file .cpp saja tapi pada
beberapa tempat dan file yang berbeda. Untuk melihat kaitan atau referensi dari
suatu fungsi, right-click pada nama fungsi di class view, kemudian pilih find all
references. Perhatikan pada gambar 3 di bawah kita melihat referensi dari fungsi
milik tombol login.
P a g e | 108
P a g e | 109
P a g e | 110
P a g e | 111
BAB X
MEMBUAT LOGIN DENGAN PASSWORD
Pada pembahasan ini, kita akan mempelajari bagaimana membuat suatu
aplikasi login menggunakan password. Berikut contoh tampilan yang akan kita
buat:
P a g e | 112
Buat fungsi pada tombol OK, kemudian isikan kode program berikut pada
fungsi tersebut:
UpdateData(true);//mengupdate nilai pada dialog masuk ke variabel objek kontrol
count=count+1;//menambahkan 1 setiap kali percobaan input password
//kondisi perulangan: selama percobaan belum 3 kali dan pasword belum cocok
//maka kembali ke halaman awal serta tambah 1 nilai count.
while((count<3)&&(edit_password!="kodok"))
{
MessageBox(_T("Password Salah!"), _T("Warning"),
MB_OK|MB_ICONEXCLAMATION);
ctrl_edit_password.SetFocus();
return;
count = count+1;
}
if(edit_password=="kodok")//kondisi apabila password cocok
MessageBox(_T("Selamat! Anda berhasil masuk ke dalam
sistem"),_T("Informasi"),MB_OK|MB_ICONINFORMATION);
else//kondisi ketika setelah 3 kali percobaan dan password belum cocok juga
MessageBox(_T("Password 3X salah! Anda tidak berhak mengakses
sistem"),_T("Informasi"),MB_OK|MB_ICONINFORMATION);
OnOK();
Sampai tahapan ini aplikasi password sudah dapat digunakan. Lalu,
bagaimana jika kita ingin agar password dibaca dari file text berbentuk array
seperti berikut:
P a g e | 113
P a g e | 114
P a g e | 115
P a g e | 116
BAB XI
MENGHUBUNGKAN APLIKASI MFC DENGAN DATABASE
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.
P a g e | 117
P a g e | 118
P a g e | 119
P a g e | 120
P a g e | 121
P a g e | 122
P a g e | 123
Untuk menghubungkan variabel tersebut dengan edit box yang telah kita
buat pada kotak dialog, bukalah file view.cpp kemudian akses fungsi
DoDataExchange. Masukkan kode program berikut pada fungsi tersebut.
DDX_FieldText(pDX, IDC_EDIT1, m_pSet->m_ID, m_pSet);
DDX_FieldText(pDX, IDC_EDIT2, m_pSet->m_judul_buku, m_pSet);
DDX_FieldText(pDX, IDC_EDIT3, m_pSet->m_stok, m_pSet);
P a g e | 124
Perhatikan bahwa ukuran kotak dialog perlu diubah agar tidak terlalu besar.
Untuk mengubahnya buka file MainFrm.cpp dan masukkan code program berikut
pada fungsi OnCreate dan PreCreateWindow.
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
.
.
.
// TODO: Delete these three lines if you don't want the toolbar to be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
//Set posisi dan nama kotak dialog
this->CenterWindow();
this->SetWindowText(_T("Sistem Administrasi Perpustakaan - Data Buku"));
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
//Set ukuran kotak dialog dan title
cs.cx = 500;
cs.cy = 450;
cs.style &= ~FWS_ADDTOTITLE;
return TRUE;
}
Jalankan kembali aplikasi anda untuk melihat tampilan yang baru
P a g e | 125
BAB XII
MEMBUAT APLIKASI PENGOLAHAN DATABASE
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 tombol save dan
cancel pada kotak dialog kemudian ubah properties visible menjadi false agar
tombol-tombol tersebut tidak terlihat. Ubah juga properties disabled semua edit
box menjadi true agar menjadi tidak aktif.
P a g e | 126
P a g e | 127
Buat fungsi untuk menu new record tersebut dengan cara right-click
kemudian pilih add event handler. Pilih class view untuk menampung fungsi
tersebut.
P a g e | 128
Buat juga fungsi pada tombol simpan dan tambahkan kode program seperti
berikut:
void CLat_DatabaseView::OnBnClickedButton1()
{
UpdateData();
if (m_pSet->Update())
AfxMessageBox(_T("Database updated!"));
else
AfxMessageBox(_T("Failed updating database!"));
// menyembunyikan kembali tombol
ctrl_btn_simpan.ShowWindow(false);
ctrl_btn_batal.ShowWindow(false);
//menonaktifkan edit box
ctrl_edit_kode.EnableWindow(false);
ctrl_edit_buku.EnableWindow(false);
ctrl_edit_stok.EnableWindow(false);
//menampilkan data terakhir
m_pSet->MoveLast();
}
Terakhir buat fungsi pada tombol cancel dan isikan kode program seperti berikut:
void CLat_DatabaseView::OnBnClickedButton2()
{
// menyembunyikan kembali tombol
ctrl_btn_simpan.ShowWindow(false);
ctrl_btn_batal.ShowWindow(false);
//menonaktifkan edit box
ctrl_edit_kode.EnableWindow(false);
ctrl_edit_buku.EnableWindow(false);
ctrl_edit_stok.EnableWindow(false);
//query ulang data
m_pSet->Requery();
UpdateData(false);
}
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 a g e | 129
P a g e | 130
.
}
Ubah kode program untuk tombol save:
void CLat_DatabaseView::OnBnClickedButton1()
{
.
.
.
if(tombol==1)
m_pSet->MoveLast();//menampilkan data terakhir
else
return;//kembali ke kondisi sebelumnya
}
Dan pada tombol cancel:
void CLat_DatabaseView::OnBnClickedButton2()
{
.
.
.
if(tombol==1)
m_pSet->Requery();//query ulang data
else
return;//kembali ke kondisi sebelumnya
UpdateData(false);
}
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:
void CLat_DatabaseView::OnRecordDeleterecord()
{
int Answer = MessageBox(_T("Apakah anda yakin untuk menghapus data
ini?"),_T("konfirmasi"),MB_YESNO);
if( Answer == IDYES )
{
m_pSet->Delete();
m_pSet->Requery();
UpdateData(FALSE);
}
else
|| Aplikasi MFC Microsoft Visual Studio C++ ||
P a g e | 131
return;
}
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 a g e | 132
BAB XIII
MENU
Pada bagian ini kita akan mempelajari bagaimana membuat menu pada
aplikasi, sekaligus bagaimana membuat kotak dialog baru dan menghubungkannya
dengan kotak dialog utama melalui pilihan menu. Berikut adalah contoh tampilan
aplikasi yang akan kita buat :
P a g e | 133
P a g e | 134
apabila salah satu menu dipilih maka akan ditampilkan pada static text. Untuk itu
tentu saja langkah selanjutnya adalah membuat variabel pada static text. Pada
contoh ini variabel static text diberi nama static_hasil.
Untuk membuat fungsi pada menu cukup right-click pada pilihan menu
kemudian pilih add event handler. Yang perlu diperhatikan adalah pilih class dialog
utama anda sebab disanalah fungsi tersebut akan dituliskan. Perhatikan pada
gambar berikut:
P a g e | 135
mengakses resource view, pilih folder dialog, right-click, kemudian pilih insert
dialog. Tambahkan list box dan button pada kotak dialog baru tersebut.
P a g e | 136
P a g e | 137
P a g e | 138
Penutup
Sasa Ani Arnomo, S.Kom., M.S.I. Lahir di Surakarta
(Kota Solo) 11 Juni 1984. Riwayat Pendidikan S1 berasal dari
STMIK AUB Surakarta sedangkan untuk S2 lulusan dari
STMIK Putera Batam. Hobby bermain bulutangkis dan footsal.
Keahlian program yang dikuasai JAVA, Microsoft Visual Studio C#,
Microsoft Visual Studio C++, VB.Net, Delphi, Visual FoxPro, Dreamweaver dan
beberapa program lain. Aktif sebagai editor CBIS Journal dan melakukan
penelitian di bidang sistem informasi.