Pengembangan Bisnis Informatika

SDM Dan Organisasi


1. Struktur Organisasi

1.1 Struktur Fungsional

Fungsionalisme struktural adalah sebuah sudut pandang luas dalam sosiologi dan antropologi yang berupaya menafsirkan masyarakat sebagai sebuah struktur dengan bagian-bagian yang saling berhubungan.

  • Teori fungsionalisme struktural adalah suatu bangunan teori yang paling besar pengaruhnya dalam ilmu sosial di abad sekarang. Tokoh-tokoh yang pertama kali mencetuskan fungsional yaitu August Comte, Emile Durkheim dan Herbet Spencer.
  • Teori struktural fungsional berkaitan erat dengan sebuah struktur yang tercipta dalam masyarakat. Struktural – fungsional, yang berarti struktur dan fungsi. Artinya, manusia memiliki peran dan fungsi masing – masing dalam tatanan struktur masyarakat

Pemikiran structural fungsional sangat dipengaruhi oleh pemikiran biologis yaitu menganggap masyarakat sebagai organisme biologis yaitu terdiri dari organ-organ yang saling ketergantungan, ketergantungan tersebut merupakan hasil atau konsekuensi agar organisme tersebut tetap dapat bertahan hidup.


Dalam struktur organisasi fungsional, setiap manajer yang mempunyai spesialisasi fungsional menggantikan tempat dan peranan si pemilik perusahaan.  Transisi menuju spesialisasi ini membutuhkan sebuah perubahan substansial dalam gaya manajemen pimpinan perusahaan. Sebagai organisasi yang  menumbuhkan dan mengembangkan sejumlah produk dan pasar yang berkaitan, struktur organisasi ini secara teratur berubah untuk merefleksikan spesialisasi yang lebih besar. Untuk mengetahui format struktur organisasi fungsional, lihat gambar berikut.


Sumber : Samuel C. Certo & J.Paul Peter, Strategic Management, McGraw-Hill, 1990, p.125.

Kelebihan dan Kekurangan Struktur Fungsional
Struktur organisasi fungsional ini mempunyai  beberapa kelebihan, antara lain:
  • Efisiensi melalui spesialisasi
  • Komunikasi dan jaringan keputusannya relatif sederhana
  • Mempertahankan tingkat pengendalian strategi pada level manajemen puncak
  • Mempermudah pengukuran output dan hasil dari setiap fungsi
Sedangkan kekurangan dari struktur organisasi fungsional adalah:
  • Dapat mendorong timbulnya persaingan dan konflik antar fungsi
  • Mengakibatkan sulitnya koordinasi di antara bidang-bidang fungsional
  • Dapat menyebabkan tingginya biaya koordinasi antar fungsi
  • Identifikasi karyawan dengan kelompok spesialis dapat membuat perubahan menjadi sulit

Dalam struktur organisasi divisional, manajer divisi dapat mengembangkan strategi untuk masing-masing divisinya dan mungkin saja mereka menghadapi persaingan yang berbeda dengan divisi lainnya sehingga strategi yang ditempuh mungkin juga berbeda dengan divisi lainnya. Pada organisasi divisional, divisi-divisi tersebut dapat menjadi tempat yang baik untuk melatih para manajer muda. Selain itu juga merupakan tempat yang baik  dalam mengembangkan intuisi kewiraswastaan serta meningkatkan sejumlah pusat inisiatif dalam suatu perusahaan. Untuk mengetahui format struktur organisasi divisional, perhatikan  gambar berikut.


Sumber : Samuel C. Certo & J.Paul Peter, Strategic Management, McGraw-Hill, 1990, p.125.

1.2 Struktur Divisional

Sebagaimana struktur organisasi yang lain, struktur organisasi divisional ini juga  mempunyai beberapa kelebihan dan kekurangan. Adapun kelebihan  struktur organisasi divisional antara lain:

  • Koordinasi antar fungsi menjadi lebih mudah dan cepat
  • Mempunyai fleksibilitas pada struktur perusahaan
  • Spesialisasi pada setiap divisi dapat dipertahankan
  • Kesempatan karir lebih terbuka
Sedangkan kekurangan  struktur organisasi divisional antara lain:
  • Mengkibatkan turunnya komunikasi antara spesialisasi funsional
  • Sangat potensial untuk menimbulkan persaingan antar  divisi
  • Pendelegasian yang besar dapat menimbulkan masalah

1.3 Struktur Organisasi Matriks

Struktur organisasi matriks digunakan untuk memudahkan pengembangan pelaksanaan beragam program atau proyek. Setiap departemen dikepalai oleh vice precident  yang mempunyai tanggung jawab fungsional  bagi seluruh proyek. Sedangkan setiap manajer proyek mempunyai project responsibility untuk penyelesaian dan implementasi strategi.

Organisasi matrik akan menghasilkan wewenang ganda dimana wewenang horizontal diterima manajer proyek sedangkan wewenang fungsionalnya yaitu sesuai dengan keahliannya dan tetap akan melekat sampai proyek selesai, karena memang terlihat dalam struktur formalnya. Akibatnya anggota organisasi matrik mempunyai dua wewenang, yang berarti dalam melaksanakan kegiatannya para anggota harus melaporkannya kepada dua atasan. Untuk mengatasi masalah yang timbul, biasanya manajer proyek diberi jaminan untuk melaksanakan wewenangnya dalam memberikan perintah dimana manajer proyek tersebut akan langsung melapor pada manajer puncak. Berikut ini adalah peta/ bagan organisasi matriks:


Kebaikan organisasi ini terletak pada fleksibilitas dan kemampuannya dalam memperhatikan masalah-masalah yang khusus maupun persoalan teknis yang unik, organisasi ini juga tidak mengganggu struktur organisasi yang ada. Sedangkan kelemahannya yaitu apabila manajer proyek tidak bisa mengkoordinir dari berbagai bagian yang berbeda tersebut, maka dapat menghadapi kesulitan dalam mengembangkan tim yang solid. Kelebihan dan kekurangan organisasi matriks akan diiuraikan sebagai berikut.

Kelebihan dan Kekurangan Struktur Organisasi Matriks 
Kelebihan struktur organisasi matriks antara lain:
  •  Sesuai untuk beban kerja yang fluktuatif 
  • Tujuan proyek menjadi lebih jelas  
  • Memungkinkan untuk merespon pada beberapa sektor lingkungan secara serentak 
  • Banyak jalur untuk melakukan  komunikasi 
  •  Pekerjaan dapat dipahami secara lebih jelas
Adapun kekurangan struktur organisasi matriks antara lain:
  •  Strukturnya sangat rumit
  • Biaya relatif  tinggi
  • Memungkinkan timbulnya dualisme kepemimpinan 
  • Relatif sulit karena terdapat kepentingan ganda sehingga memerlukan koordinasi kuat.

2. Deskripsi dan Spesifikasi Jabatan dalam Organisasi

Mengapa kita memerlukan uraian jabatan (job description)? Ini tentunya kembali dari organisasi sendiri. Organisasi mempunyai alasan, mengapa harus ada, untuk apa diadakan, dan  sasaran apa yang harus dicapai. Karena itu organisasi merumuskan visi, misi dan perencanaan yang kemudian membentuk struktur. Dari struktur inilah selanjutnya pekerjaan / jabatan (job) itu muncul.


Jabatan merupakan unit dasar dari struktur organisasi yang membangun organisasi. Semua jabatan harus dikombinasikan untuk mencapai tujuan, sehingga jabatan harus berhubungan dengan individu (employee) dan organisasi sebagai pemilik (employer). Dari sinilah jabatan bisa disebut sebagai kumpulan tanggungjawab / aktifitas untuk menghasilkan sesuatu .


Untuk mengetahui apa kumpulan tanggungjawab/aktifitas tersebut, maka perlu ada analisa yang disebut sebagai analisa jabatan (job analysis), sebagai suatu proses mengumpulkan, mengkategorikan dan mendokumentasikan seluruh informasi yang relevan tentang jabatan tersebut dalam periode tertentu. Hasilnya, sudah tentu dinamakan uraian pekerjaan/ uraian jabatan (job description).
Lalu, apa manfaat dari uraian jabatan? banyak sekali diantaranya :

  • Atasan– untuk mengoptimalkan peran dan tanggungjawab bawahan
  • Pimpinan Organisasi– untuk dapat memimpin dan memberikan motivasi agar pemegang jabatan menghasilkan kinerja optimal.
  • Pemegang jabatan– sebagai panduan dan pedoman kerja serta mengetahui apa yang harus dilakukan dan diharapkan dari organisasi
  • Perekrut– untuk mengetahui kandidat yang tepat dan paling cocok sesuai kebutuhan jabatan
  • Trainer– untuk mengetahui kebutuhan pelatihan bagi pemegang jabatan
  • Assessor– untuk melakukan analisa terhadap pemegang jabatan (competency assessment, in-depth interview dll)
  • Perencana Karir (Succession Planner)– untuk menempatkan individu sesuai dengan peran, tanggungjawab dan kebutuhan organisasi.
  • Perencanaan dan Pengembangan Organisasi (Organization Development & Planner) –untuk membuat perencanaan pengembangan organisasi yang membutuhkan pemahaman tentang jabatan dan jenis peran / tanggungjawab yang diperlukan
  • Job Evaluator–untuk membobot jabatan dan membandingkan jabatan lain di dalam organisasi.

