praktikum pv 8
Post on 28-May-2017
227 Views
Preview:
TRANSCRIPT
LAPORANPRAKTIKUM VIII
PEMROGRAMAN VISUAL
Judul
Timer & PaintBox
Oleh:
Nurwahyuddi12022038
PROGRAM STUDI TEKNIK ELEKTRO
FAKULTAS TEKNOLOGI INDUSTRI
UNIVERSITAS AHMAD DAHLAN
YOGYAKARTA
2013
I. TUJUAN PRAKTIKUM
1. Mahasiswa dapat menggunakan komponen Timer dan PaintBox
2. Mahasiswa dapat membuat program menggunakan komponen Timer dan
PaintBox
II. DASAR TEORI
Komponen Timer digunakan untuk menghitung waktu tertentu dan kemudian
memanggil event handler OnTimer. Dirasi antara pemanggilan event OnTimer
tersebut diatur dengan property Interval (dalam satuan milidetik). Timer adalah
komponen novisual yang memberikan informasi pewaktuan dalam komputer atau
aplikasi anda. Pada setiap periode waktu tertentu yang dapat diset, komponen ini
mengirimkan sebuah pesan ke system operasi.
Komponen PaintBox (pada palet System) digunakan untuk menyediakan kanvas
untuk tempat menggambar secara bebas.
Page | 1
III. LANGKAH PERCOBAAN
Menggunakan komponen Timer
1. Buatlah proyek baru dan tambahkan komponen berikut serta uahlah nilai
propertinya. Sesuaikan ukuran dan posisi obyek dengan gambar 1.
Komponen Properti Isi
Form Text Menggunakan Timer
Label
Name labelAngka
Text 0
Font.Size 32
RightToLeft Yes
AutoSize False
ButtonName ButtonReset
Text &Reset
ButtonName buttonStartStop
Text &Start
Timer
Name Timer1
Interval 1000
Enabled False
Gambar 1. Tampilan penataan komponen
Page | 2
2. Pada program, tambahkan definisi variable Angka di bawah #pragma
endregion#pragma endregion
int Angka;
3. Buatlah event handler Load untuk obyek Form1private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
Angka = 0;}
4. Buatlah event handler Click untuk obyek buttonResetprivate: System::Void buttonReset_Click(System::Object^ sender, System::EventArgs^ e) {
Angka = 0;labelAngka->Text=Convert::ToString(Angka);
}5. Buatlah event handler Click untuk obyek buttonStartStop
private: System::Void buttonStartStop_Click(System::Object^ sender, System::EventArgs^ e) {
if (buttonStartStop->Text->Equals("&Start")){timer1->Enabled = true;buttonStartStop->Text = "&Stop";
}else {
timer1->Enabled = false;buttonStartStop->Text = "&Start";
}}
6. Buatlah event handler Tick untuk obyek timer1private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
Angka++;labelAngka->Text = Convert::ToString(Angka);
}7. Jalankan.
8. Ubahlah properti Interval pada timer1 menjadi 100. Jalankan.
Page | 3
Menambah komponen PictureBox
1. Perbesar ukuran form program diatas dan tambahkan komponen berikut:
Komponen Properti Isi
PictureBox Name PictureBox1
Height 100
Width 100
Gambar 2. Penambahan PictureBox
2. Buat event handler untuk Paint pada pictureBox1 sebagai berikut:private: System::Void pictureBox1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { e->Graphics->DrawEllipse(System::Drawing::Pens::Red,
5, 5, 90, 90);e->Graphics->DrawLine(System::Drawing::Pens::Blue, 50, 50,Math::Round(50+40*Math::Sin(Angka*Math::PI/180)),Math::Round(50-40*Math::Cos(Angka*Math::PI/180)));
}
3. Modifikasi event handler Tick untuk obyek temer1private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
Angka++; labelAngka->Text = Convert::ToString(Angka); pictureBox1->Refresh();
}
4. Jalankan.
Page | 4
IV. HASIL DAN PEMBAHASAN
Menggunakan komponen Timer
Pada praktikum ini akan dibuat sebuah program pewaktuan menggunakan Timer.
Timer adalah komponen novisual yang memberikan informasi pewaktuan dalam
komputer dan bisa juga dugunakan dalam pewaktuan aplikasi. Dalam program
ini, Label digunakan sebagai komponen yang menunjukkan pewaktuan tersebut.
Ada beberapa komponen pedukung lainnya yang akan digunakan, antara lain:
Form
2 buah Button
1 buah Timer
Untuk memulai membuat program, buat terlebih dahulu sebuah form baru dan
beri nama form tersebut dengan nama yang berbeda agar form tidak saling
tertimpa dengan form yang telah ada (misalnya beri nama Form Menggunakan
Timer). setelah form baru muncul, masukkan komponen-komponen yang
digunakan dan tata komponen-komponen tersebut seperti yang terlihat pada
gambar 1, kemudian ubah properti-propertinya sesuai tabel pada langkah
percobaan.
Langkah selanjutnya yakni memasukkan event handler masing-masing untuk
setiap komponen dan sebelumnya tambahkan terlebih dahulu Int Angka;
untuk mendefinisikan nilai/variabel angka yang digunakan. Int angka;
ditambahkan tepat berada dibawah #pragma endregion dan Untuk event
handler yang digunakan sebelumnya telah tercantum pada langkah percobaan.
Page | 5
Berikut penjelasannya:
Event handler Load untuk obyek Form1
Penjelasan:
Event handler digunakan untuk mendefinisikan Angka = 0 ketika dimuat dalam Form.
Event handler Click untuk obyek ButtonReset
Penjelasan :
Angka dimulai dengan kondisi Nol;Teks pada labelAngka akan dikonversi ke tipe data String;
Event handler Click untuk obyek buttonStartStop
Penjelasan :
Jika teks pada buttonStartStop yang bertuliskan “Start” di klik, maka timer akan berjalan sesuai interval yang diberikan dan teks pada buttonStartStop berubah menjadi “Stop”.Jika tidak maka timer tidak berjalan dan teks pada buttonStartStop bertuliskan “Start”. Berarti ini dalam kondisi stop.
Page | 6
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {Angka = 0;}
private: System::Void buttonReset_Click(System::Object^ sender, System::EventArgs^ e){Angka = 0; labelAngka->Text = Convert::ToString(Angka);}
private: System::Void buttonStartStop_Click(System::Object^ sender, System::EventArgs^ e)
{if(buttonStartStop->Text->Equals("&Start")){timer1->Enabled = true;buttonStartStop->Text = "&Stop";}else {timer1->Enabled = false;buttonStartStop->Text = "&Start";}}
Event handler Tick untuk obyek Timer1
Penjelasan :
Nilai angka selalu bertambah dan tak terbatas.Teks pada labelAngka di convert menjadi string yaitu Angka.
Setelah semua event handler dimasukkan pada setiap komponen, maka program telah
dapat dijalankan, dan berikut hasil debuggingnya:
Tampilan awal:
Gambar 3. Tampilan awal setelah Debugging
Setelah Button Start diKlik
Gambar 4. Tampilan setelah buttonStart diklik
Setelah button Reset diKlik
Gambar 5. Tampilan setelah button Reset diklik
Page | 7
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {Angka++;labelAngka->Text = Convert::ToString(Angka);}
Ketika mengubah nilai interval dari 1000 menjadi 100 maka kecepatan perubahan
angka pada labelAngka menjadi bertambah semakin cepat.
Menambahkan komponen PictureBox
Sesuai dengan judul diatas, maka pada program yang telah dibuat sebelumnya akan
dimodifikasi yakni dengan menambahkan komponen PictureBox dan mengubah
property seperti yang telah terlihat pada langkah percobaan. Setelah PictureBox
ditambahkan dan diubah nilai propertinya, selanjutnya yaki memasukkan event
handler agar pictureBox dapat bekerja sesuai prosedur. Berikut event handler serta
penjelasannya:
Event handler untuk paint pada pictureBox1:
Penjelasan :
Digunakan untuk membuat gambar lingkaran berwarna merah. Penulisan angka “5, 5” berfungsi untuk penempatan posisi lingkaran terhadap sumbu X dan sumbu Y. Angka yang pertama adalah nilai untuk sumbu X, sedangkan angka ke dua untuk sumbu Y. Jika angka diganti maka posisi lingkaran juga akan berubah
Modifikasi event hadler Tick untuk obyek Timer1:
Page | 8
private: System::Void pictureBox1_Paint(System::Object^ sender, System::Windows::Forms::PaintEventArgs^ e) { e->Graphics->DrawEllipse(System::Drawing::Pens::Red,
5, 5, 90, 90);e->Graphics->DrawLine(System::Drawing::Pens::Blue, 50, 50,Math::Round(50+40*Math::Sin(Angka*Math::PI/180)),Math::Round(50-40*Math::Cos(Angka*Math::PI/180)));
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
Angka++;labelAngka->Text = Convert::ToString(Angka);pictureBox1->Refresh();
}
Penjelasan :
Program sebelumnnya hanya ditambahkan event yang telah dilingkari (ditanndai) yang fugsinnya yaitu untuk merefresh (menyegarkan) kembali obyek pada pictureBox1.
Setelah event handler telah dimasukkan dan dimodifikasi, maka program
menggunakan pictureBox telah dapat dijalankan, dan berikut tampilannya:
Tampilan awal setelah proses Debugging
Gambar 6. Tampilan awal sebelum di debug
Tampilan setelah tombol Start diklik:
Gambar 7. Tampilan setelah tombol Start diklik
Tampilan setelah tombol Reset diklik
Gambar 8. Tampilan setelah tombol Reset diklik
Page | 9
Seperti yang telah terlihat, bahwa pada program yang telah dibuat masih memliki
banyak kekurangan pada fungsinya. Misalnya seperti apabila kita mengklik
tombol Reset. Ketika mengklik tombol reset sedangkan tombol stop belum diklik,
maka Timer yang digunakan akan terus berjalan walaupun tombol reset telah
diklik. Hal tersebut dikarenakan kurangnya dalam hal pemasukkan event handler
untuk fungsi tersebut. Apabila dilogikakan jika diklik tombol reset, maka
Timerpun akan berhenti. Pelogikaan tersebut harusnya dimasukkan juga pada
source code untuk ButtonReset sendiri.
V. TUGASProgram menggerakkan tulisan ke kiri dan ke kanan (Tulisan Berjalan)
Komponen Properti Isi
Form Text Tulisan Berjalan
Label
Name label1
Text Nurwahyuddi
Font Matura MT Script Capital
Font.Size 50
Timer
Name timer1
Enabeld True
Interval 10
Komponen-komponen dan properti-properti yang tertera pada label diatas
digunakan untuk membuat aplikasi Tulisan Berjalan.
Page | 10
Dan dengan menambahkan event handler sebagai berikut agar aplikasi dapat
dijalankan yang telah disesuaikan dengan location pada property dengan besarnya
form sehingga Label dapat berjalan.
Penjelasan Event handler :
a. Penetapan variabel dengan integer. Lokasi sumbu X pada label dinamakan
x. lokasi sumbu Y pada label dinamakan y.
b. Angka 698 adalah posisi batas akhir label terlihat pada form bagian kanan.
Angka -446 adalah posisi batas akhir label terlihat pada form bagian kiri.
c. Sistem pemindahan label agar bisa bergerak terus dengan cara mengurangi
titik / pixel pada sumbu X.
Page | 11
Form
Timer
Label
#pragma endregionprivate: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {int x = label1->Location.X;int y = label1->Location.Y;if (x < -446) {
x =698;}label1->Location = System::Drawing::Point(x-1, y);
}
Hasil debugging yang didapat adalah seperti berikut beserta penjelasannya :
Gambar 9. Tampilan tulisan Berjalan
Setelah dilakukan debugging, label pada aplikasi langsung bergerak ke kiri
sejajar sumbu X berkurang 1 titik / pixel dengan interval waktu dari satu titik
ke titik berikutnya adalah 10 mS.
Mengubah Jalannya Label menjadi bergerak maju
Mengubah program dari :if (x < -446){x = 698;}label1->Location = System::Drawing::Point(x-1, y);
menjadi :if (x > 698){x = -446;}label1->Location = System::Drawing::Point(x+1, y);
Page | 12
Sistem pemindahan label agar bisa bergerak terus dengan cara menambah titik / pixel
pada sumbu X. Sehingga bergerak ke kanan.
Hasil debugging yang didapat adalah seperti berikut beserta penjelasannya :
Gambar 10. Tulisan berjalan maju
a. Setelah dilakukan debugging, label pada aplikasi langsung bergerak ke kanan
sejajar sumbu X bertambah 1 titik / pixel dengan interval waktu dari satu titik
ke titik berikutnya adalah 10 mS.
Page | 13
VI. KESIMPULAN Komponen Timer digunakan untuk menghitung waktu tertentu dan kemudian
memanggil event handler OnTimer.
Komponen PaintBox digunakan untuk menyediankan kanvas untuk tempat
menggambar secara bebas.
Tanda (+) dan (-) pada aplikasi Menggunakan Timer dengan tampilan akhir
menyerupai jam dinding, berpengaruh terhadap arah putaran jarum. Jika tanda
(+) dan (+) atau (-) dan (-) maka jarum akan berputar berlawanan jarum jam
dan searah dengan putaran rotasi bumi atau putaran sudut. Jika tanda (+) dan
(-) atau (-) dan (+) maka jarum akan berputar searah jarum jam atau
berlawanan dengan putaran rotasi bumi atau putaran sudut.
Cara menggerkkan tulisan ke kiri adalah dengan mengurangi nilai lokasi
sumbu X titik / pixel lokasi tulisan pada form dengan intercal tertentu.
Cara menggerkkan tulisan ke kanan adalah dengan menambah nilai lokasi
sumbu X titik / pixel lokasi tulisan pada form dengan intercal tertentu.
VII. JAWABAN PERTANYAANSoal :
1. Mengapa jika button Reset ditekan = 0, tetapi kembali berjalan dan tidak
berhenti ?
2. Bagaimana jika button reset maka Timer berhenti ?
3. Kenapa label berjalan mundur ?
Page | 14
Jawab :
1. Karena pada event yang digunakan tidak terdapat fungsi jika button Reset
diklik maka Timer berhenti. Sebagai solusinnya, pada buttonReset bisa
ditambahkan event handler timer1->Stop(); dimana berfungsi untuk
menghentikan kerja timer ketika ButtonReset diklik.
2. Sama halnya dengan pertanyaan sebelumnya, maka solusinya yakni dengan
menambahkan event handler timer1->Stop(); dimana fungsinya yakni
untuk mengkondisikan agar Timer berhenti saat ButtonReset diklik.
3. Label bisa berjalan mundur karena event memang disetting agar Label
berjalan mundur. Cara membuat Label berjalan menjadi maju / bergerak ke
kanan :
Pertama : Tentukan dulu batas akhir tulisan terlihat pada form yang
digunakan.
Kedua : Mengubah program sebagai berikut :
Mengubah program dari :if (x < -446){x = 698;}label1->Location = System::Drawing::Point(x-1, y);menjadi :if (x > 698){x = -466;}label1->Location = System::Drawing::Point(x+1, y);
yang berubah dari event yang digunakan sebelumnya yaitu tanda (<) menjadi
(>), pertukaran tempat/nilai antara pendefinisian IF, dan perubahan tanda (–)
menjadi (+).
Sistem pemindahan label agar bisa bergerak terus dengan cara menambah titik
/ pixel pada sumbu X. Sehingga bergerak ke kanan.
VIII. REFERENSIKartika Firdausy, S.T., M.T., Petunjuk Praktikum Pemrograman Visua. Yogyakarta
Page | 15
top related