Belajar oprek-oprek Kartesian di Object Oriented Programming

import java.util.Scanner; 

import java.io.BufferedReader;

import java.io.FileInputStream;

import java.io.IOException;

import java.io.InputStreamReader;

public class point{

int dotx;

int doty;

point(int x,int y){

dotx = x;

doty = y;

}

public int getpointsbx(){

return (dotx-2*dotx);

}

public int getpointsby(){

return (doty-2*doty);

}

public int getKuadran(int x,int y){

int hasil = 0;

if (x>=0 && y>=0){hasil = 1;}

else if(x<=0 && y>=0){hasil = 2;}

else if(x<=0 && y<=0){hasil = 3;}

else if(x>=0 && y<=0){hasil = 4;}

return hasil;

}

public int getDikurangiX(int x){

Scanner sc = new Scanner(System.in);

int kr = sc.nextInt();

return x-kr;

}

public int getDikurangiY(int y){

Scanner sc = new Scanner(System.in);

int kr = sc.nextInt();

return y-kr;

}

public int getDitambahX(int x){

Scanner sc = new Scanner(System.in);

int kr = sc.nextInt();

return x+kr;

}

public int getDitambahY(int y){

Scanner sc = new Scanner(System.in);

int kr = sc.nextInt();

return y+kr;

}

public void view(){

int help;

System.out.print(“Pasangan koordinat awal : (“+dotx+”,”+doty+”) “);

System.out.println(“Ada di kuadran :”+getKuadran(dotx,doty));

System.out.print(“Jika dicerminkan terhadap sumbu x hasilnya adalah (“+getpointsbx()+”,”+doty+”) “);

System.out.println(“Ada di kuadran :”+getKuadran(getpointsbx(),doty));

System.out.print(“Jika dicerminkan terhadap sumbu y hasilnya adalah (“+dotx+”,”+getpointsby()+”) “);

System.out.println(“Ada di kuadran :”+getKuadran(dotx,getpointsby()));

System.out.print(“Jika dicerminkan terhadap sumbu x,y hasilnya adalah (“+doty+”,”+dotx+”) “);

System.out.println(“Ada di kuadran :”+getKuadran(doty,dotx));

System.out.print(“Jika dicerminkan terhadap sumbu -x,-y hasilnya adalah (“+getpointsby()+”,”+getpointsbx()+”) “);

System.out.println(“Ada di kuadran :”+getKuadran(getpointsby(),getpointsbx()));

System.out.print(“Nilai x ditambah : “); help = getDitambahX(dotx);

System.out.println(“adalah : “+help+”,”+doty+” di kuadran “+getKuadran(help,doty));

System.out.print(“Nilai y ditambah : “); help = getDitambahY(doty);

System.out.println(“adalah : “+dotx+”,”+help+” di kuadran “+getKuadran(dotx,help));

System.out.print(“Nilai x dikurangi : “); help = getDikurangiX(dotx);

System.out.println(“adalah : “+help+”,”+doty+” di kuadran “+getKuadran(help,doty));

System.out.print(“Nilai y dikurangi : “); help = getDikurangiY(doty);

System.out.println(“adalah : “+dotx+”,”+help+” di kuadran “+getKuadran(dotx,help));

}

public static void main(String[] args){

Scanner s= new Scanner(System.in);

System.out.print(“Inputkan titik x : “);

int x = s.nextInt();

System.out.print(“Inputkan titik y : “);

int y = s.nextInt();

point P= new point(x,y);

P.view();

}

}

 

TEKNIK INFORMATIKA DI INDONESIA

