Cara Mencari Selisih Waktu di Java

dokumen-dokumen yang mirip
Insertion Sort Dengan Algoritma Divide And Conquer

Belajar ArrayList di Java

Metode Binnary Searching di Java Console

Bubble Sort dan Selection Sort di Java Console

Enkripsi Karakter - Soal Lomba Pemrograman

ShortHand If Else di Java

Metode Sequential Searching di Java Console

Input Nilai tanpa Case String di Java

Tiga Metode Sangat Penting dalam Pemrograman Java Bagi Pemula

Metode Insertion Sort di Java Console

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Latihan Ujian Pemrograman Berorientasi Objek. Semester Genap 2016/2017

Belajar Rekursif di Java

Percabangan dan Perulangan

MODUL 5 PERULANGAN A. WHILE

Penyeleksi Kondisi / Percabangan

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA FAKULTAS ILMU KOMPUTER UNIVERSITAS BRAWIJAYA

Perulangan / Looping

DASAR PEMROGRAMAN JAVA. Astrid Lestari Tungadi, S.Kom., M.TI.

Struktur Kontrol Pemrograman Java : PERCABANGAN

Mata Kuliah : Pemrograman Berbasis Objek Pertemuan : 4

FUNGSI DASAR PEMROGRAMAN

Topik. 1. Statement if 2. Statement if..else.. 3. Statement if..else.. If (bertingkat ) 4. Penggunaan Input Keyboard

LAB02 : KODING PROGRAM

Teknik Menukarkan 2 Variable tanpa pihak Ketiga

IF PEMROGRAMAN LANJUT EXCEPTION. Oleh : Andri Heryandi, M.T.

Parent dan Child di Java

TIPE DATA Pertemuan (K-03/L-03)

Pemrograman Berorientasi Objek (PBO) PERTEMUAN X (LOOPING)

LAB PEMROGRAMAN I (JAVA FUNDAMENTAL) PERTEMUAN 5 Dosen : Bella Hardiyana S. Kom

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN JAVA 2

Algoritma dan Pemrograman

PRAKTIKUM PEMROGRAMAN LANJUT MODUL 1

PROSEDUR DASAR PEMROGRAMAN

Method. Pemrograman Dasar Sistem Informasi PTIIK Herman Tolle

MK. Pemrograman Berorientasi Objek. Input dari Keyboard. Karmilasari

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK TIS243

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR TIPE-TIPE FUNGSI ATAU METHOD

Method / Fungsi / Sub Program

LAPORAN PRAKTIKUM ALGORITMA DAN PEMROGRAMAN ( Implementasi Rekursi Pada Java)

FAKULTAS TEKNIK UNIVERSITAS NEGERI YOGYAKARTA LAB SHEET PEMROGRAMAN 2

