Selasa, 12 November 2013

Tools Forensik

Tools Forensik

Kategori Software Forensik

Tools yang dipergunakan oleh ahli forensik harus bekerja baik dan tidak mengubah data. Di samping itu, komunitas komputer forensik harus menerima tool dan hasilnya. Tool kit untuk pengujian forensik memungkinkan untuk mengumpulkan dan analisis data, seperti tcpdump, Argus, NFR, tcpwrapper, sniffer, nstat, tripwire, diskcopy (/v pada DOS), DD pada Unix.  Karena ahli hukum percaya bit lebih mudah dipalsukan daripada kertas, maka aturan utamanya adalah “preserve then examine[2].

Software Forensik dikategorikan dalam beberapa bidang [2], yaitu

a    a.     Forensic software tools for Windows
b.      Image and Document Readers
c.       Data Recovery/Investigation
d.      Password Cracking
e.      Network Investigation
f.        Phone Investigation
g.      PDA Investigation
h.      Lab Tools
i.        Assessments utilities
j.        Foundstone SASS Tools
k.       Intrusion Detection Tools
l.        Scanning Tools
m.    Stress Testing Tools



Baca artikel lainnya mengenai tool forensik :
·         klasifikasi alat untuk digital forensic : yudhi
·         Kebutuhan hardware dan software : alfin
·         Cara-cara dasar komputer forensik : hutomo
·         Contoh Tools Forensik : ardy

       lihat juga :: tools forensik





Nama Anggota :
Alfinza Raendina S.
50410549
Hutomo Prima D.
53410339
IN Putera Astawan
53410486
Widyanto Ardy P.
58410499
Yudhi Prasongko
58410729

Sumber:
[ 1 ]          http://back-track-linux.blogspot.com/2012/11/backtrack-for-computer-forensics.html
[ 2 ]          http://jnursyamsi.staff.gunadarma.ac.id/Downloads/files/22383/M13_Tool+Forensik.ppt

[ 3 ]          http://materikuliah.net/artikel/pengertian-komputer-forensik.aspx

Selasa, 01 Oktober 2013

CYBERCRIME

PENGERTIAN CYBERCRIME

       Cybercrime adalah tidak criminal yang dilakkukan dengan menggunakan teknologi computer sebagai alat kejahatan utama. Cybercrime merupakan kejahatan yang memanfaatkan perkembangan teknologi computer khusunya internet.
        Cybercrime didefinisikan sebagai perbuatan melanggar hukum yang memanfaatkan teknologi computer yang berbasasis pada kecanggihan perkembangan teknologi internet.

JENIS – JENIS CYBERCRIME

Cybercrime memiliki karakteristik unik yaitu :
1. Ruang lingkup kejahatan
2. Sifat kejahatan
3. Pelaku kejahatan
4. Modus kejahatan
5. Jenis kerugian yang ditimbulkan
            Dari beberapa karakteristik diatas, untuk mempermudah penanganannya maka
cybercrime diklasifikasikan :
Cyberpiracy    : Penggunaan teknologi computer untuk mencetak ulang software atau informasi, lalu mendistribusikan informasi atau software tersebut lewat teknologi komputer.
Cybertrespass    : Penggunaan teknologi computer untuk meningkatkan akses pada system computer suatu organisasi atau individu.
Cybervandalism : Penggunaan teknologi computer untuk membuat program yang menganggu proses transmisi elektronik, dan menghancurkan data dikomputer

Jenis-jenis cybercrime berdasarkan jenis aktivitasnya

Unauthorized Access to Computer System and Service
Kejahatan yang dilakukan dengan memasuki/menyusup ke dalam suatu sistem jaringan komputer secara tidak sah, tanpa izin atau tanpa sepengetahuan dari pemilik system jaringan komputer yang dimasukinya. Biasanya pelaku kejahatan (hacker) melakukannya dengan maksud sabotase ataupun pencurian informasi penting dan rahasia. Namun begitu, ada juga yang melakukan hanya karena merasa tertantang untuk mencoba keahliannya menembus suatu sistem yang memiliki tingkat proteksi tinggi. Kejahatan ini semakin marak dengan berkembangnya teknologi internet/intranet.

