laporan kalender weton berbasis gui

21
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. Farah Devi.I (7612040033) - Politeknik Elektronika Negeri Surabaya 1

Upload: farah-devi-isnanda

Post on 07-Aug-2015

99 views

Category:

Documents


6 download

DESCRIPTION

Politeknik Elektronika Negeri Surabaya

TRANSCRIPT

Page 1: Laporan Kalender Weton Berbasis Gui

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

Page 2: Laporan Kalender Weton Berbasis Gui

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

Page 3: Laporan Kalender Weton Berbasis Gui

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

Page 4: Laporan Kalender Weton Berbasis Gui

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

Page 5: Laporan Kalender Weton Berbasis Gui

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

Page 6: Laporan Kalender Weton Berbasis Gui

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

Page 7: Laporan Kalender Weton Berbasis Gui

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

Page 8: Laporan Kalender Weton Berbasis Gui

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

Page 9: Laporan Kalender Weton Berbasis Gui

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

Page 10: Laporan Kalender Weton Berbasis Gui

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

Page 11: Laporan Kalender Weton Berbasis Gui

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

Page 12: Laporan Kalender Weton Berbasis Gui

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

Page 13: Laporan Kalender Weton Berbasis Gui

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

Page 14: Laporan Kalender Weton Berbasis Gui

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

Page 15: Laporan Kalender Weton Berbasis Gui

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

Page 16: Laporan Kalender Weton Berbasis Gui

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