Selasa, 17 Maret 2015

Teori Komputasi

Teori komputasi adalah cabang ilmu komputer dan matematika yang membahas suatu masalah dapat dipecahkan pada model komputasi, menggunakan algoritma. Bidang ini dibagi menjadi dua cabang: teori komputabilitas dan teori kompleksitas, namun kedua cabang berurusan dengan model formal komputasi.

Untuk melakukan studi komputasi dengan ketat, ilmuwan komputer bekerja dengan abstraksi matematika dari komputer yang dinamakan model komputasi. Ada beberapa model yang digunakan, namun yang paling umum dipelajari adalah mesin Turing. Ilmuwan komputer mempelajari mesin Turing karena mudah dirumuskan, dianalisis dan digunakan untuk pembuktian, dan karena mesin ini mewakili model komputasi yang dianggap sebagai model paling masuk akal yang paling ampuh yang dimungkinkan. Kapasitas memori tidak terbatas mungkin terlihat sebagai sifat yang tidak mungkin terwujudkan, namun setiap permasalahan yang "terputuskan" oleh mesin Turing. Jadi pada dasarnya setiap masalah yang dapat dipecahkan (diputuskan) oleh meisn Turing. http://id.wikipedia.org/wiki/Teori_komputasi

Jumat, 05 Desember 2014

PROFIL,PRODUK PERUSAHAAN
Mata Kuliah Softskill (Pengantar Bisnis Informatika)

Kelompok :
A’an (50411003)
Andri Dwi S.(50411803)
Andrie S.(50411824)
M. Eko D.(54411610)
Hendi N.(53411307)
Kelas : 4ia05

Jaya Darma adalah perusahaan yang akan bergerak dibidang jasa yang menyediakan untuk membuat website komersil dan website perusahaan serta juga sebuah perusahaan yang melayani jasa pemasangan domain web dan pembuatan aplikasi serta pengaturan server website yang menggunakan system database.  
Relational Database sebenarnya adalah salah satu konsep penyimpanan data, sebelum konsep database relational muncul, sudah ada 2 model database yaitu Network Database & Hierarchie Database. Teori Database Relational di kemukakan pertama kali oleh Dr. E. F. Codd dalam makalah ilmiah yang berjudul " A Relational Model of Data for Large Shared Data Banks " yang di publikasikan dalam Communications of the ACM (Association for Computing Machinery) vol. 13, No 6, June 1970.   
            Dalam Database relational, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan antar tabel satu dengan tabel lainnya terdapat hubungan atau relationship sehingga sering kita baca di berbagai literatur, database di definisikan sebagai "kumpulan dari sejumlah tabel yang saling hubungan atau keterkaitan".
Pesaing
Pesaing dari pelayanan jasa pembuatan website adalah:
•           4visionmedia 
•           naevaweb

            4 Vision Media, adalah suatu perusahaan yang bergerak dibidang Informasi Teknologi (IT), 4 Vision Media merupakan sebuahperusahaan jasa pembuatan website, program aplikasi, sistem informasi dan pembuatan desain grafis juga logo.         
            Naevaweb melayani secara profesional berbagai perusahaan maupun individu melalui berbagai produk website unggulan, diantaranya website profile perusahaan/UMKM, Toko online dan Butik online.
Program dengan fitur yang lengkap, mudah digunakan, instalasi yang cepat serta pelayanan pelanggan yang ramah menjadi misi dari perusahaan kami.

Layanan Jasa

Adapun layanan jasa yang kami kerjakan adalah :
  •  Pembuatan website meliputi, desain website, desain system website, web maintance, re-desain website, web consulting, jasa SEO.
  •  Pembuatan program aplikasi meliputi pembuatan aplikasi berbasis desktop, dan aplikasi berbasis web
  •  Sistem Informasi, meliputi pembuatan sistem informasi perusahaansistem informasi kampussistem informasi sekolahsistem informasi UKM, dll.
  • Desain & Logo, meliputi pembuatan desain grafis, dan juga logo-logo untuk pribadi, intansi maupun perusahaan.
  • Service dan maintenance.
Dengan kemampuan team yang professional, ditambah harga penawaran yang murah, tentunya JayaDarma menjadi pilihan terbaik untuk memenuhi kebutuhan Anda.

