Tampilkan postingan dengan label Praktikum Dasar Pemrograman Komputer. Tampilkan semua postingan
Tampilkan postingan dengan label Praktikum Dasar Pemrograman Komputer. Tampilkan semua postingan

1 Mei 2013

GRAFIKA KOMPUTER : INTERAKSI KEYBOARD


LANGKAH AWAL MENGGERAKKAN OBJEK PADA MULTIPLAYER GAME

Dalam suatu game juga dikenal istilah multiplayer game. Konsep multiplayer adalah konsep game dimana ada dua karakter utama di sebuah permainan, yang biasa dikenal dengan player1 dan player2. interaksi objek ini juga dapat dilakukan menggunakan keyboard.
Menggunakan interaksi keyboard beberapa objek dapat digerakan secara bersamaan (menyatu) dan sendiri sendiri (terpisan). konsep peggerakan objek secara terpisah inilah yang nantinya menjadi langkah awal untuk menggerakan objek utama pada multiplayer game. Menggunakan logika dan variabel player1 dan player2 dapat dibentuk interaksi objek yang terpisah.
Disini akan dijelaskan menggunakan dua buah objek 2D yakni player1 sebagai segitiga dan player2 sebagai segiempat. Digunakan SpecialKeyboardFunction untuk menggerakkan player1, dan keyboard biasa untuk menggerakkan player2*.

*)Player1 digerakkan menggunakan UP | DOWN | LEFT | RIGHT. Player2 digerakkan menggunakan W | A | S | D

Sebelum menginjak ke dasar permainan, dijelaskan dulu dasar dasar script untuk interaksi keyboard. Ada dua fungsi untuk keyboard, yakni Keyboard Function dan Special Keyboard Function

         Pertama adalah Keyboard Function, digunakan source code dibawah ini :
void myKeyboard(unsigned char key, int x, int y){

if(key == 'a'){
//Interaksi bila ditekan A
}
if(key == 's'){
//Interaksi bila ditekan S
}
if(key == 'd'){
//Interaksi bila ditekan D
}
if(key == 'w'){
//Interaksi bila ditekan W
}

}

Untuk fungsi callback yang memanggil tombol keyboard normal / biasa adalah
glutKeyboardFunc(myKeyboard); //hanya memanggil fungsi myKeyboard

Kedua adalah Special Keyboard Function, digunakan source code dibawah ini :
void mySpecialKeyboard(int key, int x, int y){

switch(key)
{
case GLUT_KEY_LEFT:
              //Interaksi bila ditekan Tombol Panah Kiri
              break;
       case GLUT_KEY_RIGHT:
              //Interaksi bila ditekan Tombol Panah Kanan            break;
       case GLUT_KEY_UP:
              //Interaksi bila ditekan Tombol Panah Atas             break;
       case GLUT_KEY_DOWN:
              //Interaksi bila ditekan Tombol Panah Bawah            break;
}

}

Untuk fungsi callback yang memanggil tombol Special Keyboard adalah
glutSpecialFunc(mySpecialKeyboard); //hanya memanggil fungsi mySpecialKeyboard


Untuk daftar tombol-tombol spesialnya adalah sebagai berikut :

Berikut adalah script dasar dasar multiplayer game menggunakan interaksi keyboard, dengan Player1 sebagai persegi dan Player2 sebagai segitiga.


Screen Shot :
1.      Posisi awal 


2.      Pergerakan Player1 (A, W, D, S)

3.     Pergerakan Player2








Posted By Galih Praz23.19

5 Nov 2012

Program Kalkulator Sederhana [Fungsi]


2. Buatlah program bentuk MENU UTAMA yang berisi operasi aritmetika yang berisi penjumlahan, pengurangn, perkalian dan pembagian. MENU UTAMA tersebut berisi 5 pilihan yang tampil seperti berikut:

MENU UTAMA
1. Operasi Penjumlahan
2. Operasi Pengurangan
3. Operasi Perkalian
4. Operasi Pembagian
x. Keluar

Menu di atas akan diulang terus menrus dengan meminta pengguna supaya memasukkan kode. Jika kode yang di inputkan oleh pengguna selain 1,2,3,4 atau x, satu pesan muncul “Kode tidak sesuai!”, sedangkan kode X pula akan menghasilkan pesan “Terima Kasih”.




program kalkulator sederhana fungsi C++


