Wednesday, October 23, 2019

Menggunakan Library di Java

Berikut adalah tugas menggunakan library di java. Dibuat 2 program, 1 adalah tebak angka random dan 1 lagi generate kartu random

Program random number
Skema


Main.java

Sample Output


Program Generate Kartu
Skema


Main.java

Card.java

Deck.java

Sample output

Sunday, October 6, 2019

Latihan Inheritance

Kali ini saya membuat sebuah program yang merupakan bentuk sederhana dari civitas akademika di ITS. Software yang saya gunakan adalah BlueJ. Berikut adalah bentuk Classnya jika dilihat dari BlueJ.



Cara kerjanya adalah :
  • Untuk menambahkan data dosen, maka run Class Dosen.
  • Untuk menambahkan data Pegawai, maka run Class Pegawai.
  • Untuk menambahkan data Mahasiswa, maka run Class Mahasiswa.
  • Jika ingin menambahkan 1 mata kuliah pada mahasiswa, run fungsi yang terdapat di Mahasiswa.

Berikut adalah source code dari tiap kelas yang ada pada program ini.
Kelas Civitas
 
// merupakan parent class dari mahasiswa, pegawai, dan dosen    
  public class Civitas    
  {   
   private String nama;    
   private int usia;    
   private String alamat;   
   //fungsi untuk inisiasi   
   public Civitas(String Nama,int Umur,String Alamat)    
   {    
   nama = Nama;    
   usia = Umur;    
   alamat = Alamat;    
   }    
   //fungsi untuk menampilkan   
   public void display()    
   {    
   System.out.println("---------------------------------------");    
   System.out.println("Nama : "+nama);    
   System.out.println("Usia : "+usia);    
   System.out.println("Alamat Rumah: "+alamat);   
   System.out.println("---------------------------------------");    
   }   
   //fungsi untuk mengambil nama dari civitas (dosen/mahasiswa/pegawai)   
   public String getName()    
   {    
   return nama;//method getter untuk nama civitas    
   }    
  }    
Kelas Database
  import java.util.ArrayList;
  //Class untuk membuat database baru   
  public class Database    
  {    
   private ArrayList<Mahasiswa> mahasiswa; //arraylist untuk menyimpan mahasiswa    
   private ArrayList<Dosen> dosen;   //arraylist untuk menyimpan dosen    
   private ArrayList<Pegawai> pegawai;  //arraylist untuk menyimpan pegawai   
   //fungsi untuk inisiasi database   
   public Database()    
   {    
   mahasiswa = new ArrayList<Mahasiswa>();    
   dosen = new ArrayList<Dosen>();    
   pegawai = new ArrayList<Pegawai>();    
   }   
   //fungsi untuk menambahkan dosen ke dalam database    
   public void tambahDosen(Dosen dsn)    
   {    
   dosen.add(dsn);    
   }   
   //fungsi untuk menambahkan pegawai ke dalam database   
   public void tambahPegawai(Pegawai pgw)    
   {    
   pegawai.add(pgw);    
   }   
   //fungsi untuk menambahkan mahasiswa ke dalam database    
   public void tambahMahasiswa(Mahasiswa mhs)    
   {   
   mahasiswa.add(mhs);    
   }   
   //fungsi untuk menghapus dosen dari database    
   public void hapusDosen(Dosen dsn)    
   {   
   dosen.remove(dsn);    
   }    
   //fungsi untuk menghapus pegawai dari database    
   public void hapusPegawai(Pegawai pgw)    
   {   
   pegawai.remove(pgw);    
   }   
   //fungsi untuk menghapus mahasiswa dari database    
   public void hapusMahasiswa(Mahasiswa mhs)    
   {    
   mahasiswa.remove(mhs);    
   }    
   //fungsi untuk menampilkan list mahasiswa di database   
   public void listMahasiswa()    
   {    
   for(Mahasiswa mhs : mahasiswa)    
   {    
    mhs.prnt();   
    System.out.println();    
   }    
   }   
   //fungsi untuk menampilkan list dosen di database   
   public void listDosen()    
   {    
   for(Dosen dsn : dosen)   
   {    
    dsn.print();    
    System.out.println();    
   }    
   }    
   //method untuk print list pegawai yang terdapat dalam database    
   public void listPegawai()    
   {   
   for(Pegawai pgw : pegawai)    
   {    
    pgw.print();    
    System.out.println();    
   }    
   }   
  }  
