Senin, 30 April 2012

Menampilkan data pada table menggunakan DataGridView – Visual C++


Menampilkan sebuah data merupakan salah satu fungsi dari sebuah aplikasi. Tampilan data tersebut banyak macamnya, terutama data teks. contohnya saja, menampilkan data mahasiswa pada sebuah tabel. Untuk menampilkan data pada sebuah tabel bisa digunakan berbagai mecam tool, seperti kombinasi label yang disusun pada sebuah tableLayoutEditor ataupun langsung menggunakan tool yang dikhususkan untuk menampilkan data pada sebuah tabel yaitu DataGridView. DataGridView ini bisa digunakan untuk menampilkan data yang berasal dari inputan maupun data yang berasal dari sebuah data base.

Kamis, 26 April 2012

App. Path, Mengakses alamat file project – Visual C++


Sebelum membahas tentang bagaimana contoh penggunaan app.path, sebaiknya kita pahami dahulu apa itu app.path.
app. Path merupakan singkatan dari application path, yang mana app path merupakan alamat default dari folder project yang kita buat (jika masih berbentuk project) atau alamat aplikasi yang berekstensi “.exe” (jika sudah berupa aplikasi yang terinstal) pada komputer.
App path ini memudahkan seorang programmer untuk mendapatkan alamat default folder project, yang nantinya bisa digunakan sebagai alamat referensi pemanggilan sebuah file yang berada di folder yang sama dengan folder project. Contoh kasusnya, misalkan kita ingin memanggil/menampilkan sebuah gambar pada aplikasi berbasis visual C++ yang sedang dibuat. Jika kita memanggil file gambar tersebut dengan sintak berikut : 

             label1->Image=Image::FromFile("C:\\image\\green2.png" );

sintak diatas hanya bisa mengakses file “green2.png” yang ada didalam drive C di folder “image”. Akses file tersebut tidak fleksibel, dan jangan heran jika suatu saat ada kesalahan atau error yang muncul. Kesalahan atau error tersebut bisa terjadi bila file “green2.png” tidak ada pada drive C dan di dalam folder image karena di hapus atau dipindahkan ketempat/folder lain. Selain itu, aplikasi kita juga bisa dikatakan hanya bisa berjalan dikomputer kita sendiri. Jika kita ingin memindahkan file green.png tersebut, berarti kita juga harus mengganti sintak yang menunjukkan alamat dimana file tersebut disimpan.
Agar akses file tersebut bisa lebih fleksibel dan mengurangi kemungkinan error, maka dibutuhkan app path. Dalam penggunaan app path, selama file yg ingin kita akses berada difolder yang sama dengan folder project, kita bisa menggunakan app path sebagai alamat defaultnya. Jadi jika suatu saat kita ingin memindahkan file project atau meng-copy file ke drive atau ke komputer lainnya, dan kita ingin mengakses file kita tidak perlu lagi mengganti alamat drive penyimpanan file yang akan kita akses tersebut. Karena alamat file yang kita gunakan adalah alamat folder project, dimana kita juga menyimpan file yang akan kita akses tersebut didalam folder project tersebut.
Semua bahasa pemrograman pasti menyediakan sintak untuk memanggil atau mengetahui alamat default project (app path). Dibawah ini merupakan contoh penggunaan app path pada aplikasi yang dibuat  berbasis pemrograman visual c++.

Jumat, 20 April 2012

Ambil Waktu System (Komputer) – Visual C++


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.

Timer – Visual C++