JayaDarma melayani jasa pembuatan website di Bandung, jasa pembuatan website di jakarta, jasa pembuatan website di surabaya, jasa pembuatan website di sumatera, jasa pembuatan website di Aceh dan jasa pembuatan website di seluruh Indonesia.



PROFIL,PRODUK DAN GAJI PEGAWAI PERUSAHAAN ORACLE
Mata Kuliah Softskill (Pengantar Bisnis Informatika)

Kelompok :
A’an (50411003)
Andri Dwi S.(50411803)
Andrie S.(50411824)
M. Eko D.(54411610)
Hendi N.(53411307)
Kelas : 4ia05

Oracle (NASDAQ: ORCL) adalah perusahaan piranti lunak Enterprise terbesar di dunia yang menyediakan piranti lunak enterprise kepada perusahaan dan organisasi terbesar dan paling sukses di dunia. Oracle menyediakan produk-produk database, application server, collaboration selain enterprise businness application dan perangkat application development.       
            Oracle adalah perusahaan piranti lunak pertama yang mengembangkan dan 100 persen menggunakan piranti lunak enterprise diatas Internet diseluruh lini produknya. Sejak diluncurkannya database relational pertama di dunia pada tahun 1977, Oracle telah menjadi bagian penting dalam revolusi teknologi yang secara nyata mengubah bisnis modern.
Relational Database sebenarnya adalah salah satu konsep penyimpanan data, sebelum konsep database relational muncul, sudah ada 2 model database yaitu Network Database & Hierarchie Database. Teori Database Relational di kemukakan pertama kali oleh Dr. E. F. Codd dalam makalah ilmiah yang berjudul " A Relational Model of Data for Large Shared Data Banks " yang di publikasikan dalam Communications of the ACM (Association for Computing Machinery) vol. 13, No 6, June 1970.  
            Dalam Database relational, data disimpan dalam bentuk relasi atau tabel dua dimensi, dan antar tabel satu dengan tabel lainnya terdapat hubungan atau relationship sehingga sering kita baca di berbagai literatur, database di definisikan sebagai "kumpulan dari sejumlah tabel yang saling hubungan atau keterkaitan".           
            Kumpulan dari data yang di organisasikan sebagai tabel tadi disimpan dalam bentuk data elektronik di dalam hardisk komputer dan di kelompokkan secara logis berdasarkan schema user.
Untuk membuat struktur tabel, mengisi data ke tabel, mengubah data dan menghapus data dari tabel di perlukan software.        
            Software yang di gunakan membuat tabel, isi data, ubah data, dan hapus data di sebut Relational Database Management System atau di kenal dengan singkatan RDBMS. Sedangkan perintah yang di gunakan untuk membuat tabel, mengisi, mengubah, dan hapus data di sebut perintah SQL yang merupakan singkatan dari Structure Query Language. Jadi, setiap software RDBMS pasti bisa di gunakan untuk menjalankan perintah SQL PT Oracle Indonesia adalah anak perusahaan dari Oracle Corporation, yang didirikan pada tahun 1995.