Posted By Galih Praz22.29

3 Nov 2012

Program Permutasi Pn Menggunakan Fungsi

Program Permutasi


Program permutasi Pn

Posted By Galih Praz18.00

31 Jul 2012

PENGENALAN FUNGSI C++


1. PROTOTYPE FUNCTION (Deklarasi Fungsi)

Contoh 1 :


Nilai Max

Contoh 2 :



Pajak



2. FUNGSI REKURSIF (Fungsi Yang Memanggil Dirinya Sendiri)

Contoh 1 :



Fungsi Faktorial


Contoh 2 :


Fungsi Fibbonaci

Posted By Galih Praz15.14

29 Mei 2012

MODUL 4 BAHASA PEMROGRAMAN TERSTRUKTUR



LAB 1 lihat disini (KONDISI IF)
Sebuah toko dengan nama "HALAL MAKMUR JAYA", dalam melayani pembeli, mempunyai ketentuan dalam memberikan potongan harga. Dimana besarnya potongan harga dari pembelian barang adalah sebagai berikut:
  1. Tidak ada potongan jika total pembelian kurang dari Rp.50.000
  2. Jika total pembelian lebih dari atau sama dengan Rp.50.000 potongan yang diterima sebesar 20% dari total pembelian.
  3. Konsumen ingin anda membuatkan program dengan mencantumkan juga label toko, nama kasir dan pembeli.
Buat flowchart dan program untuk menyelesaikan masalah di atas?


LAB 2 lihat disini (KONDISI IF-ELSE)
Sebuah toko dengan nama "GEMA INSANI", dalam melayani pembeli, mempunyai ketentuan dalam memberikan potongan harga. Dimana besarnya potongan harga dari pembelian barang adalah sebagai berikut:
  1. Jika total pembelian barang kurang dari Rp.50.000, maka potongan yang diterima sebesar 5% dari total pembelian.
  2. Jika total pembelian barang lebih atau sama dengan Rp.50.000 potongan yang diterima sebesar 20% dari total pembelian.
  3. Konsumen ingin anda membuatkan program dengan mencantumkan juga label toko, nama kasir dan pembeli.
Buat flowchart dan program untuk menyelesaikan masalah di atas?



LAB 3 lihat disini (KONDISI NESTED-IF)
Suatu Perusahaan dengan nama "SEJAHTERA HALAL SENTOSA" memberikan komisi
kepada para salesmannya dengan ketentuan sebagai berikut:
  1. Bila salesman dapat menjual barang hingga Rp.20.000, maka akan diberikan uang jasa sebesar Rp.10.000. ditambah dengan komisi Rp. 10% dari pendapatan yang diperoleh hari itu.
  2. Bila salesman dapat menjual barang diatas Rp.20.000, maka akan diberikan uang jasa sebesar Rp.20.000, ditambah dengan uang komisi Rp.15% dari pendapatan yang diperoleh pada hari itu.
  3. Bila salesman dapat menjual barang diatas Rp.50.000, maka akan diberikan uang jasa sebesar Rp.30.000, ditambah dengan uang komisi Rp.20% dari pendapatan yang diperoleh pada hari itu.
  4. Perusahaan itu ingin anda membuatkan program dengan mencantumkan juga label nama perusahaan, nama kasir dan salesman.
Buat flowchart dan program untuk menyelesaikan masalah di atas?  



LAB.4 lihat disini (KONDISI IF-ELSE MAJEMUK)
Buatlah program untuk membantu seorang dosen Teknik Elektro UM dalam menentukan nilai akhir mahasiswa. Ketentuan yang harus dilakukan adalah sebagai berikut :
a. Ketentuan pengambilan nilai :
  1. Nilai Murni Keaktifan = nilai keatifan dikalikan 20 %
  2. Nilai Murni Tugas = nilai tugas dikalikan 30%
  3. Nilai Murni Ujian = nilai ujian dikalikan 50%
  4. Nilai Akhir = Nilai Murni Ujian + Nilai Murni Tugas + Nilai Murni Keaktifan.
b. Melakukan konversi Nilai angka ke nilai Huruf dengan ketentuan sebagai berikut :
  1. 0-44 nilai = E
  2. 45- 55 nilai = D
  3. 56- 65 nilai = C
  4. 66- 75 nilai = B-
  5. 76-85 nilai = B
  6. 86- 90 nilai = A-
  7. 91-100 nilai = A
