Algoritma 1 PDF
Algoritma 1 PDF
Disusun oleh:
ADRI GABRIEL SOOAI,MT.
KATA PENGANTAR
Panduan praktikum Algoritma dan Pemrograman I ini disusun untuk membantu para
mahasisiswa memantapkan pengetahuan dan keterampilan dalam hal pemrograman. Bahasa
pemrograman yang dipakai dalam praktikum ini adalah JAVA. Untuk lebih memudahkan dalam
berbagai latihan, hendaknya para mahasiswa memiliki buku text atau buku panduan
pemrograman JAVA yang banyak terdapat pada Toko Buku. Beberapa judul yang dapat
dijadikan acuan terdapat pada DAFTAR PUSTAKA di akhir panduan praktikum ini.
Panduan praktikum ini disusun untuk 8(delapan) kali pertemuan, setiap pertemuan terdiri
dari 3(tiga) bagian, yaitu Tugas Pendahuluan, Latihan Praktikum, dan Tugas Praktikum. Tugas
Pendahuluan dan Tugas Praktikum harus dikumpulkan sebelum memasuki praktikum.
Lulus atau tidaknya mahasiswa dalam mengikuti praktikum ini ditentukan oleh nilai
Tugas Pendahuluan, Latihan Praktikum, Tugas Praktikum dan Ujian Praktikum. Nilai praktikum
ini sangat berpengaruh pada Nilai Kuliah Algoritma & Pemrograman I, jika mahasiswa tidak
lulus Praktikum, maka secara otomatis juga dinyatakan tidak lulus Mata Kuliah Algoritma &
Pemrograman I.
Bagi mahasiswa yang tidak memiliki komputer di rumah untuk berlatih, tidak perlu
berkecil hati, sebab SEMUA BAHASA PEMROGRAMAN KOMPUTER DAPAT
DILATIH TANPA MENGGUNAKAN KOMPUTER, anda hanya membutuhkan lembaran
kertas putih dan pena / pensil, kemudian mulailah menyalin contoh-contoh program yang ada.
Selamat Berlatih.
DAFTAR ISI
KATA PENGANTAR .................................................................................................................. 2
DAFTAR ISI................................................................................................................................. 3
PERTEMUAN I VARIABEL....................................................................................................... 4
TUGAS PENDAHULUAN I VARIABEL .............................................................................. 5
LATIHAN PRAKTIMUM I VARIABEL................................................................................ 5
TUGAS PRAKTIKUM I VARIABEL..................................................................................... 6
PERTEMUAN II INPUT DARI KEYBOARD............................................................................ 8
TUGAS PENDAHULUAN II INPUT DARI KEYBOARD.................................................. 10
LATIHAN PRAKTIMUM II INPUT DARI KEYBOARD................................................... 10
TUGAS PRAKTIKUM II INPUT DARI KEYBOARD ........................................................ 12
PERTEMUAN III OPERASI STRING ...................................................................................... 13
TUGAS PENDAHULUAN III OPERASI STRING.............................................................. 13
LATIHAN PRAKTIKUM III OPERASI STRING................................................................ 13
TUGAS PRAKTIKUM III OPERASI STRING .................................................................... 15
PERTEMUAN IV PERCABANGAN IF & CASE .................................................................... 17
TUGAS PENDAHULUAN IV PENCABANGAN IF & CASE............................................ 19
LATIHAN PRAKTIKUM IV PENCABANGAN IF & CASE.............................................. 20
TUGAS PRAKTIKUM IV PENCABANGAN IF & CASE .................................................. 23
PERTEMUAN V PENGULANGAN / LOOP ........................................................................... 23
TUGAS PENDAHULUAN V PENGULANGAN / LOOP ................................................... 24
LATIHAN PRAKTIKUM V PENGULANGAN / LOOP ..................................................... 25
TUGAS PRAKTIKUM V PENGULANGAN ....................................................................... 27
PERTEMUAN VI ARRAY........................................................................................................ 28
TUGAS PENDAHULUAN VI ARRAY................................................................................ 29
LATIHAN PRAKTIKUM VI ARRAY.................................................................................. 29
TUGAS PRAKTIKUM VI ARRAY ...................................................................................... 32
PERTEMUAN VII FUNGSI & PROCEDURE ......................................................................... 33
TUGAS PENDAHULUAN VII FUNGSI & PROCEDURE ................................................. 34
LATIHAN PRAKTIMUM VII FUNGSI & PROCEDURE .................................................. 34
TUGAS PRAKTIKUM VII FUNGSI & PROCEDURE........................................................ 38
PERTEMUAN VIII SORTING & SEARCHING...................................................................... 39
TUGAS PENDAHULUAN VIII SORTING & SEARCHING.............................................. 40
LATIHAN PRAKTIKUM VIII SORTING & SEARCHING................................................ 40
TUGAS PRAKTIKUM VIII SORTING & SEARCHING .................................................... 42
UJIAN PRAKTIKUM ................................................................................................................ 43
DAFTAR PUSTAKA ................................................................................................................. 44
PERTEMUAN I VARIABEL
Variabel adalah suatu tempat dalam memory computer yang digunakan untuk menampung data.
Data yang ditampung dalam variable memiliki berbagai Tipe. Tipe Data dalam Bahasa
Pemrograman JAVA antara lain:
Di dalam bahasa pemrograman JAVA, sebuah variable mempunyai nama, tipe dan harga.
Dalam deklarasi variable setidaknya dibutuhkan nama dan tipe.
Penulisan program menggunakan JAVA bersifat case sensitive, artinya terdapat perbedaan
antara huruf besar dan kecil, sebagai contoh jika sebuah variable diberi nama X maka variable
lain yang juga bernama x akan dibedakan, misal X = 10 dan x = 5, untuk itu dibutuhkan
ketelitian dalam penulisan. Jika pada penulisan variable pertama sudah menggunakan huruf
besar maka gunakan terus huruf besar untuk variable yang sama, demikian juga sebaliknya.
Menulis sebuah program dalam bahasa pemrograman JAVA dapat menggunakan berbagai Text
Editor antara lain Notepad dan Wordpad (dalam Sistem Operasi Windows) atau KWord, Vi
(dalam Sistem Operasi LINUX). Editor lainnya yang dilengkapi dengan fasilitas kompilasi
antara lain: JCreator, Netbeans, Eclipse.
Sebelum mulai membuat program menggunakan JAVA, anda membutuhkan JAVA System
Development Kit, tanpa JAVA SDK, anda tidak akan dapat melakukan kompilasi / menjalankan
program aplikasi yang anda buat menggunakan JAVA pada komputer.
JAVA SDK dapat anda download dari situs dengan URL / Uniform Resorce Locator
http://www.sun.com/java/download
Dalam penulisan program menggunakan JAVA, anda dapat memberikan catatan pada baris
program untuk memudahkan menelusuri alur program, pemberian catatan pada badan program
dilakukan dengan memberikan tanda // atau /* diakhiri */.
Misal:
// --------- ini adalah awal program
/*
program ini dibuat oleh
frida lidwina
*/
Contoh Program 1. BelajarJAVA.java
import java.io.*;
Panduan Praktikum Algoritma & Pemrograman I
Teknik Informatika Universitas Katolik Widya Mandira
}
}
}
Latih 6. simpan dengan nama OperatorBit.java
Latih
4.
simpan
dengan
OperatorAritmetika.java
public class OperatorAritmetika {
public static void main(String[] args) {
System.out.println("1 + 2 * 3 = " +
(1 + 2 * 3));
System.out.println("13 % 5 = " +
(13 % 5));
System.out.println("13 % 5.2 = " +
(13 % 5.2));
System.out.println("13 / 5 = " +
(13 / 5));
System.out.println("13 / 5.2 = " +
(13 / 5.2));
}
}
nama
Latih
5.
simpan
OepratorPenambahan.java
nama
dengan
1. Tulislah program dalam bahasa pemrograman JAVA untuk semua rumus matematika di
bawah ini:
Luas_Segi_4 = P x L
Luas_Kubus= S x S
Luas_Segi_3 = x A x T
Luas_Trapesium = (A + At) x T
Vol_Kotak = P x L x T
Vol_Kubus = S x S x S
Vol_Prisma_Segi3 = x A x T x P
Vol_Trapesium = (A + At) x T x P
Kel_Lingkaran = 2 x Pi x R
Luas_Lingkaran = Pi x R x R
Vol_Tabung = Pi x R x R x P
Kel_JajaranGenjang = 2 x (A + B)
Luas_JajaranGenjang = A x B
Kel_BelahKetupat = 4 x A
Luas_ BelahKetupat = A x T
Kel_Segi3_sembarang = A + B + C
Luas_Segi3_Sembarang = x C x T
Kel_Layang2 = A + B + C + D
Kel_Segi_6_Beraturan = 6 x A
baca disiapkan sebagai variable yang akan menampung semua Stream / Ketikkan yang akan
dimasukkan dari keyboard. Setiap data yang dimasukkan menggunakan Stream akan bertipe
data String, untuk itu khusus bagi data yang seharusnya bertipe Interger, Float atau Double harus
dikonversi dari tipe String ke angka menggunakan masing-masing fungsi konversi yaitu
ParseInt, ParseFloat dan ParseDouble.
JAVA mengharuskan anda menggunakan Error Trap / Perangkap kesalahan, untuk mencegah
kesalahan pengisian data yang tidak sesuai dengan Tipe, misal anda seharusnya mengisi data
bertipe Integer tetapi anda mengisi dengan data bertipe String: diminta memasukkan umur
berupa angka 17, tetapi anda memasukkan 17 Tahun. Untuk itu Error Trap yang harus
digunakan adalah try..catch, jadi sebelum perintah membaca data dari keyboard, awali dengan
perintah
try{
.
Proses input dari keyboard
..
akhiri dengan perintah
}catch(Exception e){}.
Untuk mudahnya perhatikan contoh berikut ini:
Contoh 2 MemasukkanData.java
import java.io.BufferedReader;
import java.io.InputStreamReader;
public class MasukkanData{
Komponen stream apa saja yang digunakan untuk proses membaca data?
Bagaimana cara mendefinisiakan variable baca?
Apa fungsi Error Trap?
Tuliskan perintah Error Trap?
Apa saja fungsi konversi dari String ke angka
10
11
12
13
System.out.println("Isi: " +
sbuf.toString());
System.out.println("Kapasitas: " +
sbuf.capacity());
System.out.println("Panjang: " +
sbuf.length());
sbuf.setLength(7);
System.out.println("Isi: " +
sbuf.toString());
System.out.println("Kapasitas: " +
sbuf.capacity());
System.out.println("Panjang: " +
sbuf.length());
}
}
public class StrInsert {
public static void main(String[] args) {
StringBuffer sbuf =
new StringBuffer("ABCDEFGH" );
sbuf.insert(3, "123");
System.out.println("Isi sbuf: ");
System.out.println(sbuf.toString());
}
}
public class StrAppend {
public static void main(String[] args) {
StringBuffer sbuf = new StringBuffer(
"Baris 1\n" );
sbuf.append(true);
sbuf.append('\n');
}
}
import java.util.StringTokenizer;
public class PrintToken {
public static void main(String[] args) {
String puisi =
"Anginpun menyapa\nSelamat Pagi\n" +
"diwarnai kehangatan sinar mentari";
StringTokenizer st =
new StringTokenizer(puisi);
while(st.hasMoreTokens())
System.out.println(st.nextToken());
}
sbuf.append((double) 76.8999999);
sbuf.append('\n');
}
import java.util.StringTokenizer;
sbuf.append((float) 76.8999999);
sbuf.append('\n');
System.out.println("Isi sbuf: ");
System.out.println(sbuf.toString());
}
StringTokenizer st =
new StringTokenizer(info, "|");
while(st.hasMoreTokens())
System.out.println(st.nextToken());
}
public class StrBuf {
public static void main(String[] args) {
StringBuffer sbuf = new StringBuffer(25);
}
}
System.out.println("Isi: " +
sbuf.toString());
System.out.println("Kapasitas: " +
sbuf.capacity());
System.out.println("Panjang: " +
sbuf.length());
sbuf.append("Selamat ");
Panduan Praktikum Algoritma & Pemrograman I
Teknik Informatika Universitas Katolik Widya Mandira
14
int hasil;
boolean logika;
System.out.println(
"Karakter dengan indeks 4: " +
st.charAt(4));
hasil = st.compareTo("YOGYA");
System.out.println(hasil);
System.out.println("compareTo");
hasil = st.compareTo("yogya");
System.out.println(hasil);
hasil = st.compareTo("Yogya");
System.out.println(hasil);
System.out.println("Posisi 12 : " +
st.indexOf("12"));
System.out.println("Jumlah karakter: " +
st.length());
System.out.println(
"equals dan equalsIgnoreCase");
logika = st.equals("yogya");
System.out.println(logika);
System.out.println("substring(2,5): " +
st.substring(2,5));
}
logika = st.equalsIgnoreCase("yogya");
System.out.println(logika);
}
public class CompareStr {
public static void main(String[] args) {
String st = "Yogya";
}
}
15
16
17
untuk kondisi terakhir yaitu jika tidak semuanya, tidak perlu diberi if. Untuk tipe data angka
yaitu integer, float atau double maka operator pembanding pada IF menggunakan tanda
>
lebih besar
<
lebih kecil
>=
lebih besar sama dengan
<=
lebih kecil dama dengan
==
sama dengan
!=
tidak sama dengan
import java.io.*;
public class pencabangan{
public static void main(String[] args){
double nilai = 0.0;
BufferedReader baca = new BufferedReader(new InputStreamReader(System.in));
try{
nilai = Double.parseDouble(baca.readLine());
}catch(Exception e){}
if(nilai >= 80 ){
System.out.println("A");
}else if(nilai >= 70){
System.out.println("B");
}else if(nilai >= 60){
System.out.println("C");
}else if(nilai >= 50){
System.out.println("D");
}else{
System.out.println("E");
}
}
}
operator AND
operator OR
18
Pencabangan juga dapat menggunakan Switch Case, setiap pernyataan harus diakhiri dengan
kata kunci break, hal ini untuk mengehentikan proses setelah keadaan yang diinginkan
ditemukan / tercapai, perhatikan contoh berikut ini :
import java.io.*;
public class pencabangan{
public static void main(String[] args){
int hari = 0;
BufferedReader baca = new BufferedReader(new
InputStreamReader(System.in));
try{
hari = Integer.parseInt(baca.readLine());
}catch(Exception e){}
switch(hari){
case 1: {
case 2: {
case 3: {
case 4: {
case 5: {
case 6: {
case 7: {
default : {
}
System.out.println("Minggu"); break; }
System.out.println("Senin"); break; }
System.out.println("Selasa"); break; }
System.out.println("Rabu"); break; }
System.out.println("Kamis"); break; }
System.out.println("Jumat"); break; }
System.out.println("Sabtu"); break; }
System.out.println("-----"); break; }
}
}
19
// proses
System.out.println ("hari selasa");
}
else if(hari == 3){
// proses
System.out.println("nilai variabel ketemu : " +
ketemu);
// proses
System.out.println ("hari rabu");
}
}
}
}
else if(hari == 4){
class If2{
// proses
System.out.println ("hari kamis");
}
else if(hari == 5){
// proses
System.out.println("(if) nilai variabel ketemu :" +
ketemu);
// proses
System.out.println ("hari jumat");
}
else if(hari == 6){
}
else{
// proses
System.out.println ("hari sabtu");
// proses
System.out.println("(else) nilai variabel ketemu :"
+ ketemu);
}
else if(hari == 7){
}
}
}
// proses
System.out.println ("hari minggu");
}
else{
class Ifn{
public static void main(String[] args){
int hari = 5;
// proses
System.out.println("tidak ada hari ke : " + hari);
}
if(hari == 1){
// proses
System.out.println("hari senin");
}
}
import javax.swing.*;
Panduan Praktikum Algoritma & Pemrograman I
Teknik Informatika Universitas Katolik Widya Mandira
20
21
22
23
i = i + 1;
} while((i < 2) && (ketemu != true));
}
}
class While{
for(i=2;i<=fak;i++){
hasil = hasil * i;
System.out.println("nilai variabel penghitung : "
+ i);
}
System.out.println("hasil faktorial : " + hasil);
}
}
class Repeat{
public static void main(String[] args) {
// inisialisasi
int i = 1;
boolean ketemu = false;
do{
// proses
System.out.println("nilai variabel i : " + i + ", nilai
variabel ketemu : " + ketemu);
// iterasi
24
labelWhile:
while (i < 5) {
System.out.print(i + " : ");
j = 0;
while (j < 5){
if (i + j == 5) {
i++;
System.out.println("");
continue labelWhile;
}
selesai:
while (i < 3) {
j = 0;
while (j < 5) {
if (j == 3)
break selesai;
System.out.println("");
i++;
}
}
}
System.out.println("i = " + i +
" j = " + j);
j++;
}
i++;
}
}
}
System.out.println(bil);
public class BreakBersarang {
public static void main(String[] args) {
int i = 0, j = 0;
while (i < 3) {
j = 0;
while (j < 5) {
if (j == 3)
break;
}
}
}
public class EksekusiSekali {
public static void main(String[] args) {
int bilangan = 10;
do {
System.out.println("Java");
System.out.println("i = " + i +
" j = " + j);
j++;
bilangan--;
} while (bilangan <= 8);
}
}
i++;
}
}
}
25
26
PERTEMUAN VI ARRAY
Array atau Larik atau Matriks, adalah variabel yang berfungsi menampung data dalam
jumlah yang banyak, misal dibutuhkan sebuah variabel untuk menampung semua nama hari
dalam seminggu maka perintahnya adalah:
String[] NamaHari = {Minggu,Senin,Selasa,Rabu,Kamis,Jumat,Sabtu };
Setiap data yang terdapat dalam variabel array NamaHari memiliki index atau nomor urut,
nomor urut nya dimulai dari angka nol [0]
NamaHari[0]
NamaHari[1]
NamaHari[2]
NamaHari[3]
NamaHari[4]
NamaHari[5]
NamaHari[6]
bagian pertama pendeklarasian variabel array, bagian kedua mengisi array, bagian ketiga
menampilkan isi array ke layar. Array juga dapat diisi melalui input keyboard dan menggunakan
pengulangan / looping untuk mengisi dan menampilkannya.
import java.io.*;
public class ContohArray4 {
public static void main(String[] args) {
Panduan Praktikum Algoritma & Pemrograman I
Teknik Informatika Universitas Katolik Widya Mandira
28
29
30
31
32
sifat = static
tipe = double
nama = cel_fah singkatan dari celcius ke fahrenheit
tipe data parameter = double
variabel = c
variabel pengirim hasil = hasil
Sifat fungsi lainnya dapat anda lihat pada buku panduan JAVA pada daftar lampiran. fungsi
yang tidak memiliki variabel pengirim hasil disebut dengan procedure, sintaksnya sebagai
berikut:
[sifat] [nama] ()
{
}
static void hitung(){
double jumlah;
int a = 10;
double b = 10.15;
jumlah = a + b ;
System.out.print(jumlah);
}
33
Dalam latihan anda akan melihat contoh pemanfaatan fungsi untuk menghitung nilai, berbagai
perintah dari latihan sebelumnya dimasukkan dalam contoh program ini seperti input, output,
pengulangan, pencabangan.
34
/**
* Adri Gabriel Sooai,MT
* Selasa 14 Oktober 2008 21:44 gmt+8
* Editor : J Creator V3
* Topik Membuat Menu Sederhana menggunakan while
*/
import java.io.*;
public class while_fungsi
{
public static void main(String[] args)
{
double n = 0;
String lagi ="Y";
while (lagi.equals("Y"))
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
try
35
/**
* Adri Gabriel Sooai,MT
* Selasa 14 Oktober 2008 22:57 gmt+8
* Editor : J Creator V3
* Topik Membuat Menu Sederhana menggunakan do_while
*/
import java.io.*;
public class do_while_fungsi{
public static void main(String[] args){
int n = 0;
String lagi ="y";
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
do{
System.out.println("+--Penjualan Tiket UNWIRA AIRLINES-+");
System.out.println("| Airbus A 320 / B 737-900 ER |");
System.out.println("| 1.
Kupang - SoE
|");
System.out.println("| 2.
Kupang - Atambua
|");
System.out.println("| 3.
Kupang - Kefa
|");
System.out.println("| 0.
Mendarat
|");
System.out.println("+----------------------------------+");
try {
System.out.print("Pilih : "); n = Integer.parseInt(in.readLine());
}catch (Exception e) { }
switch (n) {
case 1 : System.out.println(satu(n)) ;break;
36
// ---------- Berbagai fungsi yang akan dipanggil dari switch ... case -----static String satu(int nn)
{
String hasil="";
hasil = "Anda memilih rute penerbangan "+nn+" singgah di camplong";
return hasil;
}
static String dua(int nn)
{
String hasil="";
hasil = "Anda memilih rute penerbangan "+nn+" singgah di lurasik";
return hasil;
}
static String tiga(int nn)
{
String hasil="";
hasil = "Anda memilih rute penerbangan "+nn+" sorry gak ada pesawat";
return hasil;
}
static String nol(int nn)
{
String hasil="";
hasil = "Anda memilih rute penerbangan "+nn+" mendarat di pulau kera";
return hasil;
}
static String kacau(int nn)
{
String hasil="";
hasil = "Anda memilih rute penerbangan "+nn+" bisa baca gak sih?";
return hasil;
}
}//end class
37
Untuk harga silahkan tentukan sendiri. Untuk bonus gunakan daftar dibawah ini :
Bonus: Coca Cola, Sprite, Lemon Juice, Ice Tea, Garlic Bread, Fruit Salad, Roast Sosis, Slice
Beef, Croasant Bread, Green Forest Cocolate,
Kurang lebih tampilan program sebgai berikut:
Selamat datang di Pizza Hut
------------Menu -------------1. American Faforite,
2. Cheese Circle,
3. Sosis Circle,
4. Tuna Cheese in between,
5. Coconut Shower
6. Cocolate Shower
7. Delicious Macaroni,
---------------------------------Pilihan anda : _ (misal anda memilih 6, maka akan tampil)
Anda memilih Cocolate Shower
Harga Rp. 65.000,Bonus Green Forest Cocolate
Bonus Lemon Juice
38
0
5
1 2 3 4
4 3 2 1
i+1 i+2 i+3 i+4
Masukkan angka ke 0 = 5
Masukkan angka ke 1 = 4
Masukkan angka ke 2 = 3
Masukkan angka ke 3 = 2
Masukkan angka ke 4 = 1
Angka yang dimasukkan adalah 5 4 3 2 1, akan diurutkan menjadi 1 2 3 4 5
5 4 3 2 1 Apakah 5 lebih besar dari 4 Jika Ya tukar posisi
4 5 3 2 1 Apakah 4 lebih besar dari 3 Jika Ya tukar posisi
3 5 4 2 1 Apakah 3 lebih besar dari 2 Jika Ya tukar posisi
2 5 4 3 1 Apakah 2 lebih besar dari 1 Jika Ya tukar posisi
1 5 4 3 2 Apakah 5 lebih besar dari 5 Jika Ya tukar posisi
1 5 4 3 2 Apakah 5 lebih besar dari 4 Jika Ya tukar posisi
1 4 5 3 2 Apakah 4 lebih besar dari 3 Jika Ya tukar posisi
1 3 5 4 2 Apakah 3 lebih besar dari 2 Jika Ya tukar posisi
1 2 5 4 3 Apakah 5 lebih besar dari 5 Jika Ya tukar posisi
1 2 5 4 3 Apakah 5 lebih besar dari 4 Jika Ya tukar posisi
1 2 4 5 3 Apakah 4 lebih besar dari 3 Jika Ya tukar posisi
1 2 3 5 4 Apakah 5 lebih besar dari 5 Jika Ya tukar posisi
Panduan Praktikum Algoritma & Pemrograman I
Teknik Informatika Universitas Katolik Widya Mandira
39
40
41
42
UJIAN PRAKTIKUM
43
DAFTAR PUSTAKA
44