2 - Algoritma, Flowchart, Tipe Data, Operator
2 - Algoritma, Flowchart, Tipe Data, Operator
DATA, OPERATOR
Muhammad Ridwan Arif Cahyono
ALGORITMA
Public static void main String arg
means?
The Main method is the method in which execution to any java program begins.
A main method declaration looks as follows:
public static void main(String args[]){
}
The method is public because it be accessible to the JVM to begin execution of the
program.
It is Static because it be available for execution without an object instance. you may
know that you need an object instance to invoke any method. So you cannot begin
execution of a class without its object if the main method was not static.
It returns only a void because, once the main method execution is over, the
program terminates. So there can be no data that can be returned by the Main
method
The last parameter is String args[].This is used to signify that the user may opt to
enter parameters to the java program at command line.We can use both String[]
args or String args[].The Java compiler would accept both forms.
Algoritma
Adalah inti dari ilmu
komputer.
Algoritma adalah urutan
langkah-langkah logis
penyelesaian masalah yang
disusun secara sistematis
dan logis.
Algoritma
Langkah-langkah dalam
algoritma harus dapat
ditentukan bernilai benar atau
salah.
Algoritma
Algoritma adalah blueprint dari program.
Sebaiknya disusun sebelum membuat program.
Kriteria suatu algoritma:
Ada input dan output
Efektif dan efisien
Terstruktur
Algoritma Dalam Kehidupan
Algoritma adalah jantung ilmu komputer atau
informatika. Banyak cabang ilmu komputer yang diacu
dalam terminologi algoritma.
Algoritma juga digunakan dalam kehidupan sehari-hari,
contohnya resep makanan. Di dalam resep makanan
terdapat langkah-langkah yang merupakan algoritma.
Algoritma dalam Kehidupan
Algoritma dalam Kehidupan
Kriteria Algoritma
Input: algoritma dapat memiliki nol atau lebih
inputan dari luar.
Output: algoritma harus memiliki minimal satu
buah output keluaran.
Definiteness(pasti): algoritma memiliki instruksi-
instruksi yang jelas dan tidak ambigu.
Kriteria Algoritma
Finiteness (ada batas): algoritma harus memiliki
titik berhenti (stopping role).
Effectiveness(tepat dan efisien): algoritma sebisa
mungkin harus dapat dilaksanakan dan efektif.
Contoh instruksi yang tidak efektif adalah: A = A +
0 atau A = A * 1
Jenis Proses Algoritma
Sequence Process: instruksi dikerjakan secara
sekuensial, berurutan.
Selection Process: instruksi dikerjakan jika memenuhi
kriteria tertentu
Iteration Process: instruksi dikerjakan selama
memenuhi suatu kondisi tertentu.
Concurrent Process: beberapa instruksi dikerjakan
secara bersama.
Sifat Algoritma (Umum)
Tidak menggunakan simbol atau sintaks dari suatu bahasa
pemrograman
Tidak tergantung pada suatu bahasa pemrograman
Notasi-notasinya dapat digunakan untuk seluruh bahasa
manapun
Contoh Algoritma 1
Mengirim surat kepada teman:
1.Tulis surat pada secarik kertas surat.
2. Ambil sampul surat.
3. Masukkan surat ke dalam sampul.
4.Tutup sampul surat menggunakan perekat.
5. Jika kita ingat alamat teman tersebut, maka
tulis alamat pada sampul surat.
6. Jika tidak ingat, lihat buku alamat, kemudian
tulis alamat pada sampul surat.
7.Tempel perangko pada surat.
8. Bawa surat ke kantor pos untuk diposkan.
Contoh Algoritma 2
Mengupas Kentang untuk Makan Malam
Ibu Tati mengambil kantong kentang dari rak
Ibu Tati mengambil panci dari almari
Ibu Tati mengupas kentang
Ibu Tati mengembalikan kantong kentang dari rak
Contoh Algoritma 2 (lanjt)
Ada hal yang tergantungpada sesuatu:
Ibu Tati mengambil kantong kentang dari rak
Ibu Tati mengambil panci dari almari
Lakukan persiapan, gunakan celemek, pakaian
tergantung hari
Ibu Tati mengupas kentang
Ibu Tati mengembalikan kantong kentang dari rak
Kondisi dari Alg. 2
Hari Sabtu :
Ibu Tati melihat bahwa bajunya tidak berwarna
muda karena itu ia tidak memakai celemek(berarti
tidak ada aksi memakai celemek)
Hari Minggu:
Ibu Tati melihat bahwa bajunya berwarna muda
karena itu ia memakai celemek
Kondisi dari Alg. 2
Jadi:
Ambil kantong kentang dari rak
Ambil panci dari almari
Depend on warna baju
berwarna muda : Pakai celemek
tidak berwarna muda :Tidak pakai celemek
Kupas kentang
Kembalikan kantong kentang ke rak
Kondisi dari Alg. 2
Karena dapat pesanan, maka kentang yg harus dikupas
500 buah
tergantung pada jumlah kentang yang sudah dikupas
belum cukup : Kupas 1 kentang
cukup : selesai
Atau:
while jumlah kentang terkupas belum cukup do
Kupas 1 kentang
Kondisi dari Alg. 2
Algoritma Pseudo-code
Nilai A ditambah dengan 5 A A + 5
Cetak nilai A bila lebih besar dari 10 IF A > 10 THEN PRINT A
Dari dua bilangan A dan B, cari bilangan yang IF A > B THEN PRINT A ELSE PRINT
terbesar B
Bagian Program
Suatu program pada dasarnya terdiri dari 3 bagian:
Input: bisa ada, bisa tidak
Proses
Output: minimal satu ouput.
Langkah Pembuatan Program
Mendefinisikan masalah
Ini merupakan langkah pertama yang sering dilupakan orang.
Menurut hukum Murphy (oleh Henry Ledgard):
Semakin cepat menulis program, akan semakin lama kita dapat
menyelesaikannya.
Hal tersebut berlaku untuk permasalahan yang kompleks.
Tentukan masalahnya, apa saja yang harus dipecahkan dengan
menggunakan komputer, dan apa inputan serta outputnya.
Langkah Pembuatan Program
Menemukan solusi
Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan
solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut
dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan.
Contohnya masalah invers matriks, maka kita dapat membagi menjadi
beberapa modul:
meminta masukkan berupa matriks bujur sangkar
mencari invers matriks
menampilkan hasil kepada pengguna
Dengan penggunaan modul tersebut program utama akan menjadi lebih
singkat dan mudah dilihat.
Langkah Pembuatan Program
Memilih algoritma
Pilihlah algoritma yang benar-benar sesuai dan efisien
untuk permasalahan tersebut
Menulis program
Pilihlah bahasa yang mudah dipelajari, mudah
digunakan, dan lebih baik lagi jika sudah dikuasai,
memiliki tingkat kompatibilitas tinggi dengan
perangkat keras dan platform lainnya.
Langkah Pembuatan Program
Menguji program
Setelah program jadi, silahkan uji program tersebut dengan segala macam
kemungkinan yang ada, termasuk error-handlingnya sehingga program
tersebut akan benar-benar handal dan layak digunakan.
Menulis dokumentasi
Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan
melakukan perubahan atau membaca source code yang sudah kita tulis
dapat kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya
adalah dengan menuliskan komentar-komentar kecil tentang apa maksud
kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan
parameter-parameter yang ada pada suatu prosedur dan fungsi.
Langkah Pembuatan Program
Merawat program
Program yang sudah jadi perlu dirawat untuk mencegah
munculnya bug yang sebelumnya tidak terdeteksi. Atau
mungkin juga pengguna membutuhkan fasilitas baru yang
dulu tidak ada
FLOWCHART
Flowchart
Bagan-bagan yang mempunyai arus yang menggambarkan langkah-
langkah penyelesaian suatu masalah.
Merupakan cara penyajian dari suatu algoritma.
Ada 2 macam Flowchart :
System Flowchart urutan proses dalam system
dengan menunjukkan alat media input, output serta
jenis media penyimpanan dalam proses
pengolahan data.
Program Flowchart urutan instruksi yang
digambarkan dengan symbol tertentu untuk
memecahkan masalah dalam suatu program.
Flowchart
Definisi:
Bentuk gambar/diagram yang mempunyai aliran satu atau
dua arah secara sekuensial
Kegunaan:
Untuk mendesain program
Untuk merepresentasikan program
Flowchart
Maka, flowchart harus dapat merepresentasikan komponen-
komponen dalam bahasa pemrograman
Sebelum pembuatan program
Mempermudah programmerdalam menentukan alur
logika program
Sesudah pembuatan program
Menjelaskan alur program kepada orang lain
Simbol-simbol Flowchart
Begin
Jangan lupa
menggambar garis
End
Pembuatan Flowchart cont.
Input/output
Proses Begin
Input
Anda dpt melakukan
perhitungan di dlm proses
Proses
Pembuatan Flowchart cont.
Begin
Input
Output End
Contoh Flowchart
Problem:
Menghitung luaspersegi
panjang
Algoritma
Masukkanpanjang(p)2.Masuk
kanlebar(l)3.Hitungluas(L),
yaitupanjangkali
lebar4.Cetakluas(L
Flowchart bilangan ganjil 1 -100
Contoh Flowchart
~tot1
Pl...f'l)'O u:in9
A
Tr,:ins,a~si
'NilrdON
6elonjokon T y ,...,yo y ,eb<r)IQk
Trmsoko,i
anoU"t
VO"l~ ceo<>st~
d bcr'\(~ T
:~k S:1ld<>jko
dkvrcr.g
T
Saide
omOU\I
y evto be1amlxh
~iSJ
"keolog seb:ny:,t
bel:njas DOIV :Ii cmo.ot
bcnt :oleo
T O'llOIK't
J!mbil Jorgd ~dd~+..
l:><:rk
' I cmo..nt I
seb<n\/Qk
1/ Soldo
om~U"lt
Mel<tiH om<l...f'lf I
s,)l,:lo
(~
J G
Pes:n enor
. ,.
/-,,-------,.
.._/
--. .1 '3r,~ t e
,:.:-~!
1~ :-,.,,11
,,.~~
1,:,,.1 ..1;\,.'I
.-,.,...... ,\
fJ't."l}'I''
,.,.,l,u l'(\'I'
h,,,111,.,,h,
M"',I,, ,,Ii,,,
/
ll'lp v 1 ..~a,
M,..,t:,l'11kJ,
.,,:k,j,,r,v.1.,
- ,,,...,t, ','!':,I.
;i,plr,, nw,r,
hlid t.c- ...I.
;1,,.1 JI
t1l-.,h11r
i:.u ,'!,,,:,,,"
t d }'
---
h)'(T~:11:
Exercise
Bagaimana algoritma untuk menukar isi dari dua gelas?
Menghitung usia berdasarkan tahun (saja) lahir dan tahun
(saja) sekarang
Input:Tahun lahir (tl),Tahun sekarang (ts)
Proses : Umur = ts tl
Output : Cetak Umur
Exercise
Buatlah flowchart untuk menampilkan deret bilangan
berikut :
1, 1, 2, 3, 5, 8, 13
Buatlah flowchart untuk menghitung konversi suhu
dari fahrenheit ke celcius dan reamur dengan nilai
fahrenheit diinput.
Primitif Tipe data dan Operator
Penamaan dalam Java
Reserved Keywords
(integers)
(real numbers)
(other types)
Secara umum, sederet digit dengan tanpa titik decimal (dalam notasi Internasional) atau
koma decimal (notasi Indonesia) ditipekan sebagai sebuah integer. Kita juga dapat
menspesifikasi sebuah integer Long dengan menempatkan 'L' atau 'l' setelah angkanya.
'L' ditunjukkan agar tidak membingungkan dengan digit '1'. Sebuah deretan digit dengan
ada sebuah titik desimalnya adalah bertipe double. Kita juga dapat menspesifikasi
sebuah float dengan menempatkan 'f' atau 'F' setelah angka. Sebuah karakter harfiah
adalah sebuah karakter Unicode tunggal diantara tanda petik. Dua karakter Boolean
adalah true dan false (benar dan salah)
Tipe Data
Tipe data didalam java, yang tergolong kedalam tipe data primitif :
character Konstanta dan Variabel adalah character dan string didalam java
menggunakan unicode character set. Dimana disimpan didalam bentuk
16 bit memori, yang memungkinkan menyimpan sebanyak
65,536 karakter. Nilai Karakter ditandai dengan diapit dengan dengan
tanda petik tunggal. Data ini juga dapat direpresentasikan dengan
escape character, seperti terlihat pada tabel dibawah ini. Sedangkan
string diapit dengan tanda petik ganda.
Konstanta dan Variabel
Contoh yang dibolehkan:
a 1 abc C
Deklarasi variabel char sbb:
char test = A;
string test = Universitas Respati Yogyakarta;
Escape Description
sequence
\n Baris baru. Posisi cursor diawal baris berikutnya.
\t Horizontal tab. Memindahkan kursor ke tab berikutnya
\r Carriage return. Posisi cursor diawal baris yang sedang aktif
\\ Backslash. Mencetak karakter backslash.
\" Double quote. Mencetak tanda petik ganda,
System.out.println( "\"in quotes\"" );
displays
"in quotes"
Konstanta dan Variabel
Keeping Constants Consisten in a Program adalah bagaimana
membentuk nilai konstanta menjadi tetap dan tidak dapat berubah
sepanjang program berjalan. Untuk itu dapat dilakukan dengan
menggunakan keyword final didepan tipe data dari sebuah konstanta. Dan
nama constanta menggunakan huruf besar semua
Contoh program sbb:
1. public class Constant {
2. public static void main(String[] args) {
3. final float PI = 3.14159F;
4. Syatem.out.println(2*pi = + 2*PI);
5. }
6. }
Hasilnya sbb:
2*pi = 6.28318
Pertanyaan terakhir, apakah legal atau tidak program dibawah ini, jika legal
apa hasil dari program tersebut, jika tidak dimana letak kesalahannya?
int I, j;
final int k = 4;
I = k * k;
j = I / k;
k = I + j;
Operator
3+8*4
3 8 4 adalah operand
+ * adalah Operator
Operator
Operator Penugasan
Operator ini adalah operator yang paling sederhana dan hanya
dilambangkan dengan karakter =. Operator ini digunakan untuk
menugaskan suatu nilai ke suatu variabel. Contoh :
int hitung = 4;
yang unik dari operator ini dalam Java adalah kita dapat menggunakan
operator ini secara berantai dalam suatu ekspresi, contoh:
int a, b, c;
a = b = c = 99;
Nilaidari ekspresi dapat berupa proses kalkulasi matematik dimana kita sebut
dengan assignmnet operator. Contoh
a = a + 10
Operator
Superioritas Operator.
1. Operator dapat dikombinasikan ke dalam ekspresi yang kompleks
result = total + count / max - offset;
1. Operator memiliki superioritas yang terdefinisi secara baik, yang menentukan urutan
mereka dievaluasi
2. Perkalian, pembagian dan remainder dievaluasi sebelum pengurangan, penjumlahan dan
penggabungan string
3. Operator aritmatik dengan superioritas sama dievaluasi dari kiri ke kanan
4. Kurung dapat digunakan untuk memaksa urutan evaluasi
Contoh :
a + b + c + d + e a + b * c - d / e
1 2 3 4 3 1 4 2
a / (b + c) - d % e a / (b * (c + (d - e)))
4 3 2 1
2 1 4 3
Operator
Operator
Numeric Promotion of Operands
Adalah sebuah aturan dari hasil sebuah perhitungan matematik dimana
atruran tersebut adalah:
1. Jika dalam operand tersebut terdapat nilai double maka operand lain akan di konvert
ke nilai double
2. Selain itu, jika dalam operand tersebut terdapat nilai float maka operand lain akan di
konvert ke nilai float.
3. Selain itu, jika dalam operand tersebut terdapat nilai long maka operand lain akan di
konvert ke nilai long
4. Selain itu, semua operand akan di konvert ke nilai int.
Contoh :
Expression Result
1. 1 + 1 / 41
2. 1.0 + 1 / 4 1.0
3. 1 + 1.0 / 4 1.25
Operator
Ilustrasi Program
1. public class TestPromotion {
2. public static void main(String[] args) {
3. System.out.println(1 + 1/4);
4. System.out.println(1.0 + 1/4);
5. System.out.println(1 + 1.0/4);
6. }
7. }
Jika dikompile dan dijalankan akan menghasilkan sbb:
C:\>javac TestPromotion.java
C:\>java TestPromotion
1
1.0
1.25
Operator
1. int x = 16, y = 3;
double result;
result = x + y / 2.0;
2. int x = 16, y = 3;
int result;
result = x + y / 2.0;
Operator
Assignment Statement & Assignment Operator
Java juga memiliki spesial assingment operators dengan mengkombinasikan
assignment dengan binary operator menjadi sebuah ekpresi tunggal.
1. Assignment Statement
a = a + 5;
dapat digantikan dengan menggunakan Addition assignment operator +=.
Sehingga dituliskan sbb:
a += 5;
2. Arithmatic Assignment Operators
Assignment Operators Sample Expression Expanded Expression Result
Assume: int a = 3, b = 11;
+= a += 3 a=a+3 6
-= a -= 2 a=a2 1
*= a *= 4 a=a*4 12
/= a /= 2 a=a/2 1
%= b %= 3 b=b%3 2
Operator
Operator Increment dan Decrement
Java memiliki unary Increment Operator (++) dan unary Decrement Operator
(--). Biasanya data disimpan dalam bentuk penambahan nilai integer dengan
satu.
Bila anda perhatikan maka pernyataan ini akan sama maknanya, walaupun
menggunakan cara yang berbeda-beda.
c = c + 1;
c += 1;
c++;
Tabel : Increment and Decrement Operator
8. k = --i + 2 * i * i++;
9. System.out.println( i = + i ); Hasilnya :
10. System.out.println( k= + k ); 4
11. } 28
4
12. } 21
Operator
Logika
Apabila 2 operand bernilai boolean (Contoh A dan B) dan keduanya digunakan dalam
operasi AND, OR, XOR, dan NOT maka nilai yang dihasilkan antara lain:
Operasi AND hanya akan menghasilkan nilai true apabila kedua operand (A dan B) bernilai
true;
Operasi OR hanya akan menghasilkan nilai false apabila kedua nilai operand false;
Operasi XOR hanya akan menghasilkan nilai true apabila salah satu operand-nya (bukan
kedua-duanya) bernilai true; sedangkan
Operasi NOT akan menghasilkan negasi atau kebalikan dari nilai sebelumnya.
Operator
Relasi
Relational and Logical Operator adalah dua buah type operator yang
menghasilkan nilai boolean true atau false. Biasanya digunakan untuk
mengontrol banyak pengulangan dan struktur percabangan didalam java.
Tabel Relational Operators: