Pages

Banner 468 x 60px

 

Saturday, May 11, 2019

Tim Kerja Praktek Dinas Pariwisata Rokan Hulu

0 comments

Moment Kerja Praktek  Rokan Hulu


Hari pertama yang ditungg pada tanggal 7 january tiba dengan keadaan yang kurang mendukung dimana cuaca mendung namun tetap kompak.
Read more...

Wednesday, December 19, 2018

Game Sederhana Menggunakan AI

18 comments

Game Sederhana My AI Pong menggunakan Artificial Intelligent


Game MyAIPong adalah sebuah game arcade yang menarik untuk dimainkan. Cara bermainnya cukup mudah yaitu pemain (player) menggerakkan brick atau papan ke kiri dan ke kanan sesuai arah bola untuk memantulkan bola ke arah lawan. Pada game ini kita akan melawan sebuah artificial inteligent yang sudah di program sebelumnya. Fyi game ini terinspirasi dari permainan bola ping-pong loh.
Artificial Inteligent atau kecerdasan buatan adalah ilmu yang mempelajari cara membuat komputer melakukan sesuatu seperti yang dilakukan manusia (Minsky, 1989). Definisi lain diungkapkan oleh H. A. Simon (1987), kecerdasan buatan merupakan kawasan penelitian, aplikasi dan instruksi yang terkait dengan pemrograman komputer untuk melakukan sesuatu hal yang dalam pandangan manusia adalah cerdas. Definisi kecerdasan buatan lainnya juga diungkapkan oleh Rich and Knight (1991), kecerdasan buatan merupakan sebuah studi tentang bagaimana membuat komputer melakukan hal-hal yang pada saat ini dapat dilakukan lebih baik oleh manusia. Dan definisi lainnya juga ditulis dalam Encyclopedia Britania, Kecerdasan Buatan (AI) merupakan cabang dari ilmu komputer yang dalam merepresentasi pengetahuan lebih banyak menggunakan bentuk simbol-simbol daripada bilangan, dan memproses informasi berdasarkan metode heuristic atau dengan berdasarkan sejumlah aturan.
Game ini dibuat dengan menggunakan Processing, yang merupakan sebuah software sederhana yang digunakan untuk coding di suatu komputer, penggunaannya hampir sama mudahnya dengan software text editor sederhana (seperti TextEdit atau Notepad) yang dikombinasikan dengan sebuah media player. Setiap sketsa (program pada Processing disebut dengan sketsa) memiliki sebuah nama file, sebuah tempat dimana kamu dapat membuat coding, dan beberapa tombol untuk menyimpan, membuka, dan menjalankan sketsa.


jika anda ingin mencoba anda harus mendownload source code sebelumnya di diodwiki.blogspot.com part 1 dan wisnudhanti.blogspot.com part2
Berikut Source code Part 3 Lanjutannya

Source code  Program/Game

void drawPembatas() {
  fill(0, 100);
  rectMode(CENTER);
  rect(pembatasX, pembatasY, pembatasWidth, pembatasHeight);
}

void printScore() {
  textAlign(CENTER);
  text("Player Score : " + scorePong, 60, 15);
  text("AI Score : " + AIscorePong, 45, 35);
}

void scorePong() {
  scorePong++;
}

void AIscorePong() {
  AIscorePong++;
}

//JENIS-JENIS SKILL BOLA
void skillAdder() {
  if (millis() - lastAddTime > skillInterval) {
    int sX = round(random(0, width));
    int sY = round(random(0, height));
    int skillSpeedHor = round(random(-8, 8));
    int skillSpeedVert = round(random(-8, 8));
    int destroySkill = lastAddTime + 9000;
    int Ability = round(random(0, width));
    int[] randSkill = {sX, sY, skillSize, skillSize, skillSpeedHor, skillSpeedVert, destroySkill, Ability};
    skills.add(randSkill);
    lastAddTime = millis();
  }
}

//MEMPERODUKSI SKILL BOLA
void skillHandler() {
  for (int i = 0; i < skills.size(); i++) {
    skillSpeedHor(i);
    skillSpeedVert(i);
    keepSkillInScreen(i);
    AIkejarSkill(i);
    //pongKejarSkill(i);
    skillDrawer(i);
    destroySkill(i);
  }
}