Maka jelaslah bahwa job description adalah bagian penting dari sistem pengembangan SDM. Ibarat navigator, job desc adalah peta yang menentukan arah, kemana harus berbelok, berapa kecepatan yang diperlukan dan seterusnya. Sudah tentu, sebelum membuat job desc, didahului dengan yang namanya job analysisJob Analysis bisa dilakukan dengan tiga kondisi :

  1. Untuk jabatan yang sama sekali baru, namun sudah ada di dalam struktur organisasi.
  2. Untuk jabatan yang ada (vacant) namun belum ada orangnya.
  3. Untuk jabatan yang sudah ada posisi orangnya tapi belum mempunyai job description.

Setiap kondisi membutuhkan pendekatan yang berbeda. Sebagai contoh, untuk kondisi pertama, tentu tidak bisa dengan proses interview, tapi dengan cara mencari referensi atau benchmark ke organisasi lain. Sedangkan untuk kondisi ke 2 dan 3, bisa dilakukan dengan proses tiga arah, yakni dengan menggali informasi pada pemegang jabatan, atasan atau orang lain yang mengerti.

3. Sistem Penggajian

Sistem penggajian pada perusahaan-perusahaan bervariasi, namun demikian pada umumnya dapat digolongkan kedalam:
  • Sistem gaji tetap. Dalam sistem ini pegawai akanmendapat gaji yang besarnya relatif tetap. Misalkan pegawai lembur, pegawai tidak mendapat uang lembur, sebaliknya bila pegawai absen, maka gajinya juga tidak dikurangi.
  • Sistem gaji tetap dengan variasi. Dalam sistem ini pegawai mendapat gaji tertentu, tetapi bila pegawai lembur, atau melakukan prestasi tertentu, akan mendapat uang tambahan, sebaliknya bila tidak masuk kerja, atau terlambat masuk kerja gajinya akan dikurangi.
  • Sistem upah variabel. Dalam sistem ini pegawai akan mendapat upah proporsional dengan perstasi. Satuan prestasi bisa dibentuk unit produksi, jam kerja, atau hari kerja
  • Kombinasi 1, 2, dan 3.



Kelompok:
  • Derry Surya Dwitama
  • Happy Indra Wijaya
  • Prasetia Bagus Permadi
  • Teuku Hilman Lutfi

Sumber:

Pengantar Bisnis Informatika

PT. Gamatechno Indonesia (Gamatechno) adalah manifestasi kompetensi UGM dibidang Teknologi Informasi yang menggabungkan kompetensi dan bakat dengan kultur budaya kreatif kota Yogyakarta. Gamatechno menyediakan solusi total teknologi informasi dengan fokus bisnis pada penyediaan produk software serta jasa konsultasi, pengembangan dan implementasi sistem yang memberikan nilai tambah bagi pelanggan dibidang akademik, pemerintahan dan korporat.

Gamatechno memiliki keunggulan utama dalam penguasaan teknologi terkini yaitu Smartcard, RFID dan mobile solutions.Pada awal tahun 2006, Gamatechno lebih memfokuskan pelayanan Content Provider dan Competency Center melalui pembentukan anak perusahaan baru, yaitu PT. Inspira Inovasi Indonesia. Selain anak perusahaan, saat ini Gamatechno juga memiliki perwakilan di Jakarta sebagai sarana peningkatan layanan pelanggan dan mitra.

Visi:
Menjadi perusahaan penyedia solusi teknologi informasi terbaik untuk Perguruan Tinggi di Indonesia.

Misi:
- Mengakomodasi sumber daya dan potensi UGM.
- Mengembangkan solusi teknologi informasi yang berkesinambungan.
- Membangun jaringan kerjasama untuk menumbuhkan industri teknologi informasi di Indonesia.
- Memberikan benefit dan value bagi pelanggan dan seluruh stakeholder.