4 pertanyaan yang harus dijawab sebelum mengejar karir di teknik informatika  :

  • Bagaimanakah dunia teknik informatika di Indonesia?
    Untuk teknik informatika di Indonesia cukup banyak orang yang mengincar. Biasanya dikarenakan kedekatan manusia zaman sekarang dengan alat yang bernama Computer. Memang hal itu sudah tak mungkin dapat dipungkiri. Dapat kita lihat tanda-tandanya. Misalnya anak zaman sekarang lebih suka berinteraksi dengan computer dari pada berinteraksi dengan teman sebayanya. Hal tersebut akan mengundang rasa suka terhadap computer. Dan memang sudah tak asing lagi computer yang zaman dahulu hanya digunakan oleh perusahaan perusahaan besar, namun sekarang digunakan oleh banyak orang sebagai personal computer. Ada beberapa sebab juga mengapa teknik informatika banyak diincar. Alasannya adalah saat ini bisnis didunia informatika memang cukup menjanjikan dan itulah yang menghipnotis banyak orang untuk masuk dalam dunia Informatika. Tujuannya adalah agar mereka bisa meraup keuntungan yang besar dari dunia informatika ini dengan modal yang cukup kecil. Misalnya adalah dengan advertising di Internet. Dengan bermodalkan web page itu dapat dilakukan dengan mudah. Alasan lainnya mungkin adalah karena adanya anggapan bahwa computer itu praktis dan mudah digunakan. Padahal dalam kenyataannya tidak begitu. Orang yang menggunakan software itu belum tentu bisa membuat software. Memprogram  (membuat program) itu lebih sulit dari pada menggunakan program. Memprogram itu sama saja dengan berbicara kepada computer dan memerintahkan sesuatu, namun memakai program itu hanya sekedar memerintahkan dengan perintah-perintah praktis. Berbicara dengan computer itu bukan dalam artian dengan menggunakan bahasa manusia. Namun dengan menggunakan bahasa yang dipahami oleh computer. Tapi banyak orang yang merasa pintar ketika sudah bisa memakai sebuah program. Misalnya saja dapat menggunakan powerpoint, excel, word, aplikasi game , dll. Kemudian orang itu masuk kedunia Teknik Informatika. Nah, dari situlah biasanya banyak orang yang terjebak dibidang teknik Informatika. Maka itu juga bisa menjadi salah satu factor mengapa dunia Informatika menjadi dunia yang sering diincar oleh banyak orang. Yaitu anggapan bahwa computer itu praktis.
    Namun untuk teknologi yang satu ini di Indonesia masih tertinggal dengan beberapa Negara-negara maju dan Negara berkembang lainnya. Mungkin juga itu disebabkan oleh kesenjangan teknologi yang digunakan. Atau mungkin juga hal itu disebabkan oleh factor SDM (Sumber Daya Manusia). Kalau boleh saya berperasangka baik, ketertinggalan ini disebabkan oleh perilaku SDM yang kebanyakan di antara mereka terkena penyakit malas dan suka membuang waktu. Pasalnya beberapa orang yang saya kenal dan mereka itu pernah berkuliah di Negara asing berkata bahwa sebenarnya orang Indonesia itu tidak kalah IQnya dibandingkan dengan orang dari Negara-negara lain. Bahkan ada diantara mereka yang mengatakan bahwa pernah saat dia sedang kuliah, temannya (dari Negara asing, tidak usah saya sebutkan dari Negara mana agar tidak terjadi provokasi) menyontek pekerjaanya. Itu merupakan salah satu bukti bahwa sebenarnya orang Indonesia itu tidak kalah IQnya dari orang Negara barat sana. Hanya mungkin karena beberapa factor yang disebut malas dan buang-buang waktu tersebut. Saya pernah dengar juga bahwa jurusan data mining di IT Telkom sangat di kenal dikawasan Asia tenggara. Itu merupakan salah satu bukti juga bahwa sebenarnya Indonesia itu tidak kalah dibandingkan dengan beberapa Negara lain.
    Keterbatasan Alat juga mempengaruhi kemajuan teknik Informatika di Indonesia. Pasalnya memang di Indonesia untuk alat-alat seperti itu masih terbatas.