SEJARAH PERKEMBANGAN ORACLE
.
            Dimulai tiga decade yang lalu, Larry Ellison yang secara rutin mengikuti jurnal penelitian IBM dan perkembangannya, menemukan sebuah makalah penelitian yang menggambarkan sebuah prototype yang bekerja untuk relasional system manajeman basis data (RDBMS). Kemudian Larry Ellison menunjukannya ke rekan-rekan dia yaitu Bob Miner dan Oates di Ampek, dari hasil pembicaraan mereka diketahui bahwa tidak ada perusahaan yang telah berkomitmen untuk mengkomersilkan teknologi ini. Trio ini menyadari ada potensi bisnis luar biasa dalam database relasional, selanjutnya mereka bersama-sama mendirikan perusahaan yang akan menjadi ORACLE dan mengembangkan oracle database.
            Meskipun sebagian besar perusahaan-perusahaan pada tahun 1977 menggunakan computer, namun sistemnya sangat besar dan sangat sulit dan hanya tenaga-tenaga terlatih dan professional yang bisa menggunakan mesin yang komplek untuk mengolah data input dan output.
            Oracle pertama secara komersial menyediakan perangkat lunak database yang ditantang dapat dipergunakan untuk kebijakan konvensional, bahwa teknologi ini dihadapkan pada skala jumlah yang besar dari data-data atau angka-angka yang sangat banyak dari para pemakai. Visi, misi dan optimisme dari para pendiri Oracle membawa Oracle pada suatu revolusi didalam perusahaan dan usaha computer.
            Sepanjang sejarahnya Oracle telah terbukti dapat membangun masa depan diatas dasar  inovasi dan pengetahuan yang mendalam atas tantangan pelanggan dan keberhasilan yang dianalisa oleh para pemikir  tehnik bisnis kelas dunia. Perusahaan berusaha sekuat tenaga dengan kekuatannya melayani pelanggan dan menerapkan teknologi sebagai kunci untuk mengambil keputusan bisnis dalam menghadapi kebijakan kovensional dan mengambil produk-produk dan jasa sebagai peluang baru.
            Sekarang lebih dari sebelumnya teknologi Oracle dapat ditemukan dihampir setiap industri dan pusat data. Oracle adalah perusahaan pertama untuk mengambangkan dan menyebarkan  seratus persen internet-enabled software enterprise diseluruh lini produk database, aplikasi bisnis, pengembangan aplikasi dan alat pendukung keputusan.
            Inovasi adalah mesin kesuksesan Oracle. Oracle merupakan salah satu perusahaan yang pertama untuk membuat aplikasi bisnis yang tersedia melalui ide internet. Oracle telah memperkenalkan produk baru Oracle Fusion Middleware dan fungsi onalitas yang mencermikan tujuan-tujuan perusahaan untuk menghubungkan semua tingkat tehnologi perusahaan, memastikan pelanggan mendapatkan akses pengetahuan yang dibutuhkan untuk merespon kondisi pasar dengan cepat dan leluasa.
            Tiga puluh tahun Oracle berjaya, Oracle menjadi patokan untuk database teknologi dan aplikasi-aplikasi di dalam perusahaan diseluruh dunia, dari mulai perusahaan-perusahaan yang kecil sampai perusahaan-perusahaan yang besar  multinasional dan internasional.

 Sejarah perkembangan Oracle.