Perhatian perusahaan terhadap aspek SDM tidak terbatas pada karyawan saja, melainkan juga kepada komunitas pendidikan di sekitarnya melalui program Corporate Social Responsibility seperti Beasiswa, Magang dan Community Building.
Program Community Building merupakan sarana pengembangan kompetensi terutama bagi mahasiswa, baik pada sisi kompetensi teknis maupun non-teknis agar siap memasuki dunia kerja, khususnya industri teknologi informasi. Selain mahasiswa, para pemerhati teknologi informasi secara umum juga dapat bergabung di media komunikasi resmi program Community Building bersama PT. Gamatechno Indonesia di gtcommunity@yahoogroups.com untuk berbagi mengenai berbagai hal terbaru dalam dunia teknologi informasi. 

Ruang lingkup Gamatechno mencakup aspek institusi bisnis, institusi pendidikan, maupun institusi pemerintah di Indonesia.

Untuk omset dari PT. Gamatechno tidak di publish dengan alasan rahasia intern perusahaan.


Sumber:

Indentitas:
Nama : Happy Indra Wijaya
NPM : 53410134
Kelas : 4IA15
UNIVERSITAS GUNADARMA

Game Android: The Room




Horor dan menegangkan kadang bisa menjadi salah satu alasan untuk orang tetap berada di tempat mereka menyaksikannya. Rasa penasaran yang ditimbulkan mungkin menjadi alasan bagi mereka untuk tetap bertahan. Hal inilah yang mungkin ditangkap oleh Fireproof Studio, developer dari game The Room yang akan saya review kali ini. Kesan seram sudah terasa ketika kamu hendak memulai game ini.
Berbagai teka-teki harus kamu pecahkan dalam sebuah ruangan milik seseorang, yang pastinya ia bukan seorang yang bodoh sampai bisa membuat sebuah puzzle game seperti ini. Ibaratnya kamu sedang sedang mencoba memecahkan berbagai kode rahasia yang ditinggalkannya untuk mengungkapkan cerita dibalik The Room. Interaksi dalam game ini sangat dirasakan sempurna untuk layar touchscreen dengan kontrol yang diberikan.

Untuk memainkan game ini, The Room tidak menyia-nyiakan potensi touchscreen pada iPad. Beragam kontrol disediakan mulai dari swipe, tap, pinch, sampai tilt control. Ribet dong? Tentu saja tidak. Semua kontrol tersebut tidak digunakan secara bersamaan tetapi malah dengan beragam kontrol tersebut game ini justru terlihat begitu hidup. Disini kamu disediakan berbagai benda yang bisa kamu jelajahi. Double tap pada benda tersebut untuk zoom in, sedangkan pinch untuk zoom out.
Nah, yang menarik adalah menggunakan swipe control untuk menimbulkan kesan hidup dalam game. Contohnya, ketika kamu hendak membuka sebuah amplop surat, kamu harus swipe ke arah atas agar kertas surat dalam amplop tersebut keluar dan bisa terbaca. Untuk memecahkan teka-teki ini, kamu akan disediakan slot untuk penyimpanan barang yang kamu temukan pada samping kiri layar. Selain itu sebuah eyepiece yang akan mengubah cara pandang kamu juga bisa kamu pakai.

Dari slot penyimpanan barang tersebut bisa kamu gunakan juga untuk interaksi dengan benda utama. Misalkan kamu mempunyai sebuah kunci, maka kamu bisa drag kunci tersebut ke arah lubang kunci dan swipe searah jarum jam seakan-akan kamu sedang memutar kunci sungguhan. Tentu saja kamu tidak bisa sendirian menyelesaikan puzzle ini. Untuk itu sebuah Hint akan muncul setiap beberapa saat.
Hint ini tidak mempunyai batasan tertentu. Tetapi kebanyakan untuk menyelesaikan 1 puzzle tertentu akan disediakan 3 hint mulai dari keterangan abstract sampai yang benar-benar spesifik menunjukkan jawabannya. Mengandalkan hint saja akan memakan waktu yang cukup lama untuk menyelesaikan 1 buah puzzle, padahal ada ratusan jenis puzzle yang terbagi dalam 4 Chapter yang ada. Jadi kamu pun tetap harus mencari sendiri bagaimana cara menyelesaikannya.