Kelas Dosen
  import java.util.ArrayList;
  //class untuk membuat dosen sebagai inheritance dari class Civitas    
  public class Dosen extends Civitas    
  {   
   private String NID;    
   private String nama_dsn;     //nama dosen    
   private ArrayList<Buku> buku;    
   public Dosen(String Nama_dsn,int usia_dsn,String alamat_dsn,String nid_dsn)    
   {    
   super(Nama_dsn,usia_dsn,alamat_dsn);    
   NID=nid_dsn;    
   buku = new ArrayList<Buku>();    
   }    
   public void prnt()    
   {//method untuk mendisplay informasi dosen    
   super.display();    
   System.out.println("NID : "+NID);    
   for(Buku bku : buku)    
   {    
    System.out.println("Meminjam Buku : "+bku.getJudul());    
    System.out.println();    
   }    
   }    
   public void PinjamBuku(Buku bk)    
   {//method untuk meminjam buku, menambahkan di list    
   buku.add(bk);    
   }    
   public void BalikinBuku(Buku bk)    
   {//method untuk mengembalikan buku, menghapus nya dari list    
   buku.remove(bk);    
   }    
   public String getNamaDosen()    
   {//method untuk mendapatkan nama dosen dari parent class Civitas    
   nama_dsn= super.getName();    
   return nama_dsn;    
   }    
   public void print()    
   {    
   super.display();    
   System.out.println("NID Dosen : "+NID);    
   }    
  }    
Kelas Mahasiswa
  import java.util.ArrayList;
  //class untuk membuat mahasiswa sebagai inheritance dari class Civitas    
  public class Mahasiswa extends Civitas    
  {    
   private String NRP;    
   private ArrayList<MataKuliah> matkl;  //array list untuk mata kuliah yang diambil    
   private ArrayList<Buku> buku;    
   public Mahasiswa(String Nama_mhs,int usia_mhs,String alamat_mhs,String nrp_mhs)    
   {    
   super(Nama_mhs,usia_mhs,alamat_mhs);    
   NRP = nrp_mhs;    
   matkl = new ArrayList<MataKuliah>();    
   buku = new ArrayList<Buku>();    
   }   
   //fungsi untuk mengembalikan buku dan menghapus nya dari list    
   public void BalikinBuku(Buku bk)    
   {    
   buku.remove(bk);    
   }   
   //fungsi untuk meminjam buku dan menambahkan di list    
   public void PinjamBuku(Buku bk)    
   {   
   buku.add(bk);    
   }   
   //fungsi untuk mengambil matkul dan menambahkan di list   
   public void AmbilMatkul(MataKuliah matkul)    
   {    
   matkl.add(matkul);    
   }   
   //fungsi untuk drop matkul dan menghapus nya dari list   
   public void DropMatkul(MataKuliah matkul)    
   {    
   matkl.remove(matkul);    
   }   
   //fungsi untuk menampilkan informasi mahasiswa    
   public void print()    
   {    
   super.display();    
   System.out.println("NRP Mahasiswa : "+NRP);    
   for(MataKuliah mt : matkl)    
   {    
    System.out.println("Mengambil Mata Kuliah : "+mt.getMatkul());    
    System.out.println("Dosen : "+mt.getDosen());    
    System.out.println("Kelas : "+mt.getKelas());    
   }    
   for(Buku bku : buku)    
   {    
    System.out.println("Buku yang dipinjam : "+bku.getJudul());    
    System.out.println();    
   }    
   }    
   public void prnt()    
   {    
   super.display();    
   System.out.println("NRP Mahasiswa : "+NRP);    
   }    
  }    