Faktor lainya adalah pengaruh dari kata “Jurusan Favorit”. Itulah yang menjadikan dunia teknik Informatika itu menjadi dunia yang banyak diincar oleh banyak orang. Hal ini dapat dibuktikan dengan jelas. Banyak lulusan SMA angkatan 2009 yang mendaftarkan dirinya masuk teknik informatika ke beberapa universitas atau institute dengan akreditasi A. Misalnya di ITB untuk pendaftar teknik informatika kemarin kira-kira mencapai kurang lebih 4000 orang, di ITS kurang lebih 2000 orang, sedangkan di IT Telkom saya pernah dengar sekitar 2000 orang yang mendaftar ke jurusan teknik informatika. Itupun belum dari universitas-universitas lainnya. Itulah yang membuktikan ketatnya persaingan dunia Informatika di Indonesia saat ini. Dengan gambaran seperti itu bisa dibayangkan 20 sampai 30 tahun kedapan mungkin dapat diprediksikan hanya sekitar5000 orang yang kompeten di bidang informatika yang akan mampu bersaing menuju dunia kerja yang sengit dan penuh persaingan.

  • Computer Science manakah yang paling menjanjikan untuk 5 sampai 10 tahun ke depan?
    Untuk Fakultas informatika yang begerak di bidang CS ini mungkin yang paling menjanjikan untuk 5 sampai 10 tahun kedepan adalah path yang ketiga. Yaitu menciptakan jalan alternative untuk memecahkan suatu masalah dalam permasalahan computing. Misalnya saja adalah pada bagian DATA MINING. Banyak lulusan data mining yang akan direkrut dan dibutuhkan oleh perusahaan-perusahaan besar, karena dengan adanya data mining ini suatu perusahaan dapat menentukan barang mana yang akan menghasilkan keuntungan yang lebih cepat dan besar dan juga sering di beli oleh konsumen.
    Meskipun hal tersebut cukup menjanjikan namun saya lebih memilih path yang pertama, yaitu mendesain dan mengimplementasikan software. Alasan saya memilih hal tersebut adalah karena itu merupakan hobi saya, selain itu saya tertarik dengan sesuatu yang disebut web development dan web programming. Saya juga suka dengan pekerjaan mendesain interface untuk suatu aplikasi. Maka dari itu saya memilih path tersebut.
  • Apakah kelebihan, kekurangan, kesempatan dan ancaman mu (SWOT)?
    Kalau tentang, kekurangan, kesempatan dan ancaman setiap orang itu sebenarnya berbeda-beda. Misalnya kalau dari saya pribadi :
    Kelebihan saya adalah saya termasuk tipe orang yang tak mudah menyerah dan selalu berusaha menyelesaikan sesuatu secepat mungkin dan sebaik-baiknya. Itu adalah kelebihan dalam hal sifat pribadi, kelebihan dari sisi Informatikanya adalah saya termasuk orang yang suka mempelajari sesuatu yang berhubungan dengan web designer, termasuk juga dalam hal web programming.
    Untuk kelemahan saya pribadi adalah saya termasuk tipe orang yang mudah lupa. Kalau kelemahan di sisi informatikanya adalah saya terlalu berlebihan ketika menghabiskan waktu untuk mengkoding suatu program sehingga kadang-kadang waktu saya habis untuk membuat program dan saya lupa dengan kesehatan pribadi.
    Untuk kesempatan sendiri saya belum berfikir sejauh itu, tapi saya yakin dengan beberapa kemampuan dan pertolongan dari Allah SWT maka insyaAllah kesempatan akan terbuka lebar dihadapan saya, itupun belum saya perhitungkan semangat saya juga.
    Ancaman yang sering saya takutkan adalah banyaknya saingan. Karena semakin banyak saingan berarti kesempatan untuk bekerja semakin kecil.
    Mungkin sejauh itulah saya mampu diri saya sendiri. Dengan mengenali diri sendiri maka akan mudah bagi kita untuk menyusun strategi-strategi baru agar langkah bisa memperbaiki langkah kedepan kita.
  • Apakah strategimu untuk menghadapi fakta tersebut?
    Dengan mengenal dan mengetahui kelemahan kita pribadi, maka akan lebih mudah bagi kita untuk menentukan strategi kedepan.
    Misalnya kalau dari saya pribadi adalah :
    saya harus mampu mengatur jadwal kegiatan sehari-hari, agar saya tidak terlalu autis ke bahasa pemrograman. Kemudian menanggapi persaingan sengit di dunia Informatika yang saat ini semakin sengit, strategi saya adalah dengan cara ikut dalam suatu organisasi agar saya lebih berpengalaman dan mengetahui seluk beluk dari teamwork sehingga kesempatan bagi saya terbuka lebar, karena hal tersebut akan meningkatkan softskill saya pribadi. Tujuan lain dari saya ikut ke organisasi adalah agar kemampuan entrepreneurship saya meningkat, sehingga saya kedepannya tidak mengharapkan untuk bekerja terhadap orang lain, namun saya akan berusaha menciptakan lapangan pekerjaan. Kemudian untuk meningkatkan akademis saya di bidang IT saya sudah menargetkan untuk menguasai beberapa bahasa pemrograman tertentu agar saya tidak gaptek di bahasa pemrograman.