Timer merupakan sebuah tool yang disediakan oleh visual c++ sebagai tool pengolah data yang berkaitan dengan waktu. Dalam menggunakan timer, kita harus mengaktifkannya terlebih dahulu dengan mengubah nilai properties “Enabled” nya menjadi “true”.
Selain mengatur properties enable nya, yang harus kita perhatikan jika kita menggunakan timer adalah pengaturan properties “interval” nya. Interval ini digunakan untuk mendefinisikan tunda waktu timer untuk menjalankan program yang ada didalam fungsi “timer_tick”. Misalnya kita atur interval timer adalah 1000 (nilai 1000 tersebut memiliki satuan waktu milidetik atau 1 detik), kemudian didalam fungsi timer_tick (fungsi yang akan kita jumpai jika kita double klik pada timer) kita buat sebuah program untuk menampilkan sebuah tulisan pada label, maka program menampilkan tulisan pada label tersebut akan dijalankan setiap satu detik sekali.
Untuk  lebih jelasnya, dibawah ini akan dijelaskan mengenai beberapa cara menggunakan timer pada visual c++ (GUI).

timer1->Interval = 1000;
Sintak diatas berfungsi untuk mendefinisikan nilai interval dari timer. Nilai interval tersebut dapat kita atur sesuai dengan keinginan.

timer1->Enabled = false;
Sintak diatas berfungsi untuk mengatur enable dari timer. Enable disini artinya adalah mengaktifkan atau menonaktifkan timer yang akan kita atur. Jika ingin mengaktifkan maka nilai enabled nya adalah “true” sedangkan untuk menonaktifkan adalah “false”.


Berikut ini merupakan contoh penggunaan timer pada sebuah aplikasi.

Rabu, 18 April 2012

Merubah Warna Text Pada Tampilan Console – Belajar Bahasa C++


Pada saat kita membuat sebuah program sederhana ataupun membuat sebuah aplikasi yang berbasiskan console application, pada layar output (console) secara default warna yang background dan tulisan yang kita lihat adalah warna hitam untuk background dan warna putih untuk tulisan/text. Warna tersebut sebenarnya dapat kita rubah dengan warna yang sesuai dengan keinginan kita.
Di C++, sudah disediakan library yang bisa kita gunakan untuk merubah warna text dan warna background tampilan.  Library tersebut adalah “windows.h”. berikut ini merupakan contoh program untuk merubah warna text pada tampilan console pada C++ console application.


#include <iostream>  //preposessor
#include <Windows.h> //preprosessor
using namespace std; //akses library std

void main(){  //awal program, ditandai dengan fungsi main bertipe void dan 
              //kurung kurawal buka
       HANDLE hstdout = GetStdHandle(STD_OUTPUT_HANDLE);      //membuat objek hstdout
      
       SetConsoleTextAttribute(hstdout,1);//program untuk merubah warna text
       cout << "Warna 1,  " << endl;
       SetConsoleTextAttribute(hstdout,2);
       cout << "Warna 2,  " << endl;
       SetConsoleTextAttribute(hstdout,3);
       cout << "Warna 3,  " << endl;
       SetConsoleTextAttribute(hstdout,4);
       cout << "Warna 4,  " << endl;
       SetConsoleTextAttribute(hstdout,5);
       cout << "Warna 5,  " << endl;
       SetConsoleTextAttribute(hstdout,6); 
       cout << "Warna 6, " << endl;
       SetConsoleTextAttribute(hstdout,7);
       cout << "Warna 7, " << endl;
       SetConsoleTextAttribute(hstdout,8); 
       cout << "Warna 8, " << endl;
       SetConsoleTextAttribute(hstdout,9);
       cout << "Warna 9, " << endl;
       SetConsoleTextAttribute(hstdout,10); 
       cout << "Warna 10, " << endl;
       SetConsoleTextAttribute(hstdout,11);     
       cout << "Warna 11, " << endl;
       SetConsoleTextAttribute(hstdout,12); 
       cout << "Warna 12, " << endl;
       SetConsoleTextAttribute(hstdout,13); 
       cout << "Warna 13, " << endl;
       SetConsoleTextAttribute(hstdout,14);  
       cout << "Warna 14, " << endl;
       SetConsoleTextAttribute(hstdout,15);  
       cout << "Warna 15, " << endl;
                                        
       cout <<endl<<endl;
       system("pause");     //menunda sementara berakhirnya program sampai ada 
                            //penekanan tombol keyboard
}      //akhir dari fungsi main