Dalam 1 Chapter terdapat rentetan puzzle yang saling berhubungan. Misalnya pada Chapter 2, kamu akan menghadapi sebuah kotak yang mempunyai 5 sisi yang berbeda. Untuk membuka kotak utama tersebut kamu harus terlebih dahulu menyisir setiap bagian dari kotak tersebut agar kotak tersebut dapat terbuka. Memang mode dalam game ini hanya 1 satu, tetapi rasa penasaran yang timbul untuk menyelesaikan puzzle ini akan cukup untuk menemani kamu bermain selama berjam-jam.
Untuk masalah grafis, inilah game puzzle dengan detail yang sangat baik yang pernah saya lihat dan mainkan. Objek yang ada di dalam game tersedia dalam bentuk 3D, dan ibarat pemodelan dengan 3Ds Max kamu pun bisa melihat objek ini dalam berbagai sisi. Musik yang mengiri dalam game juga cukup mendukung suasa misteri dan horor yang ditimbulkan di dalam game.

The Room adalah kandidat game puzzle terbaik yang pernah dihasilkan. Sangat tepat sekali Fireproof hanya menyediakan game ini dalam versi iPad karena dengan layar yang lebih besar kontrol bisa dilakukan dengan mudah dibandingkan di iPhone. Harga yang terbilang tinggi ($4.99) tidak akan terasa bagi pecinta game puzzle karena apa yang diberikan sebanding dengan apa yang kamu keluarkan. So, jangan ragu untuk mencobanya.

Google play link:
https://play.google.com/store/apps/details?id=com.FireproofStudios.TheRoom

Game PC: Far Cry 3

Sejak awal kelahirannya di industri game, franchise yangditangani oleh Ubisoft ini memang berhasil menarik perhatian gamer. Pesonanya juga didukungdengan mekanisme gameplay unik yang menggabungkan konflik dunia modern, first person shooter, rpg, dan open-world dalam satu kesatuan.
Nah...Hebatnya lagi, ia diramu secara proporsional sehingga tidak ada elemen yang terkesan dipaksakan untuk muncul atau justru mendominasi jalannya permainan.
Game Far Cry 2 yang ditangani oleh Ubisoft Montreal juga berhasil mencapai kesuksesan yang tidak berbeda, walaupun datang dengan perubahan tema yang terkesan ekstrim. Lantas, bagaimana dengan seri terbaru  Game Far Cry 3 yang baru saja dirilisdan berikut ini gambarnya:

Kehadiran engine terbaru Ubisoft Montreal  akan memanjakan mata Anda, apalagi dengan pilihan setting utama seri ini yang harus diakui tepat. Seolah berusaha untuk menciptakan sensasi dan pesona dari game  Far Cry pertama.
Anda kembali akan dibawa pada atmosfer pulau tropis, bertolak belakang dengan game Far Cry 2 yang terkesan gelap, kelam, dan gersang. Vegetasi, hewan, dan perairan yang begitu luas siap untuk menawarkan tantangan dan pengalaman yang luar biasa bagi Anda.
It’s still a Far Cry! Konsep openworld tetap menjadi pondasi utama dengan segudang side mission yang mungkin akan membuat Anda cukupsibuk, hingga melupakan sisi cerita utamanya sendiri. Pertempuran dapat dilakukan secara stealth dan non-stealth, dengan sistem RPGyang menyuntikkan mekanisme EXP dan Skill Points untuk setiap aksi yang berhasil Anda lakukan.
Berburu binatang, crafting, dan sekedar mengeksplorasi RookIsland untuk mencari harta dan relic akan menyita sebagian besar waktu Anda. Ini adalah dunia GameFar Cry yang menarik para penggemar game open-world, apalagi yang merindukan keindahan dunia dari game Far Cry pertama. Satu yang pasti, untuk menikmati game ini dalam kualitasnya yang paling maksimal, kami sangat merekomendasikan Anda untuk menjajal Far Cry 3 di PC.

Dengan begitu banyak hal yang dapat dilakukan di sini, hampir tidak mungkin bagi kami untuk serta merta melakukan review tanpa menjelajahi game ini secara mendalam.

Penulisan Ilmiah: BioLearning - Aplikasi mLearning Berbasis Android