type dasar / terdefinisi

Type terdefinisi itu adalah suatu type yang tak perlu untuk kita definisikan sebelumnya dalam suatu pemrograman maupun dalam suatu algoritma. Type ini telah diset secara otomatis dan memang telah ada dalam suatu bahasa pemrograman maupun algoritma. Tipe yang telah terdefinisi dalam algoritma itu misalnya :

  • String
  • Char
  • Integer
  • Real
  • Boolean

Misalnya dalam bahasa pascal istilah tipe dasar tersebut juga sama saja

Kalau di bahasa C++ agak beda dikit, misalnya integer itu Cuma kita tulis int , sedangkan real kita tulis float, dan Boolean tinggal kita tulis bool.

Misalnya kalau dalam pascal itu saya ingin bikin program kayak gini ni!!

Program input;

Uses crt;

Var

Nama : string ;

Inisial : char ;

tinggi : real ;

beratideal : real ;

Ket : Boolean ;

Berat : real ;

Uang_jajan : integer;

Begin

Clrscr;

Writeln(‘masukkan data mahasiswa : ’);

Write(‘nama                      : ’);readln(nama);

Write(‘inisial mahasiswa : ‘);readln(inisial);

Write(‘uang jajan prhari  : ’);readln(uang_jajan);

Write(‘berat badan          : ’);readln(berat);

Write(‘tinggi badan          : ’);readln(tinggi);

Beratideal:=(tinggi-100)-((10/100)*(tinggi-100));

Writeln(‘berat ideal anda adalah : ’,beratideal:2);

If beratideal>berat then writeln(‘kurangi berat anda sebanyak ’,beratideal-berat,’ kg’) else writeln(‘tambah berat badan anda sebanyak  ’,berat-beratideal,’ kg’);

Ket:=false;

Writeln(‘uang saku anda : ‘,uangjajan,’ rupiah per hari’);

If uang_jajan<5000 then ket:=true;

If ket=true then writeln(‘anda termasuk orang yang ngirit’) else writeln(‘uang saku berlebih, harap disumbangkan ke teman lainnya’);

Readln;

End.

Progam ini maksudnya adalah untuk menginput data mahasiswa dengan beberapa variable, yaitu :

nama dengan tipe string, inisial dengan tipe char (hanya untuk mendefinisikan satu buah karakter saja), uang jajan dengan tipe integer, berat dengan tipe real, tinggi degan tipe real, beratideal dengan tipe real juga.

Misalnya program ini dijalankan, maka program akan meminta inputan berupa nama, inisial, uang jajan, berat , dan tinggi.

Kalau berat badan < berat ideal maka akan dituliskan berapa kg lagi yang perlu anda tambahkan untuk mencapai berat ideal dan sebaliknya.

Apabila uang saku < dari 5000 maka pada output di layar akan muncul tulisan ‘anda termasuk orang yang ngirit’ dan ketika >=5000 maka akan dioutputkan ‘uang saku berlebih harap disumbangkan ke teman lainnya’.

Nah.. Begitulah…..

Pengertian Algoritma

Upss……

Algoritma ya…..!!!!
Beginilah hidupnya anak informatika…. Setiap hari musti ada yang namanya algoritma. Algoritma itu sendiri apa sih? Algorima itu merupakan deskripsi langkah-langkah pelaksanaan dari suatu proses. Setiap langkah dalam algoritma itu dinyatakan dalam sebuah pernyataan atau istilah lainnya adalah instruksi. Instruksi itu sendiri berisi sebuah aksi yang akan dilakukan.  Bila sebuah pernyataan dieksekusi maka akan dikerjakan sebuah aksi yang bersesuaian dengan instruksi tersebut.

