Programming

7+ Contoh Program Java Pemesanan Tiket Kereta Api

×

7+ Contoh Program Java Pemesanan Tiket Kereta Api

Sebarkan artikel ini
Contoh Program Java Pemesanan Tiket Kereta Api
Contoh Program Java Pemesanan Tiket Kereta Api

Yowatech.idContoh 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.

Advertise
Advertise

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:

  1. Rancang database untuk menyimpan informasi jadwal kereta, informasi stasiun, informasi tiket, informasi pemesanan, dan informasi pembayaran.
  2. Buat antarmuka pengguna untuk memungkinkan pengguna mencari jadwal kereta, mengecek ketersediaan tiket, memasukkan rincian pemesanan, dan melakukan pembayaran online.
  3. 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.
  4. 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.
  5. 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.
  6. Implementasikan fitur pemesanan tiket. Setelah pengguna memilih jadwal dan melakukan pembayaran, program harus membuat pemesanan tiket dan mengirim email konfirmasi kepada pengguna.
  7. 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.
  8. 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.

READ  5+ Contoh Program Python Penjualan Mobil

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, dan PASS yang digunakan untuk mengakses database MySQL.
  • Kemudian, kita membuat koneksi ke database menggunakan DriverManager.getConnection() dan menyimpannya dalam variabel conn.
  • Selanjutnya, kita meminta input dari pengguna untuk nama, email, nama kereta, dan waktu keberangkatan menggunakan Scanner.
  • Kita kemudian membuat objek Statement dan mengeksekusi query INSERT untuk menyimpan informasi pemesanan ke database menggunakan metode executeUpdate().
  • 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 dan Connection menggunakan metode close() dalam blok finally.

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.

READ  6+ Membuat Program Untuk Menghitung Jumlah Pecahan Mata Uang

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 dan JSONObject.
  • 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.
READ  7+ Contoh Program Java Kalkulator

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 menggunakan DateTimeFormatter.
  • Setelah itu, kita membuat objek Timer dan menjadwalkan ReminderTask 30 menit sebelum waktu keberangkatan. ReminderTask adalah kelas turunan dari TimerTask 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 dan TimerTask untuk menjadwalkan tugas yang akan dijalankan di masa depan. Anda juga dapat menggunakan library lain seperti ScheduledExecutorService atau Quartz 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.