130 likes | 270 Views
Workshop Project II. Mohammad Zikky, S.ST, M.T. GBPP Perkuliahan. Aturan Pembuatan Laporan. Dibuat setiap selesai habis workshop Meliputi : Dasar Teori Alat dan Bahan Analisa dan Penjelasan Per- bagian Pengembangan Kesimpulan
E N D
WorkshopProject II Mohammad Zikky, S.ST, M.T
AturanPembuatanLaporan • Dibuatsetiapselesaihabisworkshop • Meliputi: • DasarTeori • AlatdanBahan • AnalisadanPenjelasan Per-bagian • Pengembangan • Kesimpulan • Laporantulisanharusditulistangandanhasil yang berupa output praktikum di computer bisa di screenshot, di print kemudian di temple bersamatulisantangan di bukulaporan. • Tidakbolehada yang samapersisantarmahasiswa (baikgambarataupenulisan), jikaditemukan, akandikenakanpinaltinilai
Penilaian • Knowledge = 25% • Skill = 35% • Attitude = 40% • Knowledge akandilihatdaripenjelasanketika demo program/presentasi • Skill dilihatdariprofesionalismekeseharianmengerjakanpraktikumdancaramembuatlaporanhasilpraktikum • Attitude dilahatdarisikapkepadatemandandosendalamkeseharian di kampus • Waktumaksimalketerlambatan: 15 menitsetelahperkuliahandimulai
Referensi • N Utama, Didit. Widayanti, Rya. Algoritma & Pemrogramandengan Borland C++. GrahaIlmu, 2005 • Dickheiser, Michael J. C++ for Game Programmer, Second Edition. Charles River Media, 2007 • Allain, Alex. Jumping into C++. Alex Allain (www.cprogramming.com), 2014 • Unity3d.com Tutorials
Instalasi • Install Borland 6 Builder sebagai Compiler C++ di computer • Pilih New Consule Wizard OK • Centang C++ danConsule Application OK
Masukkansource code program berikut: int main() { char tekan='X'; //perulanganiniakandiulangselamatekan TIDAK SAMA dengan 'x' while(tekan!='x') { //cetaktulisan 'halo' padakolom=20 & baris=10 gotoxy(20,10); cout << "hallo"; delay(1000); //cetaktulisankosongpadakolom=20 & baris=10 //untukmenimpatulisan 'halo' gotoxy(20,10); cout << " "; //cetaktulisan 'dunia' padakolom=30 & baris=10 gotoxy(30,10); cout << "dunia"; delay(1000); //cetaktulisankosongpadakolom=30 & baris=10 //untukmenimpatulisan 'dunia' gotoxy(30,10); cout << " "; //cekapakahterjadipenekanantombol, //jika 'ya', simpantomboltersebutpadavariabel TEKAN if(kbhit()) tekan = getch(); } } #include<iostream> #include<windows.h> using namespace std; //variabel global untukmenyimpantombolinformasi //tombol yang ditekan INPUT_RECORD InRec; //fungsi delay(), digunakanuntukmenunda proses eksekusi //selamabeberapa millisecond #define delay Sleep //fungsigotoxy(), digunakanuntukmenempatkankursor //padaposisi KOLOM dan BARIS void gotoxy(unsigned intkolom, unsigned intbaris) { COORD posisi = {kolom,baris}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), posisi); } //fungsikbhit(), digunakanuntukmendeteksiterjadinya //penekanantombol. Jikaterdapattombol yang ditekanmakafungsiini //akanmengembalikannilai TRUE sebaliknya FALSE boolkbhit() { DWORD EventCount,NumRead; GetNumberOfConsoleInputEvents(GetStdHandle(STD_INPUT_HANDLE), &EventCount); if(EventCount>0) ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE), &InRec, 1, &NumRead); return (InRec.EventType == KEY_EVENT); } //fungsigetch(), digunakanuntukmengambilinformasitombol yang //terakhir kali ditekan. char getch() { return InRec.Event.KeyEvent.uChar.AsciiChar; }
Langkahberikutnya • File Save Project as • Berinama file misalkan main.cpp • Kemudianberinama project, missal: project1 • Save • Setelahitu, cobajalankandenganklik RUN
Penjelasan AnimasiMajuMundur • AnimasitulisanMaju-Munduradalahanimasisederhanamembuattulisanbergerakmajudansaatmencapaiposisitertentutulisantersebutakanbergerakmundur, begituseterusnya. Program akanberakhirjikapemakaimenekantombol 'x'. • Program inibisadibuatdenganmudahmenggunakan Turbo / Borland C++ for Dos, karenatelahtersediafungsi-fungsi yang cukupmudahuntukdigunakansepertigotoxy(), delay(), kbhit()dangetch(). • delay(): digunakanuntukmenunda proses eksekusiselamabeberapamillisecond • gotoxy(): digunakanuntukmenempatkankursorpadaposisi KOLOM danBARIS • kbhit(): digunakanuntukmendeteksiterjadinyapenekanantombol. Jikaterdapattombol yang ditekanmakafungsiiniakanmengembalikannilai TRUE sebaliknyaFALSE • getch(): digunakanuntukmengambilinformasitombol yang terakhir kali ditekan. • Yang perludilakukanhanyalahmenggunakanpusataka, conio.h & dos.h. #include <conio.h> #include <dos.h>
Langkahpertama • Ide dasardarianimasiinisebenarnyahanyalah "tulis" kemudian "hapus". • Jikakitamempunyai program berikut : gotoxy(10,20); cout << "Halo"; gotoxy(30,20); cout << "Dunia"; • makatulisan "Halo" akanditulispadaposisikolom=10 danbaris=20 sedangkantulisan "Dunia" akanditulispadaposisikolom=20 danbaris=20. • Jikakitainginmembuatanimasi, tulisan "Halo" ditampilkandulukemudiansetelahbeberapasaatbarutulisan "Dunia" ditampilkan, makakitamembutuhkanfungsi delay() gotoxy(10,20); cout << "Halo"; delay(1000); //tundaselama 1000ms = 1 detik gotoxy(30,20); cout << "Dunia";
Langkahkedua • Jikakitainginkan agar ketikatulisan "Dunia" ditampilkanmakatulisan "Halo" harusdihapusmakaidenyaadalahkitamenimpatulisan "Halo" dengantulisankosong " ". Tentutulisankosongharusditulispadaposisikolomdanbaris yang samadengantulisan "Halo". gotoxy(10,20); cout << "Halo"; //tundaselama 1000ms = 1 detik delay(1000); //timpatulisan "Halo" dengantulisankosong gotoxy(10,20); cout << " "; gotoxy(30,20); cout << "Dunia"; • Dengan ide sederhanasepertiini, kitabisamembuatanimasi-animasi lain yang lebihmenarik
//area animasi unsigned int BATASKANAN = 45; unsigned int BATASKIRI = 10; unsigned intkolom = 10; unsigned intbaris = 10; //teks yang akandicetak string teks = "PENS JOSS"; //perulanganiniakandiulangselamatekan TIDAK SAMA dengan 'x' while(tekan!='x') { //kontrolposisi if(maju==true) { //cobadeh, gantibagianinidengan 'kolom>=BATASKANAN' //apa yang terjadi ? if (kolom>=BATASKANAN-teks.length()) { maju=false; } else { kolom++; } } else { if (kolom<=BATASKIRI) { maju=true; } else { kolom--; } } //TULIS teks gotoxy(kolom,baris); cout<< teks; //cekapakahterjadipenekanantombol, //jika 'ya', simpantomboltersebutpadavariabel TEKAN if(kbhit()) tekan = getch(); delay(50); //HAPUS teks cout.width(teks.length()); //Cobadeh, tambahkantitik di antaratandakutipberikut //apa yang terjadi ? cout.fill(' '); //Diantaratandakutipberikut, akandiisidengan KARAKATER //yang ditentukanlewatfungsicout.fill(KARAKATER) diatas gotoxy(kolom,baris); cout<<""; } } Percobaan Ke-2 #include<iostream> #include<windows.h> using namespace std; //variabel global untukmenyimpaninformasi //tombol yang ditekan INPUT_RECORD InRec; //fungsi delay(), digunakanuntukmenunda proses eksekusi //selamabeberapa millisecond #define delay Sleep //fungsigotoxy(), digunakanuntukmenempatkankursor //padaposisi KOLOM dan BARIS void gotoxy(unsigned intkolom, unsigned intbaris) { COORD posisi = {kolom,baris}; SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), posisi); } //fungsikbhit(), digunakanuntukmendeteksiterjadinya //penekanantombol. Jikaterdapattombol yang ditekanmakafungsiini //akanmengembalikannilai TRUE sebaliknya FALSE boolkbhit() { DWORD EventCount,NumRead; GetNumberOfConsoleInputEvents(GetStdHandle(STD_INPUT_HANDLE), &EventCount); if(EventCount>0) ReadConsoleInput(GetStdHandle(STD_INPUT_HANDLE), &InRec, 1, &NumRead); return (InRec.EventType == KEY_EVENT); } //fungsigetch(), digunakanuntukmengambilinformasitombol yang //terakhir kali ditekan. char getch() { return InRec.Event.KeyEvent.uChar.AsciiChar; } int main() { gotoxy(10,4); cout << "==================================="; gotoxy(10,5); cout << "== AnimasiTulisanMajuMundur 2 =="; gotoxy(10,8); cout << "==================================="; gotoxy(10,12); cout << " [ Tekan 'x' UntukKeluar ] "; char tekan='X'; //kontrolarahgeraktulisan //kalau TRUE tulisanakanbergerakke KANAN (MAJU) //kalau FALSE tulisanakanbergerakke KIRI (MUNDUR) boolmaju = true;
Percobaanlebihlanjut • Silahkanmodifikasi program tersebutmisalkanmenampilkantulisannaikturun, memberihitunganberapa kali tulisanlewat, ataulainnya. • Analisadanjelaskanhasilpraktikumnya • Buatlaporan