java programing
praktikum 3
Mata Kuliah :
[ Algoritma Pemrograman 1 ]
Disusun oleh :
Agung Laksono 5207100703
Jurusan Sistem Informasi
Fakultas Teknologi Informasi
Institut Teknologi Sepuluh Nopember
Surabaya

Program pembuatan bilangan prima yang berupa deretan, pada program ini
penggunanya adalah dengan berdasarkan program prima yang
sebelumnmya pernah dikerjakan, namun disini saya hanya menambah sebuah
array yang berguna sebangai output terakhir nantinya.
Analisanya:
Algoritma program ini sudah pernah saya gunakan sebelunya pada praktikum
sebelumnya, analisanya masih sama, yaitu
penyaringan input, jadi input yang dimasukan harus berupa angka, jika bukan
angka makan Akan keluar peringatan,
private static int in(){
int masuk=0;
boolean benar=false;
do{
try{
masuk=Integer.parseInt(JOptionPane.showInputDialog(null,”Masukkan
urutan”,”Input”,JOptionPane.QUESTION_MESSAGE)); //parsing input menjadi integer
benar=true;
}
catch(Exception a){
benar=false;
JOptionPane.showMessageDialog(null,”masukan angka”,”warning”,JOptionPane.ERROR_MESSAGE);
}
}while(!benar);
return masuk; //jika tidak benar maka input kembali diminta
}
}
selanjutnya adalah mengecek bilangan prima atau bukan:
private static boolean prima(int x){
for (int i=2;i<x;i++){
if(x%i==0)
return false; //jika habis dibagi maka bukan prima
}
return true; //maka nilainya benar(prima)
}
program ini dibantu beberapa method untuk mengeceknya, tapi pada intinya
program ini yang menjadi core yang memeriksa.
selanjutnya akan memasukan hasil kedalam array.
private static void proses(int a){
int b=0;
if(prima(a)){
array[b]=a; //array yang isinya adalah deretan prima
deret=deret+String.valueOf(array[b]+” “); //hasulnya disimpan dan terus dilooping
b++;
urutan++;
if(urutan==inputan){
System.out.println(deret);
// JOptionPane.showMessageDialog(null,”Bilangan prima ke “+urutan+” adalah “+a);
lanjut=false;
}
}
}
yang melooping hasil yang didapat hingga mendapat nilai urutan yang
membatasinya.
berikut source codenyanya:
import javax.swing.*;
public class jackpot{
static int urutan=0;
static int array[]=new int[100];
static int inputan=in();
static boolean lanjut=true;
static String deret=”";
public jackpot(){
for (int i=2;lanjut;i++)
proses(i);
}
public static void main(String[] args){
jackpot a=new jackpot();
}
private static void proses(int a){
int b=0;
if(prima(a)){
array[b]=a;
deret=deret+String.valueOf(array[b]+” “);
b++;
urutan++;
if(urutan==inputan){
System.out.println(deret);
// JOptionPane.showMessageDialog(null,”Bilangan prima ke “+urutan+” adalah “+a);
lanjut=false;
}
}
}
private static boolean prima(int x){
for (int i=2;i<x;i++){
if(x%i==0)
return false;
}
return true;
}
private static int in(){
int masuk=0;
boolean benar=false;
do{
try{
masuk=Integer.parseInt(JOptionPane.showInputDialog(null,”Masukkan
urutan”,”Input”,JOptionPane.QUESTION_MESSAGE));
benar=true;
}
catch(Exception a){
benar=false;
JOptionPane.showMessageDialog(null,”masukan angka”,”warning”,JOptionPane.ERROR_MESSAGE);
}
}while(!benar);
return masuk;
}
}
Berikut program dijalankan diJCreator
Pada program ini dibuat dengan menggunakan :
1. class yang bernama jackpot
2. method private == method proses( ) yang berbentuk void, method prima yang
berbentuk boolean, method in( )
method in( ) :
private static int in(){
int masuk=0;
boolean benar=false;
do{
try{
masuk=Integer.parseInt(JOptionPane.showInputDialog(null,”Masukkan
urutan”,”Input”,JOptionPane.QUESTION_MESSAGE));
benar=true;
}
catch(Exception a){
benar=false;
JOptionPane.showMessageDialog(null,”masukan
angka”,”warning”,JOptionPane.ERROR_MESSAGE);
}
}while(!benar);
return masuk;
}
}
analisis:
pada program ini inputan yang masuk berbentuk “String” akan diparsing menjadi int dengan
integer.parseint. selanjutnya jika inputan berhsil diparsing maka akan dikeluarkan dan return bernilai
true, tapi jika inputan yang dihasilkan bukan angka maka hasil nya adalah keluarnya message
yang menerangkan bahwa inputan salah dan kembali ke masukan /n.
menggunakan do-while adalah untuk mengecek dulu, setelah dicek baru while dieksekusi.
Didalam do saya memasukan try-catch yang berguna untuk melihat parsingan pada try sudah
benar atau belum, jika tidak memenuhi di try maka secara otomatis masuk ke catch mengeksekusi
JOptionPane dan menampilkan message peringatan. Setelah itu melanjutkan ke while tapi jika di
try sudah benar maka akan menghasilkan return true yang mengeksekusi method selanjutnya.
method prima( ) :
private static boolean prima(int x){
for (int i=2;i<x;i++){
if(x%i==0)
return false;
}
return true;
}
analisa:
pada pengecekan yang terjadi adalah memeriksa satu persatu bilangan. Jika pengecek( i
) bernilai x-1 maka proses akan berhenti, seandainya ditemukian satu saja
bilangan I yang berhasil membagi I dan bernilai 0, maka langsung keluar dan
nantinya x akan bertambah dan untuk dicek kembali. Namun jika sampai x-1
tidak ada satupun bilangan I yang bisa membagi x dan nilai modulonya 0, maka
ia akan menghasilkan nilai prima. Dan return menghasilkan true.
method proses( ) :
private static void proses(int a){
int b=0;
if(prima(a)){
array[b]=a;
deret=deret+String.valueOf(array[b]+” “);
b++;
urutan++;
if(urutan==inputan){
System.out.println(deret);
// JOptionPane.showMessageDialog(null,”Bilangan prima ke “+urutan+” adalah “+a);
lanjut=false;
}
}
}
analisis:
method ini akan diproses jika hasil method jecpot( ) selesai dieksekusi. Setiap
kali bilangan yang setelah dioproses yaitu bilangan prima ditemukan( setelah
diproses dari prima( ) dan jackpot( ) ) maka akan berlanjut untuk memeriksa
apakah batasan yaitu inputan sudah sama atau belum, jika sudah sama maka
setelah masuk kedalam if yang kedua return yang dihasilkan adalah false, yang
nantinya akan menghentikan semua proses. Dan menampilkan nilai deret.
if(prima(a)){
array[b]=a; //pada proses ini program berjalan dengan memasukan setiap kali bilangan
prima diperoleh, hingga bilangan prima terus bertambah dan mencapai batasannya.
deret=deret+String.valueOf(array[b]+” “); // pada sintak ini dibuatkan variable deret yang
fungsinya sebagai penyimpan dari bilangan prima dan berbentuk string yang ditambah string
sebelumnya. Sehingga nanti jika ingin ditampilkan tinggal dipangil variable deret ini.
b++;
urutan++;
3. public method == yaitu jackpot( ) dan method main( )
static boolean lanjut=true;
meethod jackpot( ):
public jackpot(){
for (int i=2;lanjut;i++)
proses(i);
}
analisis: sebagai pengontrol dari pross yang sudah dihasilkan, jika boolean bernilai benar maka ini
akan terus dieksekusi.
method main( ):
public static void main(String[] args){
jackpot a=new jackpot();
}
analisis: method main ini bekerja sebagai pemaggil classnya sendiri. Yaitu jackpot.
Penjelasan method secara umum:
Method ada 2 jenis:
Private: method yang hanya bisa diakses oleh classnyasendiri.
public: method yang bisa diakses oleh class lain.
pada method yang diberi static berarti selalu tetap.
pada method yang bertipe data(private static int proses(), private static string proses())
artinya nantinya akan menghasilkan keluaran dari proses Yang telah dieksekusi dari
method tersebu berupa tipe data yang telah dideklarasikan di method, hal ini harus
sesuai dengan proses yang dieksekusi didalam proses.
Array:
Array adalah berupa penyimpan yang panjangnya dapat ditentukan sendiri. Isi dari array
sebeium diisi adalah 0. array ini dideklarasikan dengan
nama tipedata namaVariabel [ ]= new namaTipedata[ ]
keterangan: banyaknya kurung siku tergantung dari banyaknya dimensi array yang
diinginkan.
Kesan dan hambatan:
Kaget
sureprise
Karma benar-benar ga ada persiapan untuk membuat program yang beru atau yang lain
dari yang sudah dibuat. Jadi agak lama dalam memikirkan program apa yang akan
dibuat.
Saran:
Mas nanti kalo praktikum selanjutnya buat yang lebih surprise lagi. Jangan yang sama,
so soalnya lebih mengasyikan. Thanks.