PC Lab Modul
PC Lab Modul
Pada modul 1 praktikum ini, mahasiswa belajar membuat program dengan bahasa
pemrograman yang sangat pewerful yaitu Java. Seluruh kasus yang ada pada modul
ini merupakan kasus yang sangat sederhana dan sangat sering dijumpai pada
kehidupan sehari-hari. Setelah mengimplementasikan seluruh kasus tersebut dengan
Java, mahasiswa diharapkan bisa membedakan secara jelas antara algoritma dan
bahasa pemrograman khususnya java, termasuk di dalamnya notasi yang
digunakan dan aturan penulisan.
1.1. Tujuan
Tujuan dari bab tersebut adalah:
1. Mengenal lingkungan Java
2. Mampu menterjemahkan notasi algoritma yang diajarkan di kelas ke dalam Java
1.2. Kegiatan
1.
2.
3.
4.
5.
/*=================================================================
File
: Hello.java
Tanggal
: 14 September 2005
Programmer : Ivan Michael Siregar
Deskripsi : Ini adalah program pertama saya
- Hanya menuliskan pesan ke output (monitor)
=================================================================*/
public class Hello {
public static void main (String args[]) {
System.out.println(Hallo, selamat datang di praktikum IF103);
System.out.println(Selamat bekerja);
}
}
Programming Concept
President University
Kasus 2: Internet
Petunjuk
Nama file Internet.java
Tulisakan potongan program di bawah mi pada editor Edit Plus.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*==============================================================
File
: Internet.java
Tanggal
: 14 September 2005
Programmer : Ivan Michael Siregar
Deskripsi : - Menggunakan variabel dan konstanta
- Menerima nama pelanggan dan lama penggunaan internet
- Menghitung biaya penggunakaan dan mencetak struk
================================================================*/
//menggunakan kelas yang sudah ada
import javax.swing.JoptionPane;
public class Internet {
public static void main (String args[]) {
//deklarasi konstanta
final int biaya 60; //biaya pulsa per detik
//deklarasi variabel
String nama;
//nama dalam tipe string
String durasis; //durasi dalam tipe string
int durasi;
int total;
//menerima masukan
nama
= Jptionpane.showInputDialog(null,Nama pelanggan);
durasi = JPtionPane.showInputDialog(null,Lama pemakaian internet);
//konversi tipe string ke tipe integer
durasi = Integer.ParseInt(durasis);
//kalkulasi biaya penggunaan
total = durasi * biaya;
//menampilkan hasil
JOptionPane.showMessageDialog(null,Warnet President /n Nama pelanggan
=
+nama+ /n Lama pemakaian = +durasi+ /n Total Biaya=+total+/n
Terimakasih);
Kasus 3: Avanza
Petunjuk
Nama File Avanza.java
Tidak perlu membuat algoritma.
Tentukan sendiri constant dan variable
Buatlah program dengan Java untuk menghitung konsumsi bensin sebuah mobil
Avanza. Ikuti ketentuan berikut:
Programming Concept
President University
Algoritma LuasLingkaranDanPersegi
{menghitung luas lingkaran dan persegi
luas lingkaran = * r^2 dan luas persegi panjang * lebar
}
DEKLARASI
{nama konstanta)
const pi real = 3.1415 {konstanta matematik }
(nama variabel}
jejari
panjang
lebar
luasLingkaran
luasPersegi
:
:
:
:
:
integer
integer
integer
real
real
{Jarijari}
{Panjang persegi}
{Lebar persegi}
{Luas lingkaran}
{Luas persegi}
DESKRIPSI
read(jejari)
read(panjang)
read(lebar)
luasLingkaran = p1 * jejari ^ 2
luasPersegi
= panjang * lebar
write(luasLingkaran)
write(luasPersegi)
Programming Concept
President University
Pada modul 2 praktikum ini, mahasiswa belajar menggunakan method yang ada
pada Java, dan mengenal logika pada pemrograman yang paling fundamental
dengan menggunakan struktur if-else. Struktur ini sangat memungkinkan program
menjalankan aksi tertentu berdasarkan kondisi yang dipenuhi.
2.1. Tujuan
Tujuan dari bab tersebut adalah:
1. Menggunakan beberapa method yang ada pada class Math
2. Mengguriakan arialisa kasus stuktur if
3. Menggunakan analisa kasus stuktur case
4. Paham menggunakan div dan mod
2.2. Kegiatan
1.
2.
3.
4.
Belajar
Belajar
Belajar
Belajar
/*======================================================================
File
: Matematik.java
Tanggal
: 21 September 2005
Programmer : Ivan Michael Siregar
Deskripsi : Menggunakan berbagai prepackaged method untuk class Math
========================================================================*/
//menggunakan kelas yang sudah ada
import javax.swing.JOptionPane;
public class Matematik {
public static void main (String args[])
Programming Concept
President University
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
//deklarasi variabel
String bilangans; //nama dalam tipe string
int bilangan;
//nama dalam tipe integer
//menerima masukan
bilangans = JOptionPane.showInputoialog(null,Masukkan sebuah
bilangan);
//konversi tipe string ke tipe integer
bilangan = Integer.parseInt(bilangans);
//menampilkan basil
JoptionPane.showMessageDiaiog(null,Bilangan Dasar = bilangan+ \n
Cosinus =+Math.sin(bilangan)+\n Kosinus =+Math.cos(bilangan)+ \n
Tangen =+Math.tan(bilangan)+\n Exponen =+Math.exp(bilangan)+ \n
Kudrat =+Math.sqrt(bilangan)+\n Log +Math.log(bilangan)+\n );
Algoritrma WujudAir
{Menerima masukan berupa suhu air, dan menuliskan pesan
Es(suhu < 0), cair (0 <= suhu < 100), uap (suhu >= 100)
wujud
air.
DEKLARASI
{nama variabel)
pesan : string
suhu : integer
DESKRIPSI
read(suhu)
if (suhu < 0) then
pesan es
else
if (0 <= suhu < 100) then
pesan cair
else {suhu > 100)
pesan uap
end if
end if
write (pesan)
Programming Concept
President University
Programming Concept
President University
_
|
|
_
|
_
switch (bilangan)
case 0: kata =
break;
case 1: kata =
break;
case 2: kata =
break;
case 3: kata =
break;
case 4: kata =
break;
case 5: kata =
break;
case 6: kata =
break;
case 7: kata =
break;
case 8: kata =
break;
case 9: kata =
break;
default:kata =
}
Programming Concept
President University
{
fbi;
satu;
dua;
tiga;
empat;
lima;
enam;
tujuh;
delapan;
sernbilan;
Tidak terdefinisi. Bilangan harus dalam range 0 9;
Programming Concept
President University
MODUL 3: ARRAY
Selesaikan masalahmu dengan cara memecahnya
menjadi bagian-bagian yang kecil dan sederhana.
Pada modul 6 praktikum ini, mahasiswa belajar membuat array dan kemudian
menggunakannya. Array atau larik adalah struktur data yang menyimpan
sekumpulan elemen yang bertipe sama, setiap elemen diakses langsung melalui
indeksnya. Indeks array haruslah bertipe data yang menyatakan keterurutan,
misalnya integer atau karakter.
3.1. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami cara mendefinisikan array
2. Memahami cara mengguanakan array
3. Memahami cara kerja array
4. Mampu menentukan kapan sebaiknya menggunakan array
3.2. Kegiatan
1. Membuat, mengisi, dan menggunakan array
2. Menggunakan matriks untuk menyelesaikan berbagai masalah
/*===================================================================
File
: isiDanCetakArray.java
Tanggal
: 18 September 2005
Programmer: Ivan Michael Siregar
Deskripsi : - Mendeklarasikan array bilangan bertipe integer
- Mengisi elemen array dengan pengulangan
- Menuliskan elemen array dengan pengulangan
=====================================================================*/
import javax.swing.JOptionPane;
public class isiDanCetakArray {
public static void main(String[] args) {
//mendeklarasikan array
int[] bilangan = new int[10]
//mendeklarasikan variabel
int i;
//pencacah pengulangan
int output = "";
//hasil yang akan ditampilkan
Programming Concept
President University
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
Programming Concept
President University
10
4.1. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami karakteristik dan skema for
2. Memahami cara kerja dan pengulaman dengan skema for
3. Bisa menentukan pada kasus apa skema for sebaiknya digunakan
4.2. Kegiatan
1. Mengimplementasikan berbagai kasus dengan skema for
/*=============================================================
File
: deretAritmatika.java
Tanggal
: 17 November 2005
Programmer :
Deskripsi : - Menggunakan pengulangan dengan skema for
- Menyelesaikan kasus deret aritmatika
=============================================================*/
//menggunakan kelas yang sudah ada
Import javax.swing.JoptionPane;
public class deretAritmatika {
public static void main (String args[]) {
//deklarasi variabel
String output;
//hasil yang akan ditampilkan
int sukuawal;
//suku pertama deret
int sukuterkini; //suku terkini deret untuk proses pengulangan
int beda;
//beda deret
int nilaiakhir;
//nilai akhir pengulangan
int i;
//pencacah pengulangan
//inisialisasi
output
= "";
sukuawal
= 10;
sukuterkini = sukuawal;
Programming Concept
President University
11
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
beda
nilaiakhir
= 5;
= 10;
12
Petunjuk:
Nama file faktorial.java
Buatlah sebuah program yang bisa menghitung faktorial dari sebuah bilangan
bulat. Masukan adalah bilangan bulat n memberikan hasil n!
Kasus 6: Pangkat
Petunjuk:
Nama file pangkat.java
Buatlah sebuah program yang bisa menghitung pangkat dari sebuah bilangan
bulat. Masukan adalah bilangan bulat a dan bilangan bulat b dan memberikan
hasil ab
Kasus 7: Segitiga Pascal
Petunjuk:
Nama file segitigaPascal.java
Buatlah sebuah program untuk menambilkan N segitiga pascal yang pertama.
Masukan adalah bilangan bulat N dengan syarat 1 N 100
Contoh: masukan adalah N = 5
11
12 1
13 3 1
14 6 41
1 5 10 10 5 1
Kasus 8: Segitiga angka
Petunjuk:
Nama file segitigaAngka.java
Buatlah sebuah program yang dapat menyusun angka berikut
1
21
321
4321
54321
Kasus 9: Kombinasi
Petunjuk:
Nama file kombinasi.java
Buatlah sebuah program yang dapat menghitung kombinasi
Rumus aCb = a! / (a! * (1-b)!)
Kasus 10: Anak Ayam
Petunjuk:
Nama file anakAyam.java
Buatlah sebuah program yang akan menerima sebuah bilangan integer dan
memberikan pesan jumlah anak ayam yang mati satu persatu
Contoh
10 anak ayam, mati satu tinggal 9 anak anak ayam
9 anak ayam, mati satu tinggal 8 anak anak ayam
...
2 anak ayam, mati satu tinggal 1 anak anak ayam
1 anak ayam, mati satu mat isemua
Programming Concept
President University
13
5.2. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami karakteristik skema repeat-until
2. Memahami karakteristik skema while-do
3. Memahami cara kerja pengulangan dengan skema repeat-until
4. Memahami cara kerja pengulangan dengan skema while-do
5. Bisa menentukan pada kasus apa masing-masing skema cocok dipakai
5.3. Kegiatan
1. Menyelesaikan berbagai kasus dengan skema pengulangan yang tepat
/*===================================================================
File
: SumBil1.java
Tanggal
: 06 Oktober 2005
Programmer: Ivan Michael Siregar
Deskripsi : - mencetak bilangan 1 hingga n
- pengulangan dengan skema for
=====================================================================*/
import javax.swing.JOptionPane;
public class SumBil1 {
public static void main(String[] args) {
//mendeklarasikan variabel
String ns;
//bilangan dalam string
String output = ""; //output dalam string
int n;
//bilangan dalam integer
int i;
//pencacah sebagai kendali pengulangan
//menerima masukan
Programming Concept
President University
14
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
ns = JOptionPane.showInputDialog(null,"Bilangan: ");
//melakukan konversi
n = Integer.parseInt(ns);
//proses pengulangan
for (i=1;i<=n;i++) {
output += " "+ i;
}
//menampilkan hasil
JOptionPane.showMessageDialog(null,output,"Cetak 1 FOR",JOptionPane.INFORMATION_MESSAGE);
"+ns+" dengan
//terminasi program
System.exit(0);
}
} //end SumBil1
Source Code 1.
SumBil versi 1
Bila program tersebut dijalankan akan memberikan hasil seperti gambar berikut:
Gambar 1.
SumBil versi 1
Solusi 2
Berikut adalah implementasi Java untuk solusi versi 2. Perhatikan transformasi
notasi dari algoritma ke dalam Java untuk skema while-do.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
/*===================================================================
File
: SumBil2.java
Tanggal
: 06 Oktober 2005
Programmer : Ivan Michael Siregar
Deskripsi : - mencetak bilangan 1 hingga n
- pengulangan dengan skema while-do
=====================================================================*/
import javax.swing.JOptionPane;
public class SumBil2 {
public static void main(String[] args){
//mendeklarasikan variabel
String ns;
String output = "";
Programming Concept
President University
15
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
36
37
38
39
40
41
42
Source Code 2.
SumBil versi 2
Bila program tersebut dijalankan akan memberikan hasil yang sama persis seperti
program versi 1.
Programming Concept
President University
16
Solusi 3
Berikut adalah implementasi Java untuk solusi versi 2. Perhatikan transformasi
notasi dari algoritma ke dalam Java untuk skema repeat-until.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
36
37
38
39
/*===================================================================
File
: SumBil3.java
Tanggal
: 06 Oktober 2005
Programmer : Ivan Michael Siregar
Deskripsi : - mencetak bilangan 1 hingga n
- pengulangan dengan skema repeat-until
=====================================================================*/
import javax.swing.JOptionPane;
public class SumBil3 {
public static void main(String[] args){
//mendeklarasikan variabel
String ns;
//bilangan dalam string String
output = ""; //output dalam string
int n;
//bilangan dalam integer
int i=1;
//pencacah sebagai kendali pengulangan
//menerima masukan
ns = JOptionPane.showInputDialog(null,"Bilangan: ");
//melakukan konversi
n = Integer.parseInt(ns);
//proses pengulangan
do {
output += " "+ i;
i++;
}
while (i<=n);
//menampilkan hasil
JOptionPane.showMessageDialog(null,output,"Cetak 1 - "+ns+" dengan
REPEAT-UNTIL",JOptionPane.INFORMATION_MESSAGE);
//terminasi program
System.exit(0);
}
} //end SumBil3
Source Code 3.
SumBil versi 3
/*===================================================================
File
: Mystery.java
Tanggal
: 06 Oktober 2005
Programmer : Ivan Michael Siregar
Programming Concept
President University
17
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
=====================================================================*/
public class Mystery {
public static void main(String[] args){
int y, x = 1, total = 0;
while (x <= 10) {
y = x * x;
System.out.println(y);
total += y;
++x;
}
System.out.println("Total adalah " +total);
}
} //end Mystery
Programming Concept
President University
18
Pada modul 3 praktikum ini, mahasiswa belajar membuat method dan kemudian
memanggilnya. Method adalah bagian program yang digunakan untuk mengakses
komponen objek atau untuk melaksanakan instruksi khusus tertentu.
6.2. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami karakteristik method
2. Memahami cara pendefinisian method
3. Memahami cara kerja method
4. Mampu menggunakan method
6.3. Kegiatan
1. Menggunakan method yang sudah ada.
2. Membuat method baru dan membandingkan hasilnya dengan method yang
sudah. ada.
3. Membuat method dengan berbagai tipe parameter.
4. Mengkombinasikan penggunaan method dan struktur analisa kasus dan
pengulangan.
/*===================================================================
File
: IsAnA_call.java
Tanggal
: 18 September 2005
Programmer: Ivan Michael Siregar
Deskripsi : - Mendeklarasikan programmer-defined method
- Menggunakan method yang telah dibuat
- Hanya bentuk function
=====================================================================*/
import javax.swing.*;
public class IsAnA_call {
public static void main(String[] args) {
//mendeklarasikan variabel
Programming Concept
President University
19
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
function fact(n:intger)integer
{menerima sebuah bilangan integer, menghitung nilai faktorialnya dengan
rumus n! = n * (n-1) * (n-2) ... dan mengembalikan hasilnya
}
DEKLARASI LOKAL
{kelompok variabel}
total : integer
i
: integer
{hasil faktorial}
{pencacah pengulangan}
DESKRIPSI LOKAL
total 1
for (in downto 1) do
total total * i
end for
return (total)
Algoritma Fact_call
{memasukkan nilai sebuah bilangan, kemudian menghitung faktorial bilangan
tersebut dengan memanggil fungsi fact dan menuliskan hasilnya}
DEKLARASI
Programming Concept
President University
20
25
26
27
28
29
30
31
32
33
34
{kelompok variabel}
bilangan : integer
{masukan}
hasil
: integer
{hasil faktorial}
{kelompok fungsi}
function fact(n:intger)integer
DESKRIPSI
read (bilangan)
hasil fact(bilangan)
write (hasil)
function faktorial(n:integer)integer
{menerima sebuah bilangan integer, menghitung nilai faktorialnya dengan
rumus n! = n * (n-1) * (n-2) ... dan mengembalikan hasilnya}
function kombinatorial(n,p:integer)integer
{menerima dua bilangan integer, menghitung nilai kombinasinya dengan
rumus nCp = n! / [(n-p)! * p!]
dan mengembalikan hasilnya. Pada saat
penghitungan faktorial maka dilakukan pemanggilan fungci fact}
Programming Concept
President University
21
Programming Concept
President University
22
MODUL 7: REKURSI
Selesaikan masalahmu dengan cara memecahnya
menjadi bagian-bagian yang kecil dan sederhana.
belajar
membuat
program
yang
7.1. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami cara kerja rekrusi
2. Memahami cara membuat rekursi
3. Mampu menentukan kapan sebaiknya menggunakan rekursi
7.2. Kegiatan
1. Menyelesaikan berbagai masalah dengan rekursi
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*===================================================================
File
: rekursi.java
Tanggal
: 18 September 2005
Programmer: Ivan Michael Siregar
Deskripsi : - Rekursi bisa menggantikan pengulangan
- Dengan rekursi sebuah fungsi akan memanggil dirinya sendiri
=====================================================================*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
//Rekursi.java
public class rekursi {
public static long Faktorial(int n) {
if ((n != 1) && (n!=0)) {
return (n*Faktorial(n-1));
}
else {
return (1);
}
}
public static void main (String args[]) {
BufferedReader
in
=
new
InputStreamReader(System.in));
Programming Concept
President University
BufferedReader(new
int n;
23
29
30
31
32
33
34
35
36
37
38
try {
System.out.print("Masukan sebuah integer ");
n
= Integer.parseInt(in.readLine());
System.out.println("n! = "+Faktorial(n));
}
catch (Exception e) {
System.err.println("Ada kesalahan dalam penginputan");
}
}
}
Kasus 2: Times
Petunjuk:
Nama file recTimes.java
Buatlah implementasi untuk menyelesaikan kasus perkalian dua bilangan a dan
b, namun tanpa menggunakan operator perkalian (x), tetapi cukup menggunakan
operator penjumlahan (+)
Contoh: a x b = a + a + a + ... + a (banyaknya a adalah sebanyak b)
Kasus 3: Power1
Petunjuk:
Nama file recPower1.java
Buatlah implementasi untuk menyelesaikan kasus perpangkatan dua bilangan a
dan b, namun tanpa menggunakan operator pangkat (sqr), tetapi cukup
menggunakan operator perkalian (x)
Contoh: ab = a x a x a x ... x a (banyaknya a adalah sebanyak b)
Kasus 3: Power2
Petunjuk:
Nama file recPower2.java
Buatlah implementasi untuk menyelesaikan kasus perpangkatan dua bilangan a
dan b, namun tanpa menggunakan operator pangkat (sql) dan perkalian (x),
tetapi cukup menggunakan operator penjumlahan (+). Gunakan fungsi recTimes
untuk menyelesaikan masalah tersebut (rekursi pada rekursi)
Programming Concept
President University
24
MODUL 8: SEARCHING
Selesaikan masalahmu dengan cara memecahnya
menjadi bagian-bagian yang kecil dan sederhana.
8.1. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami cara kerja berbagai algoritma searching
2. Memahami kelebihan dan kekurangan berbagai algoritma searching
3. Mampu menggunakan berbagai algoritma searching
8.2. Kegiatan
1. Mengimplementasikan algoritma sequential search dan binary search
Programming Concept
President University
25
MODUL 9: SORTING
Selesaikan masalahmu dengan cara memecahnya
menjadi bagian-bagian yang kecil dan sederhana.
Pada modul 8 praktikum ini, mahasiswa belajar melakukan pengurutan data. Data
bisa terdapat pada array atau pada file tertentu. Algoritma sorting sangat kaya akan
solusi. Solusi yang umum digunakan adalah Bubble Sort, Selection Sort, dan
Insertion Sort.
9.2. Tujuan
Tujuan dari bab tersebut adalah:
1. Memahami cara kerja berbagai algoritma sorting
2. Memahami kelebihan dan kekurangan berbagai algoritma sorting
3. Mampu menggunakan berbagai algoritma sorting
9.3. Kegiatan
1. Mengimplementasikan berbagai algoritma sorting yang umum
/*===================================================================
File
: bubbleSort.java
Tanggal
: 18 September 2005
Programmer: Ivan Michael Siregar
Deskripsi : - Mengurutkan elemen matriks dengan bubble sort
- Bubble sort adalah teknik pengurutan yang paling sederhana
- Prinsipnya sesuai dengan namanya (bubble+=gelembung)
yaitu memindahkan nilai yang paling kecil (ringan) ke
urutan pertama
- Buble sort memiliki kelemahan, karena selalu melakukan
pertukaran sehingga membuat proses menjadi lebih lambat
=====================================================================*/
import java.io.BufferedReader;
import java.io.InputStreamReader;
//Bubble.java
public class bubbleSort{
//Banyak element array integer
final static int Nmax= 10;
public static void Bubble_Ascending(int b[]) {
int temp =0;
Programming Concept
President University
26
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
Programming Concept
President University
27