Illegal Contents
Merupakan kejahatan dengan memasukkan data atau informasi ke internet tentang sesuatu hal yang tidak benar, tidak etis, dan dapat dianggap melanggar hukum atau mengganggu ketertiban umum. Sebagai contohnya adalah pemuatan suatu berita bohong atau fitnah yang akan menghancurkan martabat atau harga diri pihak lain, hal-hal yang berhubungan dengan pornografi atau pemuatan suatu informasi yang merupakan rahasia negara, agitasi dan propaganda untuk melawan pemerintahan yang sah, dan sebagainya.

Data Forgery
Merupakan kejahatan dengan memalsukan data pada dokumen-dokumen penting yang tersimpan sebagai scriptless document melalui internet. Kejahatan ini biasanya ditujukan pada dokumen-dokumen e-commerce dengan membuat seolah-olah terjadi “salah ketik” yang pada akhirnya akan menguntungkan pelaku.

Cyber Espionage
Merupakan kejahatan yang memanfaatkan jaringan internet untuk melakukan kegiatan mata-mata terhadap pihak lain, dengan memasuki sistem jaringan komputer(computer network system) pihak sasaran. Kejahatan ini biasanya ditujukan terhadap saingan bisnis yang dokumen ataupun data-data pentingnya tersimpan dalam suatu system yang computerized.

Cyber Sabotage and Extortion
Kejahatan ini dilakukan dengan membuat gangguan, perusakan atau penghancuran terhadap suatu data, program komputer atau sistem jaringan komputer yang terhubung dengan internet. Biasanya kejahatan ini dilakukan dengan menyusupkan suatu logic bomb, virus komputer ataupun suatu program tertentu, sehingga data, program komputer atau sistem jaringan komputer tidak dapat digunakan, tidak berjalan sebagaimana mestinya, atau berjalan sebagaimana yang dikehendaki oleh pelaku. Dalam beberapa kasus setelah hal tersebut terjadi, maka pelaku kejahatan tersebut menawarkan diri kepada korban untuk memperbaiki data, program komputer atau sistem jaringan komputer yang telah disabotase tersebut, tentunya dengan bayaran tertentu. Kejahatan ini sering disebut sebagai cyberterrorism.

Offense against Intellectual Property
Kejahatan ini ditujukan terhadap Hak atas Kekayaan Intelektual yang dimiliki pihak lain di internet. Sebagai contoh adalah peniruan tampilan pada web page suatu situs milik orang lain secara ilegal, penyiaran suatu informasi di internet yang ternyata merupakan rahasia dagang orang lain, dan sebagainya.

Infringements of Privacy
Kejahatan ini ditujukan terhadap informasi seseorang yang merupakan hal yang sangat pribadi dan rahasia. Kejahatan ini biasanya ditujukan terhadap keterangan pribadi seseorang yang tersimpan pada formulir data pribadi yang tersimpan secara computerized,yang apabila diketahui oleh orang lain maka dapat merugikan korban secara materilmaupun immateril, seperti nomor kartu kredit, nomor PIN ATM, cacat atau penyakittersembunyi dan sebagainya.

Cracking
Kejahatan dengan menggunakan teknologi computer yang dilakukan untuk merusak system keamaanan suatu system computer dan biasanya melakukan pencurian, tindakan anarkis begitu merekan mendapatkan akses. Biasanya kita sering salah menafsirkan antara seorang hacker dan cracker dimana hacker sendiri identetik dengan perbuatan negative, padahal hacker adalah orang yang senang memprogram dan percaya bahwa informasi adalah sesuatu hal yang sangat berharga dan ada yang bersifat dapat dipublikasikan dan rahasia.

Carding
Adalah kejahatan dengan menggunakan teknologi computer untuk melakukan transaksi dengan menggunakan card credit orang lain sehingga dapat merugikan orang tersebut baik materil maupun non materil.

