Kamis, 13 Oktober 2011

Menentukan Jam yang baru setelah ditambah 1 detik

ALGORITMA
PROGRAM JamBerikutnya
{ Menentukan jam berikutnya setelah jam sekarang ditambah 1 detik }
DEKLARASI
type Jam : record
mm : integer, {0..59}
ss : integer {0..23}
>
J : jam



ALGORITMA
read (J.hh, J.mm, J.ss) {baca jam}
if J.ss + 1 < 60 then { Ok, tidak ada masalah penambahan 1 detik}
J.ss <-- J.ss + 1
else { berarti J.ss + 1 = 60}
J.ss <-- 0 { detik kembali menjadi nol, menit bertambah 1, tapi periksa
dulu apakah menit + 1 < 60 }
if J.mm + 1 < 60 then { Ok, tidak ada masalah penambahan 1 menit }
J.mm <-- J.mm +1
else { berarti J.mm + 1 = 60}
J.mm <-- 0 { menit menjadi nol, jam bertambah 1, tapi periksa dulu
apakah jam + 1 < 24}
if J.hh + 1 < 24 then {OK, tidak ada masalah penambahan 1 jam}
J.hh <-- J.hh + 1
else {berarti J.hh + 1 = 24}
J.hh <-- 0
endif
endif
endif
write (J.hh, J.mm, J.ss)
Sumber : Algoritma & Pemrograman (Dalam bahasa PASCAL dan C ), karya Rinaldi Munir penerbit INFORMATIKA, bandung 2007

saya coba ditranslate ke dalam Java dan hasilnya :
public class Main {
public static void main(String[] args) {
class jam {
int hh;
int mm;
int ss;
}
jam j;
j = new jam();
DataInputStream in = new DataInputStream(System.in);
try {
System.out.print("Masukan Jam (hh) : ");
j.hh= Integer.parseInt(in.readLine());
System.out.print("Masukan Jam (mm) : ");
j.mm = Integer.parseInt(in.readLine());
System.out.print("Masukan Jam (ss) : ");
j.ss = Integer.parseInt(in.readLine());
}catch (IOException err) {}
if (j.ss + 1 < 60)
j.ss = j.ss+1;
else
{
j.ss = 0;
if (j.mm + 1 < 60)
j.mm = j.mm + 1;
else
{
j.mm = 0;
if(j.hh +1 <24)
j.hh = j.hh+1;
else j.hh=0;
}
}
System.out.print("Jam yang baru "+j.hh+":"+j.mm+":"+j.ss);
}
}

1 komentar:

  1. Kak kalau untuk c++ gimana caranya? Soalnya saya masih belajar c++

    BalasHapus