Postingan kali ini akan coba dibahas sedikit tentang cara
mengambil waktu system. Pengambilan data ini bermanfaat saat kita membuat
sebuah aplikasi yang membutuhkan data waktu dari komputer yang digunakan
komputer yang menjalankan aplikasi yang telah kita buat.
Untuk bisa mengakses data waktu dari system/komputer, kita
memerlukan sebuah library yaitu “time.h”.
Dengan library tersebut kita bisa mengakses waktu mulai dari detik, menit, jam
dan tanggal. Saat mengakses waktu dalam bentuk jam, menit, detik dan yang
berkaitan dengan waktu system kita juga memanfaatkan struktur (struct tm) yang
telah disediakan didalam library “time.h”.
Selain itu, untuk dapat mengakses waktu kita juga
memanfaatkan fungsi “localtime”.
Berikut ini contoh program mengambil data waktu system kemudian
ditampilkan di textbox, yang mana pengambilan data nya memanfaatkan event
button click.
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
//deklarasi objek yang memanfaatkan class dan struct yang
ada di library time.h
time_t
rawtime;
struct tm * timeinfo;
//deklarasi variabel untuk menampung
data sementara dari pemanggilan fungsi localtime
char jam,menit,detik;
//proses pengambilan data waktu sistem
time (
&rawtime );
timeinfo = localtime (
&rawtime );
//proses pemindahan
data waktu sesuai dengan format ke dalam variabel
jam=timeinfo->tm_hour; //format untuk
jam
menit=timeinfo->tm_min; //format untuk
menit
detik=timeinfo->tm_sec; //format untuk
detik
//menampilkan data waktu yang telah diambil kedalam textBox
textBox1->Text=jam.ToString();
textBox2->Text=menit.ToString();
textBox3->Text=detik.ToString();
}
Program diatas akan mengambil data waktu sesuai dengan format
waktu jam, menit dan detik. Format jam yang diambil adalah format 24 jam.
Program diatas juga bisa kita modifikasi dengan menambahkan
sebuah timer, sehingga bisa memunculkan waktu system secara realtime yang
kemudian ditampilkan kedalam sebuah label. Berikut ini merupakan contoh
programnya yang memanfaatkan event timer_tick dengan menggunakan interval timer
sebesar 100.
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
//deklarasi objek yang memanfaatkan class dan struct yang
ada di library time.h
time_t
rawtime;
struct tm * timeinfo;
//deklarasi variabel untuk menampung
data sementara dari pemanggilan fungsi localtime
char jam,menit,detik;
//proses pengambilan data waktu sistem
time (
&rawtime );
timeinfo
= localtime ( &rawtime );
//proses pemindahan data waktu sesuai dengan format ke
dalam variabel
jam=timeinfo->tm_hour; //format untuk
jam
menit=timeinfo->tm_min; //format untuk
menit
detik=timeinfo->tm_sec; //format untuk
detik
//menampilkan data jam, menit dan detik kedalam sebuah
label
label4->Text=jam.ToString()
+ " : " + menit.ToString() + " : " + detik.ToString();
}
Sebelum menjalankan program diatas, nilai timer1->Enabled
harus disetting “true” agar timer
aktif. Kalau dilihat dari programnya, sama saja yang berbeda hanya jika
menggunakan event yang digunakan adalah button_click maka program hanya
dijalankan 1 kali saja(hanya pada saat button ditekan) sehingga waktu yang
didapat adalah waktu saat penekanan tombol (button). Jika menggunakan event
timer_tick, selama timer aktif maka program akan dijalankan terus menerus
selama event timer_tick berlaku, hal tersebut mengakibatkan pengambilan data
yangterus menerus dan akan menghasilkan data waktu yang tampil di label
bersifat realtime.
Berikut ini merupakan contoh aplikasi yang menggabungkan
kedua program diatas.
#include <time.h>
#pragma once
namespace getSystemTime_VC {
using namespace
System;
using namespace
System::ComponentModel;
using namespace
System::Collections;
using namespace
System::Windows::Forms;
using namespace
System::Data;
using namespace
System::Drawing;
/// <summary>
/// Summary for Form1
/// </summary>
public ref class Form1 : public
System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::GroupBox^ groupBox1;
private: System::Windows::Forms::Label^ label2;
private: System::Windows::Forms::Label^ label1;
private: System::Windows::Forms::Label^ label3;
private: System::Windows::Forms::TextBox^ textBox3;
private: System::Windows::Forms::TextBox^ textBox2;
private: System::Windows::Forms::Label^ label4;
private: System::Windows::Forms::Timer^ timer1;
private: System::ComponentModel::IContainer^ components;
private:
/// <summary>
/// Required designer variable.
/// </summary>
#pragma region Windows
Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew
System::ComponentModel::Container());
this->button1 = (gcnew
System::Windows::Forms::Button());
this->textBox1 = (gcnew
System::Windows::Forms::TextBox());
this->groupBox1 = (gcnew
System::Windows::Forms::GroupBox());
this->label3 = (gcnew
System::Windows::Forms::Label());
this->textBox3 = (gcnew
System::Windows::Forms::TextBox());
this->textBox2 = (gcnew
System::Windows::Forms::TextBox());
this->label2 = (gcnew
System::Windows::Forms::Label());
this->label1 = (gcnew
System::Windows::Forms::Label());
this->label4 = (gcnew
System::Windows::Forms::Label());
this->timer1 = (gcnew
System::Windows::Forms::Timer(this->components));
this->groupBox1->SuspendLayout();
this->SuspendLayout();
//
// button1
//
this->button1->Location =
System::Drawing::Point(155, 19);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(99,
77);
this->button1->TabIndex = 0;
this->button1->Text = L"Ambil
Data Waktu";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this,
&Form1::button1_Click);
//
// textBox1
//
this->textBox1->Location =
System::Drawing::Point(64, 19);
this->textBox1->Name = L"textBox1";
this->textBox1->Size =
System::Drawing::Size(75, 20);
this->textBox1->TabIndex = 1;
//
// groupBox1
//
this->groupBox1->Controls->Add(this->label3);
this->groupBox1->Controls->Add(this->button1);
this->groupBox1->Controls->Add(this->textBox3);
this->groupBox1->Controls->Add(this->textBox2);
this->groupBox1->Controls->Add(this->label2);
this->groupBox1->Controls->Add(this->label1);
this->groupBox1->Controls->Add(this->textBox1);
this->groupBox1->Location =
System::Drawing::Point(12, 12);
this->groupBox1->Name = L"groupBox1";
this->groupBox1->Size =
System::Drawing::Size(260, 105);
this->groupBox1->TabIndex = 2;
this->groupBox1->TabStop = false;
this->groupBox1->Text = L"Get system time";
//
// label3
//
this->label3->AutoSize = true;
this->label3->Font = (gcnew
System::Drawing::Font(L"Microsoft Sans
Serif", 9.75F, System::Drawing::FontStyle::Regular,
System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label3->Location =
System::Drawing::Point(6, 80);
this->label3->Name = L"label3";
this->label3->Size = System::Drawing::Size(39,
16);
this->label3->TabIndex = 6;
this->label3->Text = L"Detik";
//
// textBox3
//
this->textBox3->Location =
System::Drawing::Point(64, 76);
this->textBox3->Name = L"textBox3";
this->textBox3->Size =
System::Drawing::Size(75, 20);
this->textBox3->TabIndex = 5;
//
// textBox2
//
this->textBox2->Location =
System::Drawing::Point(64, 45);
this->textBox2->Name = L"textBox2";
this->textBox2->Size =
System::Drawing::Size(75, 20);
this->textBox2->TabIndex = 4;
//
// label2
//
this->label2->AutoSize = true;
this->label2->Font = (gcnew
System::Drawing::Font(L"Microsoft Sans
Serif", 9.75F, System::Drawing::FontStyle::Regular,
System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label2->Location =
System::Drawing::Point(6, 50);
this->label2->Name = L"label2";
this->label2->Size = System::Drawing::Size(43,
16);
this->label2->TabIndex = 3;
this->label2->Text = L"Menit
";
//
// label1
//
this->label1->AutoSize = true;
this->label1->Font = (gcnew
System::Drawing::Font(L"Microsoft Sans
Serif", 9.75F, System::Drawing::FontStyle::Regular,
System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label1->Location =
System::Drawing::Point(6, 19);
this->label1->Name = L"label1";
this->label1->Size = System::Drawing::Size(34,
16);
this->label1->TabIndex = 2;
this->label1->Text = L"Jam";
//
// label4
//
this->label4->Font = (gcnew
System::Drawing::Font(L"Microsoft Sans
Serif", 27.75F, System::Drawing::FontStyle::Regular,
System::Drawing::GraphicsUnit::Point,
static_cast<System::Byte>(0)));
this->label4->Location =
System::Drawing::Point(12, 125);
this->label4->Name = L"label4";
this->label4->Size = System::Drawing::Size(259,
50);
this->label4->TabIndex = 3;
this->label4->Text = L"00
: 00 : 00";
this->label4->TextAlign =
System::Drawing::ContentAlignment::MiddleCenter;
//
// timer1
//
this->timer1->Tick += gcnew
System::EventHandler(this,
&Form1::timer1_Tick);
//
// Form1
//
this->AutoScaleDimensions =
System::Drawing::SizeF(6, 13);
this->AutoScaleMode =
System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284,
187);
this->Controls->Add(this->label4);
this->Controls->Add(this->groupBox1);
this->Name = L"Form1";
this->Text = L"Get
system time by Rifqi";
this->Load += gcnew
System::EventHandler(this,
&Form1::Form1_Load);
this->groupBox1->ResumeLayout(false);
this->groupBox1->PerformLayout();
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
//deklarasi objek yang memanfaatkan class dan struct yang
ada di library time.h
time_t
rawtime;
struct tm * timeinfo;
//deklarasi variabel untuk menampung
data sementara dari pemanggilan fungsi localtime
char jam,menit,detik;
//proses pengambilan data waktu sistem
time (
&rawtime );
timeinfo
= localtime ( &rawtime );
//proses pemindahan data waktu sesuai dengan format ke
dalam variabel
jam=timeinfo->tm_hour; //format untuk
jam
menit=timeinfo->tm_min; //format untuk
menit
detik=timeinfo->tm_sec; //format untuk
detik
//menampilkan data waktu yang telah diambil kedalam textBox
textBox1->Text=jam.ToString();
textBox2->Text=menit.ToString();
textBox3->Text=detik.ToString();
}
private: System::Void timer1_Tick(System::Object^ sender, System::EventArgs^ e) {
//deklarasi objek yang memanfaatkan class dan struct yang
ada di library time.h
time_t
rawtime;
struct tm * timeinfo;
//deklarasi variabel untuk menampung
data sementara dari pemanggilan fungsi localtime
char jam,menit,detik;
//proses pengambilan data waktu sistem
time (
&rawtime );
timeinfo
= localtime ( &rawtime );
//proses pemindahan data waktu sesuai dengan format ke
dalam variabel
jam=timeinfo->tm_hour; //format untuk
jam
menit=timeinfo->tm_min; //format untuk
menit
detik=timeinfo->tm_sec; //format untuk
detik
//menampilkan data jam, menit dan detik kedalam sebuah
label
label4->Text=jam.ToString()
+ " : " + menit.ToString() + " : " + detik.ToString();
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
//mengaktifkan
timer, saat aplikasi mulai dijalankan
timer1->Enabled=true;
}
};
}
Desain tampilan aplikasi :
0 komentar:
Posting Komentar