pemrograman aplikasi visual c

Click here to load reader

Post on 27-Jun-2015

354 views

Category:

Documents

2 download

Embed Size (px)

TRANSCRIPT

This watermark does not appear in the registered version - http://www.clicktoconvert.com

BAB 1: Pemrograman Aplikasi Visual C++Visual C++ adalah compiler yang dapat digunakan untuk membuat program aplikasi berbasis Windows dengan cepat karena telah tersedianya tools yang disebut AppWizard. Dengan tools yang efektif ini maka programmer akan dapat menghasilkan program yang professional seperti halnya programmer yang berpengalaman, seperti melakukan pengaturan jendela program, menampilkan menu, membuat isian, dan menampilkan kontrol-kontrol obyek lainnya seperti command button, combo box, list box, slider dan lain- lain.

1.1 Tools AppWizardUntuk membuat bermacam aplikasi dapat digunakan tools AppWizard, terutama program yang dapat dijalankan secara langsung seperti file *.exe, dengan AppWizard juga dapat menghasilkan source program, seperti klas, obyek dan fungsi. Agar hal tersebut terwujud maka dapat dilakukan langkah-langkah sebagai berikut: Jalankan Visual C++ Klik pada menu File, klik New dan klik tab Project pada kotak dialog New seperti pada Gambar 1.1 dibawah ini.

Gambar 1.1 Kotak dialog New Pilih MFC AppWizard (exe) Isilah nama proyek pada kotak edit Project name: proyekku Isilah direktori tempat menyimpan proyek tersebut: C:\Student\Sigwa Klik OK

AppWizard akan menuju ke langkah berkutnya yaitu Step-1 dan seterusnya, setiap langkah terdapat pilihan yang harus dipilih guna menentukan bentuk aplikasi yang akan dibuat dan pendukungnya, seperti berbasis MDI, SDI atau Dialog.

1

This watermark does not appear in the registered version - http://www.clicktoconvert.com

1.2 Tipe AplikasiAda 3 tipe aplikasi yang dapat dipilih yaitu: Aplikasi SDI (Single document interface), seperti Notepad, hanya mempunyai satu bukaan dokumen pada saat yang sama. Pada saat File, Open dipilih file yang dibuka ditutup sebelum membuka file yang baru. Aplikasi MDI (Multiple document interface), seperti Exel atau Word, dapat membuka banyak dokumen (umumnya file) pada saat yang sama. Terdapat menu Jendela dan item Close pada menu File. Bila ingin melihat tampilan banyak pada suatu dokumen tunggal, maka harus dipilih aplikasi MDI. Aplikasi dialog-based, seperti utilitas Character Map pada Windows, tidak mempunyai dokumen sama sekali dan tidak ada menu. Pada Windows XP, dapat diklik Start, Accessories, System Tools, Character Map.

1.3 Tipe Aplikasi Berbasis DialogTipe aplikasi ini dipilih karena bentuknya sederhana dan mudah bagi pemula untuk mempelajarinya, meskipun tidak mendukung adanya akses basis data ataupun gabungan dokumen. Pada langkah pertama pilih Dialog based seperti Gambar 1.2 dibawah.

Gambar 1.2 Langkah 1 Pilihan Tipe Aplikasi Selanjutnya klik next untuk melanjutkan ke langkah berikutnya, yaitu menentukan fitur-fitur yang akan disertakan pada dialog. Bila diinginkan item About seperti pada system menu, maka dapat dipilih item About Box. Untuk menambah tombol help maka dapat dipilih Context-sensitive Help. Sedangkan pada pilihan ketiga adalah 3D Control, seharusnya dipilih untuk aplikasi Windows 95 atau NT. Bila diinginkan aplikasi tersebut dibawah aplikasi lain maka pilih check box Automation. Bila aplikasi berisi control ActiveX maka pilih check box Active X Controls. Bila aplikasi direncanakan bekerja dibawah Internet dengan sokets, pilihkah kotak Windows Sokets, setelah pilihan ditentukan maka klik Next untuk pindah ke langkah selanjutnya, seperti Gambar 1.4. 2

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Gambar 1.3 Langkah 2 Pilihan Fitur-fitur yang diinginkan

Gambar 1.4 Langkah 3 Pilihan Pustaka MFC