Kelas Pegawai
  import java.util.ArrayList;
  //class untuk membuat pegawai sebagai inheritance dari class Civitas    
  public class Pegawai extends Civitas    
  {   
   private String NIP;     //nomor induk pegawai    
   private ArrayList<Buku> buku;  //list buku yang dipinjam    
   public Pegawai(String Nama,int Umur,String Alamat,String nip)    
   {    
   super(Nama,Umur,Alamat);    
   NIP=nip;    
   buku = new ArrayList<Buku>();    
   }   
   //fungsi untuk mencetak informasi pegawai    
   public void print()    
   {   
   super.display();    
   System.out.println("NIP Pegawai: "+NIP);    
   }   
   //fungsi untuk meminjam buku, menambahkan nya pada list    
   public void PinjamBuku(Buku bk)    
   {   
   buku.add(bk);    
   }   
   //fungsi untuk mengembalikan buku dan menghapus nya dari list    
   public void BalikinBuku(Buku bk)    
   {   
   buku.remove(bk);    
   }   
   //fungsi untuk mencetak informasi pegawai    
   public void prnt()    
   {   
   super.display();    
   System.out.println("NIP Pegawai: "+NIP);    
   for(Buku bku : buku)    
   {    
    System.out.println("Buku yang dipinjam : "+bku.getJudul());    
    System.out.println();    
   }    
   }    
  }    
Kelas MataKuliah

  //class mata kuliah yang dapat diambil oleh mahasiswa    
  public class MataKuliah   
  {    
   private int Kode;    
   private String NamaMatkul;    
   private int sks;    
   private String kel;   //string kelas    
   private String dosn;   //string nama dosen    
   //inisiasi   
   public MataKuliah(int kode_matkul,String Nama_matkul, int Sks)    
   {    
   Kode=kode_matkul;    
   NamaMatkul = Nama_matkul;    
   sks=Sks;    
   }   
   //fungsi untuk mengambil kelas dan menambahkan nya pada data setiap matkul   
   public void tambahKelas(Kelas kls)    
   {    
   kel=kls.getCls();    
   }    
   public void tambahDsn(Dosen dsn)    
   {//method untuk menambahkan dosen untuk setiap matkul    
   dosn=dsn.getNamaDosen();    
   }   
   //panggil matkul   
   public String getMatkul()    
   {    
   return NamaMatkul;    //getter untuk nama matkul   
   }    
   //panggil kelas   
   public String getKelas()    
   {    
   return kel;     //getter untuk kelas    
   }    
   //panggil dosen   
   public String getDosen()    
   {    
   return dosn;     //getter untuk dosen    
   }    
  }   
Kelas Kelas

  //class Kelas    
  public class Kelas    
  {   
   private String kelas;    
   //inisiasi   
   public Kelas(String Kelas)    
   {    
   kelas=Kelas;    
   }    
   //mengambil kelas   
   public String getCls()    
   {    
   return kelas;    
   }    
  }    
Kelas Buku


  //class buku    
  public class Buku    
  {   
   private String Judul;    
   private String Penulis;    
   //inisiasi   
   public Buku(String judul_buku,String penulis_buku)    
   {    
   Judul=judul_buku;    
   Penulis=penulis_buku;    
   }    
   //fungsi untuk mencari judul   
   public String getJudul()    
   {    
   return Judul;   //method getter judul buku    
   }    
  }    

Saturday, September 28, 2019

Ticket Machine

Pada kesempatan kali ini, saya akan post program Ticket Machine. Ticket machine in akan mengeluarkan kembalian uang yang tersisa jika user mau exit saat masih ada uang di dalam mesin. Juga checking jika user ingin membeli tiket tanpa memasukkan uang yang cukup
Source Code nya terdiri dari 2 bagian, yaitu Ticket Machine Class dan Main Class.