Tentang dasar algoritma sendiri sebenarnya ada 3 macam bentuk struktur dasar dari algoritma. Apa sajakah itu??? Inilah dia bentuk bentuknya:

Pertama adalah runtutan , sering kita sebut dengan sequence. Sebuah runtutan itu terdiri dari satu atau lebih pernyataan dan setiap pernyataan itu ditulis dalam satu bari atau dipisahkan dengan tanda semicolon atau sering disebut titik koma ( ; ). Tiap pernyataan dikerjakan secara berurutan mulai dari awal sampai akhir sesuai dengan urutannya di dalam teks algoritma. Sebuah instruksi akan dilaksanakan setelah instuksi sebelumnya selesai dilaksanakan. Bila urutannya diubah, ada kemungkinan hasilnya pun juga akan berubah

Saya misalkan saya menulis sebuah urutan demikian

Algoritma urutan mau minum:

  • Ambil air
  • Tuangkan ke gelas
  • Minum air yang ada di dalam gelas

Atau demikian yang lebih singkat

Algoritma urutan mau minum:

  • Ambil sebotol air
  • Teguk air yang ada dalam botol

Dua algoritma di atas pada dasarnya bertujuan sama yaitu untuk urutan mau minum, tetapi caranya berbeda, namun coba anda bedakan dengan algoritma dibawah ini

Algorima urutan mau minum:

  • Minum air
  • Tuangkan ke gelas
  • Ambil air

Tidak  akan mungkin kalau algoritma di atas akan menghasilkan suatu hasil yang sama dengan yang sebelumnya. Itu karena urutannya tidak benar.

Saya punya contoh lain…..

Coba berfikir!!!

Bagaimana algoritma untuk menukarkan isi dari dua buah ember  berisi air yang misalnya masing-masing ember saya beri variabel A dan B (isi ember A menjadi isi ember B dan sebaliknya)?masing-masing ember berisi air penuh.

Tidak mungkin kalau kita akan langsung menuangkan ember A ke B atau sebaliknya. Karena embernya kan penuh. Misalnya kita tuang langsung ember A ke ember B pasti airnya akan tumpah.

Jadi hal yang harus kita lakukan adalah tambahkan sebuah variabel lagi yang kosong, misalnya ember C yang kosong. Hal yang kita lakukan adalah sebagai berikut

Status awal :

Proses Pertukaran :

Masukkan isi ember A kedalam ember C

Masukkan isi ember B kedalam ember A

Masukkan isi ember C kedalam  ember B

Status akhir yang dihasilkan:

Yang ke dua adalah pemilihan,  Ada kalanya suatu perintah itu di lakukan apabila pada kondisi tertentu. Misalnya saat kita melanggar peraturan pemerintah, kita akan dipenjara. Langkah tersebut dapat kita tuliskan sebagai berikut :

Jika kita melanggar peraturan pemerintah, maka kita akan dipenjara

Pernyataan diatas dapat kita tulis dalam pernyataan pemilihan (selection-statement), atau disebut juga pernyataan kondisional, sebagai berikut:

If kodisi then Aksi

Kalau kita definisikan dalam bahasa indonesia if artinya adalah jika dan then artinya adalah maka. Kondisi tersebut dapat bernilai benar ataupun salah. Seperti yang kita lihat pada contoh kalimat di atas, misalkan jika kita benar melanggar peraturan pemerintah , maka aksi yang dilakukan adalah kita akan dipenjara, namun jika kita tidak melanggar peraturan pemerintah, maka kita tidak akan dikenai aksi apapun.

Namun, adakalanya ketika kita ingin membuat pernyataan kondisional yang pasti dikenai suatu  aksi baik kondisi bernilai benar maupun salah kita dapat mendeklarasikannya sebagai berikut :

If kondisi then aksi1

Else aksi2

