Sei sulla pagina 1di 23

MAKALAH PRODUKTIVITAS PENDIDIKAN

Khalis Guntur Prakoso (702016015)

PENDIDIKAN TEKNIK INFORMATIKA DAN KOMPUTER


UNIVERSITAS KRISTEN SATYA WACANA

SEMESTER 6 TAHUN 2018


1. Tampilan setelah dimasukan angka

2. Tampilan bila yang diinputkan adalah huruf atau simbol maka akan
muncul seperti ini
KODE PROGRAM

1. Class Tampil
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import com.sun.glass.events.KeyEvent;
import javax.swing.JOptionPane;
/**
*
* @author Aditya
*/
public class tampilan extends javax.swing.JFrame {

/**
* Creates new form konversi
*/
public tampilan() {
initComponents();
}

/**
* This method is called from within the constructor to initialize the
form.
* WARNING: Do NOT modify this code. The content of this method
is always
* regenerated by the Form Editor.
*/
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">
private void initComponents() {

jLabel1 = new javax.swing.JLabel();


jLabel2 = new javax.swing.JLabel();
tfangka = new javax.swing.JTextField();
jLabel3 = new javax.swing.JLabel();
tfhasil = new javax.swing.JTextField();
jButton1 = new javax.swing.JButton();

setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CL
OSE);
setTitle("KONVERSI ANGKA KE HURUF");

jLabel1.setFont(new java.awt.Font("Tahoma", 1, 12)); // NOI18N


jLabel1.setText("KONVERSI ANGKA KE RUPIAH");

jLabel2.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N


jLabel2.setText("MASUKAN ANGKA");

tfangka.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tfangkaActionPerformed(evt);
}
});
tfangka.addKeyListener(new java.awt.event.KeyAdapter() {
public void keyReleased(java.awt.event.KeyEvent evt) {
tfangkaKeyReleased(evt);
}
public void keyTyped(java.awt.event.KeyEvent evt) {
tfangkaKeyTyped(evt);
}
});

jLabel3.setFont(new java.awt.Font("Tahoma", 1, 11)); // NOI18N


jLabel3.setText("TERBILANG");

tfhasil.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
tfhasilActionPerformed(evt);
}
});

jButton1.setFont(new java.awt.Font("Tahoma", 3, 11)); // NOI18N


jButton1.setText("KONVERSI");
jButton1.setCursor(new
java.awt.Cursor(java.awt.Cursor.HAND_CURSOR));
jButton1.addMouseListener(new java.awt.event.MouseAdapter() {
public void mouseClicked(java.awt.event.MouseEvent evt) {
jButton1MouseClicked(evt);
}
});
jButton1.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
jButton1ActionPerformed(evt);
}
});

javax.swing.GroupLayout layout = new


javax.swing.GroupLayout(getContentPane());
getContentPane().setLayout(layout);
layout.setHorizontalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING,
layout.createSequentialGroup()
.addContainerGap(116, Short.MAX_VALUE)
.addComponent(jLabel1)
.addGap(106, 106, 106))
.addGroup(layout.createSequentialGroup()
.addContainerGap()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(tfhasil)
.addGroup(layout.createSequentialGroup()

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(jLabel3)
.addGroup(layout.createSequentialGroup()
.addComponent(tfangka,
javax.swing.GroupLayout.PREFERRED_SIZE, 96,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(18, 18, 18)
.addComponent(jButton1))
.addComponent(jLabel2))
.addGap(0, 0, Short.MAX_VALUE)))
.addContainerGap())
);
layout.setVerticalGroup(

layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADI
NG)
.addGroup(layout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(jLabel1,
javax.swing.GroupLayout.PREFERRED_SIZE, 26,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addGap(11, 11, 11)
.addComponent(jLabel2)

.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELA
TED)

.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignm
ent.LEADING)
.addComponent(tfangka,
javax.swing.GroupLayout.PREFERRED_SIZE, 23,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jButton1))
.addGap(18, 18, 18)
.addComponent(jLabel3,
javax.swing.GroupLayout.PREFERRED_SIZE, 14,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRE
LATED)
.addComponent(tfhasil,
javax.swing.GroupLayout.PREFERRED_SIZE, 40,
javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(27, Short.MAX_VALUE))
);