BioLearning ini merupakan aplikasi pembelajaran Biologi tingkat SMA berbasis Android. Terdapat materi yang disuguhkan secara online mulai dari kelas 1 sampai dengan kelas 3 SMA. Aplikasi ini sangat cocok untuk pelajar SMA yang ingin menghadapi Ujian Nasional karena Biologi merupakan salah satu cabang mata pelajaran yang di ujikan di Ujian Nasional untuk jurusan IPA.
Dalam aplikasi ini terdapat ratusan soal latihan dari setiap materi Biologi yang bisa dikerjakan oleh user. Gambaran umum struktur dari aplikasi BioLearning adalah sebagai berikut:







Rancangan & Implementasi game Air Hockey 2D dengan Processing









Processing adalah bahasa pemrograman dan lingkungan pemrograman (development environment) open source untuk memprogram gambar, animasi dan interaksi. Digunakan oleh pelajar, seniman, desainer, peneliti, dan hobbyist untuk belajar, membuat prototipe, dan produksi. Processing digunakan untuk mengajarkan dasar-dasar pemrograman komputer dalam konteks rupa dan berfungsi sebagai buku sketsa perangkat lunak (software) dan tool produksi profesional. Selain itu processing juga dapat di gunakan sebagai bahasa pemrograman untuk pembuatan game. Bagi anda yang tertarik untuk membuat game dengan bahasa ini, ikuti langkah-langkah berikut. Yang dimulai dari perancangan, implementasi hingga tahap uji coba.

Perancangan Game

Game yang saya akan buat dengan bahasa processing bernama Air Hockey. Ide dari game ini seperti permainan hockey pada dasarnya, para pemain akan saling memukul bola sampai masuk ke gawang lawan. Tahap perancangan dimilai dari merancang alur game, membangun game itu sendiri, uji coba game.





Ketika awal game di jalankan program akan men-set skor menjadi nol dan meletakan posisi bola di tengah2 meja. Pukulah bola dan usahakan masuk ke gawang lawan, jika anda berhasil memasukan bola ke gawang lawan maka skor anda akan bertambah satu. Berusahalah untuk melindungi gawang anda jangan sampai kemasukan bola,jika lawan berhasil memasukan bola maka skor lawan akan bertambah satu. Jika skor anda mencapai 5 maka anda menang, sebaliknya jika skor lawan mencapai 5 maka anda yang kalah.

Listing Program

import pbox2d.*;
import org.jbox2d.common.*;
import org.jbox2d.dynamics.joints.*;
import org.jbox2d.collision.shapes.*;
import org.jbox2d.collision.shapes.Shape;
import org.jbox2d.common.*;
import org.jbox2d.dynamics.*;
import org.jbox2d.dynamics.contacts.*;

// A reference to our box2d world
PBox2D box2d;

PFont f,f2;

//puntuaciĆ³
int skorSaya=0;
int skorLawan=0;

// declarem els discos
Box box;
Box box2;


Vec2 pos;

// An ArrayList of particles that will fall on the surface
ArrayList particles;
ArrayList boundaries;

// The Spring that will attach to the box from the mouse
Spring spring;
Spring spring2;

void setup() {
  size(400,600);
  smooth();

 
  f = createFont("Arial",50,true);
  f2 = createFont("Arial",10,true);
  // Initialize box2d physics and create the world
  box2d = new PBox2D(this);
  box2d.createWorld();
  box2d.setGravity(0,0);

  // creem els discos
  box = new Box(width/2,height*7/8);
  box2 = new Box(width/2,height*1/8);
 
  // creem la IA
  spring = new Spring();
  spring.bind(width/2,height*7/8,box,200,8,1); //x defecte 100,5,0.9
  //creem el Jugador 1
  spring2 = new Spring();
  spring2.bind(width/2,height*1/8,box2,10000,5,0.9);

  // creem la bola central
  particles = new ArrayList();

  // inicialitzem el mapa
  boundaries = new ArrayList();
  boundaries.add(new Boundary(0,height-5,width*3/4,10)); //barrera superior
  boundaries.add(new Boundary(width,height-5,width*3/4,10));
 
  boundaries.add(new Boundary(width/2,height+50,width*1/4,10)); // una xicoteta barrera darrere de la porteria
  /*boundaries.add(new Boundary(width/2-55,height+30,10,50));
  boundaries.add(new Boundary(width/2+55,height+30,10,50)); */
 
  boundaries.add(new Boundary(0,5,width*3/4,10));//barrera inferior
  boundaries.add(new Boundary(width,5,width*3/4,10));
 
  boundaries.add(new Boundary(width/2,-50,width*1/4,10));// una xicoteta barrera darrere de la porteria
  /*boundaries.add(new Boundary(width/2-55,-30,10,50));
  boundaries.add(new Boundary(width/2+55,-30,10,50)); */
 
  boundaries.add(new Boundary(width-5,height/2,10,height)); //barrera esq
  boundaries.add(new Boundary(5,height/2,10,height)); //barrera der
 
  //inicialitzem el disco central
  particles.add(new Particle(width/2,height/4,10));
}

