Modul Logika dan Algoritma
-
Upload
dedih-stanzah -
Category
Documents
-
view
298 -
download
3
Transcript of Modul Logika dan Algoritma
-
8/15/2019 Modul Logika dan Algoritma
1/65
Labolatorium Komputer
STMIK KHARmISMA KARAWANGJl. Pangkal Perjuangan Km. 1 By Pass Karawang Tlp. (0267) 412480
-
8/15/2019 Modul Logika dan Algoritma
2/65
MODUL PRAKTIKUM
LOGIKA & ALGORITMA
Karawang, 17 Agustus 2012
Mengetahui,
Ketua STMIK Kharisma Ka. Unit Pelaksana Teknis
Rani Amalia, SE., MM M. Asep Sumarna, Drs., MM
NIK. 446 300 021 NIP. 446 396 005
-
8/15/2019 Modul Logika dan Algoritma
3/65
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yang Maha Kuasa, yang telah memberikan rahmat-
Nya sehingga Modul Praktikum Logika & Algoritma untuk mahasiswa/i Jurusan Manajemen
(MI) Informatika dan Komputer akuntansi (KA) Stmik Kharisma Karawang ini dapat
diselesaikan dengan sebaik-baiknya.
Modul praktikum ini dibuat sebagai pedoman dalam melakukan kegiatan praktikum
Logika & Algoritma yang merupakan kegiatan penunjang mata kuliah Logika & Algoritma
pada Jurusan MI & KA. Modul praktikum ini diharapkan dapat membantu mahasiswa/i
dalam mempersiapkan dan melaksanakan praktikum dengan lebih baik, terarah, dan
terencana. Pada setiap topik telah ditetapkan tujuan pelaksanaan praktikum dan semua
kegiatan yang harus dilakukan oleh mahasiswa/i serta teori singkat untuk memperdalam
pemahaman mahasiswa/i mengenai materi yang dibahas.
Penyusun menyakini bahwa dalam pembuatan Modul Praktikum Logika & Algoritma
ini masih jauh dari sempurna. Oleh karena itu penyusun mengharapkan kritik dan saran yang
membangun guna penyempurnaan modul praktikum ini dimasa yang akan datang.
Akhir kata, penyusun mengucapkan banyak terima kasih kepada semua pihak yang
telah membantu baik secara langsung maupun tidak langsung.
Karawang, Agustus 2012
Dedih, M. Kom
-
8/15/2019 Modul Logika dan Algoritma
4/65
-
8/15/2019 Modul Logika dan Algoritma
5/65
MODUL I
PENGENAL ALGORITMA & JAVA
1.1 TUJUAN
Mahasiswa memahami tentang dasar-dasar Algoritma pemrograman dan
mengimplementasikan program sederhana dengan NetBeans 6.5
1.2 Teori Singkat
1. 2.1 Algoritma
Algoritma adalah urutan aksi-aksi yang dinyatakan dengan jelas dan tidak rancu untuk
memecahkan suatu masalah dalam rentang waktu tertentu. Setiap aksi harus dapatdikerjakan dan mempunyai efek tertentu.
Algoritma dapat dituliskan dengan banyak cara, mulai dari menggunakan bahasa alami
yang digunakan sehari-hari, simbol grafik bagan alir, sampai menggunakan bahasa
pemograman seperti Java.
1. 2.2 Java
Java adalah bahasa pemrograman yang berorientasi objek (OOP) dan dapat dijalankan
pada berbagai platform sistem operasi. Perkembangan Java tidak hanya terfokus pada satu
sistem operasi, tetapi dikembangkan untuk berbagai system operasi dan bersifat open source.
Mulanya bahasa yang diciptakan diberi nama ”Oak” oleh James Gosling yang
mendapat inspirasi dari sebuah pohon yang berada pada seberang kantornya, namun
dikarenakan nama Oak sendiri merupakan nama bahasa pemrograman yang telah ada
sebelumnya, kemudian SUN menggantinya dengan JAVA. Nama JAVA sendiri terinspirasi
pada saat mereka sedang menikmati secangkir kopi di sebuah kedai kopi yang kemudian
dengan tidak sengaja salah satu dari mereka menyebutkan kata JAVA yang mengandung arti
asal bijih kopi. Akhirnya mereka sepakat untuk memberikan nama bahasa pemrograman
tersebut dengan nama Java.
-
8/15/2019 Modul Logika dan Algoritma
6/65
1.2.3 Java Virtual Machine (JVM)
JVM adalah sebuah mesin imajiner (maya) yang bekerja dengan menyerupai aplikasi
pada sebuah mesin nyata. JVM menyediakan spesifikasi hardware dan platformdimana
kompilasi kode Java terjadi. Spesifikasi inilah yang membuat aplikasi berbasis Java
menjadi bebas dari platform manapun karena proses kompilasi diselesaikan oleh JVM.
Aplikasi program Java diciptakan dengan file teks berekstensi .java. Program ini
dikompilasi menghasilkan satu berkas bytecode berekstensi .class atau lebih. Bytecode
adalah serangkaian instruksi serupa instruksi kode mesin. Perbedaannya adalah kode
mesin harus dijalankan pada sistem komputer dimana kompilasi ditujukan, sementara
bytecode berjalan pada java interpreter yang tersedia di semua platform sistem
komputer dan sistem operasi.
1.2.4 Garbage Collection
Banyak bahasa pemrogaman lain yang mengijinkan seorang programmer
mengalokasikan memori pada saat dijalankan. Namun, setelah menggunakan alokasi
memori tersebut, harus terdapat cara untuk menempatkan kembali blok memori tersebut
supaya program lain dapat menggunakannya. Dalam C, C++ dan bahasa lainnya, adalah
programmer yang mutlak bertanggung jawab akan hal ini. Hal ini dapat menyulitkan
bilamana programmer tersebut alpa untuk mengembalikan blok memori sehingga
menyebabkan situasi yang dikenal dengan nama memory leaks. Program Java
melakukan garbage collection yang berarti program tidak perlu menghapus sendiri
objek – objek yang tidak digunakan lagi. Fasilitas ini mengurangi beban pengelolaan
memori oleh programmer dan mengurangi atau mengeliminasi sumber kesalahan
terbesar yang terdapat pada bahasa yang memungkinkan alokasi dinamis.
1.2.5 Code Security
Code Security terimplementasi pada Java melalui penggunaan Java Runtime
Environment (JRE). Java menggunakan model pengamanan 3 lapis untuk melindungi
sistem dari untrusted Java Code.
1. Pertama, class-loader menangani pemuatan kelas Java ke runtime interpreter. Proses
ini menyediakan pengamanan dengan memisahkan kelas – kelas yang berasal dari
local disk dengan kelas – kelas yang diambil dari jaringan. Hal ini membatasi aplikasi
Trojan karena kelas – kelas yang berasal dari local disk yang dimuat terlebih dahulu.
-
8/15/2019 Modul Logika dan Algoritma
7/65
2. Kedua, bytecode verifier membaca bytecode sebelum dijalankan dan menjamin
bytecode memenuhi aturan – aturan dasar bahasa Java.
3. Ketiga, manajemen keamanan menangani keamanan tingkat aplikasi dengan
mengendalikan apakah program berhak mengakses sumber daya seperti sistem file,
port jaringan, proses eksternal dan sistem windowing.
Setelah seluruh proses tersebut selesai dijalankan, barulah kode program di eksekusi.
1.2.6 Fase – fase Pemrograman JAVA
Gambar dibawah ini menjelaskan aliran proses kompilasi dan eksekusi sebuah
program Java :
Gambar 2.1: Fase dari sebuah Program Java
Langkah pertama dalam pembuatan sebuah program berbasis Java adalah menuliskan
kode program pada text editor . Contoh text editor yang dapat digunakan antara lain :
notepad, Jcreator, emacs dan lain sebagainya. Kode program yang dibuat kemudian
tersimpan dalam sebuah berkas berekstensi .java. Setelah membuat dan menyimpan
kode program, kompilasi file yang berisi kode program tersebut dengan menggunakan
Java Compiler. Hasil dari kompilasi berupaberkas bytecode dengan ekstensi .class.
Berkas yang mengandung bytecode tersebut kemudian akan dikonversikan oleh Java
Interpreter menjadi bahasa mesin sesuai dengan jenis dan platform yang digunakan.
PROSES TOOL HASIL
Menulis kode program Text editor Berkas berekstensi .java
Kompilasi program J Java Compiler Berkas berekstensi .class
(Java Bytecodes)
Menjalankan programJava Interpreter Program Output
Tabel 1: Ringkasan Fase dari sebuah Program Java
-
8/15/2019 Modul Logika dan Algoritma
8/65
1.3. LANGKAH-LANGKAH MENULISKAN PROGRAM JAVA DENGAN
NETBEANS IDE 6.5
Langkah – Langkah praktikum :
1. Pilih Start ProgramNetBeans IDE 6.5
2. Anda akan peroleh tampilan awal sebagai berikut :
3. Pilih menu File
4. Pilih sub menu New Project. Akan muncul layar sebagai berikut :
5. Pilih Java lalu Java Application klik Next
6. Ketik “Modul_praktikum_logika” pada Project Name lalu klik Finish seperti gambar
tampilan sbb :
-
8/15/2019 Modul Logika dan Algoritma
9/65
7. Sehingga muncul tampilan sebagai berikut :
8. Klik Kanan pada Modul_praktikum_logika pilih New lalu pilih Java Class sepertitampilan berikut :
-
8/15/2019 Modul Logika dan Algoritma
10/65
9. Lalu Ketik “Hello” pada Class Name dan pilih tombol Finish
10. Sehingga muncul gambar seperti berikut :
-
8/15/2019 Modul Logika dan Algoritma
11/65
11. Ketiklah kode berikut di bawah public class Hello {:
public static void main(String[] args) {
System.out.println("Belajar Algoritma");
}
12. Lakukan kompilasi program dengan memilih menu Run> Clean and Build Project
(Shift +F11) dan jalankan program dengan memilih menu Run>Run File (Shift +F6).
Akan muncul output seperti di bawah ini :
Latihan :
Coba Saudara tampilkan Output program seperti dibawah ini dengan nama program
mahasiswa.java :
Mahasiswa STMIK Kharisma Karawang
NPM : isi dengan NPM anda sendiri
Nama : isi dengan Nama Anda sendiri
Jurusan : Isi sesuai dengan Jurusan
Diketik
-
8/15/2019 Modul Logika dan Algoritma
12/65
MODUL 2
TIPE DATA & VARIABEL
2.1 Tipe Data
Java memiliki tipe data yang dapat dikategorikan menjadi dua kelompok, yaitu tipe data
primitif dan referensi.
1. Tipe Data Primitif
Delapan macam tipe data primitif dalam pemrograman Java, yaitu :
a. Integer ( Bilangan Bulat )
Integer merupakan tipe data numerik yang digunakan apabila tidak berurusan dengan
pecahan atau bilangan desimal. Tipe data numerik yang termasuk integer adalah
sebagai berikut :
Tipe Deskripsi
Byte Memiliki nilai integer dari -128 sampai +127 dan menempati
1 byte ( 8 bits ) di memori
Short Memiliki nilai integer dari -32768 sampai 32767 dan
menempati 2 bytes ( 16 bits ) di memoriInt Memiliki nilai integer dari -2147483648 sampai 2147483647
dan menempati 4 bytes ( 32 bits ) di memori
Long Memiliki nilai dari -9223372036854775808 sampai
9223372036854775807 dan menempati 8 bytes ( 64 bits ) di
memori
b. Floating Point ( Bilangan Pecahan )
Floating Point digunakan untuk menangani bilangan decimal atau perhitungan yang
lebih detail dibanding integer. Ada dua macam floating point, yaitu :
Tipe Deskripsi
Float memiliki nilai -3.4x108 sampai +3.4x108 dan menempati 4
byte di memori
Double memiliki nilai -1.7x10308 sampai +1.7x10308
c. Char
Char adalah karakter tunggal yang didefinisikan dengan diawali dan diakhiri dengan tanda‘ ( petik tunggal ). Char berbeda dengan String, karena String bukan merupakan tipe data
-
8/15/2019 Modul Logika dan Algoritma
13/65
primitif, tetapi sudah merupakan sebuah objek. Tipe char mengikuti aturan unicode,
sehingga dapat menggunakan kode /u kemudian diikuti bilangan dari 0 sampai 65535,
tetapi yang biasa digunakan adalah bilangan heksadesimal dari 0000 sampai FFFF.
Misalnya : ‘ \ u123’ Selain karakter biasa, juga terdapat karakter khusus yang didefinisikan
dengan cara mengawalinya menggunakan tanda \ seperti pada tabel berikut :
Kode Nama Nilai Unicode
\b Backspace \u0008
\t tab \u0009
\n linefeed \u000a
\r Carriage return \u000d
\* Double quote \u0022
\ ’ Single quote \u0027
\\ Backslash \u005c
d. Boolean
Dalam Java dikenal tipe data boolean yang terdiri dari dua nilai saja, yaitu true dan false.
Boolean sangat penting dalam mengevaluasi suatu kondisi, dan sering digunakan untuk
menentukan alur program.
2.2 Variabel
Variabel merupakan container yang digunakan untuk menyimpan suatu nilai pada
sebuah program dengan tipe tertentu. Untuk mendefinisikan variabel, kita dapat
menggunakan identifier untuk menamai variabel tersebut.
2.2.1 Identifier
Identifier adalah kumpulan karakter yang dapat digunakan untuk menamai variabel,
method, class, interface, dan package. Sebagaimana bahasa pemrograman pada umumnya,
Java memiliki peraturan untuk identifier yang valid atau sah. Identifier bisa disebut valid
atau sah apabila diawali dengan :
• Huruf / abjad
• Karakter mata uang
• Underscore ( _ )
Identifier dapat terdiri dari :• Huruf / abjad
• Angka
• Underscore ( _ )
• Identifier tidak boleh mengandung @, spasi atau diawali dengan angka. Selain itu,
identifier tidak boleh menggunakan keyword atau kata-kata yang memiliki arti atau
digunakan dalam pemrograman Java.
Daftar Keyword Java :
abstract double int strictfp
boolean else static super
-
8/15/2019 Modul Logika dan Algoritma
14/65
break Extends long switch
byte final native synchronized
case finally new this
catch float package throw
char for private throws
class goto protected transientconst if public try
continue implements return void
default import short volatile
do instanceof interface while
2.2.2 Mendeklarasikan Variabel
Sintaks dasar :
[tipe data] [nama variabel]
Menuliskan tipe data dari variabel, contoh :int bilangan;
char karakter;
float bildesimal;
boolean status;
Setelah mendeklarasikan variabel dengan tipe data, selanjutnya memberikan nilai
variabel tersebut dengan tanda = .
bilangan = 20;
karakter = ‘k’;
bildesimal = 22.2f;
status = true;
2.3 Latihan Praktikum :
Nama file1 : ContohPerhitungan.java
class ContohPerhitungan {
public static void main(String[] args) {
byte a = 1;
short b = 2;
int c = 3, d;d = a + b + c;
System.out.println("Hasil = " + d);
}
}
Nama file2 : DemoKarakter1.java
class DemoKarakter1 {
public static void main(String[] args) {
char ch1 = 65;char ch2 = 'B';
-
8/15/2019 Modul Logika dan Algoritma
15/65
System.out.println("ch1 = " + ch1);
System.out.println("ch2 = " + ch2);
}
}
Tugas
Buatlah program untuk menghitung luas :
1. Segitiga
2. Lingkaran
3. Bujur sangkar
4. Empat Persegi Pajang
-
8/15/2019 Modul Logika dan Algoritma
16/65
MODUL 3
OPERATOR
3.1 Tujuan
Mahasiswa memahami tentang operator dan penggunaannya dalam bahasa pemrograman
java, mengetahui macam-macam kategori operator dan mengetahui perbedaan operator
satu dengan yang lainnya
3.2 Teori Singkat
Dalam Java, ada beberapa tipe operator. Ada operator aritmatika, operator relasi,
operator logika, dan operator kondisi. Operator ini mengikuti bermacam-macam prioritas
yang pasti sehingga Compilernya akan tahu yang mana operator untuk dijalankan lebihdulu dalam kasus beberapa operator yang dipakai bersama-sama dalam satu pernyataan.Operator Java merupakan karakter khusus yang berupa simbol atau tanda yang
memerintahkan compiler untuk melakukan berbagai operasi terhadap sejumlah
operand . Perintah operasi dispesifikasikan oleh operator, dimana operand-nya adalah
variabel, pernyataan, atau besaran literal.
Operator yang dibahas pada bagian ini adalah operator aritmatika, increment dan
decrement, assignment (penugasan), relasi, logical, dan bitwise.
A. Operator Aritmatika
Sama halnya dengan semua bahasa pemrograman, Java menyediakan operator-operator
aritmatika untuk manipulasi variabel data numerik. Operator-operator tersebut antara
lain :
Operator Penggunaan Deskripsi
+ Op1 + Op2 Menambahkan Op1 dengan Op2
- Op1 – Op2 Mengurangkan Op1 dengan Op2
* Op1 * Op2 Mengalikan Op1 dengan Op2
/ Op1 / Op2 Membagi Op1 dengan Op2
% Op1 % Op2 Menghasilkan sisa hasil bagi Op1 dengan Op2
Nama file : Aritmatika.java
class Aritmatika{
public static void main(String[] args) { int a = 20; int b = 10;
System.out.println("Penggunaan Operator Aritmatika ");
System.out.println("Nilai awal a adalah : "+a);
-
8/15/2019 Modul Logika dan Algoritma
17/65
System.out.println("Nilai awal b adalah : "+b);
System.out.println("Hasil dari a + b = " +(a + b));
System.out.println("Hasil dari a - b = " +(a - b));
System.out.println("Hasil dari a / b = " +(a / b));
System.out.println("Hasil dari a * b = " +(a * b));
System.out.println("Hasil dari a % b = " +(a % b));
}
}
B. Operator Increment dan Decrement
Operator Increment dan Decrement digunakan untuk menaikan atau menurunkan
suatu nilai integer (bilangan bulat) sebanyak satu satuan, dan hanya dapat digunakan padavariabel.
Ada dua versi operator increment maupun decrement, yaitu prefix dan postfix. Prefix
berarti operator digunakan sebelum variabel atau ekspresi, dan postfix berarti operator
digunakan sesudahnya. Penjelasan selengkapnya yaitu:
Operator Penggunaan Deskripsi
Op++Op dinaikkan nilainya 1 setelah dilakukan operasi
++ pada Op
++OpOp dinaikkan nilainya 1 sebelum dilakukan operasi
pada Op
Op--Op diturunkan nilainya 1 setelah dilakukan operasi
-- pada Op
--OpOp diturunkan nilainya 1 sebelum dilakukan
operasi pada Op
Nama file : IncrementDecrement.java
class IncrementDecrement{
public static void main (String[] args){ int i = 1;
System.out.println("i : " + i);
System.out.println("++i : " + ++i);
System.out.println("i++ : " + i++);
System.out.println("i : " + i);
System.out.println("--i : " + --i);
-
8/15/2019 Modul Logika dan Algoritma
18/65
System.out.println("i-- : " + i--);
System.out.println("i : " + i);
}
}
C. Operator Assignment ( Penugasan )
Operator assignment dalam Java digunakan untuk memberikan sebuah nilai ke sebuah
variabel. Operator assignment hanya berupa ‘=’, namun selain itu dalam Java dikenal
beberapa shortcut assignment operator yang penting, yang digambarkan dalam tabel berikut
:
Operator Penggunaan Ekuivalen Dengan
+= Op1 += Op2 Op1 = Op1 + Op2
-= Op1 -= Op2 Op1 = Op1 – Op2
*= Op1 *= Op2 Op1 = Op1 * Op2
/= Op1 /= Op2 Op1 = Op1 / Op2
%= Op1 %= Op2 Op1 = Op1 % Op2
&= Op1 &= Op2 Op1 = Op1 & Op2
¦= Op1 ¦= Op2 Op1 = Op1 ¦ Op2
^= Op1 ^= Op2 Op1 = Op1 ^ Op2
> Op2
>>>= Op1 >>>= Op2 Op1 = Op1 >>> Op2
Nama file : Assignment.java
class Assignment {
public static void main(String[] args) { int var = 10;
int a,b,c;
a = b = c = 100; int d,e,f;
-
8/15/2019 Modul Logika dan Algoritma
19/65
f = 200; e = f;
d = e;
System.out.println("Nilai var : " + var);
System.out.println("Nilai a : " + a);System.out.println("Nilai b : " + b);
System.out.println("Nilai c : " + c);
System.out.println("Nilai f : " + f);
System.out.println("Nilai e : " + e);
System.out.println("Nilai d : " + d);
int z;
char Teks1 = 'a'; // dalam Unicode karakter 'a' direpresentasikan dengan
angka 97
z = Teks1 * 100; // z = 97 * 10;
System.out.println("Nilai Teks1 : " + Teks1);
System.out.println("Nilai z : " + z);
}
}
D. Operator Relasi
Operator relasi dalam Java digunakan untuk menghasilkan nilai boolean yang
sering digunakan untuk mengatur alur jalannya sebuah program.
Operator Penggunaan Deskripsi
> Op1 > Op2 Menghasilkan true jika Op1 lebih besar dari Op2
< Op1 < Op2 Menghasilkan true jika Op1 lebih kecil dari Op2
>= Op1 >= Op2 Menghasilkan true jika Op1 lebih besar atau sama
dengan Op2
-
8/15/2019 Modul Logika dan Algoritma
20/65
Nama file: Relasi.java
class Relasi{
public static void main(String[] args) { int x,y,z;
x = 100; y = 99; z = 99;
System.out.println("Nilai x = "+x);
System.out.println("Nilai y = "+y);
System.out.println("Nilai z = "+z); // operator sama dengan
if(y == z ){
System.out.println("y sama dengan z"); }else {
System.out.println("y tidak sama dengan z");
}
// operator tidak sama dengan
if(x != y ){
System.out.println("x tidak sama dengan y"); }else {
System.out.println("x sama dengan y");
}
// operator lebih besar dari
if(x > y ){
System.out.println("x lebih besar dari y"); }else {
System.out.println("x lebih kecil dari y");
}
// operator lebih kecil dari
if(y < x ){
System.out.println("y lebih kecil dari x"); }else {
System.out.println("y lebih besar dari x");
}
// operator lebih besar dari atau sama dengan if(x >= y ){
System.out.println("x lebih besar dari atau sama dengan y");
}else {
System.out.println("x lebih kecil dari atau sama dengany");
}
// operator lebih kecil dari atau sama dengan
if(y
-
8/15/2019 Modul Logika dan Algoritma
21/65
System.out.println("y lebih kecil dari atau sama dengan x"); }else {
System.out.println("y lebih besar dari atau sama dengan x");
}
}
}
E. Operator Logical
Operator ini digunakan untuk ekspresi logik yang menghasilkan nilai boolean.
Operator-operator yang digunakan adalah AND ( && ), OR ( ¦ ¦ ) dan NOT ( ! ).
A B A ¦¦ B A && B
True True True True
True False True False
False True True False
False False False False
Nama file : logik.java
class logik{
public static void main(String[] args) { boolean
Benar = true;
boolean Salah = false; System.out.println("Hubungan
OR (||)");
System.out.println("Benar || Benar : " +(Benar||Benar));
System.out.println("Benar || Salah : " +(Benar||Salah));
System.out.println("Salah || Benar : " +(Salah||Benar));
System.out.println("Salah || Salah : " +(Salah||Salah));
System.out.println("Hubungan AND (&&)");
System.out.println("Benar && Benar : " +(Benar&&Benar));
System.out.println("Benar && Salah : " +(Benar&&Salah));
System.out.println("Salah && Benar : " +(Salah&&Benar));
System.out.println("Salah && Salah : " +(Salah&&Salah));
System.out.println("Hubungan NOT (!)"); System.out.println("Kebalikan
-
8/15/2019 Modul Logika dan Algoritma
22/65
(NOT) dari Benar adalah: " +!Benar); System.out.println("Kebalikan (NOT)
dari Salah adalah: " +!Salah);
}
}
F. Operator Bitwise
Operator ini dalam Java digunakan untuk melakukan manipulasi bit.
Operator Penggunaan Deskripsi
& Op1 & Op2 Bitwise AND
¦ Op1 ¦ Op2 Bitwise OR
^ Op1 ̂ Op2 Bitwise XOR
~ ~Op Bitwise Complement
Op1 >> Op2 Menggeser bit Op1 ke kanan sejauh Op2
Geser kanan tanpa mempertahankan sign
>>> Op1 >>> Op2 (dengan nilai 0 sebagai pengisi bit paling
kiri)
1. Bitwise AND
Bitwise AND akan menghasilkan bit “1”, jika kedua operator bernilai bit “1”.
Operasi bitwise AND dapat digambarkan sebagai berikut :
Op1 Op2 Op1 & Op2
0 0 0
0 1 0
1 0 0
1 1 1
2. Bitwise OR
Bitwise OR akan menghasilkan bit “1”, jika salah satu operator bernilai bit “1”.
Operasi bitwise OR dapat digambarkan sebagai baerikut :
Op1 Op2 Op1 ¦ Op2
0 0 0
0 1 1
-
8/15/2019 Modul Logika dan Algoritma
23/65
1 0 1
1 1 1
3.BITWIS XOR ( Exclusive OR )Bitwise XOR akan menghasilkan bit “1”, jika kedua operator memiliki nilai bit yang
berbeda. Operasi bitwise XOR dapat digambarkan sebagai berikut :
Op1 Op2 Op1 ^ Op2
0 0 0
0 1 1
1 0 1
1 1 0
4. Bitwise Complement
Bitwise Complement akan menghasilkan bit yang berlawanan dengan bit yang
dioperasikan. Operasinya dapat digambarkan sebagai berikut :
Op Op
0 1
1 0
Nama file : Bitwise.java
class Bitwise{
public static void main(String[] args) { int x,y;
x = ~100;
System.out.println("Nilai negasi x : "+x); x = 17 & 30;
System.out.println("Nilai and : "+x); x = 17 | 30;
System.out.println("Nilai or : "+x); x = 17 ^ 30;
System.out.println("Nilai xor : "+x); x = 111;
y = x >> 1;
System.out.println("Nilai geser kanan : "+x);
x = -111;
y = x >> 1;
System.out.println("Nilai geser kanan neg : "+x); x = 111;y = x >>> 1;
-
8/15/2019 Modul Logika dan Algoritma
24/65
System.out.println("Nilai geser kanan 1 bit 0 : "+x);
x = -111;
y = x >>> 1;
System.out.println("Nilai geser kanan 1 bit 0 neg : "+x); x = 111;
y = x
-
8/15/2019 Modul Logika dan Algoritma
25/65
MODUL 4
STATEMENT IF
4.1 Tujuan
Mahasiswa dapat memahami pernyataan seleksi dalam java dengan menggunakan IF dan
dapat menyelesaikan masalah yang berkaitan dengan seleksi IF baik dalam pemrograman
maupun dalam algoritma.
4.2 Dasar Teori
Struktur kontrol digunakan untuk mengatur jalannya alur program sesuai dengan yang
kita inginkan. Statemen kontrol dikategorikan menjadi pemilihan, pengulangan, dan
statemen peloncatan.
4.2 Statemen Pemilihan
Pemilihan digunakan untuk menentukan statemen mana yang akan dieksekusi tergantung
dari ekpresi atau kondisi yang dikondisikan. Java menyediakan dua buah ekpresi untuk
pemilihan yaitu if dan switch. Kedua statemen tersebut digunakan untuk mengontrol
eksekusi statemen tergantung dari yang ditentukan sebelumnya.
4.2.1 Statemen If
Statemen if digunakan untuk menangani pencabangan atau pemilihan statemen yang
didasarkan atas satu, dua, atau lebih dari dua kondisi.
4.2.1.1 If dengan Satu Kondisi
Dalam java bentuk umum penulisan statemen if untuk satu kondisi sebagai berikut :
// apabila hanya terdiri dalam satu statemen
If (kondisi) statemen
//apabila lebih dari dua statemen
If (kondisi) {
Statemen
Statemen
.............
}
Berikut ini contoh program : Nama file1 : DemoIfSatuKondisi1.java
-
8/15/2019 Modul Logika dan Algoritma
26/65
class DemoIfSatuKondisi1 {
public static void main(String[] args) {
int a=1, b=10;
if (a < 5) {
System.out.println("Nilai a lebih kecil dari 5");
}
if (b < 5) {
System.out.println("Nilai b lebih kecil dari 5");
}
}
}
Nama file2 : DemoIfSatuKondisi3.java
class DemoIfSatuKondisi3 {
public static void main(String[] args) {
int tahun = 2008;
if ((tahun % 4 == 0) &&
((tahun % 100 != 0) || (tahun % 400 == 0))) {
System.out.println("Tahun " + tahun +
" merupakan tahun kabisat.");
}
}
}
4.2.1.2 If dengan Dua Kondisi
Pada bentuk ini program menyediakan kondisi tambahan untuk menangani kejadian
yang kondisi pertamanya tidak terpenuhi atau bernilai false. Adapun bentuk
umumnya sbb;
// Apabila terdiri dari satu statemen
If (kondisi)
Statemen jika kondisi benar
Else
Statemen jika kondisi salah
// Apabila terdiri dua buah statemen atau lebih
If (kondisi) {
//Statemen dilakukan jika kondisi benarStatemen
-
8/15/2019 Modul Logika dan Algoritma
27/65
Statemen
.............
} Else {
//Statemen dilakukan jika kondisi salah
StatemenStatemen
.............
}
Berikut ini contoh program :
Nama file1 : DemoIfDuaKondisi2.java
class DemoIfDuaKondisi2 {
public static void main(String[] args) {
char ch = 'B';
if (ch == 'a' || ch == 'A' ||
ch == 'i' || ch == 'I' ||
ch == 'u' || ch == 'U' ||
ch == 'e' || ch == 'E' ||
ch == 'o' || ch == 'O') {
System.out.println(ch + " adalah huruf vokal.");
} else {
System.out.println(ch + " adalah huruf mati (konsonan).");
}
}
}
4.2.1.3 If dengan Tiga Kondisi atau Lebih
Struktur pemilihan jenis ini merupakan pengembangan dari jenis sebelumnya. Di sini
statemen if memiliki lebih dari dua kondisi. Adapun bentuk umumnya sbb :
// Apabila terdiri dari satu statemen
If (kondisi1)
Statemen jika kondisi1 benar
Else if (kondisi2)
Statemen jika kondisi1 salah
Else
Statemen jika kondisi1 dan kondisi2 salah
// Apabila terdiri dua buah statemen atau lebih
If (kondisi1) {
//Statemen dilakukan jika kondisi1 benar
Statemen1
Statemen2
.............} Else if(kondisi2) {
-
8/15/2019 Modul Logika dan Algoritma
28/65
//Statemen dilakukan jika kondisi1 salah
Statemen1
Statemen2
.............
}Else {
//Statemen dilakukan jika kondisi1 dan kondisi2 salah
Statemen1
Statemen2
.............
}
Berikut ini contoh program :
Nama file1 : DemoIfTigaKondisi1.java
class DemoIfTigaKondisi1 {
public static void main(String[] args) {
int bilangan = 4;
if (bilangan < 0) {
System.out.println(bilangan +
" merupakan bilangan NEGATIF.");
} else if (bilangan == 0) {
System.out.println("Nilai yang dimasukkan adalah NOL");
} else { // (bilangan > 0)
System.out.println(bilangan +
" merupakan bilangan POSITIF.");
}
}
}
TUGAS
1. Buatlah program yang memberikan grade untuk nilai dengan ketentuan sbb :nilai > 90 grade = A80 < nilai
-
8/15/2019 Modul Logika dan Algoritma
29/65
MODUL 5
STATEMENT SWITCH
5.1 Tujuan
Mahasiswa dapat menyelesaikan masalah yang berkaitan dengan seleksi, dengan
menggunakan pernytaan switch.
5.2 Teori Dasar
Statemen switch merupakan statemen alternatif untuk melakukan pemilihan statemen dan
digunakan untuk menyederhanakan kekompleksitasan statemen if yang banyak mengandung
kondisi. Adapun bentuk umumnya sbb :
switch( switch_expression ){case case_selector1:
statement1; //
statement2; //block 1
. . . //
break;case case_selector2:
statement1; //
statement2; //block 2
. . . //
break;
. . .
default:
}
statement1; //
statement2; //block n
. . . //
break;
switch_expression adalah ekspresi integer atau karakter dan case_selector1, case_selector2
dan seterusnya adalah konstanta unik dari nilai integer atau karakter.
Ketika pernyataan switch ditemukan pada potongan kode program, java pertama kali akanmemeriksa switch_expression, dan menuju ke case yang akan menyamakan nilai yang
dimiliki oleh switch_expression. Selanjutnya program akan mengeksekusi pernyataan pada
dari kode setelah case yang ditemukan sampai menemui pernyataan break , selanjutnya akan
mengabaikan pernyataan yang lainnya hingga akhir dari struktur dari pernyataan switch.
Jika tidak ditemui case yang cocok, maka program akan mengeksekusi blok default .Sebagai
catatan, bahwa bagian blok default adalah opsional. Sebuah pernyataan switch bisa jadi tidak
memiliki blok kode default .
CATATAN:
• Tidak seperti pada pernyataan if , beberapa pernyataan pada struktur pernyataan switch
akan dieksekusi tanpa memerlukan tanda kurung kurawal ({}).
-
8/15/2019 Modul Logika dan Algoritma
30/65
• Ketika sebuah case pada pernyataan switch menemui kecocokan, semua pernyataan
pada case tersebut akan dieksekusi. Tidak hanya demikian, pernyataan lain yang
berada pada case yang sesuai juga akan dieksekusi.
• Untuk menghindari program mengeksekusi pernyataan pada case berikutnya, kitamenggunakan pernyataan break sebagai pernyataan akhir pada setiap blok case.
Berikut ini contoh program :
Nama file1 : DemoSwitch3 .java
class DemoSwitch3 {
public static void main(String[] args) {
int a=2;
int b;
switch(a) {
case 1: b = a + 1;
case 2: b = a + 2;
case 3: b = a + 3;
case 4: b = a + 4;
case 5: b = a + 5;
default: b = 0;
}
System.out.println("Nilai b: " + b);
}
}
Nama file2 : DemoSwitch4 .java
class DemoSwitch4 {
public static void main(String[] args) {
int a=2;
switch(a) {
case 1: System.out.println("Pilihan pertama");
case 2: System.out.println("Pilihan kedua");
case 3: System.out.println("Pilihan ketiga");
case 4: System.out.println("Pilihan keempat");
case 5: System.out.println("Pilihan kelima");
default: System.out.println("Pilihan default");
}
}
}
-
8/15/2019 Modul Logika dan Algoritma
31/65
Nama file : DemoSwitch5 .java
class DemoSwitch5 {
public static void main(String[] args) {
boolean b = true;
switch (b) {
case true: System.out.println("Pilihan TRUE");
case false: System.out.println("Pilihan FALSE");
}
}
}
TUGAS
1. Buatlah program dengan menggunakan pernyataan switch untuk memilih Tunggangan
yang akan dipakai ketika berpergian, sbb:
- Pilihan 1 Naik Kuda
- Pilihan 2 Naik Gerobak Sapi
- Pilihan 3 Naik Keledai
- Pilihan 4 Naik Onta
- Pilihan 5 Naik Gajah
Jika tidak ada diantara pilihan 1 – 5, beri komentar ”Anda salah Memilih
-
8/15/2019 Modul Logika dan Algoritma
32/65
MODUL 6
STATEMENT PERULANGAN
6.1 Tujuan
Mahasiswa dapat menyelesaikan permasalahan dengan menggunakan perulangan, baik
for, do..while dan while
6.2 Statemen Pengulangan
Pengulangan adalah suatu proses di dalam program yang dapat mengeksekusi satu atau
beberapa statemen sama secara berulang sampai ditentukan suatu kondisi untuk berhenti.
Dalam java ada tiga jenis struktur pengulangan , yaitu for , while dan do-while.
6.2.1 Struktur For
Struktur for pada umumnya digunakan untuk melakukan pengulangan yang banyaknya sudah
pasti atau sudah diketahui sebelumnya. Adapun bentuk umumnya sbb :
for (InitializationExpression; LoopCondition; StepExpression){
statement1;
statement2;
. . .
}
Penjelasan :
InitializationExpression – inisialisasi dari variabel loop.
LoopCondition - membandingkan variabel loop pada nilai batas tertentu
StepExpression - melakukan update pada variabel loop.
Berikut ini adalah contoh dari for loop,
int i;
for( i = 0; i < 10; i++ ){
System.out.print(i);
}
Pada contoh ini, pernyataan i=0 merupakan inisialisasi dari variabel. Selanjutnya, kondisi
i
-
8/15/2019 Modul Logika dan Algoritma
33/65
}
}
}
Nama file1 : DemoFor6 .java
class DemoFor6 {
public static void main(String[] args) {
int i,j;
for (i=0, j=4; i < 5; i++, j--) {
System.out.println("Nilai i: " + i);
System.out.println("Nilai j: " + j);
System.out.println();
}}
}
TugasBuatlah Program dengan for dari output dibawah ini :
1. 1. Kharisma 2. 5 3. 9
2.Kharisma 4 6
3.Kharisma 3 3
4.Kharisma 2 0
5.Kharisma 1
4. 1 3 5. 1 +2+3+4+5=15
1 3
1 3
2 2
2 2
2 2
3 1
3 1
3 1
6.2.2 Struktur While
Struktur while adalah jenis pengulangan yang mendefenisikan kondisi diawal blok yang
berarti apa bila kondisi tidak terpenuhi (bernilai false) maka proses pengulangan pun tidak
akan pernah dilakukan . Adapun bentuk umumnya sbb :
while( boolean_expression ){
statement1;
statement2;. . .
-
8/15/2019 Modul Logika dan Algoritma
34/65
}
Pernyataan di dalam while loop akan dieksekusi berulang-ulang selama kondisi
boolean_expression bernilai benar (true).
Contoh, pada kode dibawah ini,
class Demowhile{
public static void main(String[] args) {
int i = 4;
while ( i > 0 ){
System.out.print(i);
i--;
}
Contoh diatas akan mencetak angka 4321 pada layar. Perlu dicatat jika bagian i--;dihilangkan, akan menghasilkan pengulangan yang terus menerus (infinite loop). Sehingga,
ketika menggunakan while loop atau bentuk pengulangan yang lain, pastikan Anda
memberikan pernyataan yang membuat pengulangan berhenti pada suatu kondisi.
Berikut ini contoh program :
Nama file : DemoWhile1 .java
class DemoWhile1 {
public static void main(String[] args) {
int i=0;
while (i=1) {
System.out.print(i);if (i != 1) {
-
8/15/2019 Modul Logika dan Algoritma
35/65
System.out.print(" x ");
} else {
System.out.print(" = ");
}
hasil *= i; // dapat ditulis: hasil = hasil * i;
i--;}
System.out.println(hasil);
}
}
Nama file : DemoWhileBersarang .java
class DemoWhileBersarang {
public static void main(String[] args) {
int i=1, j;
while (i
-
8/15/2019 Modul Logika dan Algoritma
36/65
6.2.3 Struktur D0 – While
Do-while loop mirip dengan while-loop. Pernyataan di dalam do-while loop akan dieksekusi
beberapa kali selama kondisi bernilai benar(true). Perbedaan antara while dan do-while loop
adalah dimana pernyataan di dalam do-while loop akan dieksekusi sedikitnya satu kali.
Bentuk pernyataan do-while,do{
statement1;
statement2;
. . .
}while( boolean_expression );
Pernyataan di dalam do-while loop akan dieksekusi pertama kali, dan akan dievaluasi kondisi
dari boolean_expression. Jika nilai pada boolean_expression tersebut bernilai true,
pernyataan di dalam do-while loop akan dieksekusi lagi.
Berikut ini beberapa contoh do-while loop: Nama file : DemodoWhile .java
class DemodoWhile{
public static void main(String[] args) {
int x = 0;
do
{
System.out.println(x);
x++;
}while (x
-
8/15/2019 Modul Logika dan Algoritma
37/65
int hasil=1;
System.out.print(bilangan + "! = ");
if (bilangan == 0) {
System.out.println(hasil);
System.exit(1);
}
int i=bilangan;
do {
System.out.print(i);
if (i != 1) {
System.out.print(" x ");
} else {
System.out.print(" = ");
}
hasil *= i; // dapat ditulis: hasil = hasil * i;
i--;} while (i >= 1);
System.out.println(hasil);
}
}
Nama file : DemoDoWhileBersarang.java
class DemoDoWhileBersarang {
public static void main(String[] args) {
int i=1, j;
do {
j=1;
do {
System.out.print(i*j + " ");
j++;
} while (j
-
8/15/2019 Modul Logika dan Algoritma
38/65
4. 1 3 5. 1 +2+3+4+5=15
1 3
1 3
2 2
2 22 2
3 1
3 1
3 1
-
8/15/2019 Modul Logika dan Algoritma
39/65
MODUL 7
STATEMENT PELONCATAN
7.1 Tujuan
Mahasiswa dapat menyelesaikan permasalahan dengan menggunakan peloncatan, baik
break, continue dan return.
7.2 Teori Dasar
Statemen peloncatan digunakan untuk mengontrol jalannya program, lebih tepatnya
untuk memindahkan eksekusi program ke baris kode yang kita kehendaki. Dalam java
terdapat 3 buah statemen peloncatan yaitu break , continue dan return.
7.3.1 Menggunakan Break
Statemen break memiliki 3 kegunaan yaitu ;
1. Menghentikan runtunan pemilihan pada statemen switch2. Menghentikan proses pengulangan(keluar dari blok pengulangan)3. Keluar dari blok label tertentu
Nama file : DemoBreak1.java
class DemoBreak1 {
public static void main(String[] args) {
for (int i=0; i
-
8/15/2019 Modul Logika dan Algoritma
40/65
System.out.print(i + " ");
if (i % 2 == 0) {
continue;
}
System.out.println();
}}
}
7.3.3 Menggunakan Return
Statemen return digunakan untuk keluar dari eksekusi kode program yang terdapat
dalam sebuah method.
Nama file : DemoReturn.java
class DemoReturn {
public static void main(String[] args) {
int banyak = 0;
tulis(banyak);
}
// Mendefinisikan method tulis()
private static void tulis(int n) {
if (n < 1) {
System.out.println("Nilai i tidak boleh lebih kecil " +
"dari 1");
return; // keluar dari method tulis()
}
// statemen ini tidak akan dilakukan bila n < 1
for (int i=0; i
-
8/15/2019 Modul Logika dan Algoritma
41/65
MODUL 8
METHOD TANPA PARAMETER
8.1 Tujuan
1. Mahasiswa memahami tentang pengertian sub program
2. Mahasiswa dapat membuat sub program sederhana
8.2 Dasar Teori
Method (atau dalam beberapa bahasa pemrograman sering disebut fungsi atau
prosedur) adalah sub program yang membiarkan seorang programer untuk membagi
program dengan membagi masalah ke dalam beberapa sub masalah yang bisa
diselesaikan secara modular. Dengan cara demikian, maka pembuatan program bisa
lebih dimanajemen.
Kelas (class) adalah program java yang akan dieksekusi. Method ada di dalam kelas.
Java mempunyai kumpulan kelas yang sudah dimiliki yang tersimpan di dalam paket-
paket. Kumpulan kelas tersebut ada di dalam Java Application Interface (Java API)
atau Java class libraries dan beberapa libraries lainnya.
Format Method Secara Umum
tipe_return-value nama_method(parameter1, parameter2, …, parameterN)
{
deklarasi dan pernyataan;
}
Elemen yang diperlukan dari deklarasi method adalah tipe kembalian method, nama,
kurung buka dan tutup ( ) dan isi method yang diawali dan diakhiri dengan kurung
kurawal buka dan tutup { }. Secara umum, deklarasi method mempunyai 6 komponen,
yaitu :
1. Modifier - seperti public, private, dan yang lain yang akan kita pelajari kemudian.
2. Tipe kembalian (return type) — tipe data dari nilai yang dikembalikan oleh method,
atau void jika method tidak mempunyai nilai kembalian.
3. Nama method — aturan untuk penamaan field diterapkan untuk nama method tetapi
kesepakatannya adalah sedikit berbeda.
-
8/15/2019 Modul Logika dan Algoritma
42/65
4. Daftar parameter – pemisah antar parameter input adalah koma, diawali oleh tipe
datanya, yang diletakkan diantara tkita kurung ( …daftar parameter …. ). Jika tidak
ada parameter, harus menggunakan kurung buka tutup saja ( ).
5. Daftar exception — tidak akan masuk dalam pembahasan di sini
6. Isi method, diletakkan di antara kurung kurawal buka dan tutup { } — kode-kode
method, termasuk deklarasi variabel lokal ada di sini.
8.3 PELAKSANAAN PRAKTIKUM
Untuk membuat sebuah method, yang pertama kali perlu diperhatikan adalah nama
method mempunyai aturan yang sama dengan penamaan variabel.
Contoh : Fungsi untuk menampilkan tulisan saja.public class Fungsi1{
public static void garis(){
System.out.println("================");
}
public static void main(String args[]){
garis();
}
}
Keluaran dari program tersebut adalah
================
Method diatas bersifat static dan bertipe void. Method yang bersifat static bisa langsung
dipanggil dengan nama methodnya saja.
Sebuah method juga bisa dipanggil lebih dari satu kali.
8.4 LATIHAN
Tuliskan program berikut :
public class Fungsi2{
public static void kalimat()
{
System.out.println("Di dalam method kalimat");
}
public static void main(String args[])
{
kalimat();
System.out.println("Di dalam main");
kalimat();
}}
-
8/15/2019 Modul Logika dan Algoritma
43/65
Hasil output
Di dalam method kalimat
Di dalam main
Di dalam method kalimat
Program Latihan 2public class Fungsi3
{
public static int jumlah(){
int a = 7, b = 15;
return (a + b);
}
public static void main(String args[]){
System.out.println("Hasil pemanggilan method jumlah");
System.out.println(jumlah());
}}
Keluarannya
Hasil pemanggilan method jumlah
22
Penggunaan sifat static pada method menyebabkan method tidak perlu dipanggil dengan
penciptaan obyeknya. Method main dideklarasikan static agar pada saat penggunaan
tidak perlu menciptakan obyeknya.
Sebagian method tidak dideklarasikan static. Method yang demikian, bisa dipanggil
dengan cara menciptakan obyek class dari method tersebut.
public class Fungsi3a{
public int jumlah(){
int a = 7, b = 15;
return (a + b);
}
public static void main(String args[]){
Fungsi3a obyek = new Fungsi3a();
System.out.println("Hasil pemanggilan method jumlah");
System.out.println(obyek.jumlah());
}
}
TUGAS
Modifikasi program diatas dengan menambahkan 3 fungsi yang lain yaitu kurang, kali
dan bagi
-
8/15/2019 Modul Logika dan Algoritma
44/65
MODUL 9
METHOD DENGAN PARAMETER
9.1 Tujuan
Mahasiswa memahami tentang pengertian sub program dan dapat membuat sub programsederhana dengan parameter.
9.2 Dasar Teori
Method (atau dalam beberapa bahasa pemrograman sering disebut fungsi atau prosedur)
adalah sub program yang membiarkan seorang programer untuk membagi program
dengan membagi masalah ke dalam beberapa sub masalah yang bisa diselesaikan secara
modular. Dengan cara demikian, maka pembuatan program bisa lebih dimanajemen.
Contoh :
public class FungsiParameter
{
public static int jumlah(int a){
return a;
}
public static void main(String args[]){
System.out.println("Hasil pemanggilan methode ");
System.out.println(jumlah(5));
}
}
Hasil Output
Hasil pemanggilan method jumlah
5
Press any key to continue . . .
Parameter pada baris kedua disebut sebagai parameter formal, dan pada baris ke 8
disebut parameter aktual.
Ada 2 buah parameter yaitu
• parameter formal adalah parameter yang tertulis dalam definisi method
• Parameter aktual parameter yang berada pada inputan langsung pada saat
penggunaan method tersebut.
Parameter bisa lebih dari satu dengan dipisahkan tanda koma,. Yang perlu diperhatikan
pada saat pemanggilan method adalah jumlah, urutan dan tipe parameter aktual harus
sesuai dengan jumlah urutan dan tipe parameter formal.
Pemberian Variabel Dalam Method
-
8/15/2019 Modul Logika dan Algoritma
45/65
Ada dua tipe data variable passing pada method, yaitu pass-by-value dan pass-by-
reference.
Pass-by-value
Ketika pass-by-value terjadi, method membuat sebuah salinan dari nilai variable yangdikirimkan ke mthod. Walaupun demikian method tidak dapat secara langsung
memodifikasi nilai variable pengirimnya meskipun parameter salinannya sudah
dimodifikasi nilainya di dalam method.
Pass-by-reference
Ketika sebuah pass-by-reference terjadi, alamat memori dari nilai pada sebuah variable
dilewatkan pada saat pemanggilan method. Ini tidak seperti pada pass-by-value, method
dapat memodifikasi variable asli dengan menggunakan alamat memori tersebut,
meskipun berbeda nama variable yang digunakan dalam method dengan variable aslinya,
kedua variable ini menunjukkan lokasi dari data yang sama.
9.3 Pelaksanaan Praktikum
Tuliskan program berikut :
public class Fungsi4a{
public static int jumlah(int a){
return (a + a);
}
public static void main(String args[]){
System.out.println("Panggil method jumlah dengan parameter 5");
System.out.println(jumlah(5));
System.out.println("Panggil method jumlah dengan parameter 15");
System.out.println(jumlah(15));
}
}
Hasil OutputPanggil method jumlah dengan parameter 5
10
Panggil method jumlah dengan parameter 15
30
Press any key to continue . . .
Program dengan pass-by-value
public class TestPassByValue
{
public static void main(String [] args )
{int i =10;
-
8/15/2019 Modul Logika dan Algoritma
46/65
System.out.println(i);
test(i);
System.out.println(i);
}
public static void test(int j)
{ j=33;
}
}
Hasil Output
10
10
Press any key to continue . . .
Pada program diatas kita memanggil method tes dan melewatkan nilai variable i sebagaiparameter. Nilai pada i disalinkan ke variable j pada method. Pada kondisi ini variable j
adalah merupakan variable pengganti pada method test, jika nilai j berubah maka nilai
pada variable I yang terletak pada main tidak akan ikut berubah walaupun awalnya
variable j merupakan salinan dari variable i.
Program dengan pass-by-reference
class TestPassByReference
{
public static void main( String [] args)
{
//membuat array integer
int [] ages ={10,11,12};
//mencetak nilai array
for (int i=0; i
-
8/15/2019 Modul Logika dan Algoritma
47/65
}
Hasil output
10
11
1250
51
52
Press any key to continue . . .
9.4 Latihan
Kerjakan Program berikut :
public class Fungsi4c
{public float jumlah(int a, float b) //tanpa static
{
return (a+b);
}
public static void main(String args[])
{
Fungsi4 obyek=new Fungsi4();
System.out.print("panggil method jumlah dengan parameter 5 dan 1.5, hasilnya =
");
System.out.println(obyek.jumlah(5, 1.5f));
System.out.print("panggil method jumlah dengan parameter 10 dan 2.2, hasilnya =
");
System.out.println(obyek.jumlah(10, 2.2f));
}
}
Hasil output
panggil method jumlah dengan parameter 5 dan 1.5, hasilnya = 6.5
panggil method jumlah dengan parameter 10 dan 2.2, hasilnya = 12.2
Modifikasi program diatas dengan menambahkan satu parameter lagi.
TUGAS
1. Buat sebuah method yang digunakan untuk menghasilkan nilai paling kecil dari 3
bilangan yang dimasukkan sebagai parameter.
2. Tugas dari dosen pengampu
-
8/15/2019 Modul Logika dan Algoritma
48/65
MODUL 10
ARRAY SATU DIMENSI
10.1 Tujuan
Mahasiswa memahami tentang pengertian larik serta dapat membuat program dengan
menggunakan larik satu dimensi.
10.2 Dasar Teori
Array atau larik terdiri atas bagian-bagian komponen yang memiliki tipe data sama.
Masing - masing elemen array dapat diakses melalui indeksnya. Dalam java indeks
array selalu bertipe integer yang dimulai dari 0.
10.3 Pendeklarasian Array
Array harus dideklarasikan seperti layaknya sebuah variabel. Pada saat
mendeklarasikan array, anda harus membuat sebuah daftar dari tipe data, yang diikuti
oleh sepasang tanda kurung [], lalu diikuti oleh nama identifier-nya. Sebagai contoh,
int [] jumlahHari;
atau Anda dapat menempatkan sepasang tanda kurung [] sesudah nama identifier .
Sebagai contoh;
int jumlahHari [];
Setelah pendeklarasian array , kita harus membuat array dan menentukan jumlahelemen array Sebagai contoh ;
//deklarasi array 1 dimensiint [] jumlahHari;
// deklarasi array 2 dimensi
int[][] duaD
//instantiate obyek atau menentukan jumlah elemen arrayjumlahHari = new int[12];
duaD= new int[2][3]; // Array multidimensi adalah array dari array , dengan konsep
//pengaksesan [noBaris][noKolom]
Pada contoh diatas, pendeklarasian tersebut akan memberitahukan kepada compiler
Java, bahwa identifier jumlahHari akan digunakan sebagai nama array yang berisi
data bertipe integer, dan dilanjutkan dengan membuat atau meng-instantiate sebuah
array baru yang terdiri dari 12 elemen. Selain menggunakan sebuah pernyataan new
untuk meng-instantiate array, Anda juga dapat mendeklarasikan, membangun,
kemudian memberikan sebuah nilai pada array sekaligus dalam sebuah pernyataan.
-
8/15/2019 Modul Logika dan Algoritma
49/65
10.4 Pengaksesan elemen Array
Untuk mengakses sebuah elemen dalam array, atau mengakses sebagian dari array,
Anda harus menggunakan sebuah angka atau yang disebut sebagai indeks atau
subscript. Pada saat memasukkan nilai ke dalam array, sebuah nomor indeks atau
subscript telah diberikan kepada tiap anggota array, sehingga program danprogrammer dapat mengakses setiap nilai pada array apabila dibutuhkan. Nilai indeksselalu dalam tipe integer, dimulai dari angka nol dan dilanjutkan ke angkaberikutnya sampai akhir array. Sebagai catatan bahwa indeks didalam array dimulaidari 0 sampai dengan (ukuranArray-1).
// mengisikan nilai dari setiap elemen array yang ada
jumlahHari[0] = 31;
jumlahHari[1] = 28;
// menampilkan salah satu elemen array
System.out.println("Bulan Maret memiliki " + jumlahHari[1] +
" hari.");
Berikut ini beberapa contoh program Array :
Nama file : DemoArray1D .java
class DemoArray1D {
public static void main(String[] args) {
// mendeklarasikan variabel bertipe array dengan tipe int
int [] jumlahHari;
// menentukan jumlah elemen array
jumlahHari = new int[12];
// mengisikan nilai dari setiap elemen array yang ada
jumlahHari[0] = 31;
jumlahHari[1] = 28;
jumlahHari[2] = 31;
jumlahHari[3] = 30;
jumlahHari[4] = 31;
jumlahHari[5] = 30;
jumlahHari[6] = 31;
jumlahHari[7] = 31;
jumlahHari[8] = 30; jumlahHari[9] = 31;
jumlahHari[10] = 30; jumlahHari[11] = 31;
// menampilkan salah satu elemen array
System.out.println("Bulan Maret memiliki " + jumlahHari[2] +
" hari.");
}
}
-
8/15/2019 Modul Logika dan Algoritma
50/65
MODUL 11
ARRAY MULTI DIMENSI
11.1 Tujuan
Mahasiswa memahami tentang pengertian larik serta dapat membuat program dengan
menggunakan larik multi dimensi.
11.2 Dasar Teori
Kita juga bisa membuat variabel larik yang tipe elemennya adalah larik. Dengan cara
demikian, kita membuat larik dua dimensi. Dengan larik dua dimensi, maka kita
mempunyai elemen yang berindeks tidak hanya satu, tetapi dua. Kita bisa
membayangkan larik dua dimensi tersebut seperti sebuah tabel yang berisi baris dan
kolom. Penyebutan sel tabel selalu diikuti dengan penyebutan baris berapa dan kolom
berapa.
Contoh :
Diberikan data kelulusan mahasiswa sebuah perguruan tinggi sebagai berikut.
Jurusan 2006 2007 2008
Teknik
Informatika
110 125 135
Sistem
Informasi
56 75 80
int data_lulus [2] [3]
0 1 2
2006 2007 2008
[0]
[0]
[0]
[1]
[0]
[2]
[1]
[0]
[1]
[1]
[1]
[2]
TI
SI
0
1
-
8/15/2019 Modul Logika dan Algoritma
51/65
11.3 Pelaksanaan Praktikum
Tuliskan program berikut :
public class ArrayDimensiDua
{
public static void main(String [] args){
int [][] piksel = new int[2][3];
// mengisi elemen tertentu
piksel[0][0] = 70;
piksel[0][1] = 18;
piksel[0][2] = 45;
piksel[1][0] = 75;
piksel[1][1] = 66;
piksel[1][2] = 89;
//menampilkan elemen array
int i,j;for(i=0;i
-
8/15/2019 Modul Logika dan Algoritma
52/65
System.out.println("Data nilai yang dimasukan");
for (int i = 0; i < 2; i++){
for (int j = 0; j < 3; j++)
System.out.print(nilai[i][j]+" ");
System.out.println();}}
}
Program latihan 2
program untuk menjumlahkan matrik :
import java.util.Scanner;
public class JumlahMatriks{
Scanner masuk = new Scanner(System.in);
public void masukData(float data[][]){for (int i = 0; i < 3; i++){
for (int j = 0; j < 3; j++){
System.out.print( "("+(i + 1 )+" , "+ (j+1)+")"
+ " : ");
data[i][j]=masuk.nextFloat();
}
}
}
public float[][] tambah(float AA[][],
float BB[] []){float hasil[][]= new float[3][3];
for (int i = 0; i < 3; i++)
for (int j = 0; j < 3; j++)
hasil[i][j] = AA[i][j] + BB[i][j];
return hasil;
}
public void tampilData(float data[][], char nama){
for (int i=0;i
-
8/15/2019 Modul Logika dan Algoritma
53/65
jumlah.masukData(B);
C = jumlah.tambah(A,B);
jumlah.tampilData(C,'C');
}
}
Hasil output
Masukkan data matriks A
(1 , 1) : 2
(1 , 2) : 3
(1 , 3) : 1
(2 , 1) : 4
(2 , 2) : 2
(2 , 3) : 4
(3 , 1) : 1
(3 , 2) : 2
(3 , 3) : 3
Masukkan data matriks B
(1 , 1) : 5
(1 , 2) : 4
(1 , 3) : 3
(2 , 1) : 6
(2 , 2) : 2
(2 , 3) : 3
(3 , 1) : 4
(3 , 2) : 1(3 , 3) : 3
C[1] [1] = 7.0 C[1] [2] = 7.0 C[1] [3] = 4.0
C[2] [1] = 10.0 C[2] [2] = 4.0 C[2] [3] = 7.0
C[3] [1] = 5.0 C[3] [2] = 3.0 C[3] [3] = 6.0
Press any key to continue . . .
1. TUGAS
Buat sebuah program dengan larik untuk menyimpan 10 data mahasiswa yaitu berupa
NIM, nama dan jurusan
-
8/15/2019 Modul Logika dan Algoritma
54/65
MODUL 12
KELAS, OBJECT & METHOD
12.1 Tujuan
Mahasiswa dapat membuat obyek yang mengacu ke kelas tersebut.
12.2 Dasar Teori
Kelas dapat didefinisikan sebagai cetak biru (blueprint) atau kerangka yang
mendefenisikan variabel-variabel (data) dan method-method (perilaku) dari sebuah
objek tertentu. Kelas adalah pola(template) untuk pembuatan objek dan bersifat abstrak,
dan objek adalah wujud nyata (instance) dari sebuah kelas.
Sebagai contoh : manusia adalah kelas sedangkan objeknya adalah si Udin , si tono si
dewi.
12.2.1 Mendefinisikan kelas
Dalam java, kelas didefinisikan dengan menggunkan kata kunci class. Berikut ini
bentuk umum nya :
Class NamaKelas{
Tipe data1;
Tipe data2;
……..
Tipe dataN;
Tipe Method1(daftar – parameter) {
// kode untuk method1
}
Tipe method2(daftar-parameter){
// kode untuk method2
}……..
Tipe method(daftar-parameter){
//kode untuk method N}
}
Data atau variabel yang didefinisikan di dalam sebuah kelas disebut instance variabel.
Data akan diakses melalui method – method yang ada. Berikut ini adalah contoh
program
Nama file : DemoKotak1 .java
class Kotak {
double panjang;double lebar;
-
8/15/2019 Modul Logika dan Algoritma
55/65
double tinggi;
}
class DemoKotak1 {
public static void main(String[] args) {
double volume;
Kotak k = new Kotak();
// Mengisikan nilai ke dalam data-data kelas Kotak
k.panjang = 4;
k.lebar = 3;
k.tinggi = 2;
// Menghitung isi/volume kotak
volume = k.panjang * k.tinggi * k.lebar;
// Menampilkan nilai volume ke layar monitor
System.out.println(“Volume kotak = “ + volume);
}
}
12.2.2 Mendefinisikan Method
Method adalah implementasi dari bagaimana bekerjanya sebuah class. Dengan
Method dapat melakukan Manipulasi data, Perhitungan matematik dan Memonitor
kejadian dari suatu event .
Adapun bentuk umumnya adalah:
Tipe namaMethod(daftar-parameter) {
// kode yang akan ditulis
}
Keterangan :
Tipe adalah tipe data yang akan di kembalikan oleh method.
Dalam java method terbagi menjadi dua yaitu void dan non void . method void adalah
method yang tidak mengembalikan nilai. Sedangkan method non void adalah method
yang mengembalikan nilai. Berikut ini adalah contoh programnya ;
Nama file : DemoMethod1 .java
class Kotak {
double panjang;
double lebar;
double tinggi;
// Mendefinisikan method void (tidak mengembalikan nilai)
-
8/15/2019 Modul Logika dan Algoritma
56/65
void cetakVolume() {
System.out.println("Volume kotak = " +
(panjang * lebar * tinggi));
}
}
class DemoMethod1 {
public static void main(String[] args) {
Kotak k1, k2, k3;
// instansiasi objek
k1 = new Kotak();
k2 = new Kotak();
k3 = new Kotak();
// mengisi data untuk objek k1
k1.panjang = 4;k1.lebar = 3;
k1.tinggi = 2;
// mengisi data untuk objek k2
k2.panjang = 6;
k2.lebar = 5;
k2.tinggi = 4;
// mengisi data untuk objek k3
k3.panjang = 8;
k3.lebar = 7;
k3.tinggi = 6;
// memanggil method cetakVolume() untuk masing-masing objek
k1.cetakVolume();
k2.cetakVolume();
k3.cetakVolume();
}
}
Nama file : DemoMethod2 .java
class Kotak {
double panjang;
double lebar;
double tinggi;
// Mendefinisikan method yang mengembalikan tipe double
double hitungVolume() {
// menghitung volume
double vol = panjang * lebar * tinggi; // mengembalikan nilai
-
8/15/2019 Modul Logika dan Algoritma
57/65
return vol;
}
}
class DemoMethod2 {
public static void main(String[] args) {
Kotak k1, k2, k3;
k1 = new Kotak();
k2 = new Kotak();
k3 = new Kotak();
k1.panjang = 4;
k1.lebar = 3;
k1.tinggi = 2;
k2.panjang = 6;
k2.lebar = 5;
k2.tinggi = 4;
k3.panjang = 8;
k3.lebar = 7;
k3.tinggi = 6;
System.out.println("Volume k1 = " + k1.hitungVolume());
System.out.println("Volume k2 = " + k2.hitungVolume());
System.out.println("Volume k3 = " + k3.hitungVolume());
}
}
Nama file : SepedaBeraksi .java
class Sepeda{
int kecepatan = 0;
int gir = 0;
// method
void ubahGir(int pertambahanGir) {
gir= gir+ pertambahanGir;
System.out.println(" Gir:" + gir);
}
void tambahKecepatan(int pertambahanKecepatan) {
kecepatan = kecepatan+ pertambahanKecepatan;
System.out.println(" Kecepatan:" + kecepatan);
}
public class SepedaBeraksi{public static void main(String[] args) {
-
8/15/2019 Modul Logika dan Algoritma
58/65
// Membuat object
Sepeda sepedaku = new Sepeda();
//memanggil atribut dan memberi nilai
sepedaku.kecepatan=10;
sepedaku.gir=2;
// Memanggil method dan menunjuk nilai parametersepedaku.tambahKecepatan(30);
sepedaku.ubahGir(3);
}}
Tugas1. Buat Class bernama Matematika, yang berisi method dengan dua parameter:
• pertambahan
• pengurangan
•
perkalian• pembagian
2. Buat Class bernama MatematikaBeraksi, yang mengeksekusi method danmenampilkan:
• Pertambahan: 20 + 20 = 40
• Pengurangan: 10-5 = 5
• Perkalian: 10x20 = 200
• Pembagian: 21/2 = 10.5 (float or double)
-
8/15/2019 Modul Logika dan Algoritma
59/65
MODUL 13
REKURSI
13.1 Tujuan
Mahasiswa dapat membuat dan mengerti tentang rekursi di pemograman java.
13.2 Dasar Teori
Dalam Java, rekursi adalah proses pemanggilan method oleh dirinya sendiri secara
berulang. Rekursi digunakan untuk menyederhanakan algoritma dari suatu proses
perulangan tertentu sehingga penulisan kode programnya akan lebih efesien.
Sebagai contoh konsep rekursi adalah perhitungan nilai factorial dari bilangan bulat non
negative. Proses rekursif dapat kita tuliskan dalam fungsi matematik sbb;
f! (n) = n * f(n-1)
dengan ketentuan f!(0) = 1. Merupakan suatu tetapan numerik yang tidak dapat diubah.
Apabila n berilai 5 maka proses akan dilakukan program sbb :
factorial(5) = 5 * factorial(4)
factorial(4) = 4 * factorial(3)
factorial(3) = 3 * factorial(2)
factorial(2) = 2 * factorial(1)
factorial(1) = 1 * factorial(0)
factorial(0) = 1
factorial(1) = 1*1factorial(2) = 2*1
factorial(3) = 3*2
factorial(4) = 4*6
factorial(5) = 5*24 = 120
Nama file : DemoRekursi1 .java
class Rekursi {
int faktorial(int n) {
if (n == 0) {return 1;
} else {
return (n * faktorial(n-1));
}
}
void cetakFaktorial(int n) {
System.out.print(n + "! = ");
for (int i=n; i>=1; i--) {
if (i != 1) {
System.out.print(i + " x ");} else {
-
8/15/2019 Modul Logika dan Algoritma
60/65
System.out.print(i + " = ");
}
}
System.out.println(faktorial(n));
}
}
class DemoRekursi1 {
public static void main(String[] args) {
Rekursi obj = new Rekursi();
obj.cetakFaktorial(5);
obj.cetakFaktorial(4);
obj.cetakFaktorial(3);
}
}
Nama file : DemoRekursi3 .javaProgram untuk mengkonversi dari desimal ke biner
class Rekursi {
void DesimalKeBiner(int n) {
if (n > 1) {
DesimalKeBiner(n / 2);
}
System.out.print(n % 2);
}
}
class DemoRekursi3 {
public static void main(String[] args) {
Rekursi obj = new Rekursi();
System.out.print("Bentuk biner dari 1 : ");
obj.DesimalKeBiner(1);
System.out.println();
System.out.print("Bentuk biner dari 2 : ");
obj.DesimalKeBiner(2);
System.out.println();
System.out.print("Bentuk biner dari 4 : ");
obj.DesimalKeBiner(4);
System.out.println();
System.out.print("Bentuk biner dari 6 : ");
-
8/15/2019 Modul Logika dan Algoritma
61/65
-
8/15/2019 Modul Logika dan Algoritma
62/65
MODUL 14
INPUT DATA MELALUI KEYBOARD DALAM JAVA
14.1 Tujuan
Mahasiswa dapat membuat dan mengerti tentang input data di pemograman java.
14.2 Menginput sebuah karakter
Untuk membaca input berupa karakter gunakan method read() yang terdapat kelas
BufferedReader. Adapun deklarasi method read() sbb;
Int read() throws IOException
Berikut ini contoh programnya :
Nama file : DemoInputKarakter .java
import java.io.*;
class DemoInputKarakter {
public static void main(String[] args) throws IOException {
System.out.print("Masukkan sembarang karakter: ");
char ch;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
ch = (char) br.read();
System.out.println("Karakter yang dimasukkan adalah \'" +
ch + "\'");
}}
14.3 Menginput sebuah String
Untuk membaca input string gunakan method readLine() Adapun bentuk umumnya
method tersebut adalah :
String readLine() throws IOException
Berikut ini contoh programnya : Nama file : DemoInputString
-
8/15/2019 Modul Logika dan Algoritma
63/65
import java.io.*;
class DemoInputString {
public static void main(String[] args) throws IOException {
System.out.print("Masukkan nama Anda: ");
String nama;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
nama = br.readLine();
System.out.println("Halo " + nama +", sudahkah Anda mengerti Java?");
}
}
14.4 Menginput Data Numerik
Untuk membaca input data numeric sama seperti mengimput data karakter / string,
hanya data string hasil input dikonversi ke tipe numeric. Sebagai contoh dapat dilihat
dari program sbb;
Berikut ini contoh programnya :
Nama file : DemoInputNumerik1
import java.io.*;
class DemoInputNumerik1 {
public static void main(String[] args) throws IOException {
System.out.print("Masukkan sebuah bilangan bulat: ");
String temp;
int bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try { // konversi dari string ke integer
-
8/15/2019 Modul Logika dan Algoritma
64/65
bilangan = Integer.parseInt(temp);
} catch (NumberFormatException nfe) {
System.out.println("Data yang dimasukkan " +
"bukan bilangan bulat");
System.exit(1);
}
System.out.println("Bilangan yang dimasukkan " +
"adalah " + bilangan);
}
}
Nama file : DemoInputNumerik2
import java.io.*;
class DemoInputNumerik2 {
public static void main(String[] args) throws IOException {
System.out.print("Masukkan sebuah bilangan riil: ");
String temp;
double bilangan = 0;
InputStreamReader isr = new InputStreamReader(System.in);
BufferedReader br = new BufferedReader(isr);
// input data dianggap sebagai string
temp = br.readLine();
try {
// konversi dari string ke floating-point
bilangan = Double.parseDouble(temp);
} catch (NumberFormatException nfe) {
System.out.println("Data yang dimasukkan bukan bilangan");
System.exit(1);
}
System.out.println("Bilangan yang dimasukkan " +
"adalah " + bilangan);
}
}
-
8/15/2019 Modul Logika dan Algoritma
65/65
DAFTAR PUSTAKA
1. Modul Algoritma dan Pemograman Akakom
2. Buku mudah belajar java penerbit Informatika
3. Buku Bagaimana Berfikir Sebagai Ilmuwan Komputer
4. Modul JENI Ver 2.0 dari Jardiknas