·         1977 pertama Oracle didirikan.
·         1978 Oracle Versi 1 diluncurkan dalam bahasa assembly.
·         1979 Oracle Versi 2 dengan manajemen SQL database relasional system dilepaskan. Perusahaan berubah nama menjadi Inc Perangkat Lunak Relasional (RSI) .
·         1982 RSI mendapatkan system Oracle baru dan menjadi host pengguna pertama dalam konferensi di San Francisco.
·         1983 Oracle Versi 3 di bangun pada bahasa pemrograman bahasa C, dan merupakan RDBMS pertama yang bisa dijalankan di mainframe,minicomputer dan PC.
·         1985 langsung meluncurkan Oracle Versi  5 yang merupakan salah satu system basis data yang beroperasi di lingkunangan server.
·         1986 Oracle go public dibursa NASDAQ.
·          1987 Orcle tercatat sebagai perusahaan basis data terbesar didunia.
·          1988 Oracle meluncurkan Versi 6, yang memungkinkan beberapa pengguna untuk bekerja dalam system sementara administrator menduplikasi data arsip.
·         1989 Oracle dengan dukungan database transaksi online(OLTP) menyiapkan decade boomingnya internet.
·         1990 setelah membuat divisi aplikasi perusahaan meluncurkan Aplikasi Oracle Release 8 yang mencakup program akuntansi  untuk komputasi lingkungan server.
·         1992 Oracle melakukan perubahan  database dengan terobosan dan fungsi  dari beberapa perubahan arsitektural.
·           1993 Oracle menulis ulang aplikasi bisnis untuk klien dan mengotomatisasi proses bisnis dari pusat data.
·          1994 Oracle menghasilkan evaluasi pertama di industri keamanan independen, menambahkan pihak ketiga untuk jaminan kekuatan Oracle.1995 Oracle menjadi perusahaan perangkat lunak besar pertama internet yang konprehensif strategi.
·         1996 Oracle mengeluarkan  Oracle7 Release 7.3 yang merupakan Univesal Server yang memungkinkan pengguna mengolah semua jenis data teks, video, peta, suara, atau gambar.
·         1998 kembali diluncurkan Oracle Database 8 dan aplikasi 10.7, oracle merupakan perusahaan komputasi pertama yang menggunanakan java sebagai bahasa pemrograman.
·         1999 Oracle mengumumkan Web strategi yang menawarkan kemampuan internet setiap pengguna Oracle dari dukungan teknologi XML dan Linuk ke Versi terbaru Lini Produk Oracle, seperti Aplikasi Oracle 11 dan Oracle8i Database.
·         2000 Oracle mengeluarkan  Oracle E-Business Suite Release 11i, yang merupakan industry terpadu suite aplikasi enterprise pertama.
·         2001 Oracle 9i Database menambahkan Oracle Real Aplication Cluster yang memberikan pelanggan pilihan untuk menjalankan TI mereka dengan murah, perluasan kinerja server, skabilitas dan ketersidiaan dari database.
·         2002 Oracle meluncurkan  Oracle Unbreakable yang mengedepankan keamanan system basis data.
·         2003 diluncurkan Oracle Database Oracle 10g yang melayani komputasi perusahaan sebagai sebuah utilitas sesuai permintaan.
·         2005 Oracle menyelesaikan akuisisi aplikasi saingan PeolpeSoft dan mengumumkan niatnya untuk mengakuisisi Siebel Sistem.
·          2006 Oracle menegaskan kembali komitmennya untuk mengembangkan standar komputasi dengan  Unbreakable Linux.
·         2010 Inovasi berlanjut dengan Oracle Database 11g Release 2 untuk menurunkan biaya TI dan memberikan kualitas layanan yang lebih tinggi .
Pesaing
Pesaing dari perangkat lunak Oracle adalah:
•           IBM: DB2, Informix, UDB  
•           Microsoft SQL Server
•           Teradata (data warehousing dan business intelligence)
•           Software AG: Adabas
•           Sybase.
            Oracle dan IBM menekankan pada platform menengah seperti UNIX dan Linux, sementara Microsoft cenderung meraih pasar untuk kelas rendah (Microsoft Windows platforms).
Basis data Oracle juga bersaing dengan basis data sumber-terbuka (open-source relational databases), seperti PostgreSQL, Firebird, dan MySQL. Perangkat lunak EnterpriseDB yang berbasis PostgreSQL, belum lama ini mengumumkan fitur yang kompatibel dengan Oracle dengan harga yang sangat wajar dan murah.

Produk-Produk Oracle
Oracle mempunyai 6 produk,yaitu :
·                 Oracle Database : Oracle Database adalah database pertama uang dirancang untuk enterprise grid computing.Sebuah database yang paling fleksibel dan hemat biaya dalam mengatur informasi dan aplikasi.Oracle Database tersedia dalam tiga edisi – Enterprise,Standart,Personal.
·                 Oracle Application Server : Oracle’s Java 2 Enterprise Edition (J2EE) server yang bersertifikat,mengintegrasi segala yang dibutuhkan untuk mengembangkan dan membuart aplikasi berbasis Web.Aplikasi server mendeploy portals e-business, web services dan aplikasi transaksional seperti PL/SQL,Oracle Forms,dan aplikasi yang berbasis J2EE.
·                 Oracle Applications : Oracle E-Business Suite adalah suatu himpunan lengkap bisnis untuk mengatur dan mengotomasi proses dalam sebuah organisasi.
·                 Oracle Collaboration Suite : Oracle Collaboration Suite adalah satu sistem yang terintegrasi untuk semua komunikasi data dalam sebuah organisasi : Voice,E-mail,fax,wireless,calendar information, dan file-file.
·                 Oracle Development Suite : Oracle Development Suite sangatlah komplit,suatu integrasi yang mengkombinasikan application development dan business intelligence tools.
·                 Oracle Services : Services seperti Oracle Consulting dan Oracle University yang menyediakan keahlian yang dibutuhkan untuk menjaga Oracle project supaya tetap dalam jalur dan berjalan dengan baik.