c. Melakukan penguatan kepada mahasiswa dengan ketentuan sebagai berikut :
  • Antara 0 s/d 55 tampilkan pernyataan "Anda tidak lulus, tingkatkan belajar anda"
  • Antara 56 s/d 65 tampilkan pernyataan "Anda lulus, tingkatkan prestasimu"
  • Antara 66 s/d 85 tampilkan pernyataan "Anda lulus dengan baik, pertahankan prestasimu"
  • Antara 86 s/d 100 tampilkan pernyataan "Anda tidak lulus, EXCELLENT"


LAB5 lihat disini (KONDISI SWITCH-CASE)
Buatlah diagram alir dan program dengan menggunakan logika percabangan Switch-Case untuk melakukan pemilihan menu penghitungan rumus-rumus :
  • Rumus Menghitung Luas Segitiga;
  • Rumus Menghitung Luas Balok:
  • Rumus Menghitung konversi suhu;
  • Rumus Menghitung Luas Lingkaran.
  • Rumus untuk mengetahui tahun kabisat.
Catatan :
  • Manfaatkan progam yang telah kamu buat pada praktikum sebelumnya. 




Posted By Galih Praz13.25

28 Mei 2012

MODUL 3 BAHASA PEMROGRAMAN TERSTRUKTUR

1. Program Konversi Operasi Aritmatika (1) disini
2. Program Konversi Operasi Aritmatika (2) disini
3. Program Konversi Operasi Aritmatika (3) disini
4. Program Konversi Operasi Aritmatika (4) disini
5. Program Konversi Operasi Increment Dan Decrement disini
6. Program Konversi Operasi Relasi (Perbandingan) disini
7. Program Konversi Operasi Logika (1) disini
8. Program Konversi Operasi Logika (2) disini
9. Program Konversi Operasi Bitwise (1) disini
10. Program Konversi Operasi Bitwise (2) disini
11. Program Konversi Operasi Bitwise (3) disini
12. Program Konversi Operasi Bitwise (4) disini
13. Program Konversi Operasi Bitwise (5) disini

TUGAS RUMAH

1. Program Kalkulator Sederhana disini



Posted By Galih Praz22.53

16 Mar 2012

INSERTION SORT [ASCENDING]

INSERTION SORT C++ [ASCENDING]
Insertion Sort Ascending 

Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.  



Insertion Sort Ascending 1 

Insertion Sort Ascending 2





Posted By Galih Praz16.01

PENGERTIAN DAN JENIS SORTING

SORTING
Sorting

Sorting adalah suatu proses pengurutan data yang sebelumnya disusun secara acak atau tidak teratur menjadi urut dan teratur menurut suatu aturan tertentu. Sorting dapat dibedakan menjadi dua jenis yaitu ascending dan descending. 

Ascending adalah pengurutan data dari kecil ke besar, sedangkan descending adalah pengurutan data dari besar ke kecil. 

Macam-macam sorting dalam C++ : bubble sort, selection sort, insertion sort, exchange sort, merge sort, quick sort, dan lain sebagainya. Kita bahas satu per satu. 

MACAM-MACAM SORTING

  • Buble Sort :

Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=


  • Selection Sort :

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=


  • Insertion Sort :

Algoritma insertion sort pada dasarnya memilah data yang akan diurutkan menjadi dua bagian, yang belum diurutkan dan yang sudah diurutkan. Elemen pertama diambil dari bagian array yang belum diurutkan dan kemudian diletakkan sesuai posisinya pada bagian lain dari array yang telah diurutkan. Langkah ini dilakukan secara berulang hingga tidak ada lagi elemen yang tersisa pada bagian array yang belum diurutkan.

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=


  • Shell Sort :

Merupakan algoritma yang stau jenis dengan insertion sort, dimana pada setiap nilai i dalam n/i item diurutkan. Pada setiap pergantian nilai, i dikurangi sampai 1 sebagai nilai terakhir

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=


  • Merge Sort :

Algoritma dirumuskan dalam 3 langkah berpola divide-and-conquer. Berikut menjelaskan langkah kerja dari Merge sort.

1. Divide

Memilah elemen – elemen dari rangkaian data menjadi dua bagian.

2. Conquer

Conquer setiap bagian dengan memanggil prosedur merge sort secara rekursif