hasil tampilan output :




untuk merubah warna text, kita tinggal mengubah nilai yang ada di dalam kurung pada sintak  "SetConsoleTextAttribute(hstdout,15);" mulai dari 1-15. 

Minggu, 15 April 2012

TUGAS : Pemrograman komputer IAS


Soal :
Buat program pada komputer IAS sebgai berikut :
-          Kalikan data di memori alamat 0551 dan data dimemori alamat 0552
-          Simpan hasil perkalian tersebut dimemori (MSB di alamat 0556 dan LSB dialamat 0557)
-          Jumlahkan data LSB hasil perkalian tersebut dengan isi memori 0553
-          Simpan hasil penjumlahan tersebut di alamat 0559
-          Program Counter ada dimemori 0011

1.      Buat program komputer IAS nya
2.      Gambar peta memori, perlihatkan isinya, dimana program dan data diletakkan
3.      Tulias urutan instruction cyclenya

Jawaban :
     1.      Program komputer IAS


2.   Gambar peta memori


3.   Instruction cycle

1.      Instruction cycle 1
Fetch 1 :
·         PC = 0011
·         PC MAR
·         M(MAR) MBR
·         MBR(20:39) IBR
·         MBR(0:7) IR                        : IR = LOAD to MQ
·         MBR(8:19) MAR                 : MAR = 0551
Execute 1:
·         M(0551) MBR                     : MBR = M(0551) = A
·         MBR → MQ                             : MQ = A

2.      Instruction cycle 2
Fetch 2 :
·         IBR (0:7) IR                         : IR = MUL
·         IBR (8:19) → MAR                  : MAR = M(0552)
·         PC = PC + 1
Execute 2 :
·         M(0552) MBR                     : MBR = MAR(0552) = B
·         MSB(MBR*MQ) AC          : AC = MSB(MBR*MQ)
LSB(MBR*MQ) MQ          : MQ = LSB(MBR*MQ)

3.      Instruction cycle 3
Fetch 3 :
·         PC MAR                              : MAR = PC = 0012
·         M(MAR) MBR                     : MBR = M(0012)
·         MBR(0:7) IR                        : IR = STOR
·         MBR(8:19) MAR                 : MAR = M(0556)
·         MBR(20:39) IBR
Execute 3 :
·         AC MBR                              : MBR = AC = MSB(M(0552)*MQ)
·         MBR M(MAR)                     : M(0556) = MBR

4.      Instruction cycle 4
Fetch 4 :
·         IBR (0:7) IR                         : IR = LOAD MQ to AC
·         PC = PC + 1
Execute 4 :
·         MQ AC                               : AC = MQ = LSB(MQ*M(0552))

5.      Instruction cycle 5
Fetch 5 :
·         PC MAR                              : MAR = PC = 0013
·         M(MAR) MBR                    : MBR = M(0013)
·         MBR(0:7) IR                        : IR = STOR
·         MBR(8:19) → MAR                 : MAR = M(0557)
·         MBR(20:39) IBR
Execute 5 :
·         AC MBR                              : MBR = AC = LSB(M(0552)*MQ)
·         MBR M(MAR)                     : M(0556) = MBR

6.      Instruction cycle 6
Fetch 6 :
·         IBR (0:7) IR                         : IR = ADD
·         IBR (8:19) MAR                  : MAR = M(0553)
·         PC = PC + 1
Execute 6 :
·         M(0553) MBR                    : MBR = MAR(0553) = B
·         MBR + AC AC

7.      Instruction cycle 7
Fetch 7 :
·         PC MAR                              : MAR = PC = 0014
·         M(MAR) → MBR                    : MBR = M(0014)
·         MBR(0:7) IR                        : IR = STOR
·         MBR(8:19) MAR                 : MAR = M(0559)
Execute 7 :
·         AC MBR                              : MBR = AC
·         MBR M(MAR)                     : M(0559) = MBR