Pada langkah dibawah dapat dilakukan pengubahan nama-nama AppWizard untuk file dan kelas. Tapi ide ini jarang dilakukan karena akan membingungkan orang yang merawat program bila nama file tidak mudah dibedakan dari nama kelas dan sebaliknya. Bila telah terlanjur menggunakan nama yang tidak baik atau kurang sesuai sebaiknya menggunakan Back untuk kembali ke dialog Workspace Proyek baru, ubah nama, dan klik Create, dan menggunakan Next untuk kembalik ke dialog ini. Klik Finish

3

This watermark does not appear in the registered version - http://www.clicktoconvert.com

untuk melihat ringkasan dari file dan kelas yang akan dibuat, serupa pada Gambar 1.5 dibawah ini.

Gambar 1.5 Langkah 4 Pilihan Namafile dan Namakelas

Gambar 1.6 Konfirmasi Nama-nama file sebelum dilakukan pembuatan

4

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Bila informasi diatas ada yang tidak disetujui maka klik Cancel untuk kembali kelangkah sebelumnya, betulkan dan kembali ke langkah ini. Klik OK setelah disetujui, maka aplikasi akan dibuat, yaitu tersedianya dialog kosong. Untuk mencoba dialog ini maka klik Build kemudian Run, maka akan ditampilkan seperti pa d a Gambar 1.7 dibawah ini.

Gambar 1.7 Tampilan awal dialog kosong Dialogku

Gambar 1.8 Toolbox Controls yang menyertai dialog kosong Dialogku

5

This watermark does not appear in the registered version - http://www.clicktoconvert.com

