PROGRAM STUDI TEKNIK INFORMATIKA UNIVERSITAS KATOLIK WIDYA MANDIRA KUPANG 2009
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.
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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:
int integer (bilangan bulat) nilainya (1, 2, 3...dst) float nilai pecahan (3.14159) double nilai pecahan (3.14159) char nilai karakter (a, b, c...) String gabungan berbagai karakter (a..z, A..Z, 0..9, * / + -, ?! <>@#$%&)
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
Disusun Oleh Adri Gabriel Sooai.MT. public class BelajarJAVA { public static void main(String[] args){ // ------- pendefinisian variabel -----------int NIM = 23109001; String NAMA = "Frida Lidwina"; char GOL = 'A'; float BERAT = 40; double TINGGI = 168.5;
// ------- mencetak isi variable -------------System.out.println("Nomor Induk Mahasiswa : "+NIM); System.out.println("Nama Mahasiswa : "+NAMA); System.out.println("Golongan Darah : "+GOL); System.out.println("Berat Badan : "+BERAT); System.out.println("Tinggi Badan : "+TINGGI); } }
Disusun Oleh Adri Gabriel Sooai.MT. public static void main(String[] args) { System.out.println("abc\ndef"); System.out.println("abc\tdef"); System.out.println("\"Halo\""); } } 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)); } } Latih 5. simpan OepratorPenambahan.java dengan nama public class OperatorBit { public static void main(String[] args) { System.out.println("9 & 10 = " + (9 & 10)); System.out.println("29 & 7 = " + (29 & 7)); System.out.println("9 | 10 = " + (9 | 10)); System.out.println("29 | 7 = " + (29 | 7)); System.out.println("~185 = " + (~185)); System.out.println("-29 & 7 = " + (-29 & 7)); System.out.println("29 << 1 = " + (29 << 1)); System.out.println("29 >> 1 = " + (29 >> 1)); System.out.println("-29 >> 1 = " + (-29 >> 1)); System.out.println("29 >>> 1 = " + (29 >>> 1)); System.out.println("-29 >>> 1 = " + (-29 >>> 1)); } } Latih 7. simpan dengan nama TypeCast.java public class TypeCast { public static void main(String[] args) { int i = 65; char hasil = (char) i; System.out.println("Hasil: " + hasil); } } System.out.println("Contoh 4:"); System.out.println("x = " + x + " y = " + y); } }
nama
public class OperatorPenambahan { public static void main(String[] args) { int x, y; x = 5; y = 8 - x++; System.out.println("Contoh 1:"); System.out.println("x = " + x + " y = " + y); x = 5; y = 8 - ++x; System.out.println("Contoh 2:"); System.out.println("x = " + x + " y = " + y); x = 5; y = 8 - x--; System.out.println("Contoh 3:"); System.out.println("x = " + x + " y = " + y); x = 5; y = 8 - --x;
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
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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{
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
Disusun Oleh Adri Gabriel Sooai.MT. public static void main(String[] args){ // ------- pendefinisian stream baca --------BufferedReader baca = new BufferedReader(new InputStreamReader(System.in)); // ------- pendefinisian variabel -----------int NIM = 0; String NAMA = ""; String GOL = ""; float BERAT = 0; double TINGGI = 0.0; // ------- membaca dari keyboard ------------try{ System.out.print("Nomor Induk Mahasiswa : "); NIM = Integer.parseInt(baca.readLine()); System.out.print("Nama Mahasiswa : "); NAMA = baca.readLine(); System.out.print("Golongan Darah : "); GOL = baca.readLine(); System.out.print("Berat Badan : "); BERAT = Float.parseFloat(baca.readLine()); System.out.print("Tinggi Badan : "); TINGGI = Double.parseDouble(baca.readLine()); }catch(Exception e){} // ------- mencetak isi variable -------------System.out.println("------HASIL INPUT KEYBOARD---------"); System.out.println("Nomor Induk Mahasiswa : "+NIM); System.out.println("Nama Mahasiswa : "+NAMA); System.out.println("Golongan Darah : "+GOL); System.out.println("Berat Badan : "+BERAT); System.out.println("Tinggi Badan : "+TINGGI); } } Jika program diatas dijalankan pada computer hasilnya seperti berikut : Nomor Induk Mahasiswa : 23109001 Nama Mahasiswa : FRIDA LIDWINA Golongan Darah : AB Berat Badan : 42 Tinggi Badan : 168.9 ------HASIL INPUT KEYBOARD--------Nomor Induk Mahasiswa : 23109001 Nama Mahasiswa : FRIDA LIDWINA Golongan Darah : AB Berat Badan : 42.0 Tinggi Badan : 168.9 Press any key to continue...
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
10
Disusun Oleh Adri Gabriel Sooai.MT. } } // --------- Model 3 Input dari Keyboard -------------public class masukkan{ public static void main(String args[]){ String nama, pekerjaan, umur; BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); try { System.out.print("Masukkan Nama anda : "); nama = reader.readLine(); System.out.print("Masukkan pekerjaan anda : "); pekerjaan = reader.readLine(); System.out.print("Masukkan umur anda : "); umur = reader.readLine(); System.out.print("Nama anda : "+nama+"\n"); System.out.print("Pekerjaan anda : "+pekerjaan+"\n"); System.out.print("Umur anda : "+umur+"\n"); } catch (IOException e){ e.printStackTrace(); } } } // --------- Model 4 Input dari Keyboard -------------import java.io.BufferedReader; import java.io.DataInputStream; import java.io.IOException; import java.io.InputStreamReader; public class angka{ public static void main(String args[]){ System.out.print("Masukkan nama anda : "); DataInputStream dis = new DataInputStream(System.in); String nama; try { nama = dis.readLine(); System.out.print("Nama anda : "+nama+"\n"); } catch (IOException e){ e.printStackTrace(); } BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); System.out.print("Masukkan pekerjaan anda : "); try { String pekerjaan = reader.readLine(); System.out.print("Pekerjaan anda : "+pekerjaan+"\n"); } catch (IOException e){ e.printStackTrace(); } } }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
11
Disusun Oleh Adri Gabriel Sooai.MT. //------------------ Model 5 memasukkan data dan menghitung -----------import java.io.*; public class Hitung_Rata{ public static void main(String args[]){ float Num1=0, Num2=0, Num3=0, Rata=0; String Nama=""; DataInputStream in = new DataInputStream(System.in); System.out.print("Masukkan Nama Anda : "); try{Nama = in.readLine();} catch (Exception e) {} System.out.print("Masukkan Angka 1 : "); try{Num1 = Integer.parseInt(in.readLine());} catch(Exception e) {} System.out.print("Masukkan Angka 2 : "); try{Num2 = Integer.parseInt(in.readLine());} catch(Exception e) {} System.out.print("Masukkan Angka 3 : "); try{Num3 = Integer.parseInt(in.readLine());} catch(Exception e) {} Rata = (Num1 + Num2 + Num3) / 3; System.out.println("Rata - rata = "+Rata); } }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
12
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
13
Disusun Oleh Adri Gabriel Sooai.MT. byte data[] = new byte[6]; data[0] = 64; data[1] = 65; data[2] = 66; data[3] = 67; data[4] = 68; data[5] = 69; String s1 = "Selamat pagi"; String s2 = new String("Good morning"); String s3 = new String(data); String s4 = new String(data, 2, 3); System.out.println("s1 = " + s1); System.out.println("s2 = " + s2); System.out.println("s3 = " + s3); System.out.println("s4 = " + s4); } } 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'); sbuf.append((double) 76.8999999); sbuf.append('\n'); sbuf.append((float) 76.8999999); sbuf.append('\n'); System.out.println("Isi sbuf: "); System.out.println(sbuf.toString()); } } 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 public class MetodeString { public static void main(String[] args) { String st = " Tes, Tes, tes ... 123 "; System.out.println("toLowerCase: " + st.toLowerCase()); System.out.println("toUpperCase: " + StringTokenizer st = new StringTokenizer(info, "|"); while(st.hasMoreTokens()) System.out.println(st.nextToken()); } sbuf.append("Belajar Java"); 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()); } } 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()); } } import java.util.StringTokenizer; public class PrintToken2 { public static void main(String[] args) { String info = "11245|Ali Mashudi|Akunting|3500000";
14
Disusun Oleh Adri Gabriel Sooai.MT. st.toUpperCase()); System.out.println("tanpa trim: " + '[' + st + ']'); System.out.println("dengan trim: " + '[' + st.trim() + ']'); System.out.println( "Karakter dengan indeks 4: " + st.charAt(4)); System.out.println("Posisi 12 : " + st.indexOf("12")); System.out.println("Jumlah karakter: " + st.length()); System.out.println("substring(2,5): " + st.substring(2,5)); } } public class CompareStr { public static void main(String[] args) { String st = "Yogya"; } } logika = st.equalsIgnoreCase("yogya"); System.out.println(logika); int hasil; boolean logika; System.out.println("compareTo"); hasil = st.compareTo("yogya"); System.out.println(hasil); hasil = st.compareTo("YOGYA"); System.out.println(hasil); hasil = st.compareTo("Yogya"); System.out.println(hasil); System.out.println( "equals dan equalsIgnoreCase"); logika = st.equals("yogya"); System.out.println(logika);
15
Disusun Oleh Adri Gabriel Sooai.MT. System.out.println("sqrt(25) = " + Math.sqrt(25)); System.out.println("pow(25, 0.5) = " + Math.pow(25, 0.5)); } } import java.io.*; public class Lintasan { public static void main(String[] args) throws IOException { BufferedReader dataBaris = new BufferedReader( new InputStreamReader(System.in)); System.out.println( "Menghitung jarak jatuh peluru"); System.out.print("Sudut tembakan: "); String st = dataBaris.readLine(); double derajat = Double.valueOf(st).intValue(); double radian = derajat * Math.PI / 180; System.out.print("Sudut tembakan: "); st = dataBaris.readLine(); double kecepatan = Double.valueOf(st).doubleValue(); double jarak = 2 * Math.pow(kecepatan, 2) * Math.sin(radian) * Math.cos(radian) / 9.8; System.out.println("Peluru jatuh pada jarak: " + jarak); } }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
16
Jika cuaca gerimis, maka siapkan payung Jika cuaca hujan, maka siapkan jas hujan Jika cuaca banjir, maka siapkan sepatu boot Jika cuaca petir, maka jangan keluar rumah Jika tidak semuanya, maka bisa piknik
import java.io.*; public class pencabangan{ public static void main(String[] args){ String cuaca = ""; BufferedReader baca = new BufferedReader(new InputStreamReader(System.in)); try{ cuaca = baca.readLine(); }catch(Exception e){} if(cuaca.equals("gerimis")){ System.out.println("siapkan payung"); }else if(cuaca.equals("hujan")){ System.out.println("siapkan jas hujan"); }else if(cuaca.equals("banjir")){ System.out.println("siapkan perahu"); }else if(cuaca.equals("petir")){ System.out.println("jangan keluar rumah"); }else{ System.out.println("bisa piknik"); Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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"); } } }
jika cuaca hujan dan suhu dingin, maka mendingan tidur jika tidak, maka bisa pesiar
import java.io.*; public class pencabangan{ public static void main(String[] args){ String cuaca = " "; String suhu = " "; BufferedReader baca = new BufferedReader(new InputStreamReader(System.in)); try{ cuaca = baca.readLine(); suhu = baca.readLine(); }catch(Exception e){} Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
18
Disusun Oleh Adri Gabriel Sooai.MT. if(cuaca.equals("hujan") && (suhu.equals("dingin")) ) { System.out.println("mendingan tidur"); } else { System.out.println("bisa pesiar"); } } }
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; }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
19
4. Berikan sebuah contoh pencabangan menggunakan SWITCH CASE yang memiliki kondisi JIKA sebanyak 5 a. (tulis dalam bentuk JIKA .. MAKA ..) b. (tulislah juga programnya dalam JAVA, program tidak boleh mengambil contoh diatas)
20
Disusun Oleh Adri Gabriel Sooai.MT. public class NomorHP{ public static void main(String[] args){ /* ---------- PENJELASAN OPERASI STRING PADA JAVA ----------* index 012345678901 * +62811234567 * banyak 123456789012 * * +62 -> index 0 banyak 3 maka potong x.substring(0,3) * * 811 -> index 3 banyak 6 maka potong x.substring(3,6) * * index 012345678901 * 0811234567 * banyak 123456789012 * * 811 -> index 1 banyak 4 maka potong x.substring(1,4) * */ int y; String x = JOptionPane.showInputDialog(null,"Masukkan No HP"); String a = "+62"; String b = x.substring(0,3); if (a.equals(b)) { y = Integer.parseInt(x.substring(3,6)); } else { y = Integer.parseInt(x.substring(1,4)); } String z = ""; switch (y) { case 811 : z = "Telkomsel";break; case 812 : z = "Telkomsel";break; case 813 : z = "Telkomsel";break; case 852 : z = "Telkomsel AS";break; case 815 : z = "Indosat Mentari";break; case 816 : z = "Indosat Mentari / Matrix";break; case 856 : z = "Indosat IM3";break; case 857 : z = "Indosat IM3";break; case 817 : z = "XL";break; case 818 : z = "XL";break; case 819 : z = "XL";break; case 878 : z = "XL";break; case 888 : z = "Fren";break; default : z = "Belum diketahui operatornya";break; } JOptionPane.showMessageDialog(null,x,"Nomor Yang dimasukkan",0); JOptionPane.showMessageDialog(null,z,"Operatornya",0); } } import javax.swing.*; public class NomorHP2{ public static void main(String[] args){ Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
21
Disusun Oleh Adri Gabriel Sooai.MT. int y=0; String x = JOptionPane.showInputDialog(null,"Masukkan No HP"); // ---------- diamankan menggunakan try catch exception try{ if (x.substring(0,3).equals("+62")) { y = Integer.parseInt(x.substring(3,6)); } else { y = Integer.parseInt(x.substring(1,4)); } }catch(Exception e) { JOptionPane.showMessageDialog(null,"Teks yang dimasukkan adalah : \n"+x,"Kesalahan ",2); } //----------------------------------------------------String z = ""; switch (y) { case 811 : z = "Telkomsel";break; case 812 : z = "Telkomsel";break; case 813 : z = "Telkomsel";break; case 852 : z = "Telkomsel AS";break; case 815 : z = "Indosat Mentari";break; case 816 : z = "Indosat Mentari / Matrix";break; case 856 : z = "Indosat IM3";break; case 857 : z = "Indosat IM3";break; case 817 : z = "XL";break; case 818 : z = "XL";break; case 819 : z = "XL";break; case 878 : z = "XL";break; case 888 : z = "Fren";break; default : z = "Belum diketahui operatornya";break; } JOptionPane.showMessageDialog(null,x,"Nomor Yang dimasukkan",0); JOptionPane.showMessageDialog(null,z,"Operatornya",0); } }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
22
23
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
24
25
Disusun Oleh Adri Gabriel Sooai.MT. while (bilangan <= 20) { System.out.println(bilangan); bilangan += 2; // Menaikkan nilai sebesar 2 } } } public class PernyataanContinue { public static void main(String[] args) { int i = 0; while (i < 5) { if (i == 3){ i++; continue; } System.out.println(i); i++; } } } public class PernyataanFor { public static void main(String[] args) { for (int bil = 1; bil < 13; bil++) System.out.println(bil); } } public class PernyataanWhile { public static void main(String[] args) { int jumlah = 1; while (jumlah <= 5) { System.out.println("Java"); jumlah++; // Menaikkan nilai sebesar 1 } } }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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]
Jadi isi dari Array NamaHari[3] adalah Rabu Perhatikan contoh berikut ini:
public class ContohArray { public static void main(String[] args) { // deklarasi variabel array String[] kota; kota = new String[5]; // Mengisi elemen array kota[0] = "Kupang"; kota[1] = "Larantuka"; kota[2] = "Baa"; kota[3] = "Waingapu"; kota[4] = "Ruteng"; // Menampilkan elemen array System.out.println(kota[0]); System.out.println(kota[1]); System.out.println(kota[2]); System.out.println(kota[3]); System.out.println(kota[4]); } }
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
Disusun Oleh Adri Gabriel Sooai.MT. // Deklarasi Variabel Array String[] kota; kota = new String[5]; int i=0; //pencacah untuk pengulangan // Deklarasi variabel input BufferedReader baca = new BufferedReader(new InputStreamReader(System.in)); // Mengisi elemen array try{ for(i=0;i<=4;i++) { System.out.println("Kota ke "+i+" = "); kota[i] = baca.readLine(); } }catch(Exception e){} // Menampilkan elemen array menggunakan Looping for for(i=0;i<=4;i++){ System.out.println(kota[i]); } } } selain tipe data String, tipe data lainnya juga dapat digunakan pada Array. Misal array bertipe integer sebagai berikut: int[] array = {0, 0, 7}; array juga dapat memiliki dimensi, contoh array berdimensi 2 dan 3 dapat anda lihat pada latihan praktikum.
29
Disusun Oleh Adri Gabriel Sooai.MT. } } } public class ArrayTangga { public static void main(String[] args) { // Mengalokasikan array dimensi dua // yang mengandung 4 baris int[][] sel = new int[4][]; // Mengalokasikan kolom untuk // masing-masing baris int i, j; for (i = 0; i < sel.length; i++) sel[i] = new int[i+1]; // Mengisi masing-masing elemen for (i = 0; i < sel.length; i++) for (j = 0; j < sel[i].length; j++) sel[i][j] = i+j; // Menampilkan isi semua elemen array for (i = 0; i < sel.length; i++) { for (j = 0; j < sel[i].length; j++) System.out.print(sel[i][j] + " "); System.out.println(""); // Pindah baris } } } public class LatihanArray1 { public static void main (String[] args) { int [][] test = {{1, 2}, {2, 3, 4}}; int [][] testJuga = test; System.out.println(testJuga.length); } } public class LatihanArray2 { public static void main(String[] args) { int[] arrayOfInteger; //sangat dianjurkan String arrayOfString[]; //benar namun tidak dianjurkan int[][] matriks2D; //array 2 dimensi String[] array3D[][]; //benar namun tidak dianjurkan arrayOfInteger = new int[10]; /* membuat array dan mengalokasikan memori untuk 10 integer */ arrayOfString = new String[4]; Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
30
Disusun Oleh Adri Gabriel Sooai.MT. /* membuat array dan mengalokasikan memori untuk 4 String */ matriks2D = new int[2][2]; /* membuat array 2 dimensi berukuran 2 x 2 */ array3D = new String[3][][]; /* membuat array 3 dimensi, berukuran 3 x ? x ? */ System.out.println(arrayOfInteger.length); System.out.println(arrayOfString.length); System.out.println(matriks2D.length); System.out.println(array3D.length); } } public class LatihanArray3 { public static void main(String[] args) { String[][][] array3D = {{{"Harso", "Ricto", "Murwoko"}}, {{"James Bond"}, {"Wong Fei Hung"}, {"Pangeran Diponegoro"}}, {{"Hiksma", "Wisnu", "Widiarta"}}}; String[][][] alias = new String[array3D.length][][]; alias[0] = new String[1][];//elemen 1 berisi 1 array of String (A) alias[1] = new String[3][];//elemen 2 berisi 3 array of String (B) alias[2] = new String[1][];//elemen 3 berisi 1 array of String (C) alias[0][0] = new String[3];//elemen 1 dari A berisi 3 String alias[1][0] = new String[1];//elemen 1 dari B berisi 1 String alias[1][1] = new String[1];//elemen 2 dari B berisi 1 String alias[1][2] = new String[1];//elemen 3 dari B berisi 1 String alias[2][0] = new String[3];//elemen 1 dari C berisi 3 String for (int i=0; i<3; i++) { alias[0][0][i] = array3D[0][0][i]; System.out.println(alias[0][0][i]); }//menyalin semua isi array A alias[1][0][0] = array3D[1][0][0];//menyalin isi B pertama alias[1][1][0] = array3D[1][1][0];//menyalin isi B kedua alias[1][2][0] = array3D[1][2][0];//menyalin isi B ketiga System.out.println(alias[1][0][0]); System.out.println(alias[1][1][0]); System.out.println(alias[1][2][0]); for (int i=0; i<3; i++) { alias[2][0][i] = array3D[2][0][i]; System.out.println(alias[2][0][i]); }//menyalin semua isi array C } } Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
31
Disusun Oleh Adri Gabriel Sooai.MT. /* * Mengisi array Integer dan String * oleh : Adri Gabriel Sooai * Rabu 19 September 2007 09:12 AM GMT + 8 */ import java .io.*; public class array { public static void main (String [] args ){ int[] nilai ; String [] nama ; int i = 0; DataInputStream in = new DataInputStream (System .in); nilai = new int[2]; nama = new String [2]; for(i=0;i<=1;i++){ System .out.print ("Nilai ke "+i+" : "); try{nilai [i]= Integer .parseInt (in.readLine ()); }catch (Exception e){} System .out.print ("Nama ke : "); try{nama [i] = in.readLine (); }catch (Exception e){} } for(i=0;i<=1;i++){ System .out.println ("Nama : "+nama [i]+" Nilai : "+nilai [i]); } } }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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); }
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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
Disusun Oleh Adri Gabriel Sooai.MT. // program utama public static void main(String[] args){ double cc=0; int pil=0; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); try{ System.out.print("Derajat : "); cc = Double.parseDouble(in.readLine()); System.out.println("Pilih Konversi 1 Fahrenheit : "); System.out.println("Pilih Konversi 2 Kelvin : "); System.out.println("Pilih Konversi 3 Reamur : "); pil = Integer.parseInt(in.readLine()); }catch(Exception e){ }//end try switch (pil) { case 1: System.out.println(cc + " Derajat C ke F = "+cel_fah(cc)); break; case 2: System.out.println(cc + " Derajat C ke K = "+cel_kel(cc)); break; case 3: System.out.println(cc + " Derajat C ke R = "+cel_rea(cc)); break; default : System.out.println("Salah Pilih"); } }//end main }//end class
/** * 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
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
35
Disusun Oleh Adri Gabriel Sooai.MT. { System.out.print("Masukkan Nilai : "); n = Double.parseDouble(in.readLine()); } catch (Exception e) { } System.out.println("Hasilnya = " + hitung(n)); try { System.out.print("Lagi ? Y / y : "); lagi = in.readLine().toUpperCase(); } catch (Exception e) { } } } static String hitung(double nn) { String hasil=""; if(nn < 40){hasil = "E"; } else if (nn < 59) { hasil = "D"; } else if (nn < 69) { hasil = "C"; } else if (nn < 79) { hasil = "B"; } else { hasil = "A"; } return hasil; } }
/** * 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;
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
36
Disusun Oleh Adri Gabriel Sooai.MT. case 2 : System.out.println(dua(n)) ;break; case 3 : System.out.println(tiga(n)) ;break; case 0 : System.out.println(nol(n)) ;break; default : System.out.println(kacau(n));break; } try {
System.out.print("Lagi ? Y / y : "); lagi = in.readLine(); }catch (Exception e) { } }while (lagi.equals("Y") || lagi.equals("y")); }//end main
// ---------- 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
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
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
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
38
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
Disusun Oleh Adri Gabriel Sooai.MT. 1 2 3 5 4 Apakah 5 lebih besar dari 4 Jika Ya tukar posisi 1 2 3 4 5 hasil yang diinginkan terurut dari kecil ke besar potongan program pengurutannya sbb : for(i=0;i<=3;i++){ for(j=i+1;j<=4;j++){ if(angka[i] > angka[j]){ // proses membandingkan tampung = angka[i]; angka[i] = angka[j]; proses menukar posisi angka[j] = tampung; } } }
40
Disusun Oleh Adri Gabriel Sooai.MT. BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); //-------- masukkan angka pertama ------------try{ System.out.print("Masukkan angka ke "+0+" = "); angka[0] = Integer.parseInt(in.readLine()); }catch(Exception e) {} besar = angka[0]; kecil = angka[0]; // ------ masukkan angka selanjutnya ---------for(i=1;i<=9;i++){ try{ System.out.print("Masukkan angka ke "+i+" = "); angka[i] = Integer.parseInt(in.readLine()); }catch(Exception e) {} // -------- membandingkan ------------if (besar < angka[i]){besar = angka[i];} if (kecil > angka[i]){kecil = angka[i];} }// end for System.out.println("Angka Terbesar adalah = "+besar); System.out.println("Angka Terkecil adalah = "+kecil); }// end besar // ------------------- procedure pengurutan ------------------static void urut(){ int i,j; int tampung; int[] angka; angka = new int[10]; BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); i = 0; // ----------- masukkan angka --------------do{ try{ System.out.print("Masukkan angka ke "+i+" = "); angka[i] = Integer.parseInt(in.readLine()); }catch(Exception e) {} i++; }while(i<=9);// end do ... while // ------ pengurutan, pilih jika pake while maka for dihilangkan--i = 0; j = 1; while(i<=8){ while(j<=9){ if(angka[i] > angka[j]){ tampung = angka[i]; angka[i] = angka[j]; angka[j] = tampung; } // end if j++; }// end while j j=i+1; i++; }//end while i // ------ pengurutan, pilih jika pake for maka while dihilangkan--/* Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
41
Disusun Oleh Adri Gabriel Sooai.MT. for(i=0;i<=8;i++){ for(j=i+1;j<=9;j++){ if(angka[i] > angka[j]){ tampung = angka[i]; angka[i] = angka[j]; angka[j] = tampung; } } } */ // ------------ cetak hasil pengurutan -----------------------i=0; do{ System.out.print(angka[i]+" "); i++; }while(i<=9); System.out.print("\n"); } // end urut }// end class
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
42
UJIAN PRAKTIKUM
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
43
DAFTAR PUSTAKA
Abdul Kadir, Dasar Pemrograman JAVA, Penerbit Andi, Jogjakarta, 2003. Irawan, 7 Jam Belajar Interaktif JAVA untuk orang awam, Maxicom, Palembang, 2007. Miftakul-Cuk-Bunafit,Membuat Aplikasi Penjualan dengan JAVA dan MySQL,Elec Media Komputindo, Jakarta, 2008. Salahudin, C++ dan JAVA, Informatika, Bandung, 2007. Suarga,Ph.D,Algoritma Pemrograman,Penerbit Andi, Jagjakarta, 2006. Wisnu Widiarta, dari PASCAL ke JAVA, Informatika, Bandung, 2007.
Yuniar Supandi.Ir, Sistem Informasi Penjualan dengan JAVA, Elex Media Komputindo, Jakarta, 2008.
Panduan Praktikum Algoritma & Pemrograman I Teknik Informatika Universitas Katolik Widya Mandira
44