Tugas Alpro #2: tahun kabisat
nah untuk tugas kedua ini merupakan tugas yang dapat menjadi pilihan yang sangat tepat, karena tugas ini sangat simple sekali.
Tahun kabisat adalah tahun yang angkanya habis bila dibagi 4, maka bila suatu bilangan dibagi 4 memiliki sisa pembagian 0 maka bilangan itu merupakan tahun kabisat. Oleh karena itu input akan dimodulo oleh bilangan 4 dan bila hasilnya 0 maka bilangan tersebut habis dibagi 4, bukan begitu?
Scanner sc = new Scanner(System.in)
String st = sc.nextLine();
int i = Integer.parseInt(st);
if ((i % 4) = 0) System.out.println("Tahun Kabisat");
else System.out.println("Bukan Tahun Kabisat");
input akan dibaca oleh sc (object bertipe Scanner) yang hasilnya berupa string, maka untuk mendapatkan sebuah bilangan dari sebuah string kita perlu menggunakan
Integer.parseInt(st)
Tanda '%' persen digunakan sebagai operator dari operasi modulo dan hasilnya akan dibandingkan dengan 0. Dan bila ternyata hasilnya sama dengan 0, maka statement setelah if akan dieksekusi. Namun bila tidak maka statement dibawahnyalah yang akan dieksekusi.
Berikut ini adalah full code untuk Netbeans:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tahun_kabisat;
import java.util.*;
/**
*
* @author Administrator
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
String st = sc.nextLine();
int i = Integer.parseInt(st);
if((i%4)==0)System.out.println("Tahun kabisat");
else System.out.println("Bukan Tahun Kabisat");
}
}
ingat, bila membuat klas baru namanya harus sesuai dengan nama package pada fullcode, dalam hal ini 'tahun_kabisat'.
untuk contoh jadinya, monggo disedot
NB: sebenarnya ada satu konsep lain mengenai tahun kabisat, tapi tidak akan dibahas di posting ini,hhe..
Tugas Alpro #1: tabel perkalian
Setelah lama tidak posting akhirnya bisa posting lagi ni, setelah dapet tugas praktikum alpro. Dapet tiga tugas sih, tapi yang pertama dulu aja y!
@1: input adalah bilangan kurang dari 10 maka oleh karena itu program tidak akan menampilkan tabel dengan input lebih dari 10
>Scanner sc = new Scanner(System.in);
String st;
int n;
do {
st = sc.nextLine();
n = Integer.parseInt(st);
} while(n > 10);
untuk inputnya kali ini tidak menggunakan BufferedReader lagi, karena ternyata dengan menggunakan scanner jauh lebih praktis. mulai dari definisi sampai dengan inisialisasi yang berkali - kali.
@2: do-while disini berfungsi sebagai pengulangan yang setidaknya dijalankan minimal 1 kali bila kondisi tidak terpenuhi. berbeda dengan while-do yang akan langsung berhenti bila kita pakai pada kasus diatas karena pada saat awal deklarasi nilai n akan bernilai 0, sehingga klausa while(n > 10) tidak akan pernah terpenuhi. Program akan selalu meminta input sebuah bilangan selama bilangan yang telah diinputkan tidak kurang sama dengan 10. ketika input bernilai 11 atau lebih, program terus meminta input sebuah bilangan. Bila input sudah memenuhi syarat maka kode dibawahnya baru akan dijalankan.
bila kita liat dari contoh output untuk n = 4
X 1 2 3 4 1 1 2 3 4 2 2 4 6 8 3 3 6 9 12 4 4 8 12 16
@3: menurut logika saya for yang ada tidak akan bisa untuk menampilkan 'X 1 2..'. maka kita perlu menampilkannya diluar for dengan cara menggunakan for yang lain. untuk membuat tampilan terformat baik, kita perlu menyesuaikan jarak antar bilangan. Dalam program ini menggunakan karakter "\t" yang akan mengatur spasi secara otomatis.
>int i,j;
System.out.print("X\t");
for (i = 1;i <= n; i++) System.out.print(i+"\t");
System.out.println();
@4: sekarang untuk output yang sebenarnya, yakni tabel perkalian mulai dari baris ke 2 sampai n+1. untuk itu kita harus melakukan nested looping(ciah,,artinya pengulangan dalam pengulangan). pengulangan itu nantinya akan menghasilkan nxn angka, tapi karena kita butuh sebuah kolom lagi pada bagian paling kiri output sebagai penanda bilangan yang akan dikalikan maka hasilnya akan nx(n+1) bilangan.
for (i = 1;i <= n; i++){
System.out.print(i+"\t");
for (j = 1; j <= n; j++) System.out.print((i*j)+"\t");
System.out.println();
}
terlihat disana ada 'System.out.print(i+"\t");', itu adalah kolom paling kiri. sedangkan hasil perkaliannya kita dapat dari perkalian i (perulangan paling atas) dengan j (pengulangan bawahnya).
source kode buat netbeansnya:
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package tabel_kali;
import java.util.*;
/**
*
* @author user
*/
public class Main {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic here
Scanner sc = new Scanner(System.in);
String st;
int n;
do {
st = sc.nextLine();
n = Integer.parseInt(st);
//System.out.println(n);
} while(n > 10);
int i,j;
System.out.print("X\t");
for (i = 1;i <= n; i++) System.out.print(i+"\t");
System.out.println();
for (i = 1;i <= n; i++){
System.out.print(i+"\t");
for (j = 1; j <= n; j++) System.out.print((i*j)+"\t");
System.out.println();
}
}
}
monggo disedoOOOOOOOt!
Update..Update..!!
Akhirnya punya kesempatan buat posting lagi
setelah lappy ksayangan harus terbaring dirumah sakit..T.T
hiks2..
thanx buat pur yang mensponsori posting kali ini,,
hhe3, semuanya dilakukan di tempat pur
push4pop versi 1.0.1 update
-new theme
-new ads
-new shoutout
-new blogroll entries
-new SENSATION..(sensasi plong)
what removed:
-facebook yang g jelas
-google analytics juga,,(eh jangan dink)
-dan yang g penting2 lainnya
Posting lagi, biner lagi
Klo post yang tadi tentang alpro sekarang post tentang matematika diskrit.
Dosen kan lagi nerangin tentang teori himpunan, trus dia nerangin tentang power set gitu..nah pada akhirnya kita dikasih tugas buat bikin program yang bisa menggenerate power set itu
solusi saya sih kira2 seperti ini:
subset pasti dibentuk mulai dari himpunan kosong, kombinasi dengan jumlah element 1,,, sampai himpunan dengan anggota lengkap
klo misalkan ada himpunan {1,2,3}
maka subsetnya adalah
{},{1},{2},{3},{1,2},{2,3},{1,3},{1,2,3}
misal himpunan {1,2}
{},{1},{2},{1,2}
maka dapat disimpulakan dengan induksi matematika bahwa jumlah subset selalu 2 pangkat N,(cieh,matematika beud)
nah pendekatan yang saya lakukan adalah pendekatan biner
karena angka dapat dibuat menjadi bit - bit yang nantinya merepresentasikan kondisi element himpunan tadi untuk setiap nilai 0 sd (2 pangkat n)-1,meskipun tidak berurutan.
misalkan himpunan dengan element 2 yakni {1,2}
maka
subsetnya
00 -> {}
01 -> (1}
10 -> {2)
11 -> {1,2}
nah maka kita butuh for 1 to 2 ^ N
for i := 1 to (1 shl N) - 1 do
... ...
knapa g mulai dari 0?
krena jika himpunan kosong, kita cukup menulis {}
knapa (1 shl N)?
karena setiap bit biner selalu merupakan kelipatan dua dari bit selanjutnya
misal 2 pangkat 0 = 000001
2 pangkat 1 = 000010
2 pangkat 2 = 000100
jadi begitu saudara, mengapa kita pakai shl yang artinya shift bit left,ato geser bitnya ke kiri sebanyak n
lalu, karena setiap angka harus dibongkar setiap bitnya bernilai 1 ato tidak
kita perlu for lagi
sebagai angka dengan 1 bit ke l yang bernilai 1 saja
for j = 0 to n - 1 do
k := 1 shl j
hasilnya akan selalu 2 pangkat N dari 2 pangkat 0 sampai 2 pangkat n-1
nah kita cek
dengan
misal 1 = 01
pertama kita cek berdasarkan for yang variabelnya j
01 and 01 = 01
01 and 10 = 00
karena hasilnya adalah 01 dan 00 berarti yang ditampilin 1(01) tok
sekarang 2 = 10
10 and 01 = 00
10 and 10 = 10
karena hasilnya adalah 10 dan 00 brarti yang ditampilin 2(10) tok
sekarang 3 = 11
11 and 01 = 01
11 and 10 = 10
karena hasilnya adalah 10 dan 01 brarti yang ditampilin 2(10) dan 1(01)
begitu saudara-saudara
maka kodingnna adalah seperti berikut
var i,j,n : integer; begin readln(n); writeln(
Tugas Java Update Pertama
Akhirnya harus pake java juga..
gara2 tugas algoritma dan pemrograman jadi tau busuknya java
jelek banget buat readnya..
g flexibel deh, coba aja baca source ini
import java.io.*;
import java.util.*;
public class alpro{
public static void main(String[] args)throws IOException{
BufferedReader bf = new BufferedReader
(new InputStreamReader(System.in));
System.out.println("Nama : Ahmad Priatama");
System.out.println("NIM : 08/269892/PA/12121");
System.out.println("Asal : Magelang");
System.out.println();
System.out.println("Menghitung Volume dan Luas Balok");
System.out.println("Inputkan : LebarPanjangTinggi");
System.out.print("Input : ");
StringTokenizer st = new StringTokenizer(bf.readLine());
int l = Integer.parseInt(st.nextToken());
int p = Integer.parseInt(st.nextToken());
int t = Integer.parseInt(st.nextToken());
System.out.print("Volume balok adalah : ");
System.out.println(l*p*t);
System.out.print("Luas balok adalah : ");
System.out.println(2*p*l+2*p*t+2*l*t);
System.out.println();
System.out.println
("Menampilkan bilangan genap dan ganjil yang lebih kecil dari N");
System.out.println("Inputkan : bilangan N");
System.out.print("Input : ");
st = new StringTokenizer(bf.readLine());
int n = Integer.parseInt(st.nextToken());
System.out.print("Bilangan genap sebelum N adalah :");
int i;
for(i = 2;i < n; i++){
if ((i % 2) == 0){
System.out.print(i);
System.out.print(" ");
}
}
System.out.println();
System.out.print("Bilangan ganjil sebelum N adalah :");
for (i = 1; i < n; i++){
if ((i % 2) != 0){
System.out.print(i);
System.out.print(" ");
}
}
System.out.println();
System.out.println();
System.out.println("Validasi bilangan prima");
System.out.println("Inputkan : bilangan N");
System.out.print("Input : ");
st = new StringTokenizer(bf.readLine());
n = Integer.parseInt(st.nextToken());
boolean prima = true;
for (i = 2; i < (n - 1); i++)
if ((n % i) == 0) prima = false;
if (prima) System.out.println("Bilangan Prima"); else
System.out.println("Bukan Bilangan Prima");
}
}
beuh,banyak beud, bandingin deh ma pascal!
*edit:
udah dibenerin bos, pake tag html pre