void skillDrawer(int index) {
  int[] skill = skills.get(index);

  int skillsX = skill[0];
  int skillsY = skill[1];
  int skillsWidth = skill[2];
  int skillsHeight = skill[3];

  fill(random(255), random(255), random(255));
  ellipseMode(CENTER);
  ellipse(skillsX, skillsY, skillsWidth, skillsHeight);
}

void skillSpeedVert(int index) {
  int[] skill = skills.get(index);
  skill[1] = skill[1] + skill[5];
}

void skillSpeedHor(int index) {
  int[] skill = skills.get(index);
  skill[0] = skill[0] + skill[4];
}

void keepSkillInScreen(int index) {
  int[] skill = skills.get(index);

  if (skill[1] > height) {
    bounceSkillBottom(index, height);
  }
  if (skill[1] < 0) {
    bounceSkillTop(index, 0);
  }
  if (skill[0] > width) {
    bounceSkillRight(index, width);
  }
  if (skill[0] < 0) {
    bounceSkillLeft(index, 0);
  }
}

void bounceSkillBottom(int index, int surface) {
  int skill[] = skills.get(index);

  skill[1] = surface-(skill[3]/2);
  skill[5] *= -1;
}

void bounceSkillTop(int index, int surface) {
  int[] skill = skills.get(index);

  skill[1] = surface+(skill[3]/2);
  skill[5] *= -1;
}

void bounceSkillRight(int index, int surface) {
  int[] skill = skills.get(index);

  skill[0] = surface-(skill[2]/2);
  skill[4] *= -1;
}

void bounceSkillLeft(int index, int surface) {
  int[] skill = skills.get(index);

  skill[0] = surface+(skill[2]/2);
  skill[4] *= -1;
}

void destroySkill(int index) {
  int[] skill = skills.get(index);

  if (millis() >= skill[6]) {
    skills.remove(index);
    println("Skill Hilang");
  }
 
  if ((skill[0]+(skill[3]/2) > pongX-(pongWidth/2)) && (skill[0]-(skill[3]/2) < pongX+(pongWidth/2))) {
    if (skill[1]+(skill[4]/2) >= pongY) {
      pongWidth = skill[7];
      skills.remove(index);
    }
  }
 
  if ((skill[0]+(skill[3]/2) > AIpongX-(AIpongWidth/2)) && (skill[0]-(skill[3]/2) < AIpongX+(AIpongWidth/2))) {
    if (skill[1]-(skill[4]/2) <= AIpongY) {
      AIpongWidth = skill[7];
      skills.remove(index);
    }
  }
}

void AIkejarSkill(int index) {
  int[] skill = skills.get(index);

  if (skill[1] < height/2 && skill[1] < ballY) {
    if (!(skill[0]+(skill[3]/2) > AIpongX-(AIpongWidth/2))) {
      AIpongX = AIpongX + (AIpongSpeed * -1);
    } else if (!(skill[0]-(skill[3]/2) < AIpongX+(AIpongWidth/2))) {
      AIpongX = AIpongX + (AIpongSpeed * 1);
    }
  }
}

void pongKejarSkill(int index) {
  int[] skill = skills.get(index);

  if (skill[1] > height/2 && skill[1] > ballY) {
    if (!(skill[0]+(skill[3]/2) > pongX-(pongWidth/2))) {
      pongX = pongX + (pongSpeed * -1);
    } else if (!(skill[0]-(skill[3]/2) < pongX+(pongWidth/2))) {
      pongX = pongX + (pongSpeed * 1);
    }
  }
}


Berikut langkah-langkah memainkannya

a. Run program
b. Klik start pada program
c. Gunakan tombol  A untuk menggeser papan milik player(bawah)  kekiri, dan tombol D untuk menggeser ke Kanan
d. Usahakan bola mengenai papan
e. Jika bola mengenai lantai maka point lawan akan bertambah
f. Usakan juga papan terkena bola bayangan. Bola bayangan dapat memperpanjang dan memperpendek papan kita, jika papan masih kecil maka bola bayangan akan membuat papan menjadi panjang, sebaliknya jika papan panjang maka anda harus menghindari bola bayangan.