Main.java


TicketMachine.java
Menu yang dapat dipakai user ada 5:
1. Get Price : menampilkan harga tiket
2. Insert money : input harga tiket
3. Get Balance : menampung uang yang telah diinput
    Jika uang yang diinput user tidak memenuhi, maka user tidak bisa mencetak tiket.
4. Print Ticket : cetak tiket dan menampilkan kembalian (jika ada, jika tidak maka ticket machine akan mengoutput "insufficient money")
5. Exit : Keluar dari program, ticket machine masih terdapat balance maka, ticket machine akan langsung mengeluarkan kembalian (menu)

Untuk hasil compile source code, berikut screenshotnya.




Sekian dan terima kasih!

Wednesday, September 11, 2019

Time

Latihan membuat program Java, menampilkan time.

Time.java


TimeTest.java


Output adalah

Hello World Java

Program hello world yang mengoutput profil dengan data yang di hard code
Pada tutorial kali ini kita akan menggunakan BlueJ, untuk eclipse dan bluej relatif sama, jadi kalian tidak perlu khawatir, langsung saja.

a. BlueJ

1. Buat proyek baru

Untuk membuat program java kalian harus membuat project baru melalui project ==> new project ==> beri nama dan pilih lokasi. Di menu ini ada banyak pilihan yang bisa kalian coba seperti open project, open recent, dan lain-lain.

Contoh Program Java Berbasis Objek


2. Memulai membuat program

Karena java termasuk bahasa pemrograman berbasis objek maka kita harus membuat class untuk mengenkapsulasi method kita nantinya. Untuk membuat class kita pilih menu edit ==> new class ==> nama kelas dan jenis kelas. Untuk penjelasan tentang class di java akan kita ulas nanti, kita pilih class yang biasa. Setelah membuat class akan muncul di layar kotak kecil kuning yang menandakan uml, disini kita membuat dua class yaitu HelloWord dan Profil.

Contoh Program Java Berbasis Objek

Untuk bluej, setiap program yang telah selesai diketik harus di compile terlebih dahulu supaya tidak terjadi error untuk uml sendiri akan terdapat panah-panah dan garis yang akan menghubungkan dua kotak uml yang berarti class tersebut berkaitan.  Source code bisa kalian lihat dibawah ini.

Hello World menggunakan Objek
HelloWorld.java


Profile.java


Untuk menjalankan program yang sudah anda buat

Right click di HelloWorld.java click compile

Right click di HelloWorld.java, jalankan main function
 Click okay
 Tertampilkan hasil program

Wednesday, August 28, 2019

Fit for The Future