Gaji Pegawai Oracle
Berikut adalah gaji rata – rata pegawai Oracle yang diterima menurut http://www.payscale.com :



 Versi Glassdoor.com :

Versi SalaryList.com :



Sejarah Singkat Oracle

Perusahaan Oracle didirikan pada tahun 1977 oleh tiga orang programmer, Bob Miner, Ed Oates, dan Larry Ellison yang menjabat sebagai CEO (Chief Executive Officer) selama beberapa tahun sampai saat ini. Perusahaan ini berkonsentrasi pada pembuatan database server di mainframe.
Kisah sukses Oracle Corp terkait dengan sejarah dan teori database relasional. Teori database relasional diperkenalkan hampir secara simultan oleh Edgar F. Codd (dalam artikelnya yang terkenal Large shared data banks) dan seorang penemu lain yang kurang dikenal, pada tahun 1969. IBM adalah perusahaan pertama yang menerapkan model relasional ini dalam bahasa SQL, dengan produknya DB2. Sayangnya IBM agak ragu akan keampuhan SQL dan model relasional (nantinya akan berpengaruh pada ketertinggalan IBM di pasar database-server sistem operasi Unix dan Windows ).
Larry melihat perkembangan teori model relasional dan implementasi database relasional dalam DB2. Ia yakin bahwa model relational adalah “way of the future” dan memutuskan untuk mengimplementasikan model relasional di produk Oracle. Sebelumnya produk database Oracle memakai model nonrelasional. Oracle menjadi pesaing kuat bagi IBM dalam pasar database server di mainframe, terutama database bermodel relasional.
Sekitar pertengahan tahun 1980an, Larry mendiversifikasi produk Oracle (versi 6.x) keluar mainframe, yakni ke sistem operasi Unix. Selanjutnya tahun 1996 Oracle Corp mendiversifikasi Oracle (versi 7.x) ke sistem operasi Novell Netware, Windows NT, dan Linux (versi 8.x, tahun 1997).
Mulai pertengahan tahun 1990an Oracle Corp mulai membuat juga produk-produk nondatabase-server seperti application server (WebDB, OAS), development tools (Oracle Developer, Oracle Designer), dan application suite (Oracle Apps).

Referensi :
http://www.dba-oracle.com/t_software_engineer_duties.htm
http://www.glassdoor.com/Salary/Oracle-Salaries-E1737.htm
http://www.salarylist.com/company/Oracle-Salary.htm
http://giriayoga.com/2010/10/29/produk-produk-oracle/
http://id.wikipedia.org/wiki/Basis_data_Oracle
http://suryasurabaya.blogspot.com/2011/04/pengertian-oracle-oracle-nasdaq-orcl.html
http://www.oracle.com/as/corporate/contact/indonesia-316176-en-as.html
http://www.payscale.com/research/US/Employer=Oracle_Corp./Salary
http://teknosphere.wordpress.com/oracle/



Jumat, 31 Oktober 2014

Definisi Umum Bisnis, Perkembangan Bisnis Informatika, Jenis Bisnis

DEFINISI UMUM
Pengertian Bisnis
Dalam ilmu ekonomi, bisnis adalah suatu organisasi yang menjual barang atau jasa kepada konsumen atau bisnis lainnya, untuk mendapatkan laba. Secara historis kata bisnis dari bahasa Inggris business, dari kata dasar busy yang berarti “sibuk” dalam konteks individu, komunitas, ataupun masyarakat. Dalam artian, sibuk mengerjakan aktivitas dan pekerjaan yang mendatangkan keuntungan.

Secara etimologi, bisnis berarti keadaan dimana seseorang atau sekelompok orang sibuk melkakukan pekerjaan yang menghasilkan keuntungan. Kata “bisnis” sendiri memiliki tiga penggunaan, tergantung skupnya — penggunaan singular kata bisnis dapat merujuk pada badan usaha, yaitu kesatuan yuridis (hukum), teknis, dan ekonomis yang bertujuan mencari laba atau keuntungan. Penggunaan yang lebih luas dapat merujuk pada sektor pasar tertentu, misalnya “bisnis pertelevisian.” Penggunaan yang paling luas merujuk pada seluruh aktivitas yang dilakukan oleh komunitas penyedia barang dan jasa. Meskipun demikian, definisi “bisnis” yang tepat masih menjadi bahan perdebatan hingga saat ini.