1.4 Icon-icon pada ToolBox ControlUntuk memahami kegunaan dari Toolbox Control maka berikut ini akan diberikan penjelasan singkat mengenai masing- masing dari Icon didalam ToolBox Control. Icon Select Digunakan untuk mengubah penunjuk mouse menjadi normal (tidak memilih salah satu dari icon. Sehingga penunjuk mouse dapat digunakan untuk memilih pilihan menu lainnya. Icon Picture Digunakan untuk meletakkan obyek gambar ke dialog, sehingga pengguna dapat menampilkan gambar didalam dialog. Icon Static Text Dengan pilihan obyek ini maka memungkinkan pengguna dapat menampilkan komentar yang berupa teks didalam dialog. Icon Edit Box Untuk mendapatkan masukan data dari keyboard, disamping itu Kotak Edit dapat digunakan untuk menampilkan keluaran/ hasil data, baik secara satu baris (single line) atau beberapa baris tampilan (scroll). Icon Group Box Digunakan untuk mengelompokkan beberapa obyek yang sama menjadi satu grup, sehingga membuat tampilan lebih teratur dan lebih rapi. Icon Button Obyek tombol ini sering digunakan karena aksi yang dilakukan didalam dialog biasanya dilakukan dengan penekanan suatu tombol, yaitu untuk menjalankan aksi yang diinginkan Icon Check Box Kotak Check atau Check Box digunakan bila terdapat beberapa pilihan masukan data dan dapat dipilih semuanya, misalkan data tentang hobby, data menu makanan serta minuman. Icon Radio Button Tombol Radio atau Radio Botton digunakan bila terdapat beberapa pilihan tetapi hanya satu pilihan saja yang harus dipilih, misalkan data kota kelahiran, jenis kelamin, umur dan pilihan jurusan.

6

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Icon Combo Box Digunakan bila ada beberapa item pilihan tetapi hanya satu saja yang dapat dipilih, item pilihan dapat diganti, ditambah atau dihapus. Pilihan yang tidak dipilih dapat disembunyikan sehingga hanya item pilihan yang dipilih yang ditampilkan. Icon List Box Fungsinya hampir sama dengan Kotak Combo atau Combo Box, List Box atau Kotak List Icon Horizontal Scroll Bar Untuk membuat obyek scroll secara mendatar, obyek ini biasanya digabung dengan Kotak Edit. Sedangkan disini digunakan secara terpisah. Icon Vertical Scroll Bar Untuk membuat obyek scroll secara menurun, obyek ini biasanya digabung dengan Kotak Edit, Kotak Combo atau Kotak List. Sedangkan disini digunakan secara terpisah. Icon Progress Pada suatu proses program perulangan yang sedang berjalan lama, maka tidak dapat diketahui sejauh mana program looping tersebut dikerjakan. Dengan penggunaan obyek Progress maka dapat diperkirakan selesainya proses perulangan tersebut, karena proses yang telah dikerjakan akan ditampilkan pada obyek Progress. Icon Slider Digunakan bila masukan adalah berupa perkiraan angka yang dilakukan dengan penekanan tombol mouse, sehingga pengguna lebih mudah memasukkan perkiraan angka yang diinginkan. Seperti setting perpaduan warna RGB. Icon Tab Control Membuat dialog menjadi beberapa bagian tampilan yang terpisah, sehingga pengguna dapat memilih tampilan mana yang diinginkan berdasarkan pilihan menu tab. Icon IP address Untuk menampilkan data Alamat IP dengan format titik. Icon Month Calendar Untuk menampilkan calendar. Icon Date Time Picker Untuk menampilkan tanggal dan jam.

7

This watermark does not appear in the registered version - http://www.clicktoconvert.com

BAB 2: Kotak Edit, Tombol Radio dan Kotak CawangSuatu alasan pembuatan program aplikasi berbasis dialog adalah dikarenakan bahwa, umumnya setiap program yang dibuat memerlukan masukkan (input) dari user, sehingga aplikasi berbasis dialog adalah yang paling tepat untuk digunakan disini. Berikut ini akan diberikan bermacam masukan (controls) yang telah disediakan oleh Visual C++ secara default. Untuk dapat membuat masukkan bagi program maka telah disediakan obyek yang disebut control dimana sudah dikumpulkan pada satu toolbox dengan icon yang bersesuaian dengan kegunaannya, seperti Gambar 1.8 pada bab sebelumnya. Dengan obyek-obyek tersebut maka programmer akan dapat dengan mudah memilih tipe masukan yang diinginkan, seperti kotak edit, tombol radio, kotak check, tombol aksi, scroll bar, slider dan lain sebagainya. Berikut ini akan dibahas satu persatu mengenai penggunaan dari obyek-obyek control tersebut.

2.1 Kotak Edit ControlKotak edit control adalah obyek yang sering digunakan karena bentuknya yang sederhana, dimana pengguna sudah terbiasa dengan tipe masukkan data seperti ini. Karena tipe masukan seperti ini sudah ada pada pemrograman sebelum windows ada. Dengan tipe masukan kotak edit maka pengguna dapat memasukkan data yang diperlukan oleh program, yaitu dengan mengetikkan data tersebut melalui keyboard. Berikut ini akan diberikan langkah- langkah pembuatan kotak edit yang sederhana, kemudian dapat dikembangkan menjadi yang lebih rumit. Langkah- langkah pembuatan: 1. Buatlah dulu Dialog kosong Dialogku seperti pada Bab I. 2. Hapuslah dulu Komentar ditengah Kotak Dialog tersebut, dengan cara klik teks tersebut dan tekan del atau klik icon gunting. 3. Pada Toolbox Control pilih icon Edit Box dengan gambar symbol ab|, klik dan tarik ke daerah dialog kosong Dialogku, atur penenpatannya seperti pada Gambar 2.1 dibawah, 4. Pilih pula icon Static Text dengan gambar symbol Aa, klik dan tarik ke daerah dialog kosong Dialogku, atur penempatannya seperti pada Gambar 2.1 dibawah, 5. Ulangi pembuatan kotak edit dan teks static tersebut sehingga menjadi dua, yang berarti dialog ini memerlukan masukkan dari pengguna sebanyak dua kali dari keyboard. 6. Ubahlah teks static tersebut sesuai dengan data yang akan dimasukkan, misalkan diinginkan untuk menghasilkan perhitungan pembagian, maka teks statik pertama (atas) diubah menjadi Pembilang dan teks static kedua (bawah) diubah menjadi Penyebut. Untuk mengubah cukup dilakukan klik kanan mouse pada obyek yang bersangkutan kemudian pilih properties. Pada kotak edit Caption gantilah dengan keterangan yang diinginkan misalkan Penyebut. Sehingga akan ditampilkan seperti pada Gambar 2.4 dibawah. 7. Gunakan pilihan menu bar utama yaitu Layout untuk mengatur tata letak dari obyek control yaitu Align, Space Evenly, Make Same Size, Arrange Buttons dan Center in Dialog.

8

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Gambar 2.1 Tampilan Awal pembuatan Kotak Edit

Gambar 2.2 Mengganti tampilan pada teks static pertama (atas)

Gambar 2.3 Mengganti tampilan pada teks static kedua (bawah)

9

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Gambar 2.4 Hasil tampilan teks setelah diubah Setiap kotak edit mempunyai Identitas yaitu sebagai nama obyek yang bersangkutan, adapun identitas tersebut biasanya disingkat dengan IDC_EDITn. Nama identitas ini biasanya diset dengan huruf besar, bila akan diganti maka gunakan huruf besar, ingat bahwa huruf besar dan kecil akan berbeda (case sensitive). Untuk permasalahan disini sebaiknya tidak usah diganti, dimana ada dua kotak edit dengan Identitas berturut-turut IDC_EDIT1 dan IDC_EDIT2. Untuk melihat tampilan dialog sesungguhnya (preview) dapat ditekan [Ctrl] + [T].

2.1.1 Mengambil Data MasukanAda dua cara untuk mengambil data masukan dari kotak edit, yaitu menggunakan fungsi GetDlgItemInt() atau GetDlgItemText() bila data yang diinginkan berupa integer atau teks. Tetapi cara ini tidak disarankan yang disarankan adalah dengan variable anggota yang dideklarasikan terlebih dulu. Untuk dapat mengimplementasikan kedua cara tersebut, maka harus dibuat suatu fungsi baru untuk menanganinya, dimana fungsi tersebut adalah merupakan peristiwa (even) dari suatu obyek yang dikenai suatu pekerjaan (driven), misalkan diklik satu kali atau dienter dan lain sebagainya. Agar maksud tersebut dapat dilakukan maka tambahkan Button control (icon tombol kotak) pada dialog Dialogku, dengan cara klik dan tarik seperti sebelumnya. Kemudian gantilah label pada tombol tekan tersebut dengan kata Proses. Untuk lebih jelasnya dapat dilihat pada Gambar 2.6 dibawah.

10

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Gambar 2.5 Penggantian label Button1 menjadi Proses

Gambar 2.6 Penambahan tombol tekan Proses Setelah tombol tekan ditambahkan kemudian klik pada tombol tersebut dua kali, maka akan pindah pada tampilan dialog penambahan fungsi anggota baru seperti pada Gambar 2.7 dibawah. Gantilah OnButton1 dengan OnProses, kemudian klik OK.

11

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Gambar 2.7 Penambahan Fungsi Anggota

Gambar 2.8 Penggantian Nama Fungsi Anggota

Gambar 2.9 Penambahan Fungsi Anggota Baru OnProses()

12

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Dari sini pembuatan program dapat dimulai, yaitu dibawah komentar //TODO, seperti pada Gambar 2.9 diatas. Tambahkan baris program berikut:int pembilang, penyebut, hasil; char chasil[50]; pembilang=GetDlgItemInt(IDC_EDIT1); penyebut=GetDlgItemInt(IDC_EDIT2); hasil=pembilang/penyebut; sprintf(chasil,"Hasil pembagian = %d",hasil); MessageBox(chasil,"Kotak Pesan");

Program mendeklarasikan tiga variable yaitu pembilang, penyebut dan hasil dengan tipe integer (bulat) semuanya, dan juga satu variable string chasil dengan lebar 50 karakter yang digunakan untuk menampung hasil proses, yang telah diformat dalam b e n t u k string, sehingga dapat ditampilkan pada kotak pesan dengan fungsi MessageBox(). Fungsi sprintf() akan mencetak tampilan yang telah diformat kedalam variable string chasil, sehingga dapat ditampilkan pada kotak pesan dengan fungsi MessageBox(), untuk dapat menggunakan fungsi sprintf(), maka perlu ditambahkan file header stdio.h pada awal program utama yang menggunakan fungsi tersebut. Jalankan program dan isikan suatu data misal 50 untuk pembilan dan 5 untuk penyebut, maka akan ditampilkan seperti pada Gambar 2.10 dibawah.

Gambar 2.10 Tampilan program dialog pembagian Dialogku

13

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Kelemahan dari fungsi GetDlgItemText() dan GetDlgItemInt() adalah tipe pengambilan data sudah ditentukan yaitu kalau tidak teks maka integer (bulat), apabila datanya float (pecahan) maka harus dilakukan konversi dulu dari tipe karakter ke tipe float, sehingga tidak praktis untuk hal- hal tertentu. Untuk mengatasi hal tersebut maka dapat digunakan deklarasi variable anggota, dimana mendefinisikan suatu variable penampung pada suatu kotak edit yang bersangkutan, dimana tipenya variabelnya dapat diatur sesuai dengan kehendak. Sebelum dapat melakukan modifikasi program, maka lakukan dulu deklarasi variable anggota yaitu dengan cara: 1. Tekan [Ctrl] + [W] untuk membuka dialog MFC ClassWizard seperti pada Gambar 2.11 dibawah.

Gambar 2.11 Kotak Dialog MFC ClassWizard 2. Pilih tab Member Variables, pada kotak edit IDs pilih IDC_EDIT1, klik tombol Add Variable disebelah kanan atas, maka akan ditampilkan seperti pada Gambar 2.12 dibawah. 3. Masukkan nama variable yang akan digunakan untuk menyimpan data masukan dari kotak edit (misalkan m_penyebut), secara default variable ini didepannya diberi symbol m_ yang berarti bahwa variable ini merupakan variable (memori) dari masukan obyek control. 4. Pada isian Category terdapat dua pilihan yaitu Value dan Control, Pilih Value bila variable bersifat biasa dan Control untuk keperluan pengendalian tertentu seperti menampilkan karakter secara multiline (akan dibahas kemudian).

14

This watermark does not appear in the registered version - http://www.clicktoconvert.com

5. Pilih tipe variable yang diinginkan pada pilihan Variable type, misalkan pilih tipe variable float. Kemudian klik OK. 6. Ulangi langkah-langkah tersebut untuk IDC_EDIT2, sehingga didapatkan daftar ID seperti pada Gambar 2.13 dibawah. Klik OK untuk menutup dialog MFC ClassWizard.

Gambar 2.12 Dialog MFC ClassWizard pada tab Member Variable Setelah variable-variabel tersebut dideklarasikan, maka dapat dilihat keberadaannya dalam program yaitu dengan cara Klik tab ClassView pada menu sebelah kiri tengah (lihat Gambar 2.14a dibawah), klik tanda + pada dialogku classess, klik tanda + pada CDialogkuDlg, maka akan ditampilakan daftar keanggotaan dari class tersebut. Kemudian klik 2x pada nama variable yang ingin diketahui letaknya. Ternyata variable-varaibel tersebut diletakkan pada file berektensi .h (header), file tersebut disusun (didaftar) didalam daftar file proyek dialogku files, untuk melihat susunan file dapat diklik pada menu tab FileView disebelah kanan dari 2 tab ClassView. Untuk lebih jelasnya lihat Gambar 2.14b (dibawah). Untuk melakukan modifikasi dari varibel-variabel tersebut maka dapat dilakukan dengan cara kembali ke dialog ClassWizard, misalkan diinginkan untuk membatas jumlah dari data yang dapat diterima oleh variable yang bersangkutan maka dapat dilakukan pengisian nilai minimum dan maksimum. Untuk lebih jelasnya ikuti langkahlangkah sebagai berikut: 1. Tekan [Ctrl] + [W] untuk membuka dialog ClassWizard.

15

This watermark does not appear in the registered version - http://www.clicktoconvert.com

2. Pilih tab Member Variables, pilih variable yang akan diubah, 3. Isikan pada kotak edit dibawah yaitu pada Minimum Value dengan nilai minimum yang dikehendaki, misalkan 0. 4. Isikan pada kotak edit Maximum Value dengan nilai maksimum, misalkan 100 5. Klik OK. Lihat berikut:void CDialogkuDlg::DoDataExchange(CDataExchange* pDX) { CDialog::DoDataExchange(pDX); //{{AFX_DATA_MAP(CDialogkuDlg) DDX_Text(pDX, IDC_EDIT1, m_pembilang); DDV_MinMaxFloat(pDX, m_pembilang, 0.f, 100.f); DDX_Text(pDX, IDC_EDIT2, m_penyebut); //}}AFX_DATA_MAP }

perubahan

tersebut

pada

program,

yaitu

klik ClassView,

klik pada

DoDataExchange(CDataExchange *pDX), maka akan terlihat pada editor sebagai

Terdapat tambahan fungsi DDV_MinMaxFloat(), yang berfungsi untuk membatasi jangkauan data yang diinginkan, sehingga validasi data terjamin dari kesalahan pengetikan pengguna.

Gambar 2.13 Daftar TipeVariabel yang dibuat

16

This watermark does not appear in the registered version - http://www.clicktoconvert.com

(a) (b) Gambar 2.14a Tapilan Jendela ClassView, 2.14b Tampilan Jendela FileView Sedangkan nilai awal dari kedua variable tersebut dapat dilihat pada ClassView dimana terletak pada fungsi CDialogkuDlg(CWnd *pParent=NULL), seperti dibawah ini:CDialogkuDlg::CDialogkuDlg(CWnd* pParent /*=NULL*/) : CDialog(CDialogkuDlg::IDD, pParent) { //{{AFX_DATA_INIT(CDialogkuDlg) m_pembilang = 0.0f; m_penyebut = 0.0f; //}}AFX_DATA_INIT // Note that LoadIcon does not require a subsequent DestroyIcon in Win32 m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME); }

Untuk mencoba kebenaran dari seting diatas maka modifikasi program sebelumnya (ganti semua), yaitu pada fungsi ::OnProses() dengan program dibawah ini:

17

This watermark does not appear in the registered version - http://www.clicktoconvert.com

float fhasil; char chasil[50]; UpdateData(TRUE); fhasil=m_pembilang/m_penyebut; sprintf(chasil,"Hasil pembagian = %f",fhasil); MessageBox(chasil,"Kotak Pesan");

Fungsi UpdateData(TRUE) digunakan untuk memperbarui nilai dari variable obyek kontrol m_ sehingga bila terjadi perubahan pada data masukan maka otomatis akan digunakan sebagai data yang baru. Jalankan program dan masukkan data pembilang diatas 100, dan masukkan penyebut dengan nilai selain nol, klik tombol proses, maka akan ditampilkan pesan kesalahan seperti pada Gambar 2.15 dibawah. Bila kotak pesan kesalahan ditampilkan maka nilai yang dimasukkan tidak akan digunakan, meskipun proses terus berjalan dan akan menghasilkan nilai yang salah. Ini dapat diatasi dengan memberikan validasi data sebelum dilakukan proses, sehingga bila input salah maka tidak akan dilakukan proses perhitungan.

Gambar 2.15 Pesan Kesalahan yang terjadi

2.1.2 Menampilkan Hasil ProsesPada subbab diatas telah dibahas bagaimana mendapatkan data dan menampilkan data, akan tetapi hasil proses masih ditampilkan pada kotak pesan (terpisah dari dialog utama). Berikut ini akan diberikan cara untuk menampilkan hasil proses dalam dialog yang sama, yaitu dengan memanfaatkan kotak edit sebagai tampilan hasil proses. Kotak edit dapat digunakan untuk menampilkan hasil proses secara satu baris atau beberapa baris, untuk beberapa baris maka harus dilakukan trik khusus yang akan dibahas setelah pembahasan menampilkan hasil proses dalam satu baris. Adapun langkah yang dilakukan untuk menampilkan hasil proses dalam satu baris adalah cukup mudah yaitu klik icon Edit box kemudian letakkan pada tempat yang diinginkan dan berikan label seperti pada Gambar 2.16 dibawah. Untuk menuju Dialog Editor yaitu dengan cara klik tab ResourceView disebelah kanan ClassView, klik tanda + pada dialogku resources, klik tanda + pada Dialog dan klik pada IDD_DIALOGKU_...

18

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Untuk menampilkan hasil proses dapat dilakukan juga dengan dua cara seperti halnya mendapatkan data dari kotak edit, yaitu dengan SetDlgItemText() atau SetDlgItemInt() atau dengan fungsi SetWindowText().

Gambar 2.16 Kotak Edit untuk Menampilkan Hasil Proses dalam Satu Baris Berikut ini digunakan cara pertama yaitu menggunakan fungsi

SetDlgItemText() dimana data yang akan ditampilkan harus dilakukan format data menjadi bentuk string dengan fungsi sprintf() yang merupakan kumpulan dari file header stdio.h seperti halnya pada program sebelumnya. void CDialogkuDlg::OnProses() {// TODO: Add your control notification handler code here

float fhasil; char chasil[50]; UpdateData(TRUE); fhasil=m_pembilang/m_penyebut; sprintf(chasil,"Hasil pembagian = %f",fhasil); //MessageBox(chasil,"Kotak Pesan"); SetDlgItemText(IDC_EDIT3,chasil); }

19

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Fungsi SetDlgItemText() memerlukan ID dari kotak edit yang bersangkutan, disini IDnya adalah IDC_EDIT3 sehingga hasil proses akan ditampilkan pada kotak ID yang disebutkan dalam parameter fungsi ini.

Gambar 2.17 Hasil tampilan pembagian

Untuk menampilkan hasil proses secara multiline maka dapat dilakukan dengan setting pada properties dari kotak edit tersebut yaitu dengan langkah sebagai berikut: 1. Klik kanan pada kotak edit yang bersangkutan, klik properties 2. Klik tab Styles, klik Multiline, klik Auto VScroll (lihat Gambar 2.18) 3. Klik tanda x pada sudut kanan atas untuk selesai, 4. Lebarkan kotak edit tampilan proses hasil seperti pada Gambar 2.19 dibawah.

Gambar 2.18 Setting kotak edit tampilan proses hasil untuk Multiline

20

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Gambar 2.19 Modifikasi Kotak Edit Hasil Proses Tambahkan/ modifikasi baris-baris berikut pada program sebelumnya:void CDialogkuDlg::OnProses() { // TODO: Add your control notification handler code here float fhasil; char chasil[50]; int i; CString sbuffer=""; UpdateData(TRUE); fhasil=m_pembilang/m_penyebut; for(i=0; i ditekan maka kota tersebut akan dihapus dari Daftar Kota pada kotak Combo. 42

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Petunjuk: Gunakan fungsi DeleteString()atau InsertString() untuk mengapus atau menyisipkan kota pada Daftar Kota pada Kotak Combo. Fungsi GetCount() digunakan untuk menghitung jumlah Kota pada Kotak Combo. Perhatikan juga barisbaris program dibawah ini:void CKotaPilihanDlg::OnDblclkDaftarkota() { // TODO: Add your control notification handler code herem_daftarkota.GetLBText(m_daftarkota.GetCurSel(), m_kotapilihan);

m_jmlkota.Format("%d",m_daftarkota.GetCount()); UpdateData(FALSE); } void CKotaPilihanDlg::OnPanah1() { // TODO: Add your control notification handler code here HWND hWnd; //GetDlgItemText(IDC_KOTAPILIHAN,m_kota1); GetDlgItem(IDC_PANAH1, &hWnd); ::EnableWindow(hWnd, FALSE); //non aktif tombol Panah 1 m_daftarkota.DeleteString(m_daftarkota.GetCurSel()); m_kota1.Format(m_kotapilihan); m_kotapilihan=""; // menghapus kota pilihan UpdateData(FALSE); }

43

This watermark does not appear in the registered version - http://www.clicktoconvert.com

void CKotaPilihanDlg::OnRollback() { // TODO: Add your control notification handler code here HWND hWnd; GetDlgItem(IDC_PANAH1, &hWnd); ::EnableWindow(hWnd, TRUE); // aktifkan tombol Panah 1 if(m_kota1!="") {m_daftarkota.InsertString(m_daftarkota.GetCurSel(),m_kota1);

m_kota1=""; } UpdateData(FALSE); }

Berikut ini adalah daftar nama dan tipe variabel yang digunakan.

2. Buatlah aplikasi dialog dengan nama Laporan, dimana terdapat dua Kotak Combo seperti pada layout dibawah. Kotak Combo sebelah kiri berisi semua atribut Daftar Atribut dari suatu record tabel, sedangkan Kotak Combo sebelah kanan tidak berisi apa-apa (kosong). Diantara kedua Kotak Combo tersebut terdapat dua tombol dengan caption > dan , dan ditekan dan pilihan kota dapat ditampilkan pada Kotak List sebelah kanan, maka dapat dilakukan penambahan fungsi baru sebagai aksi penekanan tombol tersebut. Adapun program pada fungsi baru tersebur adalah seperti dibawah ini:void CListBoxDlg::OnPanah1() { // TODO: Add your control notification handler code here Cstring skota; m_daftarkota.GetText(m_daftarkota.GetCurSel(), skota); m_daftarkota.DeleteString(m_daftarkota.GetCurSel()); m_daftarkota.SetCurSel(0);m_pilihankota.InsertString(m_pilihankota.GetCurSel(), skota);

}

47

This watermark does not appear in the registered version - http://www.clicktoconvert.com

Lakukan hal yang sama untuk penekanan tombol kebalikannya yaitu tombol > dan