MOTIF CYBERCRIME
Motif pelaku kejahatan di dunia maya (cybercrime) pada umumnya dapat dikelompokkan menjadi dua kategori, yaitu :
1.         Motif intelektual, yaitu kejahatan yang dilakukan hanya untuk kepuasan pribadi dan menunjukkan bahwa dirinya telah mampu untuk merekayasa dan mengimplementasikan bidang teknologi informasi. Kejahatan dengan motif ini pada umumnya dilakukan oleh seseorang secara individual.
2.         Motif ekonomi, politik, dan kriminal, yaitu kejahatan yang dilakukan untuk keuntungan pribadi atau golongan tertentu yang berdampak pada kerugian secara ekonomi dan politik pada pihak lain. Karena memiliki tujuan yang dapat berdampak besar, kejahatan dengan motif ini pada umumnya dilakukan oleh sebuah korporasi.

UNDANG-UNDANG TENTANG CYBERCRIME DI INDONESIA

1) Undang-Undang Nomor 11 Tahun 2008 Tentang Internet & Transaksi Elektronik (ITE)
a. Pasal 27 UU ITE tahun 2008.
b. Pasal 28 UU ITE tahun 2008
c. Pasal 29 UU ITE tahun 2008
d. Pasal 30 UU ITE tahun 2008 ayat 3
e. Pasal 33 UU ITE tahun 2008
f. Pasal 34 UU ITE tahun 2008
g. Pasal 35 UU ITE tahun 2008

2) Kitab Undang Undang Hukum Pidana
a. Pasal 362 KUHP yang dikenakan untuk kasus carding.
b. Pasal 378 KUHP dapat dikenakan untuk penipuan.
c. Pasal 335 KUHP dapat dikenakan untuk kasus pengancaman dan pemerasan yang dilakukan melalui e-mail yang dikirimkan oleh pelaku untuk memaksa korban melakukan sesuatu sesuai dengan apa yang diinginkannya.
d. Pasal 311 KUHP dapat dikenakan untuk kasus pencemaran nama baik dengan menggunakan media Internet.
e. Pasal 303 KUHP dapat dikenakan untuk menjerat permainan judi yang dilakukan secara online di Internet dengan penyelenggara dari Indonesia.
f. Pasal 282 KUHP dapat dikenakan untuk penyebaran pornografi.
g. Pasal 282 dan 311 KUHP dapat dikenakan untuk kasus penyebaran foto atau film pribadi seseorang.
h. Pasal 406 KUHP dapat dikenakan pada kasus deface atau hacking yang membuat sistem milik orang lain.

3) Undang-Undang No 19 Tahun 2002 tentang Hak Cipta.

4) Undang-Undang No 36 Tahun 1999 tentang Telekomunikasi

5) Undang-Undang No 8 Tahun 1997 tentang Dokumen Perusahaan

6) Undang-Undang No 25 Tahun 2003 tentang Perubahan atas Undang-Undang No. 15 Tahun 2002 tentang Tindak Pidana Pencucian Uang

7) Undang-Undang No 15 Tahun 2003 tentang Pemberantasan Tindak Pidana Terorisme

CONTOH KASUS CYBERCRIME DI INDONESIA

CARDING:
            Kasus terbaru kejahatan Carding terjadi pada Maret 2013 yang lalu. Sejumlah data nasabah kartu kredit maupun debit dari berbagai bank dicuri saat bertransaksi di gerai The Body Shop Indonesia. Sumber Tempo mengatakan, data curian tersebut digunakan untuk membuat kartu duplikat yang ditransaksikan di Meksiko dan Amerika Serikat.
            Data yang dicuri berasal dari berbagai bank, di antaranya Bank Mandiri dan Bank BCA. Menurut Direktur Micro and Retail Banking Bank Mandiri, Budi Gunadi Sadikin, pihaknya menemukan puluhan nasabah kartu kredit dan debit yang datanya dicuri. Adapun transaksi yang dilakukan dengan data curian ini ditaksir hingga ratusan juta rupiah.
            Kejahatan  kartu  kredit terendus saat Bank Mandiri menemukan adanya transaksi mencurigakan. "Kartu yang biasa digunakan di Indonesia tiba-tiba dipakai untuk bertransaksi di Meksiko dan Amerika," kata Budi. Setelah dilakukan pengecekan terhadap nasabah, ternyata kartu-kartu itu tidak pernah digunakan di sana.