Pengertian TIK

Pengertian Teknologi informasi dan komunikasi
Teknologi Informasi dan Komunikasi (TIK) sebagai bagian dari ilmu pengetahuan dan teknologi (IPTEK) secara umum adalah semua yang teknologi berhubungan dengan pengambilan, pengumpulan (akuisisi), pengolahan, penyimpanan, penyebaran, dan penyajian informasi. Teknologi informasi juga adalah suatu teknologi yang digunakan untuk mengolah data termasuk memproses, mendapatkan, menyusun, menyimpan, memanipulasi data dalam berbagai cara untuk menghasilkan informasi yang berkualitas, yaitu informasi yang relevan, akurat, dan tepat waktu yang digunakan untuk keperluan pribadi, bisnis,dan pemerintahan dan merupakan informasi yang strategis untuk pengambilan keputusan.

Pengantar Bisnis Informatika

Bisnis dalam arti luas adalah istilah umum yang menggambarkan semua aktifitas dan institusi yang memproduksi barang & jasa dalam kehidupan sehari – hari. Bisnis merupakan suatu organisasi yang menyediakan barang dan jasa yang bertujuan untuk mendapatkan keuntungan.

PERKEMBANGAN BISNIS DI INDONESIA

Indonesia bukan merupakan negara yang paling mudah untuk mendirikan perusahaan baru atau untuk berperan aktif di bidang bisnis. Keadaan tersebut tercermin dalam laporan peringkat indeks Doing Business 2014 yang diterbitkan Bank Dunia. Dalam laporan tersebut, Indonesia pada saat in berada di posisi 120. Salah satu masalah yang paling besar dalam pendirian perusahaan baru di Indonesia yaitu mendapatkan semua izin yang diperlukan. Perizinan bisa memakan waktu lama dan berbiaya mahal. Agar berhasil mengembangkan bisnis di Indonesia, penting sekali untuk membangun jaringan yang baik dengan kalangan bisnis dan pemerintah. Pengusaha asing harus sadar akan kepentingan jaringan ini dan berupaya untuk mengembangkannya. Untungnya, membangun jaringan tersebut tidaklah sulit. Karena, pengusaha asing merupakan pihak yang menarik bagi orang Indonesia. Sangat dianjurkan untuk mendalami nilai-nilai budaya terlebih dahulu untuk mengetahui bagaimana bersosialisasi dengan mitra bisnis serta karyawan Indonesia dan untuk mengerti 'budaya bisnis' di Indonesia. Ini akan membuat bisnis Anda lebih efisien dan efektif, terutama dalam jangka panjang.

Bagian ini bertujuan untuk memberikan gambaran yang akurat tentang lingkungan bisnis di Indonesia melalui membagi informasi terperinci mengenai perusahaan-perusahaan Indonesia dan komoditas. Di samping itu, beberapa masalah yang menghambat efisiensi dan efektivitas pembangunan ekonomi dan sosial juga dibahas. Selain itu, bagian ini juga dapat berfungsi sebagai titik referensi bagi mereka yang ingin memulai usaha dan/atau berencana untuk tinggal di Jakarta karena bagian ini berisikan informasi terperinci tentang masalah hukum tertentu seperti memperoleh izin yang dibutuhkan untuk membangun sebuah perusahaan atau badan hukum lainnya.

Rabu, 23 Juli 2014

listing program game


//////////////////////////////


//     Global
Variables     //


//////////////////////////////


private Game
game = new
 Game();


private Question
question = new
 Question();


private Answer[]
answers = new
 Answer[3];


  


// Coordinates for where to draw
the buttons


private static final int[] buttonXCoords = {40, 240, 440};


  


// Limits for generating the
random numbers in the questions


private static final int[] limits = {1, 301};


  


// To store the coordinates of the
mouse when clicked


private float[]
mouseCoordsOnClick = new
 float[2];


  


// Flag for whether we need a new
question for the user


private boolean newQuestion = true;


  


// Flag for whether the game has
been started


private boolean gameStarted = false;


  


// Flag for winning or losing the
game


