program waktu

Pemrograman menggunakan Turbo Pascal dan GNU Pascal

program waktu

Postby kuchiki » 24 Jan 2011, 21:11

Tolong bantuannya ya...

Bagaimana membuat program di pascal untuk mengitung selisih waktu agar tampilannya seperti di bawah ini?

Jam masuk : 08:00:00
Jam keluar : 09:10:10
Lama : 1 jam 10 menit 10 detik

Terima kasih atas bantuannya...
kuchiki
Junior Member
 
Posts: 2
Joined: 24 Jan 2011, 20:41

RE: program waktu

Postby D.E » 25 Jan 2011, 09:59

Code: Select all
  1. uses SysUtils;

  2.  

  3. function HourOf(const AValue: TDateTime): Word;

  4. var

  5.   LMinute, LSecond, LMilliSecond: Word;

  6. begin

  7.   DecodeTime(AValue, Result, LMinute, LSecond, LMilliSecond);

  8. end;

  9.  

  10. function MinuteOf(const AValue: TDateTime): Word;

  11. var

  12.   LHour, LSecond, LMilliSecond: Word;

  13. begin

  14.   DecodeTime(AValue, LHour, Result, LSecond, LMilliSecond);

  15. end;

  16.  

  17. function SecondOf(const AValue: TDateTime): Word;

  18. var

  19.   LHour, LMinute, LMilliSecond: Word;

  20. begin

  21.   DecodeTime(AValue, LHour, LMinute, Result, LMilliSecond);

  22. end;

  23.  

  24. // ------------------------

  25.  

  26. function RincianWaktu(const JamMasuk, JamKeluar: TTime): string;

  27. var

  28.   Jam, Menit, Detik: Integer;

  29.   Waktu: TTime;

  30. begin

  31.   Waktu := JamKeluar - JamMasuk;

  32.  

  33.   Jam := HourOf(Waktu);

  34.   Menit := MinuteOf(Waktu);

  35.   Detik := SecondOf(Waktu);

  36.  

  37.   Result := Format('%d jam %d menit %d detik', [Jam, Menit, Detik]);

  38. end;

:idea: Dude, if you don't understand the basics and just want to get someone else write the code for you, it means you really shouldn't study computer science. Find different field!
User avatar
D.E
Senior Member
 
Posts: 638
Joined: 04 May 2010, 18:12

RE: program waktu

Postby kuchiki » 25 Jan 2011, 19:05

Kak, yang di atas kayaknya bukan untuk turbo pascal ya? Kalo buat yang turbo pascal gmn ya?

-Terima kasih-
kuchiki
Junior Member
 
Posts: 2
Joined: 24 Jan 2011, 20:41

RE: program waktu

Postby mas_kofa » 28 Jan 2011, 05:41

pengin pake cara manual atau cara pusing....????!!!!!!

Code: Select all
  1. //selis -> selisih;

  2. selis := keluar - masuk; //biarkan dalam format real;



1. convert ke satuan detik dulu :

Code: Select all
  1. dtime := selis * 24 {jam} * 60 {menit} * 60 {detik}



2. ambil jam
Code: Select all
  1. jam   := trunc(dtime / (60 * 60));  //60 * 60 = pembagian jam (menit * detik);

  2.   sisa  := dtime - (jam * (60 * 60));



3. sisa nya adalah jumlah menit, terus ambil menit.......
Code: Select all
  1. menit := trunc(sisa / 60);

  2.   sisa  := sisa - (menit * 60);



4. sisa terakhir adalah detik;
Code: Select all
  1. detik := trunc(sisa);  ambil pake trunc biar type nya jadi integer;




sekalian aku kasih variabel2 yg dipakai
Code: Select all
  1. var

  2.   detik: Integer;

  3.   menit: Integer;

  4.   sisa: Real;

  5.   selis: Real;

  6.   jam: Integer;

  7.   dtime: Real;

  8.   keluar: Real;

  9.   masuk: Real;

User avatar
mas_kofa
Senior Member
 
Posts: 344
Joined: 05 May 2010, 12:03
Location: Jakarta

RE: program waktu

Postby aday-gate » 28 Jan 2011, 13:46

haree geene turbo pascal??:huh:
:running::running:
[font=Tahoma]"Any fool can write code that a computer can understand.
Good programmers write code that humans can understand." - Martin Fowler-
[/font]
User avatar
aday-gate
Member
 
Posts: 72
Joined: 06 May 2010, 00:55