Pada tanggal 27 Agustus 2019, diadakan kuliah tamu yang mempunyai tema “Fit for the future” atau “bugar untuk masa depan”. Pada saat saya masuk ruangan dimana kuliah tamu diadakan, terpaparkan kata-kata “Mengetahui Diri Sendiri Untuk Bekal Masa Depan”. Lalu, setelah beberapa lama, pembicara pun mengenalkan dirinya sendiri, pak Ahmadsyah Alghozi Nugroho membawakan kuliah tamu ini, beliau merupakan seseorang yang telah lulus juga dari ITS, ia lulusan Informatika ITS S1. Beliau juga mencari ilmu yang lebih tinggi di Universitas Indonesia. Ia menceritakan masa-masanya di ITS pada saat ia mengejar S1 Informatika. Beliau menceritakan kehidupannya di informatika ini menjadi salah satu yang biasa-biasa saja, alias tidak menonjol. Ternyata menjadi tidak menonjol bukan hal yang salah. Bahkan bisa menjadi pelajaran dan pengalaman untuk membuat keputusan di kemudian hari. Karena, buktinya dahulu pak Ahmadsyah yang tidak menonjol pun bisa menjadi Data Scientist di Shell Corporation. Beliau juga mengatakan bahwa Shell Corporation ini dulunya berlandasan di Belanda, dan sekarang sudah diketahui oleh semua orang di seluruh dunia. Bekerja di Shell di luar negeri, pak Ahmadsyah Alghozi menjadi nama yang sulit untuk diucap, sehingga ia dipanggil Holly Ghozi oleh orang-orang yang berada di luar negeri.
Pada saat ini, pak Holly menunjukan sebuah website dengan kata-kata yang bisa membesar mengecil, ia menyuruh kita untuk membuka handphone kita dan membuka websitenya. Jadi, kita bisa mengirimkan kata-kata lewat perangkat kita, dengan itu, kata-kata yang kita kirim akan menjadi semakin besar. Mungkin sebagai data scientist, pak Holly telah seringkali memakai alat tersebut, tetapi yang menarik adalah bagaimana beliau bisa terpikirkan untuk memakainya dalam kuliah tamunya sendiri. Disini saya mempelajari bahwa untuk membuat sesuatu tetap menarik tidak memerlukan hal yang sulit atau bagus, anda cukup bisa berpikir kreatif, menggunakan apa yang ada, sehingga bisa membuat sesuatu yang lebih menarik. Hal ini berhubungan juga dengan apa yang dibicarakan oleh pak Holly, secara tidak langsung beliau menunjukkan hal konkret yang memperkuat materi yang dibawakan olehnya. 
Materi pertama yang dibawa oleh pak Holly adalah Get to Know Yourself. Mengenal diri sendiri menjadi awal supaya kita bisa lebih mengerti apa yang kita inginkan. pak Holly memberikan perbedaan dengan Scientist dan Engineer, karena ini menjadi 2 hal yang seringkali diinginkan bagi para pelajar ilmu pasti. Menurut pak Holly, Scientist merupakan orang yang mengetahui suatu ilmu secara mendalam, namun tidak banyak ilmu. Sedangkan Engineer atau insinyur merupakan orang yang tidak mengetahui ilmu apapun secara mendalam, namun mengetahui banyak ilmu. Kedua hal tersebut tidak ada yang salah ataupun benar, mereka adalah 2 warna yang berbeda yang memiliki kedudukan sama penting dalam masyarakat, hanya saja mereka patut dibedakan. Scientist, dengan menggunakan ilmunya yang berlimpah, dapat menerobos batas-batas dari ilmu yang ditekuninya, terobosan-terobosan ini menjadi hal yang baru dan membantu semua orang. Engineer dengan pengetahuannya tentang banyak hal, dapat mencari cara-cara yang paling tepat untuk menyelesaikan suatu masalah. Scientist mencari solusi pada masalah-masalah yang tidak memiliki jawabannya dan engineer menerapkan solusi-solusi tersebut. Kedua bidang diperlukan, namun perlu diketahui bahwa scientist dan engineer merupakan 2 bidang yang berbeda. Tergantung dengan kemauan dan sifat sikap masing-masing individu, bisa saja terdapat individu yang lebih cocok untuk menjadi menerapkan solusi dengan pengetahuan yang luas di banyak bidang atau engineer dan terdapat individu yang lebih cocok untuk mencari solusi pada pertanyaan-pertanyaan yang belum pernah terjawab siapapun dan menemukan terobosan dari batas-batas ilmu yang ia tekuni atau menjadi scientist. 
Poin selanjutnya yang dibawakan pak Holly adalah tentang Businessman, Entrepreneur dan Infopreneur. Menurut pak Holly, Businessman adalah orang yang menjual barang dengan harga yang lebih tinggi maka businessman bisa dianggap sebagai reseller, wholesaler atau distributor. Businessman menjadi orang-orang yang bertanggung jawab untuk produk bisa tersebar di market dan lebih fokus terhadap penjualan. Entrepreneur diartikan sebagai creative thinker, menurut beliau entrepreneurs mencari solusi atau improvement yang bisa diterapkan untuk bisa menambah value terhadap suatu barang dan meningkatkan nilai jual produknya  Infopreneur adalah sama seperti bisnis-bisnis seperti biasanya, namun produk yang dijual oleh seorang infopreneur adalah informasi. Seperti yang dilakukan oleh pak Holly, ia sebagai data scientist mencari data atau mencari cara untuk mencari data yang lebih relevan dan lebih tepat, dan juga mengekstrak ilmu dari data-data yang sudah ada.
Selanjutnya pak Holly menjelaskan tentang orang ahli. Ahli itu dibagi menjadi 2 jenis, generalis dan spesialis. Generalis merupakan orang yang mampu di semua bidang, sedangkan spesialis adalah orang yang sangat mampu di satu bidang. Kedua jenis ahli dibutuhkan, namun terdapat pak Holly menjelaskan bahwa terdapat trend dan tendensi tertentu. Misal, pada bidang IT, spesialis lebih dicari oleh para perusahaan, salah satu alasan mengapa hal ini bisa terjadi adalah karena pada bidang IT, spesialis lebih jelas job description dan hal-hal yang harus dikerjakan oleh spesialis tersebut. Namun, generalis, meskipun secara trend tidak lebih dicari oleh para perusahaan, memiliki kompensasi yang lebih tinggi pada saat berada di perusahaan. Salah satu alasan untuk kejadian ini adalah karena generalis bisa menjadi kepala dari suatu bagian dan mengurus 1 bagian yang mencakup beberapa bidang supaya lebih bersinergi. Untuk bisa mengurus suatu bidang dengan efisien dan efektif maka kepala dari bidang tersebut harus minimal memiliki pengetahuan akan hal-hal yang dilakukan oleh bagian-bagian yang diurusnya.
Lalu yang terakhir pak Holly membawa tentang skill-skill yang diperlukan untuk kerja praktek. Yaitu, communications skills, leadership skills dan networking skills. Pak Holly menjabarkan ketiga poin ini sebagai berikut communications skill bisa disebutkan dengan public speaking, leadership skills menjadi skill yang membuat member dari tim kita ingin mengikuti kita, salah satunya adalah dengan memiliki authenticity yaitu memegang teguh nilai-nilai yang dipegang oleh diri kita. Terakhir ada networking, yang dijelaskan oleh beliau sebagai cara kita berkomunikasi dalam internal tim kita, salah satunya adalah dalam mentoring atau belajar.
Pak Holly menutup dengan memberikan bidang-bidang IT yang mempunyai banyak potensi transformasi di tahun 2020. Bidang-bidang tersebut merupakan 5G, WiFi cepat, Analitis yang Kompetitif, AI/Machine Learning, dan Blockchain. Dan untuk Riding The Wave, diantaranya adalah teknologi Drone, Cloud, dan Digital Twins.
Pada akhir kuliah tamu, pak Holly menyetujui 2 bahwa kuliah tamu ini dapat disimpulkan dengan kata-kata “Know Yourself”, yang berarti mengetahui diri sendiri untuk bisa menjadi bekal masa depan. Untuk bisa mempersiapkan diri untuk masa depan, persiapan perlu dilakukan sejak dini, dengan itu kita bisa mempersiapkan 

Terakhir yang beliau ceritakan ditengah kuliah tamu, namun menurut saya lebih cocok ditaruh di akhir dari resume ini, beliau mengatakan salah satu persiapan yang bisa dilakukan dari sekarang adalah dengan mengetahui interest masing-masing karena “Where there’s a will, there's a way”. Memang sudah seringkali didengar kata-kata ini namun beliau mengatakan bahwa pepatah ini memang benar. Jika solusi tidak ditemukan maka yang harus ditanyakan bukanlah “Apakah ada solusi untuk masalah ini?” tetapi “Apakah sudah cukup tekad saya untuk mencari solusi dari problem ini?”
Julius 05111840000082
27th August 2019