Final Project Pemrograman Berbasis Objek
https://pastebin.com/fHZGBPDL
berikut adalah hasil dari kode diatas
Video Kami :
import javafx.application.Application;
import javafx.application.Platform;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.layout.VBox;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import java.util.Random;
public class Main extends Application
{
int luck = 0;
String[] fortunes = {"You're so lucky",
"You're bit lucky",
"You're lucky",
"Try Again later...",
"i'm Sorry, you're not lucky today, please try again tomorrow",
"Today is your day",
"Almost to get a full-of-luck! try again tomorrow",
"Things will get better..."};
String[] mode = {"Luck Meter: Lucky", "Luck Type: Un-Lucky"};
Text fortune = new Text();
Text lucktype = new Text("Luck Meter:");
Text luckmeter = new Text("Speed-o-Lucky = " + luck + "/100");
@Override
public void start(Stage stage) throws Exception
{
VBox virtualbox=new VBox();
virtualbox.setPadding(new Insets(20));
virtualbox.setSpacing(20);
virtualbox.setAlignment(Pos.CENTER);
Text title = new Text("Lucky Gacha patch 0.00.01");
title.setFont(Font.font("TImes New Roman",36));
fortune.setFont(Font.font("Times New Roman",15));
luckmeter.setFont(Font.font("Times New Roman",15));
lucktype.setFont(Font.font("Times New Roman",15));
virtualbox.getChildren().add(title);
virtualbox.getChildren().add(luckmeter);
virtualbox.getChildren().add(lucktype);
virtualbox.getChildren().add(fortune);
Button button = new Button("Test your luck");
virtualbox.getChildren().add(button);
button.setOnAction(this::buttonClick);
Scene scene=new Scene(virtualbox,500,250);
stage.setTitle("OOP Assignment");
stage.setScene(scene);
stage.show();
}
private void buttonClick(ActionEvent event)
{
Random rand = new Random();
luck = rand.nextInt(101);
String type = mode[rand.nextInt(mode.length)];
luckmeter.setText("Speed-o-Lucky = " + luck + "/100");
lucktype.setText(type);
if(type == "Luck Meter: Lucky"){
if(luck<25){
fortune.setText(fortunes[3]);
}
else if(luck >= 25 && luck < 60){
fortune.setText(fortunes[2]);
}
else if(luck >= 60 && luck < 90){
fortune.setText(fortunes[1]);
}
else if(luck >= 90){
fortune.setText(fortunes[0]);
}
}
else if(type == "Luck Meter: Un-Lucky"){
if(luck<25){
fortune.setText(fortunes[7]);
}
else if(luck >= 25 && luck < 60){
fortune.setText(fortunes[6]);
}
else if(luck >= 60 && luck < 90){
fortune.setText(fortunes[5]);
}
else if(luck >= 90){
fortune.setText(fortunes[4]);
}
}
}
public static void main(String[] args) {
Application.launch(args);
}
}
/**
*
* @author RyanR
*/
//Implementasi Library
import java.util.Scanner;
public class Library
{
public static void main(String[] args)
{
int alas, tinggi;
double hasil,garis,a;
int alas2;
String karakter;
hasil = 0;
Scanner sc = new Scanner(System.in);
System.out.println
("Program Penghitung Luas dan Keliling Segitiga");
System.out.print("Masukan Panjang Alas Segitiga: ");
alas = sc.nextInt();
System.out.print("Masukan Panjang Tinggi segitiga: ");
tinggi = sc.nextInt();
System.out.println("Tekan (L) untuk melihat Luas Segitiga");
System.out.print("Tekan (K) untuk melihat keliling Segitiga: ");
karakter = sc.next();
switch(karakter)
{
case "L":
case "l":
hasil = (alas * tinggi) / 2;
break;
case "K":
case "k":
alas2 = (alas / 2);
a = (alas2 * alas2) + (tinggi * tinggi);
garis = Math.sqrt(a);
hasil = alas + (garis * 2);
break;
default:
System.out.print("Anda salah memasukan inputan");
break;
}
sc.close();
System.out.print("Hasilnya adalah: " + hasil);
System.out.println();
}
}
/**
* Simple Point of Sales
*
* @Ryan Rasyid
* @version 28/11/2019
*/
import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.*;
import javafx.scene.layout.*;
import javafx.event.ActionEvent;
import javafx.event.EventHandler;
import javafx.scene.control.Label;
import javafx.scene.text.Font;
import javafx.scene.text.Text;
import javafx.stage.Stage;
import javafx.scene.Group;
import javafx.geometry.Insets;
import javafx.geometry.Pos;
import java.lang.Integer;
import java.lang.String;
public class Menu extends Application {
String kodeKasir;
String kodeBarang;
String namaBarang;
int hargaBarang;
int jumlahBarang;
int totalHarga;
public void start(Stage primaryStart) {
primaryStart.setTitle("Input Barang");
Text tKasir = new Text("Kasir: ");
Text tKode = new Text("Kode Barang: ");
Text tNama = new Text("Nama Barang: ");
Text tHarga = new Text("Harga Satuan: ");
Text tJumlah = new Text("Jumlah Barang: ");
TextField kasir = new TextField();
TextField kode = new TextField();
TextField nama = new TextField();
TextField harga = new TextField();
TextField jumlah = new TextField();
Button confirm = new Button("Konfirmasi");
GridPane grid = new GridPane();
grid.setVgap(10);
grid.setHgap(10);
grid.setPadding(new Insets(10,10,10,10));
grid.add(tKasir,0,0);
grid.add(kasir,1,0);
grid.add(tKode,0,1);
grid.add(kode,1,1);
grid.add(tNama,0,2);
grid.add(nama,1,2);
grid.add(tHarga,0,3);
grid.add(harga,1,3);
grid.add(tJumlah,0,4);
grid.add(jumlah,1,4);
grid.add(confirm,1,5);
grid.setAlignment(Pos.CENTER);
Scene menu = new Scene(grid);
primaryStart.setTitle("simple POS");
primaryStart.setScene(menu);
primaryStart.show();
EventHandler<ActionEvent> eventconfirm = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
kodeKasir = kasir.getText();
kodeBarang = kode.getText();
namaBarang = nama.getText();
hargaBarang = Integer.parseInt(harga.getText());
jumlahBarang = Integer.parseInt(jumlah.getText());
totalHarga = hargaBarang * jumlahBarang;
confirm();
primaryStart.close();
}
};
confirm.setOnAction(eventconfirm);
}
public static void main(String[] args){
launch(args);
}
public void confirm(){
Stage next = new Stage();
next.setTitle("Konfirmasi Pembelian");
Button bConfirm = new Button("Ya");
Button bDeny = new Button("Tidak");
GridPane grid = new GridPane();
grid.setVgap(10);
grid.setHgap(10);
grid.setPadding(new Insets(10,10,10,10));
grid.add(new Text("Kode Barang\t: " + kodeBarang),0,0);
grid.add(new Text("Nama Barang\t: " + namaBarang),0,1);
grid.add(new Text("Harga Satuan\t: " + hargaBarang),0,2);
grid.add(new Text("Jumlah Barang\t: " + jumlahBarang),0,3);
grid.add(new Text("Total Harga\t: " + totalHarga),0,4);
grid.add(new Text("Apakah Anda yakin ingin membeli barang?"),1,5);
grid.add(bConfirm,2,5);
grid.add(bDeny,3,5);
grid.setAlignment(Pos.CENTER);
EventHandler<ActionEvent> yes = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
confirmBuy();
next.close();
}
};
EventHandler<ActionEvent> no = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
denyBuy();
next.close();
}
};
bConfirm.setOnAction(yes);
bDeny.setOnAction(no);
Scene scene = new Scene(grid);
next.setScene(scene);
next.show();
}
public void confirmBuy(){
Stage stageNext = new Stage();
stageNext.setTitle("Nota Pembelian");
Button reset1 = new Button("Ya");
Button reset0 = new Button("Tidak");
GridPane grid = new GridPane();
grid.setVgap(10);
grid.setHgap(10);
grid.setPadding(new Insets(10,10,10,10));
grid.add(new Text("Payment Successfull"),0,0);
grid.add(new Text("Kode Barang\t: " + kodeBarang),0,1);
grid.add(new Text("Nama Barang\t: " + namaBarang),0,2);
grid.add(new Text("Harga Satuan\t: " + hargaBarang),0,3);
grid.add(new Text("Jumlah Barang\t: " + jumlahBarang),0,4);
grid.add(new Text("Total Harga\t: " + totalHarga),0,5);
grid.add(new Text("====== Thank you ====="),0,6);
grid.add(new Text("Apakah anda ingin melakukan pembelian lain?"),0,7);
grid.add(reset1,1,7);
grid.add(reset0,2,7);
grid.setAlignment(Pos.CENTER);
EventHandler<ActionEvent> yes = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
resetBuy1();
stageNext.close();
}
};
EventHandler<ActionEvent> no = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
stageNext.close();
}
};
reset1.setOnAction(yes);
reset0.setOnAction(no);
Scene scene = new Scene(grid);
stageNext.setScene(scene);
stageNext.show();
}
public void denyBuy(){
Stage stageFinal = new Stage();
stageFinal.setTitle("Pembelian dibatalkan");
Button reset1 = new Button("Ya");
Button reset0 = new Button("Tidak");
GridPane grid = new GridPane();
grid.setVgap(10);
grid.setHgap(10);
grid.setPadding(new Insets(10,10,10,10));
grid.add(new Text("Pembelian Dibatalkan"),0,0);
grid.add(new Text("Terima Kasih telah menggunakan layanan Simple POS"),0,1);
grid.add(new Text("Apakah anda ingin melakukan pembelian lain?"),0,2);
grid.add(reset1,1,2);
grid.add(reset0,2,2);
grid.setAlignment(Pos.CENTER);
EventHandler<ActionEvent> yes = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
resetBuy1();
stageFinal.close();
}
};
EventHandler<ActionEvent> no = new EventHandler<ActionEvent>()
{
public void handle(ActionEvent e){
stageFinal.close();
}
};
reset1.setOnAction(yes);
reset0.setOnAction(no);
Scene sceneFinal = new Scene(grid);
stageFinal.setScene(sceneFinal);
stageFinal.show();
}
public void resetBuy1(){
start(new Stage());
}
}
Pemrograman Terstruktur
|
Memecah program dalam fungsi dan data
|
Memiliki ciri Sequence (berurutan),
Selection (pemilihan) dan Repetition (perulangan)
|
Struktur program rumit karena berupa
urutan proses dan fungsi-fungsi
|
Re-use kode program kurang
|
Efektif digunakan untuk menyelesaikan
masalah kecil dan tidak cocok untuk menyelesaikkan masalah yang rumit, karena
nantinya akan kesulitan menemukan solusi permasalahan ketika terjadi error
|
Mudah diawal, namun kompleks diproses
selanjutnya
|
Eksekusi lebih lambat karena setiap
perintah dikerjakan berurutan
|
Pemrograman Berorientasi Objek
|
Menggabungkan fungsi dan
data dalam kelas – kelas atau objek - objek
|
Memiliki ciri Encapsulation
(pengemasan), Inheritance (penurunan sifat) dan Polymorphism (perbedaan
bentuk dan perilaku)
|
Struktur program ringkas, cukup dengan
membuat Objek dan class lalu bekerja berdasarkan object dan class tersebut.
|
Kode program sangat
re-usable. object dan class dapat digunakan berkali-kali, sehingga dapat
menghemat space memori.
|
Efektif digunakan untuk menyelesaikan
masalah besar, karena OOP terdiri dari class-class yang memisahkan setiap
kode program menjadi kelompok - kelompok kecil, sesuai dengan fungsinya
|
Sulit diawal (karena harus membuat
class) namun selanjutnya akan terasa mudah dan cepat
|
Eksekusi lebih cepat karena dieksekusi
bersamaan, program hanya mengatur Objek, properties dan method-nya saja
|