Misalkan saja untuk kondisi seperti di bawah ini :

Jika tinggi > 165 maka tinggi selain itu pendek

Jadi ketika tinggi kita lebih dari 165 maka kita tergolong tinggi dan selain itu ( ≤ 165) kita tergolong pendek.

Dalam algoritma dapat kita tulis

if tinggi > 165 then panjang

else pendek

Adakalanya juga ketika sebuah pernyataan kondisional bersarang. Kita sering menyebutnya nested if atau if bersarang.

Contohnya seperti di bawah ini:

if nilai>80 then output(‘A’)

else if nilai>60 then

output(‘B’)

else if nilai>50 then

output(‘C’)

else if nilai>30 then

output(‘D’)

else output(‘E’)

{endif}

Algoritma yang dicek berurutan mulai dari if yang pertama sampai if yang terakhir secara berurutan

Jadi ketika inputan nilai adalah 40 maka akan dicek dari atas, apakah 40 itu lebih dari 80?Karena tidak, maka lanjut ke proses berikutnya. Apakah 40 lebih dari 60?Karena 40 tidak lebih dari 60 maka lanjut ke if berikutnya. Apakah 40 lebih dari 50? Karena tidak maka lanjut ke if berikutnya lagi. Di cek lagi apakah 40 lebih dari 30?Karena perbandingan tersebut bernilai benar maka akan menghasilkan outputan D . Sedangkan kondisi berikutnya tidak akan ikut dieksekusi karena kondisi sudah terpenuhi.

Kemudian,

Yang ketiga adalah perulangan,

Pernahkah anda dihukum menulis sesuatu misalnya “aku berjanji aku akan jadi anak baik” sebanyak 500 kali? Apakah anda melakukan hal tersebut? Apakah anda menulisnya seperti dibawah ini?

1.aku berjanji aku akan jadi anak baik

2.aku berjanji aku akan jadi anak baik

3.aku berjanji aku akan jadi anak baik

Sampai yang ke500.

Sebenarnya itu bagus, tapi kurang efektif. Tangan anda pasti akan serasa putus jika melakukan hal tersebut terus-menerus.

Sebenarnya ada cara lain yang lebih efektif, yaitu dengan memakai algoritma. Seperti apakah itu?Perhatikan Algoritma dibawah ini:

Repeat 500 timesOutput(‘aku berjanji aku akan menjadi anak baik’)

Singkatkan!!!!!!

Bagaimana?Cukup dengan menuliskan algoritma di atas anda jadi orang yang efektif. Tak perlu capek-capek menulisnya sebanyak 500 kali.

Itulah hebatnya komputer. Komputer itu tidak akan lelah dan bodsan ketika mengerjakan sesuatu yang sama secara berulang-ulang, berbeda dengan manusia, manusia akan cepa t lelah dan bosan ketika melakukan sesuatu secara berulang-ulang.

Perulangan itu digunakan ketika ingin melakukan proses yang sama dan berulang-ulang.

Berikut ini merupakan beberapa struktur Algoritma dalam pengulangan:

Repeat N times Aksi

Yang artinya aksi diulang dan dikerjakan sebanyak N kali

Kemudian struktur lainya adalah:

Pencacah travesal [1..N] Aksi

Kalau di pascal seperti “for….. to …..do…….”

Maksudnya adalah untuk pencacah dari satu sampai N kerjakan aksinya.

(pencacah harus bersifat suksesif, maksudnya adalah pencacah harus punya successor ataupun predesessor). Pencacahnya misalnya sesuatu yang bertipe char ataupun integer.

Struktur berikutnya adalah:

while kondisi do aksi

Maksudnya selama kondisi terpenuhi (bernilai benar) maka aksi akan dilakukan sampai kondisi tidak terpenuhi

Kemudian ada algoritma  yang berbentuk seperti ini :

Repeat Aksi

Until kondisi

Maksudnya adalah lakukan aksi hingga kondisi terpenuhi ( kondisi bernilai true).

Yups…..Mungkin Cuma itu saja struktur dasar dari algoritma, kalau anda ingin mengembangkan  silahkan saja.