pack();
}// </editor-fold>

private void tfangkaActionPerformed(java.awt.event.ActionEvent evt)


{
// TODO add your handling code here:
}

private void jButton1ActionPerformed(java.awt.event.ActionEvent


evt) {
String angka = tfangka.getText();
tfhasil.setText(new konversi(angka)+" rupiah".toString());
}

private void jButton1MouseClicked(java.awt.event.MouseEvent evt) {


// TODO add your handling code here:
}

private void tfangkaKeyReleased(java.awt.event.KeyEvent evt) {


}

private void tfangkaKeyTyped(java.awt.event.KeyEvent evt) {


char c=evt.getKeyChar();
if (!((Character.isDigit(c)||(c==KeyEvent.VK_BACKSPACE)||
(c==KeyEvent.VK_DELETE)))) {
getToolkit().beep();
JOptionPane.showMessageDialog(this, "Masukan Angka 0-9!");
evt.consume();
}

private void tfhasilActionPerformed(java.awt.event.ActionEvent evt) {


// TODO add your handling code here:
}

/**
* @param args the command line arguments
*/
public static void main(String args[]) {
/* Set the Nimbus look and feel */
//<editor-fold defaultstate="collapsed" desc=" Look and feel setting
code (optional) ">
/* If Nimbus (introduced in Java SE 6) is not available, stay with the
default look and feel.
* For details see
http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
*/
try {
for (javax.swing.UIManager.LookAndFeelInfo info :
javax.swing.UIManager.getInstalledLookAndFeels()) {
if ("Nimbus".equals(info.getName())) {

javax.swing.UIManager.setLookAndFeel(info.getClassName());
break;
}
}
} catch (ClassNotFoundException ex) {

java.util.logging.Logger.getLogger(tampilan.class.getName()).log(java.ut
il.logging.Level.SEVERE, null, ex);
} catch (InstantiationException ex) {

java.util.logging.Logger.getLogger(tampilan.class.getName()).log(java.ut
il.logging.Level.SEVERE, null, ex);
} catch (IllegalAccessException ex) {

java.util.logging.Logger.getLogger(tampilan.class.getName()).log(java.ut
il.logging.Level.SEVERE, null, ex);
} catch (javax.swing.UnsupportedLookAndFeelException ex) {

java.util.logging.Logger.getLogger(tampilan.class.getName()).log(java.ut
il.logging.Level.SEVERE, null, ex);
}
//</editor-fold>
//</editor-fold>

/* Create and display the form */


java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
new tampilan().setVisible(true);
}
});
}

// Variables declaration - do not modify