private int gameWon = 0;


  


// Create new object for the class
Cars


private Cars
cars = new
 Cars();


  


/////////////////////////////


//     
Setup method       //


/////////////////////////////


void setup(){


  frameRate(30);


  size(600, 600);


  smooth();


  


  // Initialise the
Answer objects


  for(int i=0; i<3; i++){


    answers[i]
= new
 Answer();


      


    // Set
each answer box's x-coordinate


    answers[i].setXCoord(buttonXCoords[i]);


  }


}


  


//////////////////////////////


//     Main
draw method     //


//////////////////////////////


void draw(){


    // Draw
background


    fill(255);


    rect(0,
0, width, 250);


      


    // If the
button has been pressed to start the game


    if(gameStarted
== true){


      //
Game lost


      if(gameWon==1){


        fill(0);


        textSize(35);


        text("YOU
LOST!", 215, 200);


      }


      else if(gameWon==2){


        fill(0);


        textSize(35);


        text("YOU
WON!", 215, 200);


      }


      if(gameWon==0){


        //
If a new question is needed (user answered)


        if(newQuestion
== true){


          //
No new questions until the user has answered


          newQuestion
= false;


        


          //
Draw background


          fill(255);


          rect(0,
250, width, 350);


      


          //
New question!


          game.newQuestion();


        }


        cars.moveCars();


        cars.drawCars();


        cars.checkWin();


      }


    }


    else{


      fill(0);


      rect(200,
200, 200, 100);


      fill(255);


      textSize(25);


      text("Start
Game", 235, 255);


    }


}


  


//////////////////////////////


//       
Game class        //


//////////////////////////////


class Game{


  // Constructor


  public void Game(){


      


  }


    


  // Sets up and
initiates the Question and Answer classes,


  // creating a new
question and answer selection for the user


  public void newQuestion(){


    int rand=0;


    // Draw a
new question to the screen


    question.drawQuestion();


  


    // Reset
the 'correct' answer box


    for(int i=0; i<3; i++){


      answers[i].setCorrect(false);


    }


  


    //
Randomly designate an answer box as the 'correct' one


    answers[int(random(0,
3))].setCorrect(true);


    


    for(int i=0; i<3; i++){


      if(answers[i].isCorrect()==true){


        //
Give the 'correct' answer box the value of the answer that was worked out earlier


        answers[i].setValue(question.getAnswer());


      }


      else{


        //
Give the two other answer boxes random numbers in the possible range


        do{


          rand
= int(random(-149, 301));


        } while(rand==question.getAnswer());


        answers[i].setValue(int(random(-149,
301)));


      }


      


      //
Draw the box that the answer sits in


      answers[i].drawButton();


      


      //
Draw the answer text in the box


      answers[i].drawText();


    }


  }


}


  


//////////////////////////////


//     
Question class      //


//////////////////////////////


class Question{


  private int num1;


  private int num2;


  private int operator;


  private int answer;


  private String questionString;


    


  // For use in building
questionString


  private final String[] operators =
{"+", "-", "*", "/"};


    


  // Constructor


  public void Question(){


      


  }


    


  // Used by
drawQuestion to build a question to display to the


  // user and set fields
we'll need later such as the answer


  private void createQuestion(){


    // Create
the two random numbers


    num1
= int(random(limits[0], limits[1]));


    num2
= int(random(limits[0], limits[1]));


      


    // Select
a random operator (multiplication and division aren't used)


    int opSelect = int(random(0, 2));


      


    switch(opSelect){


      case 0:


        answer
= num1 + num2;


        break;


      case 1:


        answer
= num1 - num2;


        break;


      case 2: // Unused


        answer
= num1 * num2;


        break;


      case 3: // Unused


        answer
= num1 / num2;


        break;


    }


    // Build
the question string we want to display to the user


    questionString
= num1 + " "
 + operators[opSelect] + " " + num2 + " = ?";


  }


    


  // Create and display
the question string to the user


  public void drawQuestion(){


    createQuestion();


    fill(0);


    textSize(30);


    text(questionString,
175, 300);


  }


    


  // Used for returning
the correct answer to the random question


  public int getAnswer(){


    return answer;


  }


    


  // Use the mouse
coordinates stored by the mouseclicked event handler


  // and the known
coordinates of the answer boxes to find which answer


  // the user actually
clicked on, returns -1 if no box was clicked.


  public int getAnswerChoice(){


    // For
simplicity


    float x = mouseCoordsOnClick[0];


    float y = mouseCoordsOnClick[1];


      


    if((y>=475)
&& (y<=550)){ // Check if mouse is on the right level
(y-coordinates)


      if((x>=40)
&& (x<=165)){ // Leftmost box


        //print("First
answer\n");


        return 0;


      }


      else if((x>=240) && (x<=365)){ // Middle box


        //print("Second
answer\n");


        return 1;


      }


      else if((x>=440) && (x<=565)){ // Rightmost
box


        //print("Third
answer\n");


        return 2;


      }


      else{


        return -1;


      }


    }


    else{


      return -1;


    }


  }


    


  // Check if the user's
answer pick was the correct one


  public void checkAnswer(){


    int choice = getAnswerChoice();


    // A
return value of -1 indicates that the user


    // did not
click within any of the answer boxes


    if(choice==-1){


      print("Not
a button\n");


      return;


    }


    else if(answers[choice].isCorrect()==true){


      print("Correct
answer\n");


      cars.speedUp();


    }


    else if(answers[0].isCorrect()==false){


      print("Wrong
answer\n");


      cars.slowDown();


    }


    // Set the
flag to start a new question


    newQuestion
= true;


  }


}


  


  


//////////////////////////////


//      
Answer class       //


//////////////////////////////


class Answer{


  // X-coordinate of the
box to draw


  private int xCoord;


  // Value of the answer
to display


  private int value = 0;


  // Whether this answer
box is the 'correct' one


  private boolean correct = false;


    


  // Constructor


  public void Answer(){


        


  }


    


  // Draw the box in
which the answer text sits


  public void drawButton(){


    fill(0);


    rect(xCoord,
475, 125, 75);


  }


    


  // Draw the text onto
the box


  public void drawText(){


    fill(255);


    text(value,
xCoord+35, 525);


  }


    


  // Mutator for the
x-coordinate


  public void setXCoord(int newXCoord){


    xCoord =
newXCoord;


  }


    


  // Mutator for the
answer value


  public void setValue(int newValue){


    value =
newValue;


  }


    


  // Accessor for the
answer value


  public int getValue(){


    return value;


  }


    


  // Mutator for the
'correct answer box' boolean


  public void setCorrect(boolean isCorrect){


    correct =
isCorrect;


  }


    


  // Accessor for the
'correct answer box' boolean


  public boolean isCorrect(){


    return correct;


  }


}


  


//////////////////////////////


//       
Cars Class        //


//////////////////////////////


class Cars{


  float car1speed;


  float car2speed;


  float x1;


  float x2;


  boolean value;


  boolean correct;


  boolean win;


    


  //Initialise Variables


  public Cars(){


    x1 = 0;


    x2 = 0;


  }


    


  public void drawCars(){


    //Draw two
cars


    fill(#FF0000);


    rect(x1,
120, 50, 20);


    fill(#03FF04);


    rect(x2,
180, 50, 20);


     


    // To
indicate that the green car is the player's


    fill(0);


    textSize(13);


    text("Player",
x2+10, 195);


  }


  


  public void moveCars(){


    x1 += 0.4;


    x2 +=
0.25;


  }


      


  public void speedUp(){


    x2 += 15;


  }


    


  public void slowDown(){


    x2 -= 25;


  }


    


  public void checkWin(){


    if(x1>=550){


      gameWon=1;


    }


    else if(x2>=550){


      gameWon=2;


    }


  }


}


////////////////////////////////


//  Mouseclick event
handler  //


////////////////////////////////


void mouseClicked(){


  // Store the mouse's
current coordinates


  // for use in another
method


  if(gameStarted==true){


    mouseCoordsOnClick[0]
= mouseX;


    mouseCoordsOnClick[1]
= mouseY;


    question.checkAnswer();


  }


  else{


    if(mouseX>200
&& mouseX<400 && mouseY>200
&& mouseY<300){


      gameStarted
= true;


    }


  }


}