void draw() {
  background(234,164,20);
  line(0,height/2,width,height/2);

  textFont(f); 
  fill(0,50);
  textAlign(CENTER);
  text(skorLawan,width/2,height/4);
  text(skorSaya,width/2,height*3/4);

 

  // We must always step through time!
  box2d.step();


  // Dibuixa el mapa
  for (int i = 0; i < boundaries.size(); i++) {
    Boundary wall = (Boundary) boundaries.get(i);
    wall.display();
  } 
 
  box.body.setAngularVelocity(0);

  // Look at all particles

  Particle p = (Particle) particles.get(0);
  p.display();
  pos = box2d.getScreenPos(p.body);
 
  // Particles that leave the screen, we delete them
  // (note they have to be deleted from both the box2d world and our list
  if (p.goalIA()) {
   
   
      if(skorSaya==5){
        particles.remove(0);
       
        particles.add(new Particle(width/2,height/4,10));
       
        text("Anda Kalah!",width/2,height/4);
    }
    else{
      particles.remove(0);
      skorSaya++;
      //println("Jugador "+ puntsJugador+" - IA "+puntsIA);     
      particles.add(new Particle(width/2,height/4,10));
    }
 
  }
  if (p.goalJugador()) {
   
    if(skorLawan==5){
        particles.remove(0);
        skorLawan=0;
        skorSaya=0;
        particles.add(new Particle(width/2,height/4,10));
    }
    else{
      particles.remove(0);
      skorLawan++;
      //println("Jugador "+ puntsJugador+" - IA "+puntsIA);
      particles.add(new Particle(width/2,height*3/4,10));
    }
      
  }   
 
  //moviment de la IA
  if (pos.y<height/2) {
    spring.update(constrain(pos.x,50,width-50),max(pos.y,height-30));
  } else {
    spring.update(constrain(pos.x,50,width-50),constrain(max(pos.y,height/2),height/2,height));
  }
 
  //moviment del jugador
  spring2.update(mouseX,min(mouseY,height/2));
   
  // Pintem els discos
  box.display();
  box2.display();

  textFont(f2);
  fill(255);
  textAlign(LEFT);
  text("Reset UP - Restart DOWN",10,10);
}
//key code
void keyPressed(){
  if (key == CODED){
    if (keyCode == UP){
      particles.remove(0);
      //println("Jugador "+ puntsJugador+" - IA "+puntsIA);
      particles.add(new Particle(width/2,height/2,10));
    }
    if (keyCode == DOWN){
      particles.remove(0);
      skorLawan=0;
      skorSaya=0;
      particles.add(new Particle(width/2,height/4,10));
    }    
  } 
}

Logika Program
program diatas merupakan class utama dari game Air Hockey ini. Langkah pertama adalah mengimport semua class yang dibutuhkan dalam aplikasi. Terdapat method draw() pada potongan program di asat, method inilah yang akan menggambar interface aplikasi seperti garis lapangan, warna lapangan, hingga pemukul dan bola itu sendiri.

Untuk proses jika bola masuk ke suatu gawang maka harus dibuat fungsinya. Pada bagian atas terdapat kondisi if yang parameternya diisi p.goalIA() jika user berhasil memasukan bola, sedangkan parameter p.goalJugador() jika lawan berhasil memasukan bola. di kondisi itulah kita mendeklarasikan suatu statement, pada kasus ini jika bola masuk maka skor akan ditambahkan dan posisi bola diset ulang.


Pada game ini terdapat fitur reset dan restart. Untuk reset dengan cara menekan tombol up pada keyboard, sedangkan untuk restart dengan menekan tombol down pada keyboard. Untuk membuat fitur tersebut pada program ini memanfaatkan method keyPressed().

Uji coba aplikasi
 
-Kondisi menang (Mendapatkan score)

-Kondisi kalah
Referensi :
http://openprocessing.org/

Nama : Happy Indra Wijaya
Kelas : 3IA15
NPM : 53410134