3. Kombinasi

Mengkombinasikan dua bagian tersebut secara rekursif untuk mendapatkan rangkaian data berurutan

Proses rekursi berhenti jika mencapai elemen dasar. Hal ini terjadi bilamana bagian yang akan diurutkan menyisakan tepat satu elemen. Sisa pengurutan satu elemen tersebut menandakan bahwa bagian tersebut telah terurut sesuai rangkaian.

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=


  • Quick Sort :

Algoritma ini berdasar pada pola divide-and-conquer. Berbeda dengan merge sort, algoritma ini hanya mengikuti langkah – langkah sebagai berikut :

1. Divide

Memilah rangkaian data menjadi dua sub-rangkaian A[p…q-1] dan A[q+1…r] dimana setiap elemen A[p…q-1] adalah kurang dari atau sama dengan A[q] dan setiap elemen pada A[q+1…r] adalah lebih besar atau sama dengan elemen pada A[q]. A[q] disebut sebagai elemen pivot. Perhitungan pada elemen q merupakan salah satu bagian dari prosedur pemisahan.

2. Conquer

Mengurutkan elemen pada sub-rangkaian secara rekursif. Pada algoritma quicksort, langkah ”kombinasi” tidak di lakukan karena telah terjadi pengurutan elemen – elemen pada sub-array

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-= 


  • Heap Sort:

Heap sort adalah sorting yang menggunakan struktur data heap, dengan nilai parent selalu lebih besar dari pada nilai childnya.

Algoritma:

Buat suatu heap.
Ambil isi dari root masukkan kedalam sebuah array.
Hapus element root dengan mempertahankan properti heap.
Ulangi sampai tree menjadi kosong

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-= 


  • Bucket Sort :

Algoritma:

Cari nilai maksimum dan minimum di array
Inisialisasi array bucket Daftar <> unsur (ukuran maxValue – minValue + 1)
Pindahkan elemen dalam array untuk bucket
Write bucket keluar (dalam rangka) ke array yang asli
Yang menyenangkan tentang algoritma jenis ember adalah bahwa sangat sederhana untuk kode.

=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=-+-=


  • Radix Sort:

Secara kompleksitas waktu, radix sort termasuk ke dalam Divide and Conquer. Namun dari segi algoritma untuk melakukan proses pengurutan, radix sort tidak termasuk dalam Divide and Conquer.

Radix sort merupakan sebuah algoritma pengurutan yang mengatur pengurutan nilai tanpa melakukan beberapa perbandingan pada data yang dimasukkan.

Posted By Galih Praz14.54

BUBLE SORT [DESCENDING]

BUBLE SORT C++ [DESCENDING]

Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.



ATAU



Buble Sort Descending

Posted By Galih Praz14.26

BUBLE SORT [ASCENDING]

BUBLE SORT C++ [ASCENDING]

Merupakan algoritma pengurutan paling tua dengan metode pengurutan paling sederhana. Pengurutan yang dilakukan dengan membandingkan masing-masing item dalam suatu list secara berpasangan, menukar item jika diperlukan, dan mengulaginya sampai akhir list secara berurutan, sehingga tidak ada lagi item yang dapat ditukar.

Buble Sort Ascending 



ATAU



Buble Sort Ascending 1

Buble Sort Ascending 2



Posted By Galih Praz13.50

SELECTION SORT [DESCENDING]

SELECTION SORT C++ [DESCENDING]

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.



Selection Sort Descending



Posted By Galih Praz08.09

SELECTION SORT [ASCENDING]

SELECTION SORT C++ [ASCENDING]

Ide utama dari algoritma selection sort adalah memilih elemen dengan nilai paling rendah dan menukar elemen yang terpilih dengan elemen ke-i. Nilai dari i dimulai dari 1 ke n, dimana n adalah jumlah total elemen dikurangi 1.



Selection Sort Ascending

Selection Sort Ascending 1


Posted By Galih Praz00.35

9 Mar 2012

TRANSPOSE MATRIKS INPUTAN UTS

PROGRAM TRANSPOSE MATRIKS INPUTAN



Transpose Matriks Inputan

Transpose Matriks Inputan 1

Transpose Matriks Inputan 2

Transpose Matriks Inputan 3

Transpose Matriks Inputan 4

Transpose Matriks Inputan 5

Posted By Galih Praz07.13

Select Your Language