private javax.swing.JButton jButton1;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel2;
private javax.swing.JLabel jLabel3;
private javax.swing.JTextField tfangka;
private javax.swing.JTextField tfhasil;
// End of variables declaration
}
2. Class Konversi
/*
* To change this license header, choose License Headers in Project
Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
import java.util.HashMap;
import java.util.Map;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.regex.PatternSyntaxException;
/**
*
* @author Aditya
*/
public class konversi {
Map digits = new HashMap();
Map orders = new HashMap();
private String num = null;
private String result = null;
Class clazz = null;

public konversi() {
digits.put("0", "nol");
digits.put("1", "satu");
digits.put("2", "dua");
digits.put("3", "tiga");
digits.put("4", "empat");
digits.put("5", "lima");
digits.put("6", "enam");
digits.put("7", "tujuh");
digits.put("8", "delapan");
digits.put("9", "sembilan");
orders.put("0", "");
orders.put("1", "puluh");
orders.put("2", "ratus");
orders.put("3", "ribu");
orders.put("6", "juta");
orders.put("9", "miliar");
orders.put("12", "triliun");
orders.put("15", "kuadriliun");
}

public konversi(Object num) {


this();
this.num = convertNumToString(num);
}

private void init() {


boolean is_neg = false;
if (clazz.equals(Double.class) || clazz.equals(Float.class)) {
Double chk = Double.parseDouble(num);
is_neg = chk < 0;
} else {
is_neg = num.startsWith("-") ? true : false;
}
String ints = "";
try {
Pattern regex = Pattern.compile("^[+-]?(\\d+)");
Matcher regexMatcher = regex.matcher(num);
if (regexMatcher.find()) {
ints = regexMatcher.group(1);
}
} catch (PatternSyntaxException ex) {
}
int mult = 0;
String wint = "";
while (!ints.isEmpty()) {
try {
Pattern regex = Pattern.compile("(\\d{1,3})$");
Matcher regexMatcher = regex.matcher(ints);
while (regexMatcher.find()) {
// ambil satuan, puluhan, dan ratusan
int m = Integer.parseInt(regexMatcher.group());
int s = (m % 10);
int p = ((m % 100 - s) / 10);
int r = ((m - p * 10 - s) / 100);
// konversi ratusan
String g = "";
if (r == 0) {
g = "";
} else if (r == 1) {
g = "se" + orders.get("2");
} else {
g = digits.get("" + r + "") + " " + orders.get("2");
}

// konversi puluhan dan satuan


if (p == 0) {
if (s == 0) {
} else if (s == 1) {
g = (!g.isEmpty() ? (g + " " + digits.get("" + s +
"").toString()) : (mult == 0 ? digits.get("1").toString() : "se"));
} else {
g = (!g.isEmpty() ? g + " " : "") + digits.get("" + s +
"").toString();
}
} else if (p == 1) {
if (s == 0) {
g = (!g.isEmpty() ? g + " " : "") + "se" + orders.get("1");
} else if (s == 1) {
g = (!g.isEmpty() ? g + " " : "") + "sebelas";
} else {
g = (!g.isEmpty() ? g + " " : "") + digits.get("" + s + "")
+ " belas";
}
} else {
g = (!g.isEmpty() ? g + " " : "") + digits.get("" + p + "") + "
puluh" + (s > 0 ? " " + digits.get("" + s + "") : "");
}

// gabungkan dengan hasil sebelumnya


wint = (!g.isEmpty() ? (g + (g.equals("se") ? "" : " ") +
orders.get("" + mult + "")) : "") + (!wint.isEmpty() ? " " + wint : "");

// pangkas ribuan/jutaan/dsb yang sudah dikonversi


String resultString = "";
try {
Pattern tsRegex = Pattern.compile("\\d{1,3}$");
Matcher regexMatchers = tsRegex.matcher(ints);
try {
resultString = regexMatchers.replaceAll("");
ints = resultString;
} catch (IllegalArgumentException ex1) {
} catch (IndexOutOfBoundsException ex2) {
}
} catch (PatternSyntaxException ex3) {
}
mult += 3;
}
} catch (PatternSyntaxException ex) {
}
}
if (wint.isEmpty()) {
wint = digits.get("0").toString();
}
//// angka di kanan desimal
String frac = "";
try {
Pattern regexf = Pattern.compile("\\.(\\d+)");
Matcher regexMatcherf = regexf.matcher(num);
if (regexMatcherf.find()) {
frac = regexMatcherf.group();
}
} catch (PatternSyntaxException ex) {
}
String wfrac = "";
for (int i = 0; i < frac.length(); i++) {
String indexf = frac.substring(i, i + 1);
if (digits.containsKey(indexf)) {
wfrac += (!wfrac.isEmpty() ? " " : "") + digits.get(indexf);
}
}
result = ((is_neg ? "minus " : "") + wint + ((!wfrac.isEmpty()) ? "
koma " + wfrac : ""));
result = result.replaceAll("\\s{2,}", " ");
result = result.replaceAll("(null )|(\\s{1,}$)", "");
}
public String getNum() {
return num;
}

public void setNum(Object num) {


this.num = this.convertNumToString(num);
}
public String getResult() {
return result;
}

@Override
public String toString() {
init();
return getResult();
}

private String convertNumToString(Object value) {


if (null == clazz) {
clazz = value.getClass();
}
String reval = null;
if (Character.class.equals(clazz) || char.class.equals(clazz) ||
Double.class.equals(clazz) || Float.class.equals(clazz) ||
Integer.class.equals(clazz) || Long.class.equals(clazz) ||
Short.class.equals(clazz)) {
reval = value.toString();
} else {
reval = value.toString();
//throw new NumberFormatException("Your Input has failed!
Numeric or decimal only can be process");
}
return (reval);}}

ALUR PROGRAM

Proses program konversi angka ke rupiah dapat dijelaskan sebagai berikut. User
menginputkan sebuah angka (jika inputan bukan angka maka akan muncul sebuah
tampilan pesan), kemudian klik tombol konversi. Di dalam tombol konversi bertugas
untuk memanggil fungsi class konversi yang akan memproses angka yang telah
diinputkan. Didalam class konversi terdapat fungsi yang akan
menerjemahkan/mengkonversi angka menjadi huruf/terbilang. Kemudian class
konversi akan mengirimkan data yang telah diproses tersebut menuju field hasil.

LAPORAN MASING-MASING ANGGOTA

 Fadhilastain Putra Prayoga (702016005)

Dalam pembagian pembuatan program ini saya membuat pop up message.


kegunaan dari pop up message itu sendiri adalah untuk memberi peringatan bila yang
diinputkan adalah huruf atau opertor langsung memencet tombol proses maka ada
peringatan untuk memasuakan angka terlebih dahulu agar dapat diproses. Namun disini
juga saya membantu teman saya dalam pembuatan koding disini saya menggunnakan
code program :

private void tfangkaKeyTyped(java.awt.event.KeyEvent evt) {


char c=evt.getKeyChar();
if (!((Character.isDigit(c)||(c==KeyEvent.VK_BACKSPACE)||
(c==KeyEvent.VK_DELETE)))) {
getToolkit().beep();
JOptionPane.showMessageDialog(this, "Masukan Angka 0-9!");
evt.consume();
}

 Aditya Setyawan (702016023)


Ignatius Satriya B.P (702016019)

Disini kami berdua bekerja sama dalam pembuatan koding konvensi angka
kerupiah. Koding tersebut adalah sebagai berikut :
Keterangan :
Pada tombol konversi kita masukkan syntax code program dibawah ini:
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
String angka = tfangka.getText();
tfhasil.setText(new konversi(angka)+" rupiah".toString());
}
Kode tersebut kita gunakan untuk memanggil class konversi yang akan memproses /
mengkonversi angka menjadi terbilang huruf.
Disini juga kami mengerjakan koding yang ada dalam pembuatan konvensi ini
 Khalis Guntur Prakoso (702016015)
Didalam pembuatan ini saya berperan sebagai pembuatan design konversi
angka kehuruf dan saya akan menjelaskan apa saja yang saya gunakan dalam
pembuatannya.

 Pada warna merah saya menggunakan Lable


 Pada warna hitam saya menggunakan Lable
 Pada warna coklat saya menggunakan Text Field
 Pada warna ungu saya menggunakan Buttom
 Pada warna kuning saya menggunakan Lable
 Pada warna hijau saya menggunakan Text Field

 Friyanti Intan Ully Putri (702016007)


Mariana Isabela Mansopu (702016028)
Dalam pembuatan ini kami mendapatkan bagian pembuatan laporan dan
mengetik penjelasan dari setiap anggota kami. Namun kami tidak hanya membuat
laporan saja kami juga membantu teman-teman kami dalam memberi masukan dalam
pembuatan konvensi angka kerupiah.

Penjelasan
jadi dalam penbuatan konvensi angka kerupiah kami bekerja sama tidak hanya
pekerjaan yang telah kita bagi namun dari keseluruhan kami semua bekerja sama dalam
pembuatannya. Ada banyak yang kami semua dapat dari proses pembuatan aplikasi ini.

Potrebbero piacerti anche