Last Updated on 14 years by Mas Herdi
Well, mungkin judul yang benar adalah mengecek apakah suatu tahun adalah tahun kabisat atau tidak. Tapi itu terlalu kompleks dan tidak keren.
Entah apakah tahun kabisat bisa dideteksi dengan membagi sebuah tahun dengan 4 dan 100. Tapi di program ini kita hanya menlakukan pengecekan dengan pembagian 4, jadi 2004 akan dianggap sebagai sebuah tahun kabisat.
kabisat.asm
.data teks1:.asciiz "nMasukkan tahun : " teks2:.asciiz "Tahun Kabisat " teks3:.asciiz "Bukan tahun kabisat " teks4:.asciiz "Program Berhenti " .text .globl main main : consequence : la $a0, teks1 #load teks1 ke a0 li $v0, 4 #isi v0 dengan 4 syscall #print teks 1 li $v0, 5 #load v0 dengan 5 syscall #baca integer, masukkan ke v0 move $t1, $v0 #pindahkan v0 ke t1 li $t2, 4 #load immediate 4 ke t2 beq $t1, $zero, mandeg #jika t1==0 jump ke mandeg div $t1, $t2 #divide t1 dengan t2 mfhi $t3 #pindahkan mod ke t3 beq $t3, $zero, selfs #jika t3==0 jump ke selfs la $a0, teks3 #load a0 dengan teks3 li $v0, 4 #isi v0 dengan 4 syscall #cetak teks3 j consequence #jump ke consequence selfs : la $a0, teks2 #load a0 dengan teks2 li $v0, 4 #load immediate v0 dengan 4 syscall #cetak teks2 j consequence #jump ke consequence mandeg: la $a0, teks4 #load a0 dengan teks4 li $v0, 4 #isi v0 dengan 4 syscall #cetak teks4 j exit #jump ke exit exit : jr$ra #lompat dan kembali ke alamat kembalian
Dan sebagai pembanding, inilah kabisat.java
import java.util.Scanner; import static java.lang.System.out; class Kabisat { public static void main(String... arg) { int b = -1; Scanner s = new Scanner(System.in); while(c != 0) { out.println("Masukkan tahun "); b = s.nextInt(); int x = b % 4; if(x == 0) { out.println("tahun kabisat"); } else { out.println("Bukan tahun kabisat"); } } } }