RE: program waktu

Postby syahwani » 18 Feb 2011, 09:35

lah emangnya pascal tu dah ketinggalan ya om.....? maaf emang newbie murni...
User avatar
syahwani
Junior Member
 
Posts: 1
Joined: 18 Feb 2011, 08:44

RE: program waktu

Postby D.E » 18 Feb 2011, 11:00

Turbo Pascal memang sudah ketinggalan, tapi bukan Pascal-nya lho ya.
Turbo Pascal untuk dan hidup dijamannya DOS, sekarang banyak pascal-pascal lainnya misal Delphi, Lazarus & FreePascal
:idea: Dude, if you don't understand the basics and just want to get someone else write the code for you, it means you really shouldn't study computer science. Find different field!
User avatar
D.E
Senior Member
 
Posts: 638
Joined: 04 May 2010, 18:12

RE: program waktu

Postby setiajie » 18 Feb 2011, 15:05

Ini listing program yang sudah saya susun berdasarkan pemikiran teman-2 yang diatas :

Code: Select all
  1. Var

  2.   dtk_msk, mnt_msk, jam_msk : Byte;

  3.   dtk_klr, mnt_klr, jam_klr : Byte;

  4.   konv_dtk_msk : Integer;

  5.   konv_dtk_klr : Integer;

  6.   selisih_dtk, selisih_mnt, selisih_jam : Integer;

  7.   selisih_sisa_dtk, selisih_sisa_mnt : Integer;

  8.  

  9. Label

  10.   input_ulang_masuk, input_ulang_keluar;

  11.  

  12. Begin

  13.   input_ulang_masuk:

  14.   Write('Jam masuk (0 sampai dengan 23) = '); Readln(jam_msk);

  15.   Write('Menit masuk (0 sampai dengan 59) = '); Readln(mnt_msk);

  16.   Write('Detik masuk (0 sampai dengan 59) = '); Readln(dtk_msk);

  17.   If (jam_msk >= 24) Or (mnt_msk >= 60) Or (dtk_msk >= 60) Then

  18.   Begin

  19.     Writeln('ULANGI LAGI');

  20.     Goto input_ulang_masuk;

  21.   End;

  22.   Writeln;

  23.   konv_dtk_msk := dtk_msk + (mnt_msk * 60) + (jam_msk * 3600);

  24.   input_ulang_keluar:

  25.   Write('Jam keluar (0 sampai dengan 23) = '); Readln(jam_klr);

  26.   Write('Menit keluar (0 sampai dengan 59) = '); Readln(mnt_klr);

  27.   Write('Detik Keluar (0 sampai dengan 59) = '); Readln(dtk_klr);

  28.   If (jam_klr >= 24) Or (mnt_klr >= 60) Or (dtk_klr >= 60) Then

  29.   Begin

  30.     Writeln('ULANGI LAGI');

  31.     Goto input_ulang_keluar;

  32.   End;

  33.   Writeln;

  34.   If jam_klr < jam_msk Then jam_klr := jam_klr + 24;

  35.   konv_dtk_klr := dtk_klr + (mnt_klr * 60) + (jam_klr * 3600);

  36.   selisih_dtk := konv_dtk_klr - konv_dtk_msk;

  37.   selisih_mnt := selisih_dtk div 60;

  38.   selisih_jam := selisih_dtk div 3600;

  39.   selisih_sisa_mnt := selisih_mnt - (selisih_jam * 60);

  40.   selisih_sisa_dtk := selisih_dtk - (selisih_mnt * 60);

  41.   Writeln('Selisih waktu = ',selisih_jam,' jam ',selisih_sisa_mnt,' menit ',selisih_sisa_dtk,' detik');

  42. End.



* Penjelasan singkat :
* ====================
* Algoritma didasari dari pemikiran seorang kawan dari forum pascal-id.org
* Kurang lebih begini : jam, menit dan detik dijadikan detik semua dan dicari selisihnya
* Dilengkapi dengan baris input ulang jika memasukkan data angka yang tidak seharusnya
* Untuk masalah peralihan jam dari kemarin ke besoknya, ada penambahan 24 jam
* Cuman sekedar bermain angka 60 dan 3600 untuk mengembalikan selisih ke bentuk jam, menit dan detik[/code]
setiajie
Junior Member
 
Posts: 10
Joined: 31 Jan 2011, 16:34


Who is online

Users browsing this forum: No registered users and 1 guest

cron