laporan kalender weton berbasis gui
DESCRIPTION
Politeknik Elektronika Negeri SurabayaTRANSCRIPT
Kalender Weton berbasis GUI
KALENDER WETON BERBASIS GUI
(GRAPHIC USER INTERFACE)
1.1 Tujuan
Mahasiswa dapat membuat dialog menggunakan Visual C++ dengan MFC
dan dapat mengembangkannya berupa tampilan Graphic User Interface (GUI)
1.2 Dasar Teori
MFC (Microsoft Foundation Class) application adalah suatu template
aplikasi yang telah disediakan Microsoft sebagai pengembang MS Visual Studio
untuk membuat aplikasi berbasis windows. Template aplikasi MFC sudah
menyediakan semua class-class pembentuk aplikasi yang akan menampung semua
objek-objek yang digunakan terutama objek-objek tampilan seperti button, text
box, list box, dll. Semua file pendukung aplikasi seperti file header dan code
(.cpp) juga dikumpulkan dalam folder project MFC. MFC juga merupakan sebuah
framework yang lebih dari sekedar koleksi kelas, MFC membantu menentukan
untuk struktur dalam sebuah aplikasi dan menangani banyak tugas-tugas untuk
sebuah aplikasi.
Macam-macam komponen yang terdapat pada IDE visual C++ 12 :
No IDE Komponen Deskripsi1 Toolbox Bermacam-macam control yang dapat
digunakan di project Visual C++ 2 Dialog Editor (MFC) Pada area ini tempat membuat atau
mengedit tampilan dialog box bukan form window.
3 Solution Explorer Menampilkan organisasi project yang dibuat4 Class View Menampilkan simbol code project seperti
: namespaces, classes, methods, dan functions5 Resource View Menampilkan resource file dari project6 Properties Window Window yang dapat dipakai untuk
mengedit atau merubah sifat control pada waktu
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
1
Kalender Weton berbasis GUI
disain.
1.3 Langkah – langkah Pembuatan Dialog
Menjalankan Visual C++ dengan MFC
1. Membuka Visual C++ 2012
•Pilih menu : Start->Programs->Microsoft Visual Studio 12->New Project-
>Visual C++
Langkah ini menampilkan kotak dialog seperti berikut:
2. Pilih MFC Application.
3. Atur agar Location berisi lokasi folder dimana project akan disimpan . Contoh
D:\file project visual c
4. Ketikkan nama proyek misal: Project Kalender pada Name:
5. Klik tombol OK. Anda menjumpai tampilan seperti berikut:
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
2
Kalender Weton berbasis GUI
6. Klik tombol Next , maka muncul kotak seperti dibawah ini :
GAMBAR 2 Kotak dialog MFCAppWizard-Step 1
7. Klik tombol Dialog based karena bentuk kotak dialog / form ini yang akan kita
gunakan.
8. Klik tombol Next >. Langkah ini membuat tampilan berikut muncul.
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
3
Kalender Weton berbasis GUI
GAMBAR 3 Kotak dialog MFCAppWizard-Step 2
8. Ketikkan judul aplikasi pada kotak edit Dialog title:….. Contoh: Kalenderku
9. Tekan tombol Next>. Anda akan menjumpai tampilan berikut:
10. Klik tombol Finish. Anda akan menjumpai tampilan awal aplikasi MFC
seperti pada gambar berikut:
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
4
Kalender Weton berbasis GUI
11. Hapus kontrol text : TODO, button OK dan Cancel untuk memulai design
kalender , sehingga tampilannya seperti berikut :
12. Untuk menambah control: (button) pilih icon control pada toolbox
drag drop ke editor dialog. Pilih 2 button untuk Search dan Reset .
Kemudian pilih control static text pada toolbox icon drag dan
drop pada editor dialog . Ubah nama pada Properties-Caption dengan nama :
Bulan, Tahun . Sedangkan control static untuk Minggu , Senin, Selasa, Rabu,
Kamis, Jumat, Sabtu diletakkan di dalam group box.
Kemudian pilih Edit Control pada toolbox icon yang
digunakan sebagai inputan tahun, keluaran Bulan dan tahun .
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
5
Kalender Weton berbasis GUI
Pilih Combo Box pada ToolBox icon dan memasukkan data
nama Bulan pada properties->Data mulai bulan Januari;Februari sampai
Desember .
Untuk memperbagus tampilan tambahkan grup box pada toolbox icon
dengan nama Kalender Jawi .
Kemudian membuat 13 Edit control untuk menyimpan nilai tanggal dan
weton , drag drop pada editor dialog lalu atur dan tata sesuai keinginan . Juga
dapat merubah ukuran dan jenis huruf , click editor dialog bagian agak luar
dan pada properties pilih Font size() . Maka tampilannya sebagai berikut:
Disebelah kanan masih ada space kosong dapat kita tambahkan 1 group
box, static text dan 3 edit control sebagai catatan atau daftar kelahiran tiap
bulannya . Maka tampilannya seperti gambar dibawah ini :
Kemudian memberi tipe pada variable ,dan nama pada Variable dengan
menggunakan class Wizard .
Setelah itu build dengan Local Windows Debugger dan kita dapat melihat
weton saat bulan dan tahun serta daftar kelahiran, misal : memilih bulan
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
6
Kalender Weton berbasis GUI
Februari dan ketik tahun 2012 maka tampilannya beserta penjelasannya
sebagai berikut :
Penjelasan :
1. Merupakan Button yang digunakan untuk menjalankan
program dengan BN_CLICKED yaitu dengan hanya click button satu kali ,
program akan langsung berjalan sesuai program yang kita buat dalam
button ini. Button ini berguna untuk memunculkan kalender dan weton
sesuai dengan bulan dan tahun yang kita masukkan.
2. Edit Box yang digunakan untuk menyimpan input yang
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
7
2
1
3
4
2
Kalender Weton berbasis GUI
dimasukkan dari keyboard inisialisasinya m_strYear yang bertipe integer .
Berguna untuk menginputkan tahun , batas dari tahun tersebut tidak
terbatas mulai dari tahun 0 hingga tak terhingga . Combo Box
digunakan untuk mempermudah dalam memilih daftar
bulan mulai bulan Januari sampai desember, disini saya inisialisasi
m_comboMonth yang bertipe string . Kemudian
merupakan edit box dengan properti
Read Only dengan pilihan True sedangkan jika False maka berwarna putih
sehingga , pada saat program dijalankan data dalam edit box tersebut tidak
dapat dirubah , hanya bisa dibaca . Tipe dalam edit box tersebut bertipe
CString , yaitu hanya dapat menyimpan data string/kalimat , seperti tanggal
dan weton.
3. Button dengan border pilihan True . Button ini digunakan untuk
mengulang kembali atau menghapus tampilan sebelumnya . Sehingga
inisialisasi bulan, tahun, hari dan keterangan tidak diberi variable apa-apa ,
hanya saja jika bertipe string , maka setelah nama diberi tanda petik ganda
(“”) sedangkan tipe integer diberi angka nol (0) .
4. Daftar kelahiran berupa Group Box yang biasa
digunakan untuk memberi Background , atau hanya menghias tampilan
dengan bentuk frame.dan didalamnya diisi dengan 3 edit box bertipe
string , disini masing-masing edit box saya inisialisasi : edit box 1
(keterangan), edit box 2 (keterangan1), edit box 3 (keterangan2) untuk
memasukkan data orang-orang yang lahir di bulan tersebut .
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
8
Kalender Weton berbasis GUI
PROGRAM KALENDER PADA BUTTON SEARCH
void CMFCApplication1Dlg::OnBnClickedSearch(){
int weton(int x, int y, int z);int j;int sisa_weton;
long hari2=0;int hitung_Thn(int thn );int hitung_Bln(int thn,int bln);int hitung_Hari(int bln,int thn);int cek_hari(int jmlhari);int jumlah_hari;int jmlhari=0,tahun,total;int jmlhari1 = 0;
// TODO: Add your control notification handler code here 2 UpdateData (1);
if (m_comboMonth=="Januari"){m_strMonth=1;keterangan="1 Januari Tahun Baru";
keterangan1="19 January James Watt (Penemu Mesin Uap)";
keterangan2="4 January Issac Newton";}
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
9
1
3
Kalender Weton berbasis GUI
.
.
.else if(m_comboMonth=="Desember"){
m_strMonth=12;keterangan="25 Desember Hari Natal";
}if (m_strMonth == 1)
m_strBulan = "Januari";...else if (m_strMonth == 12)
m_strBulan = "Desember";
for(tahun=1900;tahun<m_strYear;tahun++) { if(tahun%4==0) jmlhari+=366; else jmlhari+=365; }
int bulan; for(bulan=1;bulan<m_strMonth;bulan++)
{ if(bulan==1||bulan==3||bulan==5||bulan==7||bulan==8||bulan==10||bulan==12) jmlhari1+=31; else if(bulan==4||bulan==6||bulan==9||bulan==11) jmlhari1+=30; else { if(m_strYear%4==0) jmlhari1+=29; else
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
10
4
5
6
Kalender Weton berbasis GUI
jmlhari1+=28; } }
int jmlhari2=0; if(bulan==1||bulan==3||bulan==5||bulan==7||bulan==8||bulan==10||bulan==12) jmlhari2+=31; else if(bulan==4||bulan==6||bulan==9||bulan==11) jmlhari2+=30; else { if(m_strYear%4==0) jmlhari2+=29; else jmlhari2+=28; }
total=jmlhari+jmlhari1;int hari=total%7;m_strTahun = m_strYear;m_strDay = hari;
jumlah_hari=jmlhari2;
//Hari;if (hari ==2&&(m_strMonth ==1||m_strMonth ==3||
m_strMonth ==5 || m_strMonth ==7||m_strMonth ==8||m_strMonth ==10||m_strMonth ==12))
{m_strHari1 ="\t\t\t\t1\t\t2\t\t3\t\t4\t\t5";m_strHari2 ="6\t\t7\t\t8\t\t9\t\t10\t\t11\t\t12";m_strHari3 ="13\t\t14\t\t15\t\t16\t\t17\t\t18\t\t19";m_strHari4 ="20\t\t21\t\t22\t\t23\t\t24\t\t25\t\t26";m_strHari5 ="27\t\t28\t\t29\t\t30\t\t31";m_strHari6 ="";}...else if (hari == 6 && m_strYear%4!=0&&m_strMonth == 2)
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
11
7
8
Kalender Weton berbasis GUI
{m_strHari1 ="\t\t\t\t\t\t\t\t\t\t\t\t1";
m_strHari2 ="2\t\t3\t\t4\t\t5\t\t6\t\t7\t\t8\t";m_strHari3 ="9\t\t10\t\t11\t\t12\t\t13\t\t14\t\t15";m_strHari4 ="16\t\t17\t\t18\t\t19\t\t20\t\t21\t\t22";m_strHari5 ="23\t\t24\t\t25\t\t26\t\t27\t\t28";m_strHari6 ="";
}}for (j=1900 ; j<m_strYear; j++){
if (j%4==0)hari2+=366;
elsehari2+=365;
}
for (j=1 ; j<m_strMonth ; j++){if (j==1 || j==3 || j==5 || j==7 || j==8 || j==10 ||
j==12)hari2+=31;
else if (j==4 || j==6 || j==9 || j==11)hari2+=30;
else if (j==2 && m_strYear%4==0)hari2+=29;
elsehari2+=28;
} //Weton hari2+=1; sisa_weton=hari2%5;
if(sisa_weton==1&&m_strDay ==0&&(m_strMonth ==1||m_strMonth ==3||m_strMonth ==5||m_strMonth ==7||m_strMonth ==8||m_strMonth ==10||m_strMonth ==12))
{ m_strWeton1 ="legi\t\tPahing\t\tPon\t\tWage\t\
tkliwon\t\tLegi\t\tPahing";m_strWeton2 =" Pon\t\tWage\t\tkliwon\t\tLegi\t\
tPahing\t\tPon\t\twage";
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
12
9
10
11
12
Kalender Weton berbasis GUI
m_strWeton3 ="kliwon\t\tLegi\t\tPahing\t\tPon\t\tWage\t\tkliwon\t\tLegi";
m_strWeton4 ="Pahing\t\tPon\t\tWage\t\tkliwon\t\tLegi\t\tPahing\t\tPon";
m_strWeton5 =" Wage\t\tKliwon\t\tLegi";m_strWeton6 ="";}
..
else if( sisa_weton == 0 && m_strDay == 6 && m_strMonth ==2&&m_strYear%4!=0)
{ m_strWeton1 ="\t\t\t\t\t\t\t\t\t\t\t\tkliwon\t\t\
t\t\t\t";m_strWeton2 ="Legi\t\tPahing\t\tPon\t\tWage\t\tkliwon\t\tLegi\t\tPahing\t\t\t\t\t\t";m_strWeton3 ="Pon\t\twage\t\tKliwon\t\tLegi\t\tPahing\t\tPon\t\tWage\t\t\t\t\t\t\t";m_strWeton4 ="kliwon\t\tLegi\t\tPahing\t\tPon\t\tWage\t\tkliwon\t\tLegi\t\t\t\t\t\t\t";m_strWeton5 ="Pahing\t\tPon\t\tWage\t\tKliwon\t\tLegi\t\tPahing";m_strWeton6 ="";
}
UpdateData (0);
}
Penjelasan :
1. Pendeklarasian Variable lokal dengan nama variable j,
sisa_weton,hari2,jmlhari,tahun,total, jmlhari1, dengan tipe variable
integer dan hari2 bernilai 0.
2. UpdateData (1) , mempunyai arti bahwa data dimulai dari sini , angka 1
berarti TRUE yaitu benar.
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
13
13
Kalender Weton berbasis GUI
3. Pada kondisi if – else if jika m_strcomboMonth dari data combo box
yang dipilih bulan Januari maka m_strMonth = 1 seterusnya hingga
m_strcomboMonth=”Desember”dan m_strMonth = 12 . Juga terdapat
keterangan, keterangan1 dan keterangan2 untuk mengisi daftar kelahiran
tiap bulannya .
4. Terdapat kondisi if – else dan else ifdengan ketentuan jika m_strMonth
bernilai 1 , maka nilai dari m_strBulan adalah string Januari, kondisi ini
terus terjadi hingga m_strMonth bernilai 12.
5. Perulangan for(tahun=1900;tahun<m_strYear;tahun++) , disini digunakan
untuk menentukan nilai dari jmlhari . Yang berdasarkan nilai dari
m_strYear.
6. Kemudian perulangan for(bulan=1;bulan<m_strMonth;bulan++) ,
berfungsi untuk memperoleh nilai dari jmlhari1 . Berdasarkan nilai dari
m_strMonth.
7. Setelah itu menjumlahkan jmlhari dengan jmlhari1 , dan hasilnya
disimpan pada , variable total, kemudian variable total tersebut
dioperasikan dengan operator modulus untuk memperoleh sisa hasil bagi
dengan 7 . Sisa pembagian tersebut disimpan di variable hari. Variable
hari disini menunjukkan jumlah sisa awal hari yang kosong dalam
kalender.
8. Kemudian setelah diperoleh nilai dari variable hari , digunkan kondisi if –
else dan else if untuk menentukkan jumlah hari dalam satu bulan , dan
juga sisa hari dari kalender. Yang digunakan untuk memunculkan bentuk
kalender dalam bulan tertentu dan tahun tertentu.
9. Perulangan for (j=1900 ; j<m_strYear; j++), digunakan untuk menentukan
nilai dari variable hari2 , tergantung pada nilai dari variable m_strYear.
Nilai hari2 tersebut berdasarkan nilai penjumlahan , hari dalam satu tahun.
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
14
Kalender Weton berbasis GUI
10. Perulangan for (j=1 ; j<m_strMonth ; j++) , juga hampir sama
penggunaannya dengan perulangan for sebelumnnya , hanya saja ,
perulangan ini untuk menetukan , penjumlahan hari dalam satu bulan.
11. Setelah memperoleh nilai dari variable hari2 , kemudian hari2
dijumlahkan dengan angka 1 , setelah dijumlahkan , hari2 tersebut
dioperasikan dengan operator modulus (%) dengan 5 , untuk memperoleh
sisa hasil bagi dengan 5 , kemudian sisa tersebut di simpan di variable
sisa_weton . Nilai dari sisa_weton tersebut digunakan untuk menentukan
weton yang muncul pada tanggal pertama , jika hasil sisa_weton bernilai
satu maka akan muncul Legi , jika 2 maka akan muncul Pahing , jika 3
maka akan muncul Pon ,jika 4 maka akan muncul Wage dan jika 0 maka
akan muncul Kliwon.
12. Kemudian untuk memunculkan weton , digunakan kondisi if – else dan
else if.
13. Untuk mengahkhiri program diberikan UpdateData (0) yang berarti
program telah selesai sampai disini.
PROGRAM KALENDER PADA BUTTON RESET
void CMFCApplication1Dlg::OnBnClickedOk2()
{
UpdateData (1);
m_strHari ="";
m_strBulan ="";
m_strHari1 ="";
m_strHari2 ="";
m_strHari3 ="";
m_strHari4 ="";
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
15
Kalender Weton berbasis GUI
m_strHari5 ="";
m_strWeton1 ="";
m_strWeton2 ="";
m_strWeton3 ="";
m_strWeton4 ="";
m_strWeton5 ="";
keterangan="";
keterangan1="";
keterangan2="";
m_strTahun=(0);
m_strYear=(0);
UpdateData (0);
}
Penjelasan :
Kegunaan Button Reset ini , untuk mengosongkan isi dari Variable – variable
yang ada , dengan cara seperti memberi angka 0 untuk variable yang bertipe
integer , dan memberi karakter kosong untuk variable yang bertipe string , agar
saat tombol Reset di tekan , seolah – olah nilai masing - masing variable kosong .
1.4 PENUTUP
1.4.1 Kesimpulan :
*MFC dapat digunakan untuk membuat program yang bisa menampilkan dan
memroses suatu gambar.
*Untuk membuat program yang menghasilkan tampilan seperti pada percobaan
awal, jenis projek yang dipilih yaitu ‘Dialog based’.
Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya
16