Projek Kelompok 7. package (tiopan-programmer java) public class aritmatika1{ public static void main(string[]tiw){ int calculation = 1;

A. TEORI ARRAY 1 DIMENSI

Aplikasi Algoritma Brute Force Pada Knight s Tour Problem

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

Setelah menyelesaikan praktikum ini, mahasiswa diharapkan mampu:

Membuat Menu Login Sederhana [Full Coding]

Modul Praktikum 3 Pemograman Berorientasi Objek

Kelompok 7. package (tiopan-programmer java) public class aritmatika1{ public static void main(string[]tiw){ int calculation = 1;

Pengenalan Java, Tipe Data, Variabel dan Operator. Putu Putra Astawa

A. TEORI ARRAY 1 DIMENSI

KENDALI PROSES. Untuk mengatur arus program, pemrograman java menyediakan struktur perulangan (looping), kondisional, percabangan, dan lompatan.

MODUL III ARRAYLIST TUGAS PENDAHULUAN

Penerapan Algoritma Greedy dalam Pembuatan Klasemen Kompetisi

Tiopan Indra Wahyudi R5L PROJECT KELOMPOK 7 R5L. package brekk; public class brekk{ public static void main(string[]args){

Pada akhir pertemuan ini, diharapkan mahasiswa memiliki kemampuan untuk: Menggunakan struktur kendali pencabangan bersyarat dalam bahasa pemrograman.

Percabangan & Perulangan

PEMROGRAMAN JAVA. Yoannita, S.Kom. Input Kondisi (IF-ELSE, SWITCH)

TIPE DATA PADA JAVA. Pertemuan (K-04/L-04)

Pemrograman JAVA INPUT-OUTPUT

Pengenalan Program Java

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR PROGRAM DENGAN KONDISI

SUMBER BELAJAR PENUNJANG PLPG

Struktur Data dan Algoritma IKI10400 Semester Gasal 2010/2011 Fakultas Ilmu Komputer Universitas Indonesia

Algoritma dan Pemrograman. Oleh: Eddy Prasetyo N

Array Sebagai Parameter Method

IF PEMROGRAMAN LANJUT PERULANGAN. Oleh : Andri Heryandi, M.T.

BAHASA PEMROGRAMAN JAVA

Java Basic. Variabel dan Tipe Data. Lokasi di dalam memori komputer yang digunakan untuk menyimpan suatu informasi (nilai)

SEKUEN, PERCABANGAN & PENGULANGAN

LAPORAN PRAKTIKUM ALGORITMA DAN STRUKTUR DATA PENGENALAN OBJECT ORIENTED PROGRAMMING

LAPORAN PRAKTIKUM PEMROGRAMAN DASAR PROGRAM PENYEDERHANAAN PECAHAN

Decision and Looping

Array. Adharul Muttaqin Universitas Brawijaya Malang. Array

{ System.out.println("PERANCANGAN PROGRAM APLIKASI ESTIMASI KEUNTUNGAN PRODUKSI PADA PT POPPY DHARSONO DENGAN. System.out.

BAHASA PEMROGRAMAN JAVA PUTU INDAH CIPTAYANI JURUSAN SISTEM INFORMASI STMIK AMIKOM YOGYAKARTA

TPI4202 e-tp.ub.ac.id. Lecture 4 Mas ud Effendi

Definisi Eksepsi (exception)

Belajar Set Currency Format di TextField Java

Membuat Frame, Label, TextField dan Button di Java [Full Coding]

BAB VI ARRAY Mendeklarasikan Variabel Array int[ ] bilangan; int bilangan[ ]; Mendefinisikan Array Bilangan = new int[5]; Latihan 21. ArrSatu.

Exception adalah penanda bahwa kondisi/kejadian yang tidak diinginkan telah terjadi pada program kita. Ada 2 jenis exception (+1 Error):

Tipe if : If tanpa else (if) If dengan else (if-else) Nested if

Input - Output PEMROGRAMAN DASAR. Dr. Eng. Herman Tolle, ST., MT. Sistem Informasi PTIIK UB Semester Ganjil 2014/2015

Pendahuluan. Tujuan MODUL

Pertemuan 3 Struktur Perulangan pada Java

LAPORAN RESMI PRAKTIKUM BAHASA PEMROGRAMAN

BAB V. STATEMEN KONTROL

MODUL PRAKTIKUM PEMROGRAMAN BERORIENTASI OBJEK

Algoritma dan Pemrograman FUNGSI

Tutorial Jasper Report with JDBC Prerequisites: Jasper Report, ireport installed, MySQL installed, and NetBeans IDE

PRAKTEK 1 CLASS, ATTRIBUTE, METHOD, DAN OBJEK

BAB 3 TYPE DATA, VARIABLE DAN OPERATOR

Gambar 1. Langkah-langkah pengurutan metode Insertion Sort (1)

Penggunaan Netbeans IDE, Hello World, variable dan Operator aritmetika.

TUGAS 1 Membuat Program Untuk Menghitung Magnetic Tape

A. TUJUAN PEMBELAJARAN 1. Mengenal berbagai macam bentuk operator 2. Memahami penggunaan berbagai macam jenis operator yang ada di Java

Bahasa Pemrograman Java. Yudi Adha. ST. MMSI

2 TIPE DATA DAN VARIABEL

Operator, Statement kondisional, dan Iterasi pada Java

Transkripsi:

Cara Mencari Selisih Waktu di Java Oleh: Yudi Setiawan Dalam bahasa pemrograman Java, ada library yang bisa Anda gunakan untuk mencari selisih waktu yakni JodaTime. JodaTime berfungsi untuk mencari selisih waktu di Java. Dalam beberapa kasus, JodaTime tidak selalu bisa Anda gunakan namun, kalau Anda hanya ingin mencari selisih waktu saya rasa JodaTime masih b... Dalam bahasa pemrograman Java, ada library yang bisa Anda gunakan untuk mencari selisih waktu yakni JodaTime. JodaTime berfungsi untuk mencari selisih waktu di Java. Dalam beberapa kasus, JodaTime tidak selalu bisa Anda gunakan namun, kalau Anda hanya ingin mencari selisih waktu saya rasa JodaTime masih bisa Anda gunakan. Untuk contoh kasus, menghitung total jam kerja si Pegawai yang masuk pukul 08:00 dan pulang pukul 17:00 maka, JodaTime masih mampu menyelesaikannya namun, jika di perusahaan tersebut terdapat shift 24 jam dan si Pegawai masuk pukul 22:00 dan pulang pukul 07:00 maka, JodaTime akan menghasilkan output yang tidak sesuai pula dan outputnya ialah 15 jam. Lalu, bagaimana cara menyelesaikan contoh kasus yang si Pegawai masuk malam dan pulang pagi tersebut? Iya, jelas bisa. Anda harus bermain sedikit logika Anda. Berikut algoritma untuk menyelesaikannya: 1. Input Waktu masuk si pegawai dan waktu pulang si pegawai. 2. Kemudian, ubah Waktu masuk dan Waktu pulang menjadi 3 bagian yakni Jam, Menit dan Detik. 3. Buat sebuah variable untuk menghitung berapa selisih waktu masuk dengan waktu pulang. Nilai ini akan selalu bertambah 1 pada poin nomor 4 dan 5. 4. Setelah itu, lakukan secara berurutan dimulai dari detik dimana, Anda harus mengsamakan nilai detik waktu masuk dan detik waktu pulang. Caranya, cukup dengan cara menambahkan atau increment nilai detik waktu masuk. Lakukan ini dengan menggunakan perulangan. Dan jika nilai detik melewati 59 maka, nilai menit waktu masuk ditambah 1. Ingat, ketika perulangan maka, nilai variable yang Anda buat pada poin 3 tadi juga ikut Anda tambahkan atau increment 1. 5. Setelah selesai dengan detiknya maka, lakukanlah hal yang sama dengan menit waktu masuk dan menit waktu pulang dimana, Anda harus mengsamakan nilai waktu menit masuk dengan waktu menit pulang dengan cara increment dan lakukan dengan menggunakan perulangan. Jika nilai menit waktu masuk melewati menit 59 maka, nilai waktu jam ditambah 1. Lakukanlah hal yang sama dengan nilai jam waktu masuk. Ingat, pada poin ini juga Anda increment nilai variable pada poin nomor 3 tadi. 6. Setelah nilai waktu jam, menit dan detik masuk sama dengan waktu jam, menit dan detik pulang maka, saatnya mengolah nilai variable pada poin nomor 3 yang sudah Anda increment pada poin nomor 4 dan 5. Bagaimana cara mengolahnya? Anda bisa mengolahnya untuk mendapatkan nilai selisih dalam format HH:mm:ss atau Anda bisa juga mengolahnya menjadi satuan detik semua. Itu semua tergantung Anda sendiri gimana maunya. Perlu diketahui, ini merupakan salah satu cara dari seribu satu cara yang ada untuk menyelesaikan masalah diatas tadi. Dan berikut ialah source code untuk menyelesaikan masalah diatas. import java.util.scanner;

/** * * @author Yudi Setiawan * */ public class Main { public static void main([] args) { // Scanner Scanner scan = new Scanner(System.in); // Input Waktu Awal System.out.println("Waktu Awal"); System.out.print("Input Jam : "); str_jam_awal = scan.nextline(); System.out.print("Input Menit : "); str_menit_awal = scan.nextline(); System.out.print("Input Detik : "); str_detik_awal = scan.nextline(); // Input Waktu Akhir System.out.println("\nWaktu Akhir"); System.out.print("Input Jam : "); str_jam_akhir = scan.nextline(); System.out.print("Input Menit : "); str_menit_akhir = scan.nextline(); System.out.print("Input Detik : "); str_detik_akhir = scan.nextline(); // Tampilkan Waktu Awal dan Waktu Akhir str_waktu_awal = str_jam_awal+":"+str_menit_awal+":"+str_detik_awal; str_waktu_akhir = str_jam_akhir+":"+str_menit_akhir+":"+str_detik_akhir; System.out.println("Waktu Awal : "+str_waktu_awal); System.out.println("Waktu Akhir : "+str_waktu_akhir); // Konversi variable str menjadi integer int jam_awal = Integer.parseInt(str_jam_awal); int jam_akhir = Integer.parseInt(str_jam_akhir); int menit_awal = Integer.parseInt(str_menit_awal); int menit_akhir = Integer.parseInt(str_menit_akhir); int detik_awal = Integer.parseInt(str_detik_awal); int detik_akhir = Integer.parseInt(str_detik_akhir); Akhir detik akhir // Proses pencarian selisih Waktu Awal dan Waktu // Langkah Ketiga, cari selisih detik awal dan int selisih_detik = 0;

// Jika detik awal > detik akhir // Contohnya, detik awal = 40 dan detik akhir = 30 if(detik_awal > detik_akhir) { while(detik_awal!= detik_akhir) { if(detik_awal == 60) { detik_awal = 0; menit_awal++; continue; detik_awal++; selisih_detik++; // Jika detik awal < detik akhir // Contohnya, detik awal = 30 dan detik akhir = 40 else if(detik_awal < detik_akhir) { selisih_detik = detik_akhir - detik_awal; // Masukkan ke variable selisih waktu int selisih_waktu = selisih_detik; akhir //------------------------------------------------------- // Langkah Kedua, cari selisih menit awal dan menit int selisih_menit = 0; // Jika menit awal > menit akhir. // Contohnya, menit awal = 50 dan menit akhir = 10 if(menit_awal > menit_akhir) { while(menit_awal!= menit_akhir) { if(menit_awal == 60) { menit_awal = 0; jam_awal++; continue; menit_awal++; selisih_menit++; // Jika menit awal < menit akhir // Contohnya, menit awal = 10 dan menit akhir = 50 else if(menit_awal < menit_akhir) {

selisih_menit = menit_akhir - menit_akhir; = 60 detik) akhir // Ubah selisih menit menjadi satuan detik (1 menit selisih_waktu += selisih_menit * 60; // Langkah Pertama, cari selisih jam awal dan jam int selisih_jam = 0; // Jika jam awal > jam akhir. Contohnya, Jam Awal = 22 (10 malam) dan Jam Akhir = 05 (5 pagi) if(jam_awal > jam_akhir) { // Cocokkan antara jam awal dan jam akhir while(jam_awal!= jam_akhir) { if(jam_awal == 24) { jam_awal = 0; continue; jam_awal++; selisih_jam++; // Jika jam awal < jam akhir. Contohnya, Jam Awal = 05 (5 pagi) dan Jam Akhir = 22 (10 malam) else if(jam_awal < jam_akhir) selisih_jam = jam_akhir - jam_awal; 3600 detik) // Ubah selisih jam menjadi satuan detik (1 jam = selisih_waktu += selisih_jam * 3600; // Tampilkan selisih antara waktu awal dan waktu akkhir dalam satuan detik System.out.println("Selisih antara waktu awal dan waktu akhir (detik) : "+selisih_waktu); // Ubah selisih_waktu menjadi format waktu HH:mm:ss // Ubah selisih waktu menjadi satuan jam int jam = selisih_waktu / 3600; selisih_waktu %= 3600; // Ubah selisih waktu menjadi satuan menit int menit = 0; int detik = 0; if(selisih_waktu >= 60) {

menit = selisih_waktu / 60; detik = selisih_waktu % 60; else { menit = 0; detik = selisih_waktu; // Tampilkan selisih antara waktu awal dan waktu akhir dalam format waktu HH:mm:ss waktu = jam+":"+menit+":"+detik; System.out.println("Selisih antara waktu awal dan waktu akhir (HH:mm:ss) : "+waktu); Dan berikut ialah yang menggunakan library JodaTime. Jangan lupa download terlebih dahulu library nya di internet. import java.text.parseexception; import java.text.simpledateformat; import java.util.scanner; import org.joda.time.datetime; import org.joda.time.seconds; /** * * @author Yudi Setiawan * */ public class Main2 { public static void main([] args) throws ParseException { // SimpleDateFormat SimpleDateFormat sdftime = new SimpleDateFormat("HH:mm:ss"); // Scanner Scanner scan = new Scanner(System.in); // Input Waktu Awal System.out.println("Waktu Awal"); System.out.print("Input Jam : "); waktu_awal = scan.nextline()+":"; System.out.print("Input Menit : "); waktu_awal += scan.nextline()+":";

System.out.print("Input Detik : "); waktu_awal += scan.nextline(); // Input Waktu Akhir System.out.println("\nWaktu Akhir"); System.out.print("Input Jam : "); waktu_akhir = scan.nextline()+":"; System.out.print("Input Menit : "); waktu_akhir += scan.nextline()+":"; System.out.print("Input Detik : "); waktu_akhir += scan.nextline(); // Ubah waktu awal dan waktu akhir menjadi DateTime DateTime dtawal = new DateTime(sdfTime.parse(waktu_awal)); DateTime dtakhir = new DateTime(sdfTime.parse(waktu_akhir)); // Tampilkan waktu awal dan waktu akhir System.out.println(); System.out.println("Waktu Awal : "+waktu_awal); System.out.println("Waktu Akhir : "+waktu_akhir); // proses cari selisih waktu dalam satuan detik // 10:50:20-11:30:50 int selisih_detik = Math.abs(Seconds.secondsBetween(dtAwal, dtakhir).getseconds()); System.out.println("Selisih waktu awal dan waktu akhir (detik) : "+selisih_detik); // Ubah selisih detik menjadi format HH:mm:ss int jam = selisih_detik / 3600; selisih_detik %= 3600; int menit = 0; int detik = 0; if(selisih_detik >= 60) { menit = selisih_detik / 60; detik = selisih_detik % 60; else { detik = selisih_detik; // Tampilkan selisih waktu dalam format HH:mm:ss selisih_waktu = jam+":"+menit+":"+detik; System.out.println("Selisih waktu awal dan waktu akhir (HH:mm:ss) : "+selisih_waktu);

Dan berikut output untuk kedua program diatas.

Tentang Penulis Yudi Setiawan Saat ini aktif sebagai Mahasiswa di salah satu Universitas di kota Medan dengan mengambil bidang Fakultas Teknik dan Ilmu Komputer. Sangat senang dengan bahasa pemrograman Java dan Android.