Tampilan Game




Selamat mencoba.

Read more...

Thursday, May 3, 2018

Interaksi Manusia dan Komputer

4 comments

Selamat datang di blog ini
perkenalkan nama saya Darwin dari TI 16 
adapun tujuan dari dibuatnya blog ini untuk memenuhi tugas dari mata kuliah IMK
dan sebagian besar isi blog ini adalah berisi tentang materi kuliah Interaksi Manusia dan Komputer
dan tentang Klub sepakbola Real Madrid  



Apa itu Interaksi Manusia Komputer ?

Interaksi manusia dan komputer atau yang disingkat IMK (bahasa Inggris: human–computer interaction, HCI) adalah disiplin ilmu yang mempelajari hubungan antara manusia dan komputer yang meliputi perancangan, evaluasi, dan implementasi antarmuka pengguna komputer agar mudah digunakan oleh manusia. Ilmu ini berusaha menemukan cara yang paling efisien untuk merancang pesan elektronik, Sedangkan interaksi manusia dan komputer sendiri adalah serangkaian proses, dialog dan kegiatan yang dilakukan oleh manusia untuk berinteraksi dengan komputer yang keduanya saling memberikan masukan dan umpan balik melalui sebuah antarmuka untuk memperoleh hasil akhir yang diharapkan dalam interaksi manusia dengan komputer terdapat beberapa panca indra digunakan untuk dapat berinteraksi----: Manusia mewujudkan fisiologi yang diperlukan untuk menyerap informasi dalam bentuk suara.  Sama seperti mata dapat melihat berbagai variasi cahaya - rona, briteness, kontras - telinga mampu penginderaan array yang luas dari suara melalui perubahan timbre, kenyaringan, dan pitch. Pikiran kemudian dapat mengasosiasikan suara ini dengan peristiwa, objek, atau gagasan abstrak.Paling sering, suara-sebagai-informasi ada sebagai pidato atau musik, dan memang ini akan terus di Internet. Audio konten juga umumnya dihasilkan oleh mesin untuk menyampaikan informasi, dan penggunaan ini juga akan terus di Internet.
Contoh: Dalam sebuah rumah sakit, suara Mengenal dari elektrokardiograf (EKG) berbunyi 'bip' dalam irama ke jantung; pager alert wanita di sebuah sudut jalan, telegraf memancarkan klik merata-spasi dalam kode Morse. Semua ini adalah contoh menampilkan pendengaran, suara yang dibuat oleh sebuah mesin dalam rangka berhubungan informasi. Di zaman ketika bahasa telah menjadi bentuk komunikasi dominan, suara memainkan peran penting dalam hidup kita.


Tujuan Mempelajari Hubungan antara Manusia dan Komputer

Untuk mempermudah manusia dalam mengoperasikan komputer dan mendapatkan berbagai umpan balik yang ia perlukan selama ia bekerja pada sebuah sistem komputer. Para perancang antarmuka manusia dan komputer berharap agar sistem komputer yang dirancangnya dapat bersifat akrab dan ramah dengan penggunanya user friendly.Kesalahan pengutipan: Tag <ref> tidak sah atau memiliki nama yang salah. Atau keyboard yang digunakan pada komputer tersebut tombol-tombolnya keras sehingga susah untuk mengetik sesuatu.Contoh-contoh diatas merupakan beberapa hal mengapa kita membutuhkan mempelajari Interaksi Manusia dan Komputer.Kita butuh Interaksi manusia komputer adalah agar kita lebih cepat dalam menyelesaikan suatu pekerjaan. serta dapat membuat waktu pengerjaannya lebih cepat dan tidak membutuhkan banyak biaya dalam membuat suatu pekerjaan.






Berikut ini jadwal pertandingan Final Liga Champions Eropa

27 mei 2018
Real Madrid VS Liverpool live Stadion olimpyco KIEV Ukraina



demikian untuk informasi kali ini, nantikan informasi selanjutnya .



















































Read more...