Sabtu, 24 Maret 2012

tahun kabisat (C)


Permasalahan
Buatlah program yang dapat menentukan apakah suatu tahun (terdiri dari 4 digit) yang diinputkan melalui keyboard merupakan tahun kabisat atau bukan !
Analisa Masalah
           Tahun kabisat adalah sebutan bagi tahun masehi yang di mana pada tahun tersebut jumlah hari tidak terdiri dari 365 hari tetapi 366 hari. Satu tahun masehi tidak secara persis terdiri dari 365 hari, tetapi 365 hari lima jam 48 menit 45,1814 detik. Jika hal ini tidak dihiraukan, maka setiap 4 tahun akan kekurangan hampir satu hari (tepatnya 23 jam 15 menit 0,7256 detik. Maka untuk mengkompensasi hal ini, setiap empat tahun sekali (tahun yang bisa dibagi empat), diberi satu hari ekstra yaitu 29 Februari. Tetapi karena lima jam 48 menit 45,1814 detik kurang dari enam jam, maka tahun-tahun yang bisa dibagi 100 (seperti tahun 1900), bukan tahun kabisat, kecuali bisa dibagi dengan 400 (seperti tahun 2000) (id.wikipedia.org) 

Perumusan Masalah
  1. Jika  habis dibagi 400, tahun adalah tahun kabisat
  2. Jika tidak habis dibagi 100, tapi habis dibagi empat, tahun adalah tahun kabisat
  3. Jika selain diatas, tahun bukan tahun kabisat
  4. Dengan memasukkan nilai tahun melalui keyboard
  5. Yang ditulisakan dalam bentuk kondisi if
Penyusunan Algoritma
  1. Deklarasikan variabel penampung nilai tahun
  2. Masukkan nilai tahun
  3. Periksa jika  habis dibagi 400
  4. Tampilkan tahun adalah tahun kabisat
  5. Periksa jika tidak habis dibagi 100, tapi habis dibagi empat
  6. Tampilkan tahun adalah tahun kabisat
  7. Periksa jika selain di atas
  8. Tampilkan tahun bukan tahun kabisat
Pengkodean Program

#include<stdio.h>
#include<conio.h>

void main(void)
{
int tahun;

printf("program tahun kabisat\n\n");
printf("masukkan tahun ? ");
scanf("%d", &tahun);
if(tahun % 400 == 0)
 printf("\ntahun %d adalah tahun kabisat", tahun);
else if((tahun % 100 != 0) && (tahun % 4 == 0))
 printf("\ntahun %d adalah tahun kabisat", tahun);
else
                        printf("\ntahun %d bukan tahun kabisat", tahun);
getch();
}

Tidak ada komentar:

Posting Komentar