SUMBER:


Kelas : 4IA09
Anggota kelompok:
Alfinza Raendina S.
Hutomo Prima Dewanto
IN Putera Astawan                                    
Widyanto Ardy P.                                      
Yudhi Prasongko                                        
50410549
53410339
53410486
58410499
58410729

Jumat, 27 September 2013

Ilmu Kedokteran Forensik


Forensik adalah bidang ilmu pengetahuan yang digunakan untuk membantu proses penegakan keadilan melalui proses penerapan ilmu atau sains. Dalam kelompok ilmu-ilmu forensik ini dikenal antara lain ilmu fisika forensik, ilmu kimia forensik, ilmu psikologi forensik, ilmu kedokteran forensik, ilmu toksikologi forensik, ilmu psikiatri forensik, komputer forensik, dan sebagainya.

1.            Penjelasan Ilmu Kedokteran Forensik
Ilmu kedokteran Forensik merupakan salah satu disiplin ilmu yang menerapkan ilmu kedokteran klinis sebagai upaya penengakan hukum dan keadilan. Dengan semakin banyaknya kasus kriminal khususnya pembunuhan, forensik kedokteran berfungsi sebagai prosedur medik untuk menentukan penyebab, lama kematian, atau mengevaluasi proses penyakit, dan trauma yang terjadi terhadap korban. Untuk melakukan forensik kita perlu melakukan identifikasi karena dalam ilmu kedokteran Forensik identifikasi merupakan hal yang penting, Identifikasi merupakan cara untuk mengenali seseorang melalui karakteristik atau ciri – ciri khusus yang dimiliki orang tersebut.

2.            Tujuan Ilmu Kedokteran Forensik
Di negara yang berlandaskan hukum, maka sudah selayaknya jika hukum di jadikan supremasi, dimana setiap orang di harapkan tunduk dan patuh terhadap hukum tersebut. Hal ini terjadi bila tersedia perangkat hukum yang mengatur seluruh sektor kehidupan, diantaranya adalah sektor kesejahteraan rakyat. Salah satu dari bagian sektor kesejahteraan yaitu kesehatan, maka di sini di perlukan perangkat hukum kesehatan guna mewujudkan masyarakat yang sejahtera. Dalam upaya mewujudkan masyarakat sejahtera khususnya melalui hukum kesehatan, dokter merupakan salah satu faktor penting yang harus di soroti bersama. Karena dalam praktik kedokteran kesalahan dokter dalam menjalankan tugas dapat mengakibatkan sesuatu yang fatal.
Peranan dari kedokteran forensik dalam penyelesaian perkara pidana di Pengadilan adalah membantu hakim dalam menemukan dan membuktikan unsur-unsur yang di dakwakan dalam pasal yang diajukan oleh penuntut. Serta memberikan gambaran bagi hakim mengenai hubungan kausalitas antara korban dan pelaku kejahatan dengan mengetahui laporan dalam visum et repertum. Disamping itu, diperoleh hasil bahwa dalam setiap praktek persidangan yang memerlukan keterangan dari kedokteran forensik, tidak pernah menghadirkan ahli dalam bidang ini untuk diajukan di sidang pengadilan sebagai alat bukti saksi. Implikasi teoritis persoalan ini adalah bahwa hakim dalam menjatuhkan putusan suatu perkara yang memerlukan keterangan dokter forensik, hanya memerlukan keterangan yang berupa visum et repertum tanpa perlu menghadirkan dokter yang bersangkutan di sidang pengadilan. Sedangkan implikasi praktisnya bahwa hal ini dapat dijadikan pertimbangan bagi hakim dalam menangani perkara yang memerlukan peran dari kedokteran forensik.

3.            Penerapan Ilmu Kedokteran Forensik
Salah satu cara identifikasinya adalah dengan cara antropometri yaitu, pengukuran bagian tubuh dalam usaha melakukan identifikasi. Bertillons memakai cara pengukuran berdasarkan pencatatan warna rambut, mata, warna kulit, bentuk hidung, telinga, dagu, tanda pada badan, tinggi badan, panjang dan lebar kepala, sidik jari, dan DNA.

4.            Contoh Penerapan Ilmu Kedokteran Forensik
Pemindai sidik jari adalah sebuah perangkat elektronik yang digunakan untuk menangkap gambar digital dari pola sidik jari. Gambar tersebut disebut pemindaian hidup. Pemindaian hidup adalah pemrosesan digital untuk membuat sebuah template biometrik yang disimpan dan digunakan untuk pencocokan. Ini merupakan ikhtisar dari beberapa sidik jari yang lebih umum digunakan sensor teknologi.
Sebuah sistem pemindai sidik jari memiliki dua pekerjaan, yakni mengambil gambar sidik jari, dan memutuskan apakah pola alur sidik jari dari gambar yang diambil sama dengan pola alur sidik jari yang ada di database. Ada beberapa cara untuk mengambil gambar sidik jari seseorang, namun salah satu metode yang paling banyak digunakan saat ini adalah optical scanning.
Inti dari pemindai optik adalah charge coupled device (CCD, Peranti tergandeng–muatan), sistem sensor cahaya yang sama digunakan pada kamera digital dan camcorder. CCD merupakan sebuah larik sederhana dari diode peka cahaya yang disebut photosite, yang menghasilkan sinyal elektrik yang merespon foton cahaya. Setiap photosite merekam sebuah piksel, titik kecil yang merepresentasikan cahaya dan membenturnya. Pixel-piksel ini membentuk pola terang dan gelap dari sebuah gambar hasil scan sidik jari seseorang.
Proses Pemindai sidik jari
Berikut ini beberapa sistem pembacaan yang kita temukan di beberapa sistem sensor sidik jari elektronik, baik sensor online maupun stand alone.
1. Optical (Optis) Teknik pembacaan dengan optical atau optis mempunyai sistem merekam pola sidik jari dengan menggunakan blitz(cahaya). Alat pembaca sidik jari atau fingerprint scanner yang digunakan adalah berupa digital cammera (kamera digital). Untuk lapisan paling atas area untuk meletakkan ujung jari atau permukaan sentuh (scan area). Di bawah scan area, terdapat lampu blitz atau pemancar cahaya yang difungsikan untuk menerangi permukaan ujung jari. Karena sidik jari terkena cahaya maka akan menghasilkan pantulan dari ujung jari yang selanjutnya ditangkap oleh alat penerima. Data tersebut selanjutnya disimpan ke dalam memori. Sistem ini banyak digunakan di berbagai perusahaan penyedia pemindai sidik jari seperti Fingerspot.
2. Ultrasonik Ultrasonik adalah suara atau getaran dengan frekuensi yang sangat tinggi dan tidak bisa didengar oleh telinga manusia, yaitu kira-kira di atas 20 kilo Hertz. Gelombang ultrasonik dapat merambat dalam medium padat, cair dan gas.
Tehnik ini hampir sama dengan tehnik yang digunakan dalam dunia kedokteran seperti alat pendeteksi penyakit atau USG. Dalam tehnik ini, digunakan suara berfrekuensi sangat tinggi untuk menembus lapisan epidermal kulit. Suara frekuensi tinggi tersebut dibuat dengan menggunakan transduser piezoelektrik. Pantulan frekuensi tersebut diterima menggunakan alat yang sejenis. Selanjutnya pola pantulan ini dipergunakan untuk menyusun citra sidik jari.
Dengan Pembacaan ultrasonik, tangan yang kotor tidak menjadi masalah. Demikian juga dengan permukaan scanner yang kotor tidak akan menghambat proses pembacaan.
3. Capacitive (Kapasitans) Tehnik Kapasitans menggunakan cara pengukuran kapasitant untuk membentuk citra sidik jari. Scan area dan kulit ujung jari yang bersentuhan sebagai kapasitor dari sistem ini. Karena tekstur sidik jari mempunyai ridge (gundukan) dan valley (lembah) pada maka kapasitas dari kapasitor masing-masing orang akan berbeda.
4. Thermal (Suhu) Tehnik Thermal sistem pembacaan dengan menggunakan perbedaan suhu antara ridge (gundukan) dengan valley (lembah) tekstur sidik jari untuk mengetahui pola sidik jari. Cara yang dilakukan adalah dengan menggeser ujung jari (swap) diatas lapisan scan area. Apabila ujung jari hanya diletakkan saja, dalam waktu singkat, suhunya akan sama karena adanya proses keseimbangan.

Sumber:

Anggota kelompok:
Alfinza Raendina S.
Hutomo Prima Dewanto
IN Putera Astawan                                    
Widyanto Ardy P.                                      
Yudhi Prasongko                                        

50410549
53410339
53410486
58410499
58410729






Senin, 17 Juni 2013

Pengantar Teknologi Game

Initial State
             Game ini terdiri dari dua buah garis sebagai bet dalam permainan bola pingpong  dan user sebagai player satu akan melawan computer.permainan ini bisa dimainkan oleh dua orang dengan cara salah satu pemain yang bertindak sebagai computer mengganti player menjadi manusia.pemain mencetak angka jika bola yang di lepas oleh musuh tidak dapat di tangkap oleh bet pingpong maka akan score akan bertambah 1 atau sebaliknya

                                                              Tampilan awal game


 ATURAN PERMAINAN

1.             Pemain melepaskan bola dengan cara menekan L kearah daerah lawan
2.             Jika bola tidak tertangkap oleh bet lawan maka score akan bertambah satu poin



KEY BINDINGS

 w               :    player 1 atas
  s               :    player 1 bawah
  l                :    player 1 lepas bola
 
  up             :    player 2 atas
  down       :    player 2 bawah
  left           :   player 2 lepas bola
 
  p               :    ganti player 2 : computer / human
  r                :    reset game
  +               :    computer level ++
  -                :    computer level --




LISTING PROGRAM


PFont scoreFont;
Ground ground;
Player player1;
Player player2;
Ball ball;
Message message;
boolean start = true;

void setup() {
  size(600, 450);
  ground = new Ground();
  player1 = new Player(1, 20, height/2, false);
  player2 = new Player(2, width - 20, height/2, true);
  ball = new Ball(0,0);
  ball.setPos(player1.posX + player1.size/9 + ball.size/2, player1.posY);
  message = new Message();
  scoreFont = createFont("Andalus", 40);
  textFont(scoreFont);
  ellipseMode(CENTER);
  frameRate(150);
}

void draw() {
  background(255,0,0);
  stroke(255); fill(255);
  ground.draw();
  player1.draw();
  player2.draw();
  ball.draw();
  message.draw();
  if (start) {
    player1.movY = 4;
    ball.stickRelease(1);
    start = false;
  }
}

void keyPressed() {
  if (key == 'r' || key == 'R') {
    resetGame();
  }
  if (key == 'p' || key == 'P') {
    player2.switchComputerDriven();
  }
  if (key == 'w' || key == 'W') {
    player1.up();
  }
  if (key == 's' || key == 'S') {
    player1.down();
  } 
  if (key == 'l' || key == 'L') {
    player1.releaseBall();
  }
  if (key == '+') {
    player2.setDifficulty(1);
    message.set("computer level " + (int)player2.getDifficulty());
  }
  if (key == '-') {
    player2.setDifficulty(-1);
    message.set("computer level " + (int)player2.getDifficulty());
  }
  if (key == CODED) {
    if (keyCode == UP) {
      player2.up();
    }
    if (keyCode == DOWN) {
      player2.down();
    }
    if (keyCode == LEFT) {
      player2.releaseBall();
    }
  }
}

void resetGame() {
  player1.setPos(20, height/2);
  player2.setPos(width - 20, height/2);
  player1.resetScore();
  player2.resetScore();
  ball.setSticky(1);
  player1.movY = 4;
  ball.stickRelease(1);
  message.set("new game");
}

class Ground {
 
  int scoreP1, scoreP2;
 
  Ground() {
    scoreP1 = 0;
    scoreP2 = 0;
  }
 
  void draw() {
    line(width/2, 0, width/2, height);
    text(player1.getScore(), width/3, 50);
    text(player2.getScore(), width/1.6, 50);
  }
}

class Message {
  String say;
  int time;
  int maxTime = 0;
 
  Message() {
    say = "";
    time = 0;
  }
 
  void set(String _say) {
    time = maxTime;
    say = _say;
  }
 
  void draw() {
    if ((say != "") && (time > 0)) {
      float a = 255 - ((maxTime - time) * 5);
      stroke(255,255,255,a); fill(255,255,255,a);
      text(say, width/2 - (say.length() * 18)/2, height/2);
      time--;
    } else {
      say = "";
    }
    stroke(255,255,255,255); fill(255,255,255,255);
  }
}

class Player {
  float posX, posY, movX, movY;
  int id, size, thickness, score;
  boolean computerDriven;
  int difficulty, pause, pauseTime, movPause, dir;
 
  Player(int _id, float _posX, float _posY, boolean _computerDriven) {
    id = _id;
    posX = _posX;
    posY = _posY;
    computerDriven = _computerDriven;
    size = 80;
    thickness = 5;
    score = 0;
    difficulty = 2;
    pause = 75;
    pauseTime = pause;
    movPause = 0;
    dir = 0;
  }
 
  void draw() {
    update();
    rect(posX - (size/16), posY - (size/2), thickness, size);
  }
 
  void up() {
    if (!computerDriven) movY = constrain (movY -= 12, -10, 10);
  }
 
  void down() {
    if (!computerDriven) movY = constrain (movY += 12, -10, 10);
  }
 
  void update() {
    if (computerDriven) {
      if (ball.sticky && (ball.stickOn == 2)) pausePlayer();
      else movY = constrain(ball.getPosY() - posY, -2 - difficulty, 2 + difficulty);
    }
    posY = constrain (posY+movY, 0, height);
    movY *= .7;
  }
 
  float getMovY() {
    return movY;
  }
 
  void pausePlayer() {
    if (computerDriven) {
      if (pause == pauseTime) {
        movPause = 5;
        dir = 1;
      }
      movY = constrain (movPause * dir, -5, 5);
      if ((posY < (size/2)) && (dir < 0)) dir = 1;
      else if ((posY > (height - (size/2))) && (dir > 0)) {
        println(height - (size/2));
        dir = -1;
      }
      pause--;
      if (pause < 1) {
        pause = 75;
        releaseBall();
      }
    }
  }
 
  void releaseBall() {
    ball.stickRelease(id);
  }
 
  void scorePlus() {
    score ++;
  }
 
  int getScore() {
    return score;
  }
 
  void resetScore() {
    score = 0;
  }
 
  void setDifficulty(int _d) {
    difficulty = constrain (difficulty += _d, 0, 10);
  }
 
  float getDifficulty() {
    return difficulty; 
  }
  void switchComputerDriven() {
    if (computerDriven) computerDriven = false;
    else computerDriven = true;
  }
 
  void setPos(int _posX, int _posY) {
    posX = _posX;
    posY = _posY;
  }
 
  boolean testRacketCollision(float x, float y, float s) {
    if ((y - (s / 2) > posY - (size / 2)) && (y + (s / 2) < posY + (size / 2))) {
      return true;
    } else return false;
  }
class Ball {

  float posX, posY, movX, movY, speedX, speedY, size;
  int stickOn;
  boolean sticky;
 
 
  Ball(float _posX, float _posY) {
    posX = _posX;
    posY = _posY;
    movX = 0;
    movY = 0;
    speedX = 0;
    speedY = 0;
    sticky = true;
    stickOn = 1;
    size = 6;
  }
  
  void setPos(float _posX, float _posY) {
    posX = _posX;
    posY = _posY;
  }
 
