Yowatech.id – Contoh Program Java Pemesanan Tiket Kereta Api. Pemesanan tiket kereta api adalah salah satu aktivitas yang sering dilakukan oleh masyarakat Indonesia.
Dalam era digital saat ini, pemesanan tiket kereta api dapat dilakukan dengan mudah melalui aplikasi atau website.
Salah satu bahasa pemrograman yang dapat digunakan untuk membuat program pemesanan tiket kereta api adalah Java.
Baca Juga: 8+ Contoh Program Java Penjualan Motor
Program Java pemesanan tiket kereta api dapat dibuat dengan berbagai fitur seperti integrasi database, integrasi API pihak ketiga, pilihan tempat duduk dan makanan, serta sistem notifikasi.
Dalam program tersebut, pengguna dapat memilih jadwal keberangkatan, stasiun keberangkatan dan tujuan, serta memilih tempat duduk dan makanan di dalam kereta.
Dengan program ini, pengguna dapat memudahkan proses pemesanan tiket kereta api dan menghemat waktu. Berikut adalah 7+ contoh program Java pemesanan tiket kereta api:
Baca Juga: 7+ Contoh Program Array Multidimensi Java
#1 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api sederhana dengan menggunakan array sebagai struktur data untuk menyimpan informasi tiket dan pengguna.
Code:
import java.util.Scanner;
public class TiketKereta {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
// Inisialisasi data tiket
String[] namaKereta = {"Argo Parahyangan", "Argo Bromo Anggrek", "Gajayana", "Logawa"};
String[] kelas = {"Eksekutif", "Bisnis", "Ekonomi"};
int[] harga = {350000, 250000, 150000};
int[] sisaTiket = {10, 15, 20, 5};
// Meminta input dari pengguna
System.out.print("Masukkan nama kereta: ");
String kereta = input.nextLine();
System.out.print("Masukkan kelas tiket (Eksekutif/Bisnis/Ekonomi): ");
String jenisTiket = input.nextLine();
System.out.print("Masukkan jumlah tiket yang dipesan: ");
int jumlahTiket = input.nextInt();
// Mencari indeks dari data tiket yang sesuai dengan input pengguna
int indeksKereta = -1;
for (int i = 0; i < namaKereta.length; i++) {
if (namaKereta[i].equalsIgnoreCase(kereta)) {
indeksKereta = i;
break;
}
}
int indeksKelas = -1;
for (int i = 0; i < kelas.length; i++) {
if (kelas[i].equalsIgnoreCase(jenisTiket)) {
indeksKelas = i;
break;
}
}
// Menampilkan harga tiket dan jumlah total yang harus dibayar
if (indeksKereta != -1 && indeksKelas != -1) {
int totalHarga = harga[indeksKelas] * jumlahTiket;
if (sisaTiket[indeksKereta] >= jumlahTiket) {
System.out.println("Harga tiket: Rp" + harga[indeksKelas]);
System.out.println("Jumlah tiket: " + jumlahTiket);
System.out.println("Total harga: Rp" + totalHarga);
} else {
System.out.println("Maaf, tiket yang Anda pesan tidak tersedia");
}
} else {
System.out.println("Maaf, data yang Anda masukkan tidak valid");
}
input.close();
}
}
#2 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api dengan fitur pencarian jadwal kereta, pengecekan ketersediaan tiket, dan pembayaran online.
Untuk membuat program pemesanan tiket kereta api dengan fitur pencarian jadwal kereta, pengecekan ketersediaan tiket, dan pembayaran online, Anda dapat mengikuti langkah-langkah berikut:
- Rancang database untuk menyimpan informasi jadwal kereta, informasi stasiun, informasi tiket, informasi pemesanan, dan informasi pembayaran.
- Buat antarmuka pengguna untuk memungkinkan pengguna mencari jadwal kereta, mengecek ketersediaan tiket, memasukkan rincian pemesanan, dan melakukan pembayaran online.
- Implementasikan fitur pencarian jadwal kereta. Ini akan memungkinkan pengguna untuk memasukkan stasiun asal dan tujuan, tanggal dan waktu keberangkatan, dan memperoleh daftar jadwal kereta yang tersedia. Anda dapat menggunakan API kereta api yang tersedia atau membangun basis data Anda sendiri.
- Implementasikan fitur pengecekan ketersediaan tiket. Setelah pengguna memilih jadwal kereta yang diinginkan, program harus dapat mengecek ketersediaan tiket pada kereta tersebut. Ini akan memungkinkan pengguna untuk memilih jumlah kursi yang ingin mereka pesan.
- Implementasikan fitur pembayaran online. Anda dapat menggunakan gateway pembayaran online yang tersedia atau membangun basis data Anda sendiri untuk mengelola transaksi pembayaran. Pastikan untuk mengamankan transaksi pembayaran dengan penggunaan teknologi enkripsi yang kuat.
- Implementasikan fitur pemesanan tiket. Setelah pengguna memilih jadwal dan melakukan pembayaran, program harus membuat pemesanan tiket dan mengirim email konfirmasi kepada pengguna.
- Uji program Anda secara menyeluruh dan pastikan semua fitur berjalan dengan baik. Pastikan program dapat mengatasi skenario umum, seperti tiket yang telah habis, masalah pembayaran, dan situasi darurat.
- Setelah program diuji dan siap untuk digunakan, Anda dapat mempublikasikannya secara online dan mempromosikan kepada target pasar Anda. Pastikan untuk memberikan layanan pelanggan yang baik untuk menarik pengguna dan mempertahankan basis pelanggan Anda.
Code:
import java.util.ArrayList;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Scanner;
public class ProgramPemesananTiketKeretaApi {
// Database sederhana untuk menyimpan informasi jadwal kereta dan ketersediaan tiket
private static Map<String, Map<String, Object>> databaseJadwal = new HashMap<>();
public static void main(String[] args) {
// Isi database jadwal
Map<String, Object> jadwal1 = new HashMap<>();
jadwal1.put("stasiun_asal", "Jakarta");
jadwal1.put("stasiun_tujuan", "Surabaya");
jadwal1.put("jam_berangkat", new Date(2023, 4, 6, 8, 0));
jadwal1.put("jam_tiba", new Date(2023, 4, 6, 16, 0));
jadwal1.put("jumlah_kursi", 50);
jadwal1.put("harga", 200000);
databaseJadwal.put("KA01", jadwal1);
Map<String, Object> jadwal2 = new HashMap<>();
jadwal2.put("stasiun_asal", "Surabaya");
jadwal2.put("stasiun_tujuan", "Jakarta");
jadwal2.put("jam_berangkat", new Date(2023, 4, 7, 8, 0));
jadwal2.put("jam_tiba", new Date(2023, 4, 7, 16, 0));
jadwal2.put("jumlah_kursi", 40);
jadwal2.put("harga", 250000);
databaseJadwal.put("KA02", jadwal2);
Map<String, Object> jadwal3 = new HashMap<>();
jadwal3.put("stasiun_asal", "Jakarta");
jadwal3.put("stasiun_tujuan", "Bandung");
jadwal3.put("jam_berangkat", new Date(2023, 4, 8, 8, 0));
jadwal3.put("jam_tiba", new Date(2023, 4, 8, 12, 0));
jadwal3.put("jumlah_kursi", 30);
jadwal3.put("harga", 150000);
databaseJadwal.put("KA03", jadwal3);
Map<String, Object> jadwal4 = new HashMap<>();
jadwal4.put("stasiun_asal", "Bandung");
jadwal4.put("stasiun_tujuan", "Jakarta");
jadwal4.put("jam_berangkat", new Date(2023, 4, 9, 8, 0));
jadwal4.put("jam_tiba", new Date(2023, 4, 9, 12, 0));
jadwal4.put("jumlah_kursi", 20);
jadwal4.put("harga", 180000);
databaseJadwal.put("KA04", jadwal4);
// Antarmuka pengguna
Scanner scanner = new Scanner(System.in);
System.out.println("Selamat datang di Program Pemesanan Tiket Kereta Api");
while (true) {
System.out.println("\nMenu:");
System.out.println("1. Cari jadwal kereta");
System.out.println("2. Pesan tiket");
System.out.println("3. Keluar");
System.out.print("Pilih menu (1/2/3): ");
int menu = scanner.nextInt();
if (menu == 1) {
// Pencarian jadwal kereta
System.out.print("Masukkan stasiun asal: ");
String stasiunAsal = scanner.next();
System.out.print("Masukkan stasiun tujuan: ");
String stasiunTujuan = scanner.next();
System.out.print("Masukkan tanggal berangkat (dd/MM/yyyy): ");
String tanggalBerangkatStr = scanner.next();
Date tanggalBerangkat = new Date(tanggalBerangkatStr);
List<Map<String, Object>> jadwalTersedia = cariJadwal(stasiunAsal, stasiunTujuan, tanggalBerangkat);
if (jadwalTersedia.size() == 0) {
System.out.println("Maaf, tidak ditemukan jadwal kereta untuk rute yang diminta.");
} else {
System.out.println("Berikut adalah jadwal kereta yang tersedia:");
for (Map<String, Object> jadwal : jadwalTersedia) {
System.out.println("Kode jadwal: " + jadwal.get("kode_jadwal"));
System.out.println("Stasiun asal: " + jadwal.get("stasiun_asal"));
System.out.println("Stasiun tujuan: " + jadwal.get("stasiun_tujuan"));
System.out.println("Jam berangkat: " + jadwal.get("jam_berangkat"));
System.out.println("Jam tiba: " + jadwal.get("jam_tiba"));
System.out.println("Harga tiket: Rp" + jadwal.get("harga"));
System.out.println("Ketersediaan kursi: " + jadwal.get("jumlah_kursi"));
}
}
} else if (menu == 2) {
// Pemesanan tiket
System.out.print("Masukkan kode jadwal: ");
String kodeJadwal = scanner.next();
Map<String, Object> jadwal = databaseJadwal.get(kodeJadwal);
if (jadwal == null) {
System.out.println("Maaf, kode jadwal tidak ditemukan.");
} else {
System.out.println("Stasiun asal: " + jadwal.get("stasiun_asal"));
System.out.println("Stasiun tujuan: " + jadwal.get("stasiun_tujuan"));
System.out.println("Jam berangkat: " + jadwal.get("jam_berangkat"));
System.out.println("Jam tiba: " + jadwal.get("jam_tiba"));
System.out.println("Harga tiket: Rp" + jadwal.get("harga"));
System.out.println("Ketersediaan kursi: " + jadwal.get("jumlah_kursi"));
System.out.print("Masukkan jumlah tiket yang akan dipesan: ");
int jumlahTiket = scanner.nextInt();
int sisaKursi = (int) jadwal.get("jumlah_kursi") - jumlahTiket;
if (sisaKursi < 0) {
System.out.println("Maaf, kursi yang tersedia tidak mencukupi.");
} else {
jadwal.put("jumlah_kursi", sisaKursi);
databaseJadwal.put(kodeJadwal, jadwal);
int totalHarga = jumlahTiket * (int) jadwal.get("harga");
System.out.println("Total harga tiket: Rp" + totalHarga);
System.out.println("Pembayaran dapat dilakukan melalui transfer ke rekening kami:");
System.out.println("Bank: Mandiri");
System.out.println("Nomor rekening: 123-456-7890");
System.out.println("Atas nama: PT Kereta Api Indonesia");
System.out.println("Terima kasih telah menggunakan Program Pemesanan Tiket Kereta Api.");
}
}
} else if (menu == 3) {
// Keluar dari program
break;
} else {
System.out.println("Maaf, pilihan menu tidak valid.");
}
}
}
// Pencarian jadwal kereta berdasarkan stasiun asal, stasiun tujuan, dan tanggal berangkat
private static List<Map<String, Object>> cariJadwal(String stasiunAsal, String stasiunTujuan, Date tanggalBerangkat) {
List<Map<String, Object>> hasil = new ArrayList<>();
for (String kodeJadwal : databaseJadwal.keySet()) {
Map<String, Object> jadwal = databaseJadwal.get(kodeJadwal);
if (jadwal.get("stasiun_asal").equals(stasiunAsal)
&& jadwal.get("stasiun_tujuan").equals(stasiunTujuan)
&& jadwal.get("jam_berangkat").equals(tanggalBerangkat)) {
hasil.add(jadwal);
}
}
return hasil;
}
}
Output Kode diatas:
#3 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api dengan integrasi database untuk menyimpan informasi tiket, pengguna, dan jadwal kereta.
Berikut adalah contoh program pemesanan tiket kereta api dengan integrasi database menggunakan Java dan MySQL:
Code:
import java.sql.*;
import java.util.Scanner;
public class Main {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/train_booking";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
Scanner input = new Scanner(System.in);
try {
Class.forName(JDBC_DRIVER);
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("Enter your name: ");
String name = input.nextLine();
System.out.println("Enter your email: ");
String email = input.nextLine();
System.out.println("Enter train name: ");
String trainName = input.nextLine();
System.out.println("Enter departure date and time (yyyy-mm-dd hh:mm:ss): ");
String departureTime = input.nextLine();
stmt = conn.createStatement();
String sql = "INSERT INTO bookings (name, email, train_name, departure_time) " +
"VALUES ('" + name + "', '" + email + "', '" + trainName + "', '" + departureTime + "')";
stmt.executeUpdate(sql);
System.out.println("Booking successful!");
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
Penjelasan:
- Pertama, kita mendefinisikan beberapa konstanta seperti
JDBC_DRIVER
,DB_URL
,USER
, danPASS
yang digunakan untuk mengakses database MySQL. - Kemudian, kita membuat koneksi ke database menggunakan
DriverManager.getConnection()
dan menyimpannya dalam variabelconn
. - Selanjutnya, kita meminta input dari pengguna untuk nama, email, nama kereta, dan waktu keberangkatan menggunakan
Scanner
. - Kita kemudian membuat objek
Statement
dan mengeksekusi queryINSERT
untuk menyimpan informasi pemesanan ke database menggunakan metodeexecuteUpdate()
. - Jika pemesanan berhasil disimpan, kita mencetak pesan sukses ke layar.
- Jika terjadi kesalahan, kita mencetak pesan kesalahan dan menutup koneksi ke database.
- Akhirnya, kita menutup objek
Statement
danConnection
menggunakan metodeclose()
dalam blokfinally
.
Selanjutnya, kita dapat menambahkan fitur untuk melihat informasi pemesanan yang sudah dilakukan dan informasi jadwal kereta menggunakan SELECT query. Berikut adalah contoh program lengkapnya:
import java.sql.*;
import java.util.Scanner;
public class Main {
static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost/train_booking";
static final String USER = "username";
static final String PASS = "password";
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
Scanner input = new Scanner(System.in);
try {
Class.forName(JDBC_DRIVER);
System.out.println("Connecting to database...");
conn = DriverManager.getConnection(DB_URL, USER, PASS);
System.out.println("1. Book a train ticket");
System.out.println("2. View all bookings");
System.out.println("3. View train schedule");
System.out.println("4. Search bookings by date");
System.out.println("Enter your choice: ");
int choice = input.nextInt();
if (choice == 1) {
input.nextLine(); // consume the newline character
System.out.println("Enter your name: ");
String name = input.nextLine();
System.out.println("Enter your email: ");
String email = input.nextLine();
System.out.println("Enter train name: ");
String trainName = input.nextLine();
System.out.println("Enter departure date and time (yyyy-mm-dd hh:mm:ss): ");
String departureTime = input.nextLine();
stmt = conn.createStatement();
String sql = "INSERT INTO bookings (name, email, train_name, departure_time) " +
"VALUES ('" + name + "', '" + email + "', '" + trainName + "', '" + departureTime + "')";
stmt.executeUpdate(sql);
System.out.println("Booking successful!");
} else if (choice == 2) {
stmt = conn.createStatement();
String sql = "SELECT * FROM bookings";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
String trainName = rs.getString("train_name");
Timestamp departureTime = rs.getTimestamp("departure_time");
System.out.println("ID: " + id);
System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTime.toString());
System.out.println();
}
} else if (choice == 3) {
stmt = conn.createStatement();
String sql = "SELECT * FROM train_schedule";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
String trainName = rs.getString("train_name");
String origin = rs.getString("origin");
String destination = rs.getString("destination");
Timestamp departureTime = rs.getTimestamp("departure_time");
Timestamp arrivalTime = rs.getTimestamp("arrival_time");
System.out.println("Train Name: " + trainName);
System.out.println("Origin: " + origin);
System.out.println("Destination: " + destination);
System.out.println("Departure Time: " + departureTime.toString());
System.out.println("Arrival Time: " + arrivalTime.toString());
System.out.println();
}
} else if (choice == 4) {
input.nextLine(); // consume the newline character
System.out.println("Enter date to search (yyyy-mm-dd): ");
String searchDate = input.nextLine();
stmt = conn.createStatement();
String sql = "SELECT * FROM bookings WHERE DATE(departure_time) = '" + searchDate + "'";
ResultSet rs = stmt.executeQuery(sql);
while (rs.next()) {
int id = rs.getInt("id");
String name = rs.getString("name");
String email = rs.getString("email");
String trainName = rs.getString("train_name");
Timestamp departureTime = rs.getTimestamp("departure_time");
System.out.println("ID: " + id);
System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTime.toString());
System.out.println();
}
} else {
System.out.println("Invalid choice!");
}
} catch (SQLException se) {
se.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (stmt != null)
stmt.close();
} catch (SQLException se2) {
}
try {
if (conn != null)
conn.close();
} catch (SQLException se) {
se.printStackTrace();
}
}
}
}
#4 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api dengan integrasi API pihak ketiga untuk menampilkan jadwal kereta dan informasi tiket yang akurat.
Code:
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONObject;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Welcome to Train Booking System");
// Get station code
System.out.println("Enter your origin station code:");
String originCode = input.nextLine();
System.out.println("Enter your destination station code:");
String destinationCode = input.nextLine();
// Get date
System.out.println("Enter date of travel (yyyy-mm-dd):");
String travelDate = input.nextLine();
// Get train data from API
String apiResponse = getTrainData(originCode, destinationCode, travelDate);
JSONArray trains = new JSONArray(apiResponse);
// Print train schedule
System.out.println("Train schedule:");
for (int i = 0; i < trains.length(); i++) {
JSONObject train = trains.getJSONObject(i);
String trainName = train.getString("name");
String departureTime = train.getString("departure_time");
String arrivalTime = train.getString("arrival_time");
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTime);
System.out.println("Arrival Time: " + arrivalTime);
System.out.println();
}
// Get user details
System.out.println("Enter your name:");
String name = input.nextLine();
System.out.println("Enter your email:");
String email = input.nextLine();
// Get ticket details
System.out.println("Enter train name:");
String trainName = input.nextLine();
System.out.println("Enter departure time (hh:mm):");
String departureTime = input.nextLine();
System.out.println("Enter arrival time (hh:mm):");
String arrivalTime = input.nextLine();
System.out.println("Enter number of seats:");
int numSeats = input.nextInt();
// Calculate price
double pricePerSeat = 50.0;
double totalPrice = pricePerSeat * numSeats;
// Print ticket details
System.out.println("Ticket details:");
System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTime);
System.out.println("Arrival Time: " + arrivalTime);
System.out.println("Number of Seats: " + numSeats);
System.out.println("Price per Seat: " + pricePerSeat);
System.out.println("Total Price: " + totalPrice);
}
public static String getTrainData(String originCode, String destinationCode, String travelDate) {
try {
String url = "https://api.example.com/train?origin=" + originCode + "&destination=" + destinationCode +
"&travel_date=" + travelDate;
URL obj = new URL(url);
HttpURLConnection con = (HttpURLConnection) obj.openConnection();
con.setRequestMethod("GET");
BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream()));
String inputLine;
StringBuffer response = new StringBuffer();
while ((inputLine = in.readLine()) != null) {
response.append(inputLine);
}
in.close();
return response.toString();
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
}
Penjelasan program di atas:
- Pertama-tama, kita meminta pengguna memasukkan kode stasiun asal, kode stasiun tujuan, dan tanggal perjalanan menggunakan
Scanner
. - Kemudian, kita mengambil data jadwal kereta dari API pihak ketiga dengan memanggil fungsi
getTrainData()
. Fungsi ini mengambil tiga parameter yaitu kode stasiun asal, kode stasiun tujuan, dan tanggal perjalanan. Fungsi ini mengembalikan data JSON berupa daftar jadwal kereta yang sesuai dengan kriteria pencarian. - Setelah itu, kita mencetak daftar jadwal kereta ke layar menggunakan
JSONArray
danJSONObject
. - Selanjutnya, kita meminta pengguna memasukkan rincian pemesanan seperti nama, email, jumlah kursi, dan informasi tiket seperti nama kereta, waktu keberangkatan, waktu kedatangan, dan harga.
- Terakhir, kita mencetak rincian tiket ke layar.
Catatan:
- Anda perlu mengubah URL API yang digunakan sesuai dengan API yang ingin digunakan dalam program ini.
#5 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api dengan fitur pilihan tempat duduk dan makanan di dalam kereta.
Code:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Welcome to Train Booking System");
// Get train details
System.out.println("Enter train name:");
String trainName = input.nextLine();
System.out.println("Enter departure time (hh:mm):");
String departureTime = input.nextLine();
System.out.println("Enter arrival time (hh:mm):");
String arrivalTime = input.nextLine();
// Get seat details
System.out.println("Select seat type:");
System.out.println("1. Economy");
System.out.println("2. Business");
int seatChoice = input.nextInt();
String seatType;
double seatPrice;
if (seatChoice == 1) {
seatType = "Economy";
seatPrice = 20.0;
} else if (seatChoice == 2) {
seatType = "Business";
seatPrice = 50.0;
} else {
System.out.println("Invalid choice!");
return;
}
// Get food details
System.out.println("Select food package:");
System.out.println("1. No food");
System.out.println("2. Snack package");
System.out.println("3. Full meal package");
int foodChoice = input.nextInt();
String foodType;
double foodPrice;
if (foodChoice == 1) {
foodType = "No food";
foodPrice = 0.0;
} else if (foodChoice == 2) {
foodType = "Snack package";
foodPrice = 10.0;
} else if (foodChoice == 3) {
foodType = "Full meal package";
foodPrice = 25.0;
} else {
System.out.println("Invalid choice!");
return;
}
// Get user details
input.nextLine(); // consume the newline character
System.out.println("Enter your name:");
String name = input.nextLine();
System.out.println("Enter your email:");
String email = input.nextLine();
// Calculate price
double totalPrice = seatPrice + foodPrice;
// Print ticket details
System.out.println("Ticket details:");
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTime);
System.out.println("Arrival Time: " + arrivalTime);
System.out.println("Seat Type: " + seatType);
System.out.println("Food Package: " + foodType);
System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("Price: " + totalPrice);
}
}
Output Code diatas:
Penjelasan program di atas:
- Pertama-tama, kita meminta pengguna memasukkan rincian kereta seperti nama kereta, waktu keberangkatan, dan waktu kedatangan menggunakan
Scanner
. - Selanjutnya, kita meminta pengguna memilih jenis tempat duduk dari dua pilihan yaitu ekonomi atau bisnis menggunakan
Scanner
. Terdapat pula harga yang terkait dengan masing-masing pilihan. - Setelah itu, kita meminta pengguna memilih paket makanan dari tiga pilihan yaitu tanpa makanan, paket snack, atau paket makan lengkap menggunakan
Scanner
. Terakhir, terdapat harga yang terkait dengan masing-masing pilihan. - Kemudian, kita meminta pengguna memasukkan rincian pemesanan seperti nama dan email menggunakan
Scanner
. - Terakhir, kita menghitung harga total tiket dengan menambahkan harga tempat duduk dan harga makanan. Setelah itu, kita mencetak rincian tiket ke layar.
Catatan:
Program ini hanya memberikan contoh sederhana dari fitur pemesanan tiket kereta api dengan pilihan tempat duduk dan makanan di dalam kereta.
Untuk program yang lebih lengkap dan kompleks, Anda dapat menambahkan lebih banyak fitur seperti pemilihan jadwal kereta, pengaturan jumlah kursi, pembayaran online, dll.
#6 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api dengan integrasi sistem notifikasi untuk mengingatkan pengguna tentang waktu keberangkatan dan informasi penting lainnya.
Code:
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.Scanner;
import java.util.Timer;
import java.util.TimerTask;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Welcome to Train Booking System");
// Get train details
System.out.println("Enter train name:");
String trainName = input.nextLine();
System.out.println("Enter departure time (hh:mm):");
String departureTimeStr = input.nextLine();
// Parse departure time
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
LocalDateTime departureTime = LocalDateTime.parse(departureTimeStr, formatter);
// Schedule reminder
Timer timer = new Timer();
timer.schedule(new ReminderTask(trainName, departureTime), departureTime.minusMinutes(30).toLocalTime());
// Get user details
System.out.println("Enter your name:");
String name = input.nextLine();
System.out.println("Enter your email:");
String email = input.nextLine();
// Print ticket details
System.out.println("Ticket details:");
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTimeStr);
System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("You will receive a reminder 30 minutes before departure time.");
}
static class ReminderTask extends TimerTask {
private String trainName;
private LocalDateTime departureTime;
public ReminderTask(String trainName, LocalDateTime departureTime) {
this.trainName = trainName;
this.departureTime = departureTime;
}
public void run() {
System.out.println("Reminder: Your train (" + trainName + ") will depart in 30 minutes.");
}
}
}
Penjelasan program di atas:
- Pertama-tama, kita meminta pengguna memasukkan rincian kereta seperti nama kereta dan waktu keberangkatan menggunakan
Scanner
. - Kemudian, kita mengonversi string waktu keberangkatan menjadi objek
LocalDateTime
menggunakanDateTimeFormatter
. - Setelah itu, kita membuat objek
Timer
dan menjadwalkanReminderTask
30 menit sebelum waktu keberangkatan.ReminderTask
adalah kelas turunan dariTimerTask
yang berisi tugas yang akan dijalankan saat jadwal pengingat telah tiba. Dalam contoh program ini, tugas yang dilakukan adalah mencetak pesan pengingat ke layar. - Setelah itu, kita meminta pengguna memasukkan rincian pemesanan seperti nama dan email menggunakan
Scanner
. - Terakhir, kita mencetak rincian tiket ke layar dan memberikan informasi tentang pengingat waktu keberangkatan.
Catatan:
- Program ini menggunakan objek
Timer
danTimerTask
untuk menjadwalkan tugas yang akan dijalankan di masa depan. Anda juga dapat menggunakan library lain sepertiScheduledExecutorService
atauQuartz
untuk menjadwalkan tugas yang lebih kompleks dan fleksibel.
#7 Contoh Program Java Pemesanan Tiket Kereta Api
Program pemesanan tiket kereta api dengan integrasi sistem RFID untuk memudahkan proses boarding dan mengurangi waktu antrian di stasiun kereta api.
Code:
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Welcome to Train Booking System");
// Get train details
System.out.println("Enter train name:");
String trainName = input.nextLine();
System.out.println("Enter departure time (hh:mm):");
String departureTime = input.nextLine();
// Get seat details
System.out.println("Select seat type:");
System.out.println("1. Economy");
System.out.println("2. Business");
int seatChoice = input.nextInt();
String seatType;
double seatPrice;
if (seatChoice == 1) {
seatType = "Economy";
seatPrice = 20.0;
} else if (seatChoice == 2) {
seatType = "Business";
seatPrice = 50.0;
} else {
System.out.println("Invalid choice!");
return;
}
// Get RFID details
System.out.println("Scan your RFID tag:");
String rfidTag = input.next();
// Get user details
System.out.println("Enter your name:");
String name = input.next();
System.out.println("Enter your email:");
String email = input.next();
// Print ticket details
System.out.println("Ticket details:");
System.out.println("Train Name: " + trainName);
System.out.println("Departure Time: " + departureTime);
System.out.println("Seat Type: " + seatType);
System.out.println("RFID Tag: " + rfidTag);
System.out.println("Name: " + name);
System.out.println("Email: " + email);
System.out.println("Price: " + seatPrice);
// Boarding process
System.out.println("Please board the train and scan your RFID tag when prompted.");
System.out.println("Thank you for choosing our train service!");
}
}
Penjelasan program di atas:
- Pertama-tama, kita meminta pengguna memasukkan rincian kereta seperti nama kereta dan waktu keberangkatan menggunakan
Scanner
. - Selanjutnya, kita meminta pengguna memilih jenis tempat duduk dari dua pilihan yaitu ekonomi atau bisnis menggunakan
Scanner
. Terdapat pula harga yang terkait dengan masing-masing pilihan. - Setelah itu, kita meminta pengguna untuk memindai tag RFID mereka menggunakan
Scanner
. - Kemudian, kita meminta pengguna memasukkan rincian pemesanan seperti nama dan email menggunakan
Scanner
. - Terakhir, kita mencetak rincian tiket ke layar dan memberikan instruksi untuk proses boarding dengan memindai tag RFID mereka.
Catatan:
- Program ini hanya memberikan contoh sederhana dari fitur pemesanan tiket kereta api dengan integrasi sistem RFID untuk memudahkan proses boarding dan mengurangi waktu antrian di stasiun kereta api. Untuk program yang lebih lengkap dan kompleks, Anda dapat menambahkan lebih banyak fitur seperti pemilihan jadwal kereta, pengaturan jumlah kursi, pembayaran online, dll. Selain itu, Anda juga perlu mengintegrasikan program ini dengan sistem RFID yang sesuai dengan kebutuhan Anda.
Penutup, Contoh Program Java Pemesanan Tiket Kereta Api
Demikianlah contoh program-program Java sederhana untuk pemesanan tiket kereta api dengan berbagai fitur seperti integrasi database, integrasi API pihak ketiga, sistem notifikasi, dan sistem RFID.
Dengan memahami contoh program-program tersebut, Anda dapat memperluas pengetahuan Anda tentang pengembangan aplikasi Java dan membuat program-program yang lebih kompleks dan berguna untuk kebutuhan Anda.
Baca Juga: 7+ Contoh Program Peminjaman Buku Perpustakaan Java
Namun perlu diingat bahwa contoh program-program tersebut hanyalah sebagai referensi dan tidak dimaksudkan untuk digunakan langsung di lingkungan produksi.
Sebelum digunakan, pastikan untuk melakukan pengujian yang memadai dan memperhatikan aspek keamanan dan keandalan dari program yang Anda buat.
Baca Juga: 7+ Contoh Program Java Struk Belanja
Semua program di atas dapat dikembangkan lebih lanjut dengan menambahkan fitur dan teknologi baru sesuai dengan kebutuhan pengguna.
Semoga contoh program-program tersebut dapat membantu Anda dalam mempelajari pengembangan aplikasi Java dan meningkatkan keterampilan Anda dalam pemrograman. Terima kasih.