Membuat Game Mencocokan Objek dengan C++ (Part 5)
|
|
|
- Hamdani Susman
- 9 tahun lalu
- Tontonan:
Transkripsi
1
2 Membuat Game Mencocokan Objek dengan C++ (Part 5) Oleh: Sendy PK Pada Tutorial kali ini kita akan menambahkan lebih banyak pilihan untuk menyesuaikan dalam game. Kita akan menambahkan kemampuan bagi pengguna untuk menyesuaikan ukuran blok dan jumlah blok di board game. Dalam rangka untuk mendapatkan nilai-nilai dari user kita akan membuat dialog box untuk memint... Pada Tutorial kali ini kita akan menambahkan lebih banyak pilihan untuk menyesuaikan dalam game. Kita akan menambahkan kemampuan bagi pengguna untuk menyesuaikan ukuran blok dan jumlah blok di board game. Dalam rangka untuk mendapatkan nilai-nilai dari user kita akan membuat dialog box untuk meminta mereka untuk masukan. Langkah pertama adalah untuk memperbarui game board dan dokumen kelas untuk dapat menyesuaikan pilihan ini. Dimulai dengan game board,kita akan membuat beberapa penyesuaian yang sangat kecil untuk file header saja. Kita sudah memiliki fungsi "getter" di kelas game board untuk mendapatkan nilai-nilai lebar dan tinggi dari blok dalam piksel dan jumlah baris dan kolom di board tulis. Sekarang kita akan menambahkan fungsi "setter" untuk mengatur nilai-nilainya. Update wilayah fungsi accessor pada game board di kelas SameGameBoard.h seperti berikut ini. /* Accessor functions to get/set board size information */ int GetWidth(void) const return m_nwidth; void SetWidth(int nwidth)
3 m_nwidth = (nwidth >= 3)? nwidth : 3; int GetHeight(void) const return m_nheight; void SetHeight(int nheight) m_nheight = (nheight >= 3)? nheight : 3; int GetColumns(void) const return m_ncolumns; void SetColumns(int ncolumns) m_ncolumns = (ncolumns >= 5)? ncolumns : 5; int GetRows(void) const return m_nrows; void SetRows(int nrows) m_nrows = (nrows >= 5)? nrows : 5; Kita telah menambahkan set function setelah get function untuk lebih mudah dibaca dan memahami kelas. Fungsi yang cukup sederhana, kita menggunakan tes sederhana pada masing-masing nilai memastikan bahwa mereka tidak pergi di bawah nilai tertentu, tiga untuk pixel tinggi / lebar dan lima untuk nilai baris / kolom. Jumlah yang lebih kecil dari ini akan mengacaukan estetika pada game board. Berikutnya kita update dokumen dengan cara yang sama yaitu tambahkan fungsi "setter" untuk menuju fungsi"getter". Fungsi-fungsi ini ditambahkan ke SameGameDoc.h file header pada game board seperti berikut. int GetWidth(void) return m_board.getwidth(); void SetWidth(int nwidth) m_board.setwidth(nwidth); int GetHeight(void) return m_board.getheight(); void SetHeight(int nheight) m_board.setheight(nheight); int GetColumns(void) return m_board.getcolumns(); void SetColumns(int ncolumns) m_board.setcolumns(ncolumns); int GetRows(void) return m_board.getrows(); void SetRows(int nrows) m_board.setrows(nrows); Sekarang yang akan kita lakukan adalah mengubah ukuran game board, mengubah ukuran jendela dan member warna semua ini ada di event handler pada pilihan menu. Kita akan membuat dialog baru untuk melakukannya. Membuat dialog baru dengan cara Open Resource View dibawah "View" menu "Source View" atau tombol akselerator Ctrl + Shift + E. Anda akan mengenali pandangan ini dari ketika kita diedit sistem menu untuk game kita. Kali ini bukan membuka opsi Menu, buka opsi Dialog. Anda akan melihat bahwa ada satu dialog sudah ada dengan ID dari IDD_ABOUTBOX. Jika Anda perhatikan di bawah menu About ada dialog yang muncul dengan informasi "About. Dialog ini secara otomatis dihasilkan oleh MFC Application Wizard pada saat kita pertama kali set up project. Tambahkan dialog baru, cukup klik-kanan pada pilihan Dialog di Source View dan pilih "Insert Dialog" dan New, sebagian besar masih kosong, dialog akan muncul dengan ID dari IDD_DIALOG1 seperti gambar di bawah.
4 Setelah Anda klik dua kali pada pilihan IDD_DIALOG1, editor dialog akan muncul di jendela utama dalam Visual Studio, lalu akan tampil seperti gambar berikut Kita akan menggunakan dialog ini untuk meminta pengguna untuk kedua board ukuran, baris dan kolom, dan ukuran blok, lebar dan tinggi, jadi kita harus membuatnya generik. Dialog ini tidak akan berbuat banyak sampai kita menambahkan beberapa kontrol baru. Kita akan menambahkan label, mengedit kotak, dan tombol lain untuk dialog untuk membuatnya fberfungsi. Pertama kita perlu untuk membuka editor Toolbox dialog melalui menu View kemudian "Toolbox" atau Ctrl + Alt + X. Mari kita lihat pada Toolbox.
5 Ini adalah daftar dari Common Controls. Kita akan menggunakan "Static Text" kontrol untuk menunjukkan apa yang input pengguna yang seharusnya masukan untuk masing-masing "Kontrol Edit". Kita juga akan menambahkan sebuah tombol untuk memungkinkan pengguna untuk mengembalikan nilai default. Untuk menambahkan kontrol, cukup klik dan tarik kontrol yang diinginkan dari Toolbox tepat untuk dialog dalam Dialog Editor. Mari kita mulai dengan tombol, klik dan tarik salah satu tepat di bawah Ok dan Cancel, seperti berikut.
6 Untuk mengubah teks pada tombol, klik pada button1 lalu pada text properti ketikkan "Default". Sekarang kita perlu beberapa "Edit Controls" tambahnya. Klik dan tarik beberapa pada dialog. Dalam rangka untuk garis mereka Anda dapat klik pada penguasa atas dan ke kiri dalam Dialog Editor untuk membuat panduan yang snap ke kontrol. Saya telah menambahkan beberapa untuk berbaris mengedit kontrol saya dengan tombol. Sekarang kita tambahkan beberapa "Static Text" kontrol untuk menjelaskan kepada pengguna apa yang diketik ke dalam Edit Controls. Tambahkan dua new guides yang akan melapisi teks statis sampai ke tengah mengedit kontrol dan memperluas ukuran teks statis. Kontrol teks ini akan memiliki teks mereka dimasukkan pemrograman sehingga dapat berubah tergantung pada jenis data yang kita inginkan.
7 Sekarang kita akan mengubah judul dialog, teks statis dan nilai-nilai dalam mengedit kontrol. Untuk melakukannya kita perlu membuat beberapa perubahan pada ID dari kontrol yang kita telah menambahkan. Ketika mereka duduk kita tidak dapat berinteraksi dengan kontrol Teks Static; mereka membutuhkan ID baru. Tarik jendela properti dengan menekan Alt + Enter atau dari menu View-> Windows- Lain> Properties Window. Ketika Anda mengklik pada kontrol, properti untuk kontrol yang akan datang. Saya sudah memilih opsi ID yang perlu diubah.
8 ID IDC_STATIC adalah ID disediakan yaitu untuk semua kontrol teks statis generic, kita ubah menjadi IDC_STATIC_TEXT_1. Lalu kita ubah ID untuk semua kontrol dan dialog. Untuk melakukan hal ini, biarkan jendela properti dan klik pada kontrol yang berbeda. Hal ini akan mengisi properti untuk itu kontrol tertentu. Kemudian hanya mengubah ID. Kita akan membutuhkan teks statis atas menjadi IDC_STATIC_TEXT_1 dan lainnya IDC_STATIC_TEXT_2. Kemudian mengubah nama mengedit kontrol untuk IDC_EDIT_VALUE_1 untuk bagian atas kontrol edit dan IDC_EDIT_VALUE_2 lainnya. Kita melakukan ini agar kita secara dinamis dapat mengubah teks tergantung pada data yang kita ingin pengguna untuk memasukkan. Tombol kita menambahkan untuk "Default" kita akan mengubah nama untuk IDC_BUTTON_DEFAULTS. Akhirnya mengubah ID dialog dari IDD_DIALOG1 ke IDD_DIALOG_OPTIONS. Perubahan ini akan membantu saat membuat dialog dan menampilkan kepada pengguna. Setelah dialog diatur dalam editor dialog, kita perlu untuk menghasilkan kode untuk itu. Cukup
9 sederhana, klik kanan pada dialog itu sendiri, tidak ada kontrol, dan pilih "Add Class..." kita akan melihat MFC Class Wizard. Ini memberi kita sebuah kelas yang mewakili dialog ini yang telah kita buat yang kita dapat gunakan dalam kode kita. Tambahkan nama kelas COptionsDialog dan semuanya akan mengisi sendirinya. Mengklik finish akan menghasilkan file OptionsDialog.h dan OptionsDialog.cpp. Sebelum kita melihat kode yang telah dibuat bagi kita mari kita membuat beberapa variabel di kelas ini yang mewakili kontrol yang kita menambahkan. Kembali ke editor dialog dan klik kanan pada masing-masing kontrol, satu per satu, dan pilih "Add Variable " untuk membuka Add Member Variabel Wizard. Ini akan menambahkan variabel ke kelas yang baru saja kita buat dan mengasosiasikannya dengan kontrol yang kita benar-diklik. Saat kita pertama kali mengklik kontrol teks statis wizard akan terlihat seperti gambar di bawah ini. Isi Nama Variabel dengan m_ctrlstatictext1 seperti yang saya lakukan dan klik Finish. Ini akan menambahkan semua kode yang diperlukan untuk kelas dialog.
10 Kita ingin variabel kontrol dari jenis CStatic sehingga kita dapat mengubah teks dalam kontrol teks statis setiap kali kita inginkan. Kita akan memilih pilihan yang berbeda ketika kita sampai ke edit kontrol. Ulangi ini dengan kontrol teks statis kedua memberikan nama variabel m_ctrlstatictext2. Sekarang klik kanan pada kontrol edit pertama dan pilih "Add Variable..." Kali ini kita ingin "Kontrol Variabel" tetapi variabel kontrol Nilai jadi drop-down "Kategori" dan pilih nilai. Ini akan mengubah "Variabel Type" pilihan dari jenis kontrol MFC untuk jenis nilai default menjadi CString, tapi pilih "int". Ketik nama variabel m_nvalue1. Di sini kita menetapkan integer sebagai tempat penyimpanan untuk nilai di kontrol edit dan ketika pengguna mengklik Ok, nilai yang akan disimpan dalam variabel yang telah kita buat tanpa kita menulis kode untuk melakukannya. Lihat gambar di bawah untuk melihat apa yang kita lakukan.
11 Ulangi proses ini dengan kontrol edit kedua dan beri nama m_nvalue2. Sekarang kita akan menambahkan event-handler kelas untuk tombol Default. Cukup klik kanan pada tombol dan pilih "Add Event Handler..." lalu akan muncul Event Handler Wizard yang akan memungkinkan Anda untuk membuat segala macam event untuk semua kelas Anda. Jika Anda mengklik kanan pada tombol Default wizard akan default ke BN_CLICKED, yang merupakan singkatan dari tombol diklik, event untuk tombol default. Cukup klik "Add dan Edit" dan Anda akan dibawa ke kode pilihan dialog di mana event handler tombol akan menunggu untuk Anda.
12 Terakhir yang kita akan butuhkan adalah override untuk fungsi OnInitDialog. Dari header OptionsDialog membuka jendela properti dan pilihoverride Buttons. Lalu akan tampil daftar override, kita sedang mencari untuk OnInitDialog. Klik drop-down dan Add OnInitDialog. akan terlihat seperti gambar di bawah ini. Pada poin ini akan ada banyak MFC yang dihasilkan oleh kode, pertama mari kita lihat, dan tambahkan, file header OptionsDialog.h. Berikut adalah source codenya. #pragma once
13 #include "afxwin.h" // COptionsDialog dialog class COptionsDialog : public CDialog DECLARE_DYNAMIC(COptionsDialog) public: // Standard Constructor COptionsDialog(bool browcolumn, CWnd* pparent = NULL); virtual ~COptionsDialog(); // Dialog Data enum IDD = IDD_DIALOG_OPTIONS ; protected: // DDX/DDV support virtual void DoDataExchange(CDataExchange* pdx); DECLARE_MESSAGE_MAP() public: CStatic m_ctrlstatictext1; CStatic m_ctrlstatictext2; int m_nvalue1; int m_nvalue2; afx_msg void OnBnClickedButtonDefaults(); virtual BOOL OnInitDialog(); private: /* Is this dialog for row/column (true) or width/height (false)? */ bool m_browcolumndialog; ; Kita tambahkan variabel lain ke dalam daftar argumen untuk konstruktor sehingga dialog dapat dibangun untuk kedua baris / kolom dan informasi lebar / tinggi. Jika kita lulus dalam "true" maka dialog akan meminta pengguna untuk jumlah baris dan kolom pada game board. Jika itu adalah "false" dialog akan meminta lebar dan tinggi blok di game board. Berikut source codenya. // OptionsDialog.cpp : implementation file #include "stdafx.h" #include "SameGame.h" #include "OptionsDialog.h" // COptionsDialog dialog IMPLEMENT_DYNAMIC(COptionsDialog, CDialog) COptionsDialog::COptionsDialog(bool browcolumn, CWnd* pparent) : CDialog(COptionsDialog::IDD, pparent), m_nvalue1(0), m_nvalue2(0), m_browcolumndialog(browcolumn)
14 COptionsDialog::~COptionsDialog() void COptionsDialog::DoDataExchange(CDataExchange* pdx) CDialog::DoDataExchange(pDX); DDX_Control(pDX, IDC_STATIC_TEXT_1, m_ctrlstatictext1); DDX_Control(pDX, IDC_STATIC_TEXT_2, m_ctrlstatictext2); DDX_Text(pDX, IDC_EDIT_VALUE_1, m_nvalue1); DDX_Text(pDX, IDC_EDIT_VALUE_2, m_nvalue2); BEGIN_MESSAGE_MAP(COptionsDialog, CDialog) ON_BN_CLICKED(IDC_BUTTON_DEFAULTS, &COptionsDialog::OnBnClickedButtonDefaults) END_MESSAGE_MAP() // COptionsDialog message handlers void COptionsDialog::OnBnClickedButtonDefaults() // Do things differently for the different dialogs if(m_browcolumndialog) m_nvalue1 = m_nvalue2 = 15; // 15x15 board else m_nvalue1 = m_nvalue2 = 35; // 35x35 blocks // Have the controls updated to the new values UpdateData(false); BOOL COptionsDialog::OnInitDialog() CDialog::OnInitDialog(); // Setup the dialog based on the dialog type if(m_browcolumndialog) // First update the title of the dialog SetWindowText(_T("Update Block Count")); // Next change the static text labels m_ctrlstatictext1.setwindowtext(_t("rows")); m_ctrlstatictext2.setwindowtext(_t("columns")); else // First update the title of the dialog SetWindowText(_T("Update Block Size"));
15 // Next change the static text labels m_ctrlstatictext1.setwindowtext(_t("block Width")); m_ctrlstatictext2.setwindowtext(_t("block Height")); return TRUE; Hal pertama yang kita lakukan adalah memperbarui konstruktor untuk mengambil nilai Boolean yang memberitahu kita apa jenis dialog yang kita buat. Perubahan berikutnya kita buat adalah untuk mengatur ulang nilai-nilai ke default, untuk baris / kolom nilai-nilai yang baik 15 dan lebar / tinggi nilai-nilai yang baik 35. Kemudian untuk memperbarui kontrol dengan nilai-nilai baru yang kita harus memanggil Fungsi UpdateData lewat di salah sebagai argumen. Argumennya adalah bendera Boolean yang menunjukkan arah update atau apa yang sedang diperbarui, kontrol (palsu) atau variabel (benar). Melewati sejati akan me-reset perubahan yang baru saja Anda membuat dengan pergi ke kontrol, membaca isi, dan menyimpannya ke variabel. Kita ingin memperbarui kontrol dengan nilai baru dari variabel sehingga kita lulus dalam palsu. Terakhir kita menempatkan kode ke dalam fungsi OnInitDialog. Ini adalah fungsi sebelum dialog pertama ditampilkan kepada pengguna. Di sinilah kita dapat mengatur dialog. Jadi untuk dialog baris / kolom kita menetapkan judul dialog untuk "Update Blok Hitung" dengan fungsi SetWindowText dan _T () makro yang kita bicarakan dalam artikel kedua. Kemudian kita memperbarui teks dalam kontrol teks statis dengan menggunakan fungsi dengan nama yang sama dalam objek kontrol. Kita menetapkan mereka untuk "Rows" dan "Kolom". Jika itu adalah dialog lebar / tinggi kita mengubah judul dan label untuk mencerminkan hal itu. Itu adalah semua yang perlu dilakukan dalam dialog, semuanya harus berfungsi dengan baik sekarang. Langkah terakhir kita adalah untuk mengatur beberapa event dalam tampilan untuk dua pilihan menu yang kita bekerja dengan. Kita melakukan hal ini melalui jendela Properties dari file header untuk tampilan (SameGameView.h). Klik pada tombol acara, salah satu yang terlihat seperti petir, memperluas pilihan ID_SETUP_BLOCKCOUNT dan menambahkan event handler COMMAND. Lakukan ini dengan pilihan ID_SETUP_BLOCKSIZE juga. Kita tidak perlu membuat perubahan ke tampilan ini file header selain perubahan yang menambahkan dua penangan lakukan secara otomatis. Berikut adalah satu-satunya perubahan yang dibuat secara otomatis. afx_msg void OnSetupBlockcount(); afx_msg void OnSetupBlocksize(); Perubahan terjadi pada iplementasi atau source file dari view pada SameGameView.cpp. Untuk menggunakan opsi dialog yang baru saja kita buat kita harus menyertakan file header di file sumber tampilan ini. Berikut adalah source codenya. #include "stdafx.h" #include "SameGame.h"
16 #include "SameGameDoc.h" #include "SameGameView.h" #include "OptionsDialog.h" #ifdef _DEBUG #define new DEBUG_NEW #endif Selanjutnya kita akan mengisi dua event handler yang baru saja kita menambahkan. Kedua fungsi ini pada dasarnya sama kecuali di lima lokasi seperti source code yang kita lihat di bawah. void CSameGameView::OnSetupBlockcount() // First get a pointer to the document CSameGameDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if(!pdoc) return; // Create the options dialog COptionsDialog dlg(true, this); // Set the row and column values dlg.m_nvalue1 = pdoc->getrows(); dlg.m_nvalue2 = pdoc->getcolumns(); // Display the dialog if(dlg.domodal() == IDOK) // First delete the board pdoc->deleteboard(); // Get the user selected values pdoc->setrows(dlg.m_nvalue1); pdoc->setcolumns(dlg.m_nvalue2); // Update the board pdoc->setupboard(); // Resize the view ResizeWindow(); void CSameGameView::OnSetupBlocksize() // First get a pointer to the document CSameGameDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if(!pdoc) return; // Create the options dialog COptionsDialog dlg(false, this); // Set the width and height values
17 dlg.m_nvalue1 = pdoc->getwidth(); dlg.m_nvalue2 = pdoc->getheight(); // Display the dialog if(dlg.domodal() == IDOK) // First delete the board pdoc->deleteboard(); // Get the user selected values pdoc->setwidth(dlg.m_nvalue1); pdoc->setheight(dlg.m_nvalue2); // Update the board pdoc->setupboard(); // Resize the view ResizeWindow(); Sama seperti setiap event handler lain yang sudah kita buat, pertama kita mendapatkan pointer ke dokumen. Kemudian kita buat dialog dengan instantiating sebuah instance dari kelas itu. Berikut adalah perbedaan pertama antara dua fungsi. Dalam fungsi pertama, OnSetupBlockcount, kita lulus dalam nilai sebenarnya, dan dalam fungsi kedua, kita lulus dalam palsu. Dua baris berikutnya diatur integer publik menghargai m_nvalue1 dan m_nvalue2 menjadi baris dan kolom untuk fungsi pertama dan lebar dan tinggi untuk yang kedua. Dengan menetapkan nilai-nilai ini sebelum memanggil DoModal pada dialog kita memastikan bahwa nilai-nilai mulai di mengedit kontrol yang sesuai mereka. Baris berikutnya adalah di mana kita benar-benar pop-up dan menampilkan dialog dengan fungsi DoModal. Hal ini menunjukkan dialog dan tidak kembali kontrol untuk aplikasi sampai pengguna mengklik Ok, Batal atau tombol X untuk menutup. Kemudian fungsi mengembalikan nilai didasarkan pada bagaimana pengguna menutup dialog. Berikut kita uji untuk Ok jadi kita membandingkan nilai kembali terhadap IDOK. Jika pengguna mengklik Ok maka kita terus melakukan perubahan. Jika tidak kita mengabaikan segala sesuatu yang terjadi dan melanjutkan. Jika pengguna mengklik Ok pertama-tama kita harus menghapus board game tua dan membebaskan memori. Setelah selesai kita bisa menggunakan kita "setter" fungsi pada dokumen untuk menyimpan nilai-nilai bahwa pengguna yang dipilih. Ini adalah set terakhir dari perbedaan; kita menggunakan setter yang berbeda tergantung pada fungsi karena kita bekerja sama dengan nilai yang berbeda di masing-masing fungsi. Setelah mereka ditetapkan dalam dokumen dan board game kita perlu membuat sebuah board game baru dengan memanggil SetupBoard. Ini akan membuat board game baru dengan opsi yang dipilih baru. Akhirnya kita mengubah ukuran jendela untuk mencocokkan nomor baru baris / kolom atau ukuran blok baru. Game Anda sekarang harus dapat terlihat seperti ini.
18 Game kita hampir selesai. Pada tutorial ini kita menciptakan sebuah opsi dialog baru untuk dapat meminta pengguna untuk informasi ukuran. Kita kemudian diperbarui board game yang sesuai. Pilihan ini memungkinkan pengguna untuk memiliki banyak pengalaman yang berbeda. Apa tingkat dapat Anda benar-benar jelas pada dengan board game lima baris dengan lima kolom? Ada banyak kombinasi dari pilihan yang dapat mengubah kesulitan game dan membuat Anda mengubah strategi Anda. Itulah yang membuat game menyenangkan, mulai dapat memutar ulang dengan pilihan yang berbeda dengan cara yang berbeda. Kita hampir selesai dengan Game kita ini. Kita telah membahas beberapa topik mulai dari pemrograman event driven pemrograman GDIgraphics. Banyak topik yang kita bahas melampaui kesenjangan antara pemrograman game dan aplikasi pemrograman pada umumnya. Membangun aplikasi MFC adalah salah satu topik tersebut, tidak banyak game yang ditulis dalam MFC. Topik tutorial akhir ini adalah kita akan membahas bagaimana membuat sebuah undo / redo stack untuk game kita. Undo / redo merupakan fitur penting untuk sebagian besar aplikasi. Undo / Redo Stack Kita menyebutnya fitur ini "undo / redo stack" karena tipe data abstrak (ADT) stack. Stack adalah koleksi objek-objek yang mirip dengan stack piring di dapur Anda, satu-satunya cara Anda bisa mendapatkan pelat bawah adalah untuk pertama bergerak yang atas. Untuk menambahkan piring Anda hanya menempatkan mereka di atas stack. Dengan kata lain itu sejenis "Last In First Out" (LIFO) Ini adalah cara yang berguna untuk menyimpan bergerak terakhir Anda. Ketika Anda bergerak dalam game keadaan sebelumnya diletakkan di atas stack undo sehingga dapat
19 dikembalikan dalam urutan terbalik bahwa itu dibuat. Cara kita akan melakukan ini adalah untuk menyimpan salinan lama objek board game di undo stack sebelum kita menghapus potongan-potongan dari yang baru. Ketika kita membatalkan bergerak, board saat dimasukkan ke redo stack dan board atas dari undo stack sekarang dewan saat ini. Operasi redo adalah justru sebaliknya, menempatkan board saat di undo stack dan mengambil board atas off dari redo stack dan membuat board saat. Kita perlu untuk membuat beberapa perubahan untuk game board kita untuk membuatnya. Kita perlu membuat copy constructor untuk melakukan deep copy. Cukup tambahkan fungsi prototipe copy constructor tepat antara konstruktor default dan destructor di SameGameBoard.h. /* Default Constructor */ CSameGameBoard(void); /* Copy Constructor */ CSameGameBoard(const CSameGameBoard& board); /* Destructor */ ~CSameGameBoard(void); Kita menggunakan deep copy constructor karena kita memiliki pointer ke beberapa memori yang dialokasikan secara dinamis. Ini berarti kita tidak bisa hanya menyalin pointer tetapi dinamis mengalokasikan lebih banyak memori dan kemudian menyalin isi ke dalam ruang memori. Kita tambahkan deep copy constructor source file pada game board (SameGameBoard.cpp) dengan menambahkan fungsi implementasi. #pragma once #include "SameGameBoard.h" #include <stack> class CSameGameDoc : public CDocument protected: // create from serialization only CSameGameDoc(); virtual ~CSameGameDoc(); DECLARE_DYNCREATE(CSameGameDoc) // Operations public: /* Functions for accessing the game board */ COLORREF GetBoardSpace(int row, int col) return m_board->getboardspace(row, col); void SetupBoard(void) m_board->setupboard(); int GetWidth(void) return m_board->getwidth(); void SetWidth(int nwidth) m_board->setwidth(nwidth); int GetHeight(void) return m_board->getheight(); void SetHeight(int nheight) m_board->setheight(nheight); int GetColumns(void) return m_board->getcolumns(); void SetColumns(int ncolumns) m_board->setcolumns(ncolumns);
20 int GetRows(void) return m_board->getrows(); void SetRows(int nrows) m_board->setrows(nrows); void DeleteBoard(void) m_board->deleteboard(); bool IsGameOver() return m_board->isgameover(); /* Notice we removed the implementation of this function */ int DeleteBlocks(int row, int col); int GetRemainingCount() return m_board->getremainingcount(); int GetNumColors() return m_board->getnumcolors(); void SetNumColors(int ncolors); /* Undo/redo functions */ void UndoLast(); bool CanUndo(); void RedoLast(); bool CanRedo(); // Overrides public: virtual BOOL OnNewDocument(); protected: /* Functions to clear undo/redo stacks */ void ClearUndo(); void ClearRedo(); /* Instance of the game board--notice that we made it a pointer */ CSameGameBoard* m_board; /* Undo stack */ std::stack<csamegameboard*> m_undo; /* Redo stack */ std::stack<csamegameboard*> m_redo; // Generated message map functions protected: DECLARE_MESSAGE_MAP() ; Pertama-tama kita perlu menyertakan stack header sehingga kita dapat menggunakan stack class. Karena kita akan mengubah variabel m_board ke pointer kita harus mengubah dari menggunakan dot operator untuk panah atau penunjuk operator melalui setiap fungsi dalam dokumen. Berikutnya pada daftar perubahan adalah kenyataan bahwa kita bergerak pelaksanaan fungsi DeleteBlocks ke source file. Fungsi ini telah menjadi lebih terlibat dari sekedar satu baris sehingga kita akan memindahkannya. Kemudian kita tambahkan enam fungsi baru, empat adalah public function dan dua protected function. Fungsi umum dibagi menjadi dua kelompok, satu set, UndoLast function dan RedoLast, benar-benar melakukan undo dan redo, sedangkan set kedua, CanUndo dan CanRedo, untuk tes sederhana kita akan gunakan untuk mengaktifkan dan menonaktifkan pilihan menu ketika mereka tidak tersedia. Protected function yang fungsi pembantu sederhana untuk membersihkan dan deallocate memori terkait dari kedua stack. Akhirnya kita menambahkan dua deklarasi stack undo /
21 redo. Dengan perubahan pointer ke board game, ada beberapa hal yang perlu ditambahkan ke fungsi yang ada sebelum kita menambahkan fungsi baru. Berikut ini adalah source code untuk dokumen baru di SameGameDoc.cpp #include "stdafx.h" #include "SameGame.h" #include "SameGameDoc.h" #ifdef _DEBUG #define new DEBUG_NEW #endif // CSameGameDoc IMPLEMENT_DYNCREATE(CSameGameDoc, CDocument) BEGIN_MESSAGE_MAP(CSameGameDoc, CDocument) END_MESSAGE_MAP() // CSameGameDoc construction/destruction CSameGameDoc::CSameGameDoc() // There should always be a game board m_board = new CSameGameBoard(); CSameGameDoc::~CSameGameDoc() // Delete the current game board delete m_board; // Delete everything from the undo stack ClearUndo(); // Delete everything from the redo stack ClearRedo(); BOOL CSameGameDoc::OnNewDocument() if (!CDocument::OnNewDocument()) return FALSE; // Set (or reset) the game board m_board->setupboard(); // Clear the undo/redo stacks ClearUndo(); ClearRedo();
22 return TRUE; void CSameGameDoc::SetNumColors(int ncolors) // Set the number of colors first m_board->setnumcolors(ncolors); // Then reset the game board m_board->setupboard(); int CSameGameDoc::DeleteBlocks(int row, int col) // Save the current board in the undo stack m_undo.push(new CSameGameBoard(*m_board)); // Empty out the redo stack ClearRedo(); // Then delete the blocks int blocks = m_board->deleteblocks(row, col); // Clear the undo stack at the end of a game if(m_board->isgameover()) ClearUndo(); // Return the number of blocks return blocks; void CSameGameDoc::UndoLast() // First make sure that there is a move to undo if(m_undo.empty()) return; // Take the current board and put it on the redo m_redo.push(m_board); // Take the top undo and make it the current m_board = m_undo.top(); m_undo.pop(); bool CSameGameDoc::CanUndo() // Can undo if the undo stack isn't empty return!m_undo.empty(); void CSameGameDoc::RedoLast() // First make sure that there is a move to redo if(m_redo.empty()) return; // Take the current board and put it on the undo
23 m_undo.push(m_board); // Take the top redo and make it the current m_board = m_redo.top(); m_redo.pop(); bool CSameGameDoc::CanRedo() // Can redo if the redo stack isn't empty return!m_redo.empty(); void CSameGameDoc::ClearUndo() // Delete everything from the undo stack while(!m_undo.empty()) delete m_undo.top(); m_undo.pop(); void CSameGameDoc::ClearRedo() // Delete everything from the redo stack while(!m_redo.empty()) delete m_redo.top(); m_redo.pop(); Pertama-tama kita perlu menyertakan stack kepala sehingga kita dapat menggunakan kelas stack. Karena kita akan mengubah variabel m_board ke pointer kita harus mengubah dari menggunakan dot operator untuk panah atau penunjuk operator melalui setiap fungsi dalam dokumen. Berikutnya pada daftar perubahan adalah kenyataan bahwa kita bergerak pelaksanaan fungsi DeleteBlocks ke file sumber. Fungsi ini telah menjadi lebih terlibat dari sekedar satu baris sehingga kita akan memindahkannya. Kita kemudian menambahkan enam fungsi baru, empat adalah fungsi umum dan dua dilindungi. Fungsi umum dibagi menjadi dua kelompok, satu set fungsi, UndoLast dan RedoLast, benar-benar melakukan undo dan redo, sedangkan set kedua, CanUndo dan CanRedo, tes sederhana kita akan gunakan untuk mengaktifkan dan menonaktifkan pilihan menu ketika mereka tidak tersedia. Fungsi lindung yang fungsi pembantu sederhana untuk membersihkan dan deallocate memori terkait dari kedua stack. Akhirnya kita menambahkan dua deklarasi stack undo / redo. Dengan perubahan pointer ke board game, ada beberapa hal yang perlu ditambahkan ke fungsi yang ada sebelum kita menambahkan fungsi baru. Berikut ini adalah source code untuk dokumen baru di SameGameDoc.cpp
24 /* Functions for undo/redo */ afx_msg void OnEditUndo(); afx_msg void OnEditRedo(); /* Functions to update the undo/redo menu options */ afx_msg void OnUpdateEditUndo(CCmdUI *pcmdui); afx_msg void OnUpdateEditRedo(CCmdUI *pcmdui); Sekarang mari kita lihat source file. Pada message map anda akan menemukan empat baris baru yang mengatur event, associating event, ID dan fungsi. Sekali lagi kita melihat ini sebelumnya. ON_COMMAND(ID_EDIT_UNDO, &CSameGameView::OnEditUndo) ON_COMMAND(ID_EDIT_REDO, &CSameGameView::OnEditRedo) ON_UPDATE_COMMAND_UI(ID_EDIT_UNDO, &CSameGameView::OnUpdateEditUndo) ON_UPDATE_COMMAND_UI(ID_EDIT_REDO, &CSameGameView::OnUpdateEditRedo) Implementasi dari dua event ON_COMMAND cukup sederhana dan mengikuti pola yang telah kita lihat sebelumnya, mendapatkan pointer ke dokumen, memanggil fungsi pada dokumen dan akhirnya menyebabkan view untuk redraw. Lakukan ini untuk kedua undo dan redo. void CSameGameView::OnEditUndo() // First get a pointer to the document CSameGameDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if(!pdoc) return; // Call undo on the document pdoc->undolast(); // Force the view to redraw Invalidate(); UpdateWindow(); void CSameGameView::OnEditRedo() // First get a pointer to the document CSameGameDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if(!pdoc) return; // Call redo on the document pdoc->redolast(); // Force the view to redraw Invalidate(); UpdateWindow();
25 Event handler untuk event ON_UPDATE_COMMAND_UI, pertama mendapatkan pointer ke dokumen untuk akses ke game board. void CSameGameView::OnUpdateEditUndo(CCmdUI *pcmdui) // First get a pointer to the document CSameGameDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if(!pdoc) return; // Enable option if it is available pcmdui->enable(pdoc->canundo()); void CSameGameView::OnUpdateEditRedo(CCmdUI *pcmdui) // First get a pointer to the document CSameGameDoc* pdoc = GetDocument(); ASSERT_VALID(pDoc); if(!pdoc) return; // Enable option if it is available pcmdui->enable(pdoc->canredo()); Sekarang stack undo / redo sekarang sudah berfungsi. Periksalah pada pilihan menu undo, sekarang sudah dapat diaktifkan. Klik dan kita akan melihat original game board game. Periksa pilihan menu redo dan akan diaktifkan sekarang. Klik itu dan Anda akan kembali ke tempat sebelum undo. Berikuttampilan game yang dapat kita lihat sekarang.
26 Coba tekan Ctrl + Z setelah kita buat beberapa pergerakan objek dan kita akan melihat undo yang bekerja dengan keyboard. Sekarang coba tekan Ctrl + Y untuk redo. Apa itu bekerja? Tidak? Nah kita bisa memperbaikinya. Ingat bahwa pada pilihan menu untuk redo kita menunjukkan kepada pengguna bahwa Ctrl + Y akan mengirim ON_COMMAND untuk ID_EDIT_REDO. Itulah yang disebut akselerator.
27 Untuk mengakses akselerator, buka Resource View dari menu View (di bawah Other Windows) atau tekan accelerator dengan tekan Ctrl + Shift + E pada Visual Studio. Kemudian buka opsi Accelerator bawah SameGame.rc dan klik dua kali pada IDR_MAINFRAME untuk membuka Accelerator Editor. Pada gambar di bawah ini kita telah menambahkan akselerator untuk perintah redo. Untuk menambahkannya, klik pada baris kosong pada akselerator terakhir, lalu di kolom ID; ini akan tampil menu drop-down yang memungkinkan untuk memilih ID_EDIT_REDO, ID dari pilihan menu untuk perintah redo; memberikan kunci Y dan modifikator Ctrl (Ctrl + Y). Sekarang kita kompile game dan menjalankannya. Seperti yang kita telah menambahkan kombinasi keystroke yang sekarang mengirimkan ON_COMMAND untuk ID_EDIT_REDO. Sekarang kita sudah selesai membuat game, Let s Play and Let s Have Fun Together :D Tentang Penulis Sendy PK Saya adalah Programmer yang memiliki impian untuk menguasai dunia kunjungi situs pribadi saya di dan Online Shop saya di
Membuat Game Mencocokan Objek dengan C++ (Part 4)
Membuat Game Mencocokan Objek dengan C++ (Part 4) Oleh: Sendy PK Pada tutorial kali ini kita akan fokus pada menambahkan customizability ke game melalui menu, termasuk menambahkan tingkat kesulitan. Untuk
Membuat Game Mencocokan Objek dengan C++ (Part 4)
Membuat Game Mencocokan Objek dengan C++ (Part 4) Oleh: Sendy PK Pada tutorial kali ini kita akan fokus pada menambahkan customizability ke game melalui menu, termasuk menambahkan tingkat kesulitan. Untuk
Membuat Game Mencocokan Objek dengan C++ (Part 2)
Membuat Game Mencocokan Objek dengan C++ (Part 2) Oleh: Sendy PK Setelah berhasil membuat project pada tutorial sebelumnya, selanjutnya kita akan membuat dokumen, Dokumen / view arsitektur adalah paradigma
Membuat Game Mencocokan Objek dengan C++ (Part 1)
Membuat Game Mencocokan Objek dengan C++ (Part 1) Oleh: Sendy PK Kali ini kita akan mebuat game yang disebut Same Game yaitu game yang akan mencocokan objek yang satu dengan yang lain, dengan menggunakan
Membuat Game Mencocokan Objek dengan C++ (Part 1)
Membuat Game Mencocokan Objek dengan C++ (Part 1) Oleh: Sendy PK Kali ini kita akan mebuat game yang disebut Same Game yaitu game yang akan mencocokan objek yang satu dengan yang lain, dengan menggunakan
Membuat Game Mencocokan Objek dengan C++ (Part 3)
Membuat Game Mencocokan Objek dengan C++ (Part 3) Oleh: Sendy PK Pada akhir tutorial ini kita akan memiliki versi "Playable" yang dapay dimainkan dari SameGame. Dapat dimainkan dalam tanda kutip karena
1 Pendahuluan. 1. Tujuan: 2 Dasar Teori: Praktikum
Praktikum 1 Pendahuluan 1. Tujuan: 1. Mahasiswa dapat membuat program pengolahan citra menggunakan Visual C++ dengan MFC. 2. Mahasiswa dapat membuat dialog menggunakan Visual C++ dengan MFC. 2 Dasar Teori:
Entri dan Modifikasi Sel
BAB Entri dan Modifikasi Sel 6 Pada Bab ini anda akan mempelajari cara: Memasukkan teks dan angka pada spreadsheet secara manual Menyimpan file spreadsheet Menggunakan fasilitas cepat Fill Series Memotong,
Bab 2 Entri dan Modifikasi Sel
Bab 2 Entri dan Modifikasi Sel Pada Bab ini anda akan mempelajari cara: Memasukkan teks dan angka pada spreadsheet secara manual Menyimpan file spreadsheet Menggunakan fasilitas cepat Fill Series Memotong,
E-Trik Visual C++ 6.0
DISCLAIMER Seluruh dokumen E-Trik di dalam CD ini dapat digunakan dan disebarkan secara bebas untuk tujuan belajar bukan komersial (non-profit), dengan syarat tidak menghapus atau merubah atribut penulis
PEMROGRAMAN VISUAL BASIC
PEMROGRAMAN VISUAL BASIC Setelah memahami bahasa Visual Basic dasar untuk menuliskan kode program, langkah selanjutnya adalah mempelajari pemrograman VB itu sendiri. 6.1 Sub Procedure Sejauh ini, Anda
Modul 3 Pembuatan Form dengan Wizard dan Penambahan kode VBA
Modul 3 Pembuatan Form dengan Wizard dan Penambahan kode VBA Tujuan : Membuat Form dengan wizard Pembuatan tombol (command button) pada form Memahami pengoperasian Update dan Delete pada Form Dapat membuat
Ahmad Zidni, S.T. SMK Gondang 2011
Ahmad Zidni, S.T. SMK Gondang 2011 Buka aplikasi Microsoft Access Klik File New Pilih Blank Database Create nama file database Buat tabel dengan create table in design view klik 2 x sehingga terbuka jendela
2.1 Membuat Aplikasi Berbasis Dialog Dengan Wizard
Aplikasi Pocket PC dengan E-Visual C++ [email protected] Lisensi Dokumen: Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan disebarkan secara bebas untuk tujuan bukan komersial (nonprofit),
1. MENGENAL VISUAL BASIC
1. MENGENAL VISUAL BASIC 1.1 Mengenal Visual Basic 6.0 Bahasa Basic pada dasarnya adalah bahasa yang mudah dimengerti sehingga pemrograman di dalam bahasa Basic dapat dengan mudah dilakukan meskipun oleh
Bab 15 Menggunakan Menu Navigasi Berupa Switchboard dan Form
Bab 15 Menggunakan Menu Navigasi Berupa Switchboard dan Form Pokok Bahasan Membuat dan Menggunakan Switchboard Membuat Menu Navigasi Berupa Form Untuk memudahkan navigasi semua obyek pada file database
Microsoft Excel. I. Pendahuluan
Microsoft Excel I. Pendahuluan Microsoft Excel adalah General Purpose Electronic Spreadsheet yang bekerja dibawah Sistem Operasi Windows. Microsoft Excel dapat digunakan untuk menghitung angka-angka, bekerja
Latihan 1: Mengoperasikan Excel
Student Exercise Series: Microsoft Office Excel 007l Latihan : Mengoperasikan Excel Buatlah sebuah buku kerja baru, kemudian ketikkan teks-teks berikut ini. Simpan hasilnya dengan nama Lat-0 dalam folder
Modul Praktikum Basis Data 11 Membuat Menu dengan Form
Modul Praktikum Basis Data 11 Membuat Menu dengan Form Pokok Bahasan : - Membuat dan menggunakan switchboard - Membuat Menu Navigasi Berupa Form Tujuan : - Mahasiswa mampu membuat dan menggunakan switchboard
No Tombol Keterangan 9. [Home] Memindah pointer ke kolom A pada baris yang 10. [End] Memindah pointer ke data terjauh di kanan pointer pada baris yang
Teknologi Informasi dan Komunikasi M O D UL I I : M E N Y UN T I N G L E M BA R K E R J A E X CE L Marsudi Prahoro, S.Pd [email protected] http://cakudik.wordpress.com Lisensi Dokumen : Seluruh dokumen
Program Penghitung Poin Klub Sepak Bola
Program Penghitung Poin Klub Sepak Bola Oleh: Sendy PK Halo para pecinta coding, ini tutorial pertama yang saya tulis, saya awali dengan membuat program untuk menghitung poin klub sepak bola dengan C#,
Sebelum kita membahas tentang Microsoft Access ada baiknya jika kita terlebih dahulu mengetahui apa yang dimaksud dengan database.
A. Pengertian Database dan Microsoft Access 1. Database Sebelum kita membahas tentang Microsoft Access ada baiknya jika kita terlebih dahulu mengetahui apa yang dimaksud dengan database. Database adalah
Pengenalan SPSS 15.0
Pengenalan SPSS 15.0 1.1 Pengantar SPSS SPSS atau kepanjangan dari Statistical Product and Service Solution merupakan salah satu dari sekian banyak software statistika yang banyak digunakan oleh berbagai
BAB I. 1 P e m r o g r a m a n V i s u a l B a s i c - J a t i L e s t a r i
BAB I Konsep Visual Basic: Penerapan di dunia Usaha, Instalasi serta Pengenalan IDE (Integrated Development Environment) VB dan konsep pemrograman visual I. Tujuan Praktikum 1. Mahasiswa mengenal VB, penerapan
MEMBUAT APLIKASI MENGGUNAKAN MICROSOFT ACCESS
MEMBUAT APLIKASI MENGGUNAKAN MICROSOFT ACCESS Membuat program Aplikasi ternyata tidak sesulit seperti yang dibayangkan. Untuk kebutuhan di kantor kita bisa membuatnya sendiri dengan belajar otodidak. Selain
Modul Praktikum Ke-1
Bahasa Pemrograman Dasar Fathurrohman 1 Modul Praktikum Ke-1 (Tampilan VB, Event, Property, Objek Kontrol : form, text, label, command) Mengenal Visual Basic (VB) Visual Basic adalah salah satu perangkat
Mengelola Database Menggunakan Macro Excel
Mengelola Database Menggunakan Macro Excel Mengelola Database Menggunakan Macro Excel Yudhy Wicaksono & Solusi Kantor PENERBIT PT ELEX MEDIA KOMPUTINDO Mengelola Database Menggunakan Macro Excel Yudhy
Bekerja Dengan Lembar Kerja Excel
Bekerja Dengan Lembar Kerja Excel A. Membuat Dokumen Baru Dalam Microsoft Excel Langkah-langkahnya : 1. Klik File pada menubar > New. 2. Pada Kotak Dialog yang muncul Pilih > Blank Document > klik tombol
DASAR-DASAR PENGETIKAN DAN EDITING Oleh Ade Sobandi Hendri Winata Rasto
DASAR-DASAR PENGETIKAN DAN EDITING Oleh Ade Sobandi Hendri Winata Rasto 1. Penempatan Jari Pada Keyboard Penempatan jari pada keyboard khususnya pada Type Write Keypad sama persis dengan penempatan jari
MENU DAN TOOLBOX. Menu PopUp merupakan pengembangan dari menu yang ditampilkan di luar form, lepas dari menu bar.
MENU DAN TOOLBOX Menu dalam sebuah aplikasi digunakan untuk mengelompokkan perintah-perintah sehingga pengguna mudah dalam memanggil perintah yang diinginkan. MENU BAR Menu Bar muncul di bawah title bar
Bab I Pengenalan Visual BASIC
Bab I Pengenalan Visual BASIC 1. Pendahuluan Visual BASIC (Beginners All-Purpose Symbolic Instruction Code) merupakan sebuah bahasa pemrograman yang dapat digunakan untuk membuat suatu aplikasi dalam Microsoft
Praktikum DATABASE Microsoft Access 2000 FORM DALAM ACCESS. Membuat FORM Secara WIZARD Membuat FORM Secara Design VIEW
Modul 4 FORM DALAM ACCESS 4.1. Materi Membuat FORM Secara WIZARD Membuat FORM Secara Design VIEW 4.2. Tujuan Praktikum Dengan mempelajari modul ini, peserta didik diharapkan dapat memahami fungsi FORM,
PERTEMUAN 8: MENGOPERASIKAN DASAR DASAR MICROSOFT OFFICE EXCEL 2007
PERTEMUAN 8: MENGOPERASIKAN DASAR DASAR MICROSOFT OFFICE EXCEL 2007 A. TUJUAN PEMBELAJARAN Pada bab ini akan dijelaskan mengenai mengoperasikan dasar dasar Microsoft Office Excel 2007. Melalui Penjelasan
BAB 2 LANDASAN TEORI. Perangkat lunak adalah perintah ( program komputer ) yang bila dieksekusi
BAB 2 LANDASAN TEORI 2.1 Pengertian Perangkat Lunak Perangkat lunak adalah perintah ( program komputer ) yang bila dieksekusi memberikan fungsi dan unjuk kerja seperti yang diinginkan, struktur data yang
Program Piano 1 Oktaf
Program Piano 1 Oktaf Oleh: Sendy PK Halo Sobat Coding, siapa yang suka musik? kalau saya suka sekali main piano jadi pada tutorial kali ini kita akan membuat program piano1 oktaf sederhana, jadi kita
Praktikum 6 SubForm dan Kode VBA
Praktikum 6 SubForm dan Kode VBA A. TUJUAN Dapat mengkaitkan antara Form Utama dan SubForm Dapat menghubungkan antar Form secara manual Memahami arti dari Non-Synchronized Form Dapat memodifikasi properti
Lembar kerja access Title bar merupakan judul dari jendela program atau nama file yang sedang aktif Tombol office merupakan tombol yang menampung
Lembar kerja access Title bar merupakan judul dari jendela program atau nama file yang sedang aktif Tombol office merupakan tombol yang menampung perintah perintah menu yang sering digunakan dalam access
Instalasi Visual Studio 2008 Profesional(64 dan 32 bit) di windows 7
Instalasi Visual Studio 2008 Profesional(64 dan 32 bit) di windows 7 Tutorial kali ini saya akan menjabarkan tentang cara instalasi salah satu perangkat lunak yang dapat digunakan untuk melakukan pengembangan
Membuat Buku Kerja dengan Microsoft Excel
Pelajaran 5 Membuat Buku Kerja dengan Microsoft Excel A B C D 1 Nama Murid Jenis Kelamin Nilai Matematika Keterangan 2 Andi L 8 Lulus 3 Siti Nurlaela P 8 Lulus 4 Dinar Nugraha L 8 Lulus 5 Bayu Purbaya
BAB 4 MEMBUAT LIST OF VALUE (LOV) DAN NON-BASE TABLE FIELDS
BAB 4 MEMBUAT LIST OF VALUE (LOV) DAN NON-BASE TABLE FIELDS Merupakan suatu hal yang sangat menjemukan bagi user untuk mengingat begitu banyak kode dan bilangan pada saat memasukkan data pada form entry.
Otodidak VBA MS Excel untuk Pemula
Otodidak VBA MS Excel untuk Pemula Otodidak VBA MS Excel untuk Pemula Jubilee Enterprise PENERBIT PT ELEX MEDIA KOMPUTINDO Otodidak VBA MS Excel untuk Pemula Jubilee Enterprise 2017, PT Elex Media Komputindo,
Praktikum DATABASE Microsoft Access 2000
O B J E K F O R M Modul 5 5.1. Materi Rancangan Database & Aplikasi Kasus Kepegawaian 5.2. Tujuan Praktikum Dengan mempelajari modul ini, peserta didik diharapkan dapat memahami fungsi FORM, menjalankannya
ELEARNING UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN JAKARTA
MANAJEMEN KONTEN ELEARNING UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN JAKARTA 2013 Elearning UPN Veteran Jakarta 1 MODUL 2 MANAJEMEN KONTEN 2.1. Membuat Label 2.1.1. Keterangan Label berfungsi untuk memberikan
Header-Footer, Preview dan Cetak Dokumen
Header-Footer, Preview dan Cetak Dokumen BAB 4 Pada Bab ini anda akan mempelajari cara: Membuat header dan footer Membuat nomor halaman pada header Menambahkan informasi pada footer Mengatur ukuran halaman
OpenOffice Writer Aplikasi perkantoran OpenOffice.org Writer
OpenOffice Writer Writer adalah bagian dari OpenOffice.org yang digunakan sebagai aplikasi pengolah kata. Kegiatan kegiatan pengolahan kata berupa pembuatan laporan, penulisan proposal, pembuatan surat,
ELEARNING UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN JAKARTA
MANAJEMENT KONTENT Disusun Oleh : Septian Firman Sodiq, Skom ELEARNING UNIVERSITAS PEMBANGUNAN NASIONAL VETERAN JAKARTA 2013 Elearning UPN Veteran Jakarta 1 MODUL 2 MANAJEMENT KONTEN 2.1. Membuat Label
BAB 2 Membuat dan Menjalankan Form dengan Single Block
BAB 2 Membuat dan Menjalankan Form dengan Single Block Pada bab ini, akan dibahas cara untuk membuat basic data entry dan query untuk satu table. Pada umumnya, data block dalam suatu form berkorespondensi
Modul ke: Aplikasi Komputer. Microsoft Word. Fakultas TEKNIK. Muhammad Rifqi, S.Kom, M.Kom. Program Studi. Ilmu Komputer.
Modul ke: Aplikasi Komputer Microsoft Word Fakultas TEKNIK Muhammad Rifqi, S.Kom, M.Kom Program Studi Ilmu Komputer http://www.mercubuana.ac.id MEMULAI MS WORD Klik START > Program > Micorosoft Office
Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini.
Pemrograman LabVIEW 6.1 Istilah-Istilah Penting Sebelum membahas mengenai pemrograman LabVIEW, sebaiknya pembaca mengenal istilah istilah penting berikut ini. 1. G: dari kata graphical, merupakan sebutan
DEPARTEMEN AGAMA MADRASAH TSANAWIYAH NEGERI NGABLAK Jalan Ngablak-Mangli Km. 0 Ngablak Telepon KABUPATEN MAGELANG 56194
DEPARTEMEN AGAMA MADRASAH TSANAWIYAH NEGERI NGABLAK Jalan Ngablak-Mangli Km. 0 Ngablak Telepon 0298-318070 KABUPATEN MAGELANG 56194 ULANGAN UMUM SEMESTER GASAL TAHUN 2010/2011 Mata Pelajaran : Tek. Inf.
Membuat Slide Show Gambar
Membuat Slide Show Gambar Oleh: Sendy PK Halo Sobat Coding, kali ini kita akan membuat program yang bisa menampilkan SlideShow Gambar. Berikut deskripsi program yang akan kita buat : Program berguna untuk
MODUL 2 SELECTION & LOOPING PADA FORM
MODUL 2 SELECTION & LOOPING PADA FORM TUJUAN : Mahasiswa mampu menguasai dan memahami penggunaan logika selection dan looping di Visual Basic.Net dengan implementasi pada Form dan object. Materi : Selection
BAB I MENGENAL PLANNER
Bab I Mengenal Planner BAB I MENGENAL PLANNER Planner adalah tool manajemen proyek yang general purpose dan menyediakan berbagai fitur, yang tersedia melalui 4 layar terpisah yang disebut layout views.
Panduan Lengkap Otomatisasi Pekerjaan Menggunakan Macro Excel
Panduan Lengkap Otomatisasi Pekerjaan Menggunakan Macro Excel Sanksi Pelanggaran Pasal 113 Undang-Undang Nomor 28 Tahun 2014 tentang Hak Cipta 1. Setiap Orang yang dengan tanpa hak melakukan pelanggaran
a. Menyiapkan database
Membuat Label dan Kartu Pernahkan kita melihat label yang tertempel pada undangan? Bagaimana cara membuatnya? Tentunya kita bisa saja membuatnya secara manual dengan mengetik satu per satu, kemudian posisinya
BAB 2 LANDASAN TEORI. Istilah komputer (computer) berasal dari bahasa latin computere yang berarti
BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Istilah komputer (computer) berasal dari bahasa latin computere yang berarti menghitung. Dalam bahasa Inggris komputer berasal dari kata to compute yang artinya
Membuat Slide Show Gambar
Membuat Slide Show Gambar Oleh: Sendy PK Halo Sobat Coding, kali ini kita akan membuat program yang bisa menampilkan SlideShow Gambar. Berikut deskripsi program yang akan kita buat : Program berguna untuk
BAB VII PERANGKAT LUNAK PENGOLAH TEKS
BAB VII PERANGKAT LUNAK PENGOLAH TEKS 7.1 Pendahuluan A. Deskripsi Singkat Pada bab ini akan dijelaskan tentang beberapa penerapan dari perangkat lunak pengolah teks. Di dalamnya akan diuraikan bagaimana
URAIAN POKOK PERKULIAHAN
Minggu ke : 1 Penyusun : Dian Usdiyana Rini Marwati Materi : 1. Pengenalan Delphi 1.1 IDE 1.2 Bagian-bagian IDE 1.3 Membuat & Menyimpan Program 1.4 Memanggil & Mengedit Program 1.5 Simbol Button 1.6 Label
INSTRUKSI PENCABANGAN
INSTRUKSI PENCABANGAN Sebagai pengembang (programmer) sudah pasti mengetahui jenis operasi instruksi. Salah satu yang perlu dipelajari atau dimengerti adalah operasi instruksi pencabangan. 3.1 Pencabangan
MODUL 1 DASAR-DASAR PEMROGRAMAN C++
MODUL 1 DASAR-DASAR PEMROGRAMAN C++ Integrated Development Environtment (IDE) pada Microsoft Visual C++ 2008 telah dilengkapi dengan fasilitas untuk membuat kode sumber (source code), kompilasi (compiler)
Modul ke: Aplikasi komputer. Microsoft Excel 2010 Bagian 1. 09Fakultas FASILKOM. Wardhana., S.Kom., S.T., MM. Program Studi MKCU
Modul ke: 09Fakultas Ariyani FASILKOM Aplikasi komputer Microsoft Excel 2010 Bagian 1 Wardhana., S.Kom., S.T., MM Program Studi MKCU Microsoft Excel Sebuah program aplikasi lembar kerja spreadsheet yang
PENGENALAN APLIKASI STATISTICAL PRODUCT AND SERVICE SOLUTIONS (SPSS)
MODUL 8 PENGENALAN APLIKASI STATISTICAL PRODUCT AND SERVICE SOLUTIONS (SPSS) Tujuan Praktikum : Mahasiswa mengenal aplikasi pengolah data statistik yaitu SPSS Mahasiswa dapat menggunakan aplikasi SPSS
Aplikasi Document Imaging untuk PT. XYZ dapat diakses melalui web browser
4.3.4 Petunjuk Pemakaian Sistem Aplikasi Document Imaging untuk PT. XYZ dapat diakses melalui web browser yang terhubung dengan internet. Berikut ini adalah detail prosedur pemakaian dari aplikasi tersebut.
Mengoperasikan Dasar-Dasar Basis Data (Database)
2011 LSP TELEMATIKA Mengoperasikan Dasar-Dasar Basis Data (Database) Modul KKPI 3 Mengoperasikan Dasar-Dasar Basis Data - (20110523-R1) 1 DAFTAR ISI DAFTAR ISI... 2 BAB I Mempersiapkan Piranti Lunak Basis
MENGENALI LAYAR KERJA MICROSOFT WORD 2007
MENGENALI LAYAR KERJA MICROSOFT WORD 2007 Bagi yang sudah terbiasa menggunakan Microsoft Word 2003 mungkin akan kebingungan dengan tampilan baru pada Word 2007 dan memutuskan tetap menggunakan Word 2003
BAB 3 ANALISIS DAN PERANCANGAN PROGRAM
BAB 3 ANALISIS DAN PERANCANGAN PROGRAM 3.1 Perancangan Program 3.1.1 Perancangan Perangkat Lunak Perangkat lunak atau piranti lunak adalah: 1. Program komputer yang berfungsi sebagai sarana interaksi antara
MACROMEDIA FLASH. 1.1 Mengenal interface Macromedia Flash 8. Panel. Timeline Stage. Properties. Animasi Sederhana dengan Macromedia Flash 1
MACROMEDIA FLASH Macromedia flash/adobe Flash adalah perangkat lunak aplikasi untuk pembuatan animasi yang digunakan untuk halaman web. Macromedia flash mampu melengkapi website dengan beberapa macam animasi
Aplikasi Komputer. Ms. Powerpoint 2010 MODUL PERKULIAHAN. Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh
MODUL PERKULIAHAN Aplikasi Komputer Ms. Powerpoint 2010 Fakultas Program Studi Tatap Muka Kode MK Disusun Oleh Mata Kuliah Ciri Universitas (MKCU) 07 Abstract Modul ini menjelaskan tentang Aplikasi Microsoft
Membuat Form Kontak yang Indah dan Atraktif dengan AJAX [Part 4]
Membuat Form Kontak yang Indah dan Atraktif dengan AJAX [Part 4] Oleh: Sendy PK Sekarang form sudah dapat berfungsi. Kita dapat membuka halaman di browser, klik link "Send Us an Email" untuk melompat ke
PEMBUATAN BAHAN AJAR KIMIA BERBASIS WEB MENGGUNAKAN MICROSOFT FRONTPAGE
PEMBUATAN BAHAN AJAR KIMIA BERBASIS WEB MENGGUNAKAN MICROSOFT FRONTPAGE Oleh: Asyti Febliza I. Mengenal Microsoft FrontPage Microsoft FrontPage (MS FrontPage) adalah sebuah program untuk membuat, mendesain,
Membuat Form. Oleh: Toni Heryana,S.Pd, MM
Membuat Form Oleh: Toni Heryana,S.Pd, MM Kasus!!! Buatlah tampilan input untuk data persediaan PT. AMD dengan menggunakan form beserta menu tambahan untuk memudahkan dalam mengedit data pada tabel seperti
TABEL DATABASE TABEL - KODE BARANG TOKO INFOMART BARANG - NAMA BARANG - HARGA
TABEL Dalam pembuatan database, data yang pertama dibuat adalah tabel. Tabel merupakan kumpulan data yang tersusun menurut aturan tertentu dan merupakan komponen utama pada database. Table disusun dalam
[Type the document. title] subtitle] rinei
[Type the document title] [Type the document subtitle] rinei H a l a m a n 1 BERMAIN DENGAN KOMPONEN Pada Modul #3 ini Anda akan belajar tentang komponen-komponen dasar yang sering digunakan. Seperti yang
Bab 5. Dasar-dasar Action Script
Bab 5. Dasar-dasar Action Script Pada animasi yang telah Anda pelajari pada bab sebelumnya, dijalankan secara berurutan dari frame ke frame. Berikutnya dengan adanya Behaviors dan Action Script, animasi
Area kerja. Gambar 1. Tampilan awal MS FrontPage
Microsoft FrontPage I. Mengenal Microsoft FrontPage Microsoft FrontPage (MS FrontPage) adalah sebuah program untuk membuat, mendesain, dan mengedit halaman World Wide Web seperti menambahkan text, images,
Untuk membuat Form pada halaman web, dapat dilakukan dengan cara menyisipkan terlebih dahulu area Form-nya dengan cara klik menu Insert Form Form.
MEMBUAT FORM Untuk membuat Form pada halaman web, dapat dilakukan dengan cara menyisipkan terlebih dahulu area Form-nya dengan cara klik menu Insert Form Form. Secara otomatis Ms. Frontpage akan menyisipkan
MEMBUAT LAPORAN (DATA REPORT)
1 MEMBUAT LAPORAN (DATA REPORT) Data Report merupakan sebuah desain untuk mencetak laporan dimana memiliki bagian-bagian seperti terlihat pada gambar 1 berikut : Gambar 1. Tampilan Data Report Maksud dari
MENGORGANISASIKAN OBJEK GAMBAR
MENGORGANISASIKAN OBJEK GAMBAR Setelah objek yang Anda buat siap, ia masih perlu diorganisasikan agar terbentuk sebuah artwork yang terpadu. Pengorganisasian objek dapat meliputi penataan posisi, letak
Menggunakan Microsoft Access (perhatikan untuk red text)
Menggunakan Microsoft Access (perhatikan untuk red text) 1. Membuat Database dan Tabel Materi ini akan menjelaskan bagaimana membangun database, tabel dan field. Akan dijelaskan pula mengenai format dan
TABEL. Tabel Halaman 25
2 TABEL Objektif: Mengenal Tipe Data Mengenal Batasan,kolom Pengenalan, nilai Null, kunci Primer, kunci Asing Membuat,menghapus,mengganti dan memodifikasi Tabel Dengan Enterprise Manager Menyunting Data
LATIHAN SOAL PERSIAPAN UTS DAN UAS GENAP KELAS 8 1. Microsoft Excel merupakan program aplikasi A. Spreadsheet C. Wordprosesor B. Presentation D.
LATIHAN SOAL PERSIAPAN UTS DAN UAS GENAP KELAS 8 1. Microsoft Excel merupakan program aplikasi A. Spreadsheet C. Wordprosesor B. Presentation D. Animasi 2. Fungsi yang digunakan untuk menghitung penjumlahan
PENGANTAR MICROSOFT EXCEL
PENGANTAR MICROSOFT EXCEL A. Memulai Microsoft Excel Ada beberapa cara untuk memulai program microsoft excel antara lain : Dari menu Start 1. Klik Start, pilih menu All Program 2. Klik Microsoft Office
FLASH, FRAME, BEHAVIOR
FLASH, FRAME, BEHAVIOR 1. Flash Menyisipkan Flash Button a. Pilih menu : insert image interactive flash button b. Tentukan property : Style : pilih bentuk / jenis tombol flash Button text : tulis label
BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS
29 BAB III ANALISIS DAN PERANCANGAN APLIKASI 3.1 ANALISIS Dengan menggunakan Visual Basic 6.0 aplikasi perangkat ajar pengelolaan dan perhitungan ekspresi matematika yang akan dibangun dalam penelitian
MODUL 2 PERANCANGAN INTERFACE
6 MODUL 2 PERANCANGAN INTERFACE A. Tujuan Praktikum 1. Mahasiswa mampu memahami struktur dasar dan konsep pemrograman berbasis objek pada Visual Basic 2. Mahasiswa mampu membuat interface antar muka untuk
BAB 7 BEKERJA DENGAN MULTIPLE FILE RECORD TYPE
BAB 7 BEKERJA DENGAN MULTIPLE FILE RECORD TYPE 7.1 MULTIPLE FILE RECORD Beberapa file mempunyai lebih dari satu type record. File data yang digunakan pada latihan latihan sebelum dalam buku latihan ini
BAB 2 OPEN OFFICE.ORG WRITER TUJUAN
7 BAB 2 OPEN OFFICE.ORG WRITER TUJUAN 1. Mengetahui cara pembuatan Table di OpenOffice.org Writer 2. Mengetahui cara pembuatan Mail Merge di OpenOffice.org Writer TEORI PENUNJANG 2.1. Membuat Tabel Tabel
Microsoft Word Bagian I
APLIKASI KOMPUTER Modul ke: Microsoft Word Bagian I Fakultas Teknik Program Studi Elektro www.mercubuana.ac.id I b r a h i m, S.T, M.T. [email protected] Pengertian Sejauh ini kita sudah sedikit banyak
BAB IV IMPLEMENTASI DAN PENGUJIAN
BAB IV IMPLEMENTASI DAN PENGUJIAN Setelah tahap analisa dan perancangan selesai, maka untuk selanjutnya adalah melakukan pengimplementasian dari analisis dan rancangan yang ada dan selanjutnya melakukan
PERTEMUAN KE-6 STRUKTUR PERULANGAN (menggunakan Loop dan Timer)
PERTEMUAN KE-6 STRUKTUR PERULANGAN (menggunakan Loop dan Timer) Tujuan: 1. Menggunakan loop For...Next untuk menjalankan pernytaan selama beberapa kali. 2. Menampilkan keluaran pada form menggunakan metode
Soal Mid Semester II Th 2010/2011
Soal Mid Semester II Th 2010/2011 1. Microsoft Excel merupakan program aplikasi a. Spreadsheet b. Wordprosesor c. Presentation d. Animasi 2. Fungsi yang digunakan untuk menghitung penjumlahan data angka
BAB 2 LANDASAN TEORI
BAB 2 LANDASAN TEORI 2.1 Pengertian Komputer Istilah komputer (computer) berasal dari bahasa latin computere yang berarti menghitung. Dalam bahasa inggris dari kata computer yang berarti menghitung. Dapat
1.1 Mengenal Visual Basic (VB) 1.2 Mengenal Integrated Development Environment (IDE) VB 6
1.1 Mengenal Visual Basic (VB) Visual Basic adalah salah satu bahasa pemrograman komputer. Bahasa pemrograman adalah perintahperintah yang dimengerti oleh komputer untuk melakukan tugas-tugas tertentu.
Konsep Sistem Informasi B
MICROSOFT ACCESS FORM Form digunakan untuk merepresentasikan ke user atau menerima inputan dari user data-data dalam tabel atau query dalam bentuk interface grid, tombol, dan lain-lain kontrol windows.
MODUL PRAKTIKUM 1 DASAR VISUAL BASIC 6.0
MODUL PRAKTIKUM 1 DASAR VISUAL BASIC 6.0 Setelah melaksanakan praktikum pada bab ini diharapkan mahasiswa dapat: Mengetahui konsep properti, event, methode dalam VB 6 Mengetahui lingkungan kerja IDE VB
BAB-II OPERASI TABEL
BAB-II OPERASI TABEL 2.1. Modifikasi Tabel Terkadang Anda perlu mengatur field yang sudah ditempatkan pada tabel, kemudian suatu saat struktur tabel tersebut ingin kita rubah, misalnya mengganti field,
PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK
1 PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK 1.1 NetBeans 8.1 Sebelum membuat project ada baiknya kenali dulu windows yang ada pada NetBeans 8.1 Projects/Services/Files Editor Output Navigator Projects
Modul 6 Mengoperasikan Perangkat Lunak Lembar Sebar (Open Source) 1 KEGIATAN BELAJAR 2
Modul 6 Mengoperasikan Perangkat Lunak Lembar Sebar (Open Source) 1 KEGIATAN BELAJAR 2 3.1. Modul 3.1.1. Mengenali Bagian-Bagian, Menu dan Istilah dalam Open Office Calc. Open Office Calc adalah salah