  void update() {
    if (sticky) {
      if (stickOn == 1) {
        posX = player1.posX + player1.thickness/2 + ball.size/2;
        posY = player1.posY;
      } else if (stickOn == 2) { 
        posX = player2.posX - player2.thickness/2 - ball.size/2;
        posY = player2.posY;     
      } 
    } else {
      posX = posX + movX;
      posY = posY + movY;
    }
   
   
    if (posY < size) movY = -movY;        // top bounce
    if (posY > height-size) movY = -movY; // bottom bounce
   
    if (posX < 0) { // out left side
      player2.scorePlus();
      sticky = true;
      stickOn = 1;
    }
   
    else if (posX > width) { // out right side
      player1.scorePlus();
      sticky = true;
      stickOn = 2;
    }
   
    else if (posX < (player1.posX + (player1.thickness / 2) + (size / 2))) {
      if (player1.testRacketCollision(posX, posY, size)) {
        movX = -movX;
        movY += player1.getMovY() / 5;
      }
    }

    else if (posX > player2.posX) { 
      if (player2.testRacketCollision(posX, posY, size)) {
        movX = -movX;
        movY += player2.getMovY() / 5;
      }
    }
  }
 
  void stickRelease(int idplayer) {
    sticky = false;
    if ((stickOn == 1) && (idplayer == 1)) {
      movY = player1.getMovY();
      movX = 5;
      stickOn = 0;
    } else if ((stickOn == 2) && (idplayer == 2)) {
      movY = player2.getMovY();
      movX = -5;
      stickOn = 0;
    }   
  }
 
  void setSticky(int _playerId) {
    sticky = true;
    stickOn = _playerId; 
  }
 
  float getPosY() {
    return posY;
  }
 
  void draw() {
    update();
    ellipse(posX, posY, size, size);
  }
}


LOGIKA PROGRAM

Untuk membuat game pingpong diperlukan beberapa variable seperti
1.      posX dan posy yang digunakan untuk menetukan posisi bola
2.                    movX dan movY yang digunakan untuk menggerakan bola pingpong yang            berhubungan dengan posX dab posy untuk mengerakan bola
3.                    speedX dan speedy yangdigunakan untuk mengukur kecepatan bola dengan menggunaka posisi posX dan posy dan  juga untuk mengaturkecepatannya berhubungan dengan  frame rate
4.                    sticky dan stickyon yang berguna untuk menempelkan bola jika bola sudah tida tertangkap bet pingpong lawan dan akan menepel di bet yang akan serve pertamakali
lalu juga ada beberapa method yang di buat
1.                    Void Setup yaitu method yang digunakan untuk pengaturan pertama kali permainan dijalankan seperti besar window yang digunakan  posisi bet pingpong pertama kali,letakbola,text score
2.                    Void Draw yaitu method  yang berfungsi mengatur background dalam permainan background disini mencakup posisi bola pertama kali warna background
3.                    Void keyPressed yaitu method yang mengatur configurator pemain void ini berfungsi sebagai pengatur permainan dengan  menggunkan keyboard jika keyboard di tekan sesuai key yang dimasukan maka akan menggerakan bet pinpong
4.                    Void ResetGame yaitu method yang mengatur untuk memulai permainan dari awal lagi jika user ingin memulai permainan baru hany denga menekan key R
5.                    Void set yaitu method yang berguna untuk mencetak atau  menampilkan score permainan
6.                    Void Update yaitu method yang berfungsi untuk mengupdate permainan jika bola tidak bisa ditangkap oleh lawan maka bola akan berada di user yang tidak bisa menangkap bola tadi bukan berada di pemain yang mencetak angka


Computer Driven        

                   Didalam game ini jika kita memainkan  melawan computer terdapat semacam ai yang digunakan dipermainan ini digunakan Boolean ComputerDriven. computerDriven ini berkerja dengan membaca posisi bet pingpong lawan dan  membaca  posisi bola jika bola naik maka computer driven akan mengarahkan bet pingpong nya sendiri untuk naik dan jika turun akan diarah kan turun oleh computerDriven tersebut computerDriven dapat men-serve bola juga jika player dapat mengarahkan bola untuk tidak dikena oleh bet pingpong computer selain itu computerDriven ini juga dapat diatur  tingkat kesulitannya dengan menekan key + maka tingkatnya akan semakin sulit dan bet pingpong yang dikendalikan computer dapat bergerak dengan cepat jika kita kurangi dengan menakan tombol – maka pergerakan bet akan lama dan memudahkan lawan untuk mengalahkan komputer

   

                                       Computer dapat serve dengan adanya ComputerDriven