Rabu, 17 September 2014

FEP Binusian 2018

Ini pengalaman pertama aku menjadi Buddy Coordinator untuk FEP Universitas Bina Nusantara. Apa sih FEP itu ? Jadi, Freshmen Enrichment Program atau yang lebih dikenal FEP itu adalah sebuah program atau kegiatan dari Universitas Bina Nusantara untuk mahasiswa-mahasiswa baru supaya lebih mengenal lingkungan kuliah dan kampus. Kalau di Universitas lain biasanya disebut MOS. Tpi biar ditegaskan, MOS itu berbeda dengan FEP. FEP di BINUS lebih ke mengarahkan mahasiswa baru tentang BINUS dan aturan-aturan yang ada, tidak ada yang namanya 'Plonco'. FEP di BINUS University terdiri dari 5 batch atau lebih. Wah banyak yah :O Pastinya!! Soalnya setiap tahunnya mahasiswa baru di BINUS itu banyak banget!! Iyah dong, apalagi BINUS University udah diakui sebagai Universitas Bintang 3 di DUNIA!! Congratulations BINUS!!
Kembali lagi ke FEP, apa itu Buddy Coordinator ? Buddy Coordinator atau dikenal sebagai BC itu adalah istilah untuk mahasiswa senior yang membimbing mahasiswa baru untuk pengenalan kehidupan perkuliahan, dimana mahasiswa baru disebut sebagai Buddy.
Nah, kemarin aku bertugas sebagai Buddy Coordinator untuk Batch 3 di CBN14. CBN14 ini terdiri dari mahasiswa jurusan Arsitektur, Teknologi Informasi, Komputerisasi Akuntansi dan juga Sistem Informasi Audit.
Aliza-Rita-Yuki-Talita-Nabila-Aditya
Hans-Fenty
BC CBN14

Banyak banget pengalaman baru yang di dapetin waktu jadi BC ini. Selain ketemu dan kenal dengan banyak teman-teman baru, aku juga jadi mengerti gimana sih kepemimpinan itu diperluin banget dan kekompakan itu penting dalam suatu kelompok terutama dalam kelompok dengan jumlah anggota sekitar 50-an. Thanks banget buat pengalaman baru nya dan juga dapet keluarga baru. CBN14!!!





Rabu, 21 Mei 2014

Today's Algorithm

Algoritma hari ini walaupun hanya sedikit penyampaian materi dari Ko Sky, tetapi banyak sekali materi yang didapatkan dari presentasi hari ini.
Hari ini Kelompok 5 dan Kelompok 6 melakukan presentasi.
Kelompokku yang terdiri dari Yuki, Ridho, Aditya dan David melakukan presentasi mengenai materi ArrayList dan Vector. Berikut materi presentasi kelompok kami.

ArrayList
ArrayList adalah Array yang ukurannya dapat berubah secara dinamis atau dengan kata lain dapat berubah sesuai dengan jumlah data yang dimasukkan.

Fungsi dalam ArrayList :
1. add(element) : menambahkan element.
2. clear() : menghapus semua element.
3. clone() : mengcopy seluruh isi dari index.
4. contains(element) : memeriksa apakah element tersedia atau tida. Hasilnya berupa True atau False.
5. get(index) : melihat element dari index tertentu.
6. isEmpty() : memeriksa isi dari index.
7. remove(index) : menghapus salah satu element dari index tertentu.
8. size() : menampilkan total atau jumlah element.
9. set(index,element) : menukar isi dari index tertentu dengan element tertentu.

Vector
Vector adalah sebuah interface yang digunakan untuk pengolahan data yang bersifat seperti array dinamis yaitu dapat berubah sesuai dengan jumlah data yang dimasukkan.
"Setiap metode dalam Vector diberi keyword synchronized"

Fungsi dalam Vector :
1. addElement(element) : menambahkan element.
2. capacity() : memeriksa jumlah kapasitas yang tersedia.
3. clone() : mengcopy seluruh isi dari index.
4. contains(element) : memeriksa apakah element tersedia atau tidak. Hasilnya berupa True atau False.
5. copyinto(elemment[]) : mengcopy component dari vector ke dalam array tertentu.
6. elementAt(index) : melihat element dari index tertentu.
7. insertElementAt(element,index) : menambahkan element ke index tertentu.
8. isEmpty() : memeriksa isi dari index apakah kosong atau tidak. Hasilnya berupa True atau False.
9. remove(index) : menghapus salah satu index.
10. size() : jumlah atau total dari element.
11. set(index,element) : mengganti isi dari index tertentu dengan element tertentu.

ArrayList vs. Vector
1. Nama metode dari keduanya berbeda untuk melakukan tugas yang sama.
2. ArrayList tidak Thread Safe sedangkan vector sudah Thread Safe.
3. Di dalam Vector semua metod diberi keyword synchronized sedangkan dalam ArrayList tidak ada seperti itu.
4. Dalam ArrayList eksekusinya mengalami kemacetan, sedangkan untuk vector eksekusinya tidak mengalami kemacetan.

Synchronized
berfungsi agar hanya satu thread saja pada satu waktu yang mengakses method.
"Satu proses yang sedang berjalan tidak bisa diganggu proses lain."

Kelebihan synchronized : menjalankan metode yang ada pada ArrayList lebih singkat dibandingkan Vector.

Thread Safe
Thread adalah unit coding yang bisa berjalan disaat yang bersamaan.
Dalam ArrayList tidak ada keyword synchronized sehingga ketika dieksekusi dalam thread, maka dapat mengakibatkan unsafe thread yang berarti dapat terjadi tubrukan thread ketika mencoba memanggil ArrayList.

Penggunaan ArrayList dan Vector
- Saat kita membutuhkan list yang diakses oleh banyak thread, gunakan vector. Namun jika hanya diakses oleh satu thread, gunakan ArrayList.
- Jangan gunakan vector ketika hanya untuk satu thread, karena kelas yang thread-safe itu sangat lambat dibandingkan dengan yang tidak thread-safe.
"Jika tidak menggunakan thread-safe maka disarankan untuk menggunakan ArrayList karena lebih singkat dibandingkan Vector"

OOP(Object Oriented Programming)
adalah teknik untuk membuat objek oriented program.

Terdiri dari :
1. Attribute/property/properties
2. Method/fungsi/behaviour

Penggabungan dari Attribute dan Method disebut Class. Class huruf depannya harus huruf besar. 
Contoh : Nama Class adalah Motor.
Maka Attribute : ban, spion, lampu, jok.
Dan Method : rem, jalan, dll.

Method : 
1. Encapsulation
2. Inheritance
3. Polymorphism

Encapsulation 
adalah proses membungkus attribut atau method yang berfungsi untuk menyembunyikan data agar tidak terlihat.

Inheritance
adalah penurunan sifat dimana memungkinkan untuk tidak perlu menulis lagi dari superlcass tetapi bisa dipakai dari subclass.
Menggunakan keyword extends.
nama subclass_extends_nama superclass

Polymorphism
adalah hampir sama dengan inheritance karena juga menurunkan sifat tetapi menggantikan(replace).
Fungsinya override (ditumpuk).

*Ko Sky mengajarkan cara gampang mengerti tentang super class dan sub class, yaitu super class adalah orangtua (contoh : ayah) dan sub class adalah anak.

Sifat Data
Setiap attribut atau properti memiliki sifat data, yaitu
1. Public : bisa diakses dari luar kelas atau kelas lain(semua).
2. Private : hanya bisa diakses dari kelas tertentu.
3. Protected : bisa diakses oleh kelas itu sendiri dan subclass nya.

Fungsi Setter dan Getter
Setter : untuk mengambil nilai
Getter : untuk menginput nilai


Nama   : Yuki Tjan
NIM    : 1701308561
Kelas   : 32PAA
Bina Nusantara University

Rabu, 14 Mei 2014

ArrayList, Vector and Sorting

Mata kuliah Algoritma hari ini adalah mengenai ArrayList, Vector dan Sorting.

ArrayList
ArrayList tidak begitu berbeda dengan Array, hanya saja Array List memiliki sifat yang lebih dinamis karena bisa ditambahakan atau dikurangi.

Jenis ArrayList :
1. add(element) : penambahan di belakang.
2. clear() : menghapus semua elment
3. clone() : meng-copy
4. contains(element) : mencari atau search eleement
5. get(index) : mencari isi dari index ke sekian
6. isEmpty() : cek kosong atau tidak
7. remove(index) : mneghapus index tertentu
8. size() : jumlah element
9. set(index,element) : mengisi index dari element ke sekian.

Vector
1. addElement(element) : menambahkan element
2. capacity() : kapasitas yang bisa menampung
3. clone() : meng-copy
4. contains(element) : mencari atau search element
5. copyinto(element[]): men-copy element ke suatu array yang spesifik
6. insertElemenetAt(element,index) : mengisi element ke index ke sekian
7. isEmpty() : memeriksa apakah vektor kosong atau tidak
8. remove(index) : menghapus index tertentu
9. size() : jumlah element
10. set(index,element) : mengisi index dari element ke sekian.

Sorting
Ada 5 jenis sorting yaitu :
1. Bubble
2. Selection
3. Insertion
4. Merge
5. Quick

Dari kelima jenis sorting tersebut, Ko Sky mengajarkan hanya 2 yaitu Bubble dan Selection.
Bubble adalah sorting yang membandingkan dan kemudian diurutkan.
Ada 2 cara pengurutan :
1. Ascending : pengurutan dari A ke Z
2. Descending : pengurutan dari Z ke A.

Selection adalah perbandingan yang bertujuan untuk mencari yang paling kecil untuk index tertentu.

Materi yang diajarkan hari ini tidaklah banyak dan minggu depan adalah giliran kelompok 5 yaitu kelompokku untuk mempresentasikan materi kami.
Kelompok 5 yang terdiri dari Ridho Robbyanto, David Mardianto dan Aditya Abdi Putra akan mempresentasikan materi mengenai ArrayList dan Vector.
Maka dari itu penjelasan mengenai ArrayList dan Vector akan di post minggu depan secara lebih rinci.
BINUS is the BEST!

Nama : Yuki Tjan
NIM : 1701308561
Kelas : 02PAA

Rabu, 07 Mei 2014

Array dalam Algoritma

Materi pertama kali yang dipelajari di kuliah pertama algoritma setelah UTS adalah mengenai Array.
Array memiliki 5 karakteristik, antara lain :
1. Fixed
2. Menggunakan memori yang besar. Contohnya dalam kehidupan adalah ketika dimana kita memesan 6 buah barang tetapi yang dipakai hanya 3 buah, walaupun yang kita pakai hanya 3 buah tetapi tetap saja dihitung 6 buah.
3. Static
4. Homogen : sejenis
5. Sequency : berurutan

Array memiliki kelebihan yaitu randaom access yaitu gampang diakses.


Cara membuat Array atau cara membedakan Array atau bukan tidaklah susah. Perbedaan Array dengan yang lainnya hanyalah dari bentuk kotak ( [] ).
Contoh : int [] , string [] , [] char, [] double.
Lambang [] bisa berada di depan maupun di belakang ( tidak ada perbedaan).

Contoh Array : double [] mylist =  new double [10]
1. mylist adalah nama index
2. double [10] aritnya memiliki 10 element dan 9 index. Untuk mencari index digunakan rumus n-1

Array Automatic Initialization
Contoh :
1. double [] number = {1.1 , 1.3 , 3.1, 3.3};
2. char [] university = {'B' , 'I' , 'N' , 'U' , 'S'};
3. string [] name = {"Ferdi" , "Adi" , "Handy"};
Perbedaan yang perlu diingat adalah untuk angka tidak menggunakan tanda, untuk character menggunakan tanda petik( ' ), dan untuk kata menggunakan tanda petik dua( " ).

Dalam Array ada digunakan dimensi dan penggunannya hanyalah dengan jumlah kotak ( [] ) yang ada. Jika Array 1 dimensi maka char[], tetapi jika Array 2 dimensi maka char [] [].

Single Array

Keterangan :
1. for(int i=0;i<numStd;i++), berarti inisialisasi i dimulai dari 0, 1<numStd berarti kondisi dimana looping akan berhenti, i++ berarti akan terus bertambah hingga kondisi looping berhenti. Jika tidak ada i++ maka akan terjadi looping forever.
2. gpa[i] = 3+((double)i/10), double merupakan type casting dimana dari contoh di atas menggunakan double karena akan diigunakan angka desimal.
3. %-10s, berfungsi dalam penulisan yang lurus dan rapi. Karena dari contoh setiap nama memiliki panjang yang berbeda.
4. %1.2f\n, berarti menggunakan 2 angka dibelakang koma atau 2 angka desimal.

Dalam penggunaan looping seringkali ada for(i=0;i<19;i++), itu berarti looping terjadi 19 kali. Cara gampang perhitungannya adalah 19-0=19. Tetapi jika digunakan lambang <= maka looping akan terjadi 20 kali dengan perhitungan 19-0+1 = 20.

Array Duplication (Correct Way)
1. Looping, untuk mendapatkan data yang sama dengan menggunakan looping. Pengerjaanya menggunakan sourceArray dan targetArray.

2. Arraycopy, memiliki keuntungan hemat tempat karena hanya menghabiskan 1 baris saja.
3. Clone

Two Dimensional Array
Jika int [3] [5] maka cara perhitungan Array adalah dengan mengalikan 3 dengan 5 dan hasilnya berjumlah 15. Dengan maksud memilii 3 baris(kesamping) dan 5 kolom (kebawah).

Passing Array
Dalam penggunaanya dimaksudkan idx1 akan dipindahkan ke value, idx2 akan dipindahkan ke idx1 dan kemudian value akan dipindahkan ke idx2.
Namun Ko Sky memberikan cara yang lebih mudah dimengerti, yaitu bagaimana cara memindahkan isi dari gelas pertama ke gelas kedua dan sebaliknya. Dalam pengajarannya diberikan contoh gelas A berisi es batu dan gelas B berisi air putih. Dimaksudkan untuk menukar isi dari setiap gelas dan bagaimana caranya ?
Untuk menukar isi dari kedua gelas diperlukan gelas C.

Keterangan :
1. Es batu dari gelas A dipindahkan ke gelas C yang kosong.
2. Air putih dari gelas B kemudian dipindahkan ke gelas A yang sudah kosong.
3. Es batu yang sekarang berada di gelas C kemudian dipindahkan ke gelas B.

ArrayList Class
1. Add(element) : penambahan di belakang.
2. Clear() : menghapus semua element
3. Clone() : meng-copy
4. Contains(element) : mencari / search element
5. Get(index) : mencari isi dari index ke berapa
6. isEmpty : cek kosong atau tidak
7. Remove(index) : menghapus index tertentu
8. Size() : jumlah element
9. Set(index,element) : mengisi index dari elemet ke sekian.

Nama : Yuki Tjan
NIM : 1701308561
Class : 02PAA
Dosen pengajar : Henry Chong
Sumber materi : Binus University



Rabu, 16 April 2014

Review dan Ringkasan Algoritma

Ga terasa semester 2 sudah mencapai pertengahan dan Ujian Tengah Semester pun semakin mendekat. Mata kuliah semester 2 ini memiliki kesulitan yang lebih tinggi daripada di semester 1 pastinya, dan untuk algoritma ini ternyata lebih susah daripada kelihatannya.
Pertemuan mata kuliah algoritma hari ini melakukan review untuk Ujian Tengah Semester tanggal 22 April 2014 nanti.
Berikut catatan yang kudapat dari review hari ini. :)

Algoritma
Algoritma adalah langkah-langkkah melakukan sesuatu untuk menyelesaikan masalah.
Dalam algoritma dikenal sebuah proses dengan langkah
1. Input, contohnya adalah Scanner in = new Scanner(System.in)
2. Process, proses hitung-hitungan seperti tambah (+) dan kurang (-) dll.
3. Output, contohnya adalah println, print dll.

Input dan Output

5 Karakteristik algoritma :
1. Input
2. Output
3. Definiteness
4. Finiteness
5. Effectiveness

Flowchart
Contol soal : Jumlahkan bilangan gelap dari angka 1 sampai dengan n.
Penjelasan :
1. Flowchart harus diawali dengan START/BEGIN dan diakhiri dengan END/STOP.
2. sum = 0, dikarenakan soalnya adalah total dimana itu dimulai dari 0 dan i =1 dikarenakan dimulai dari 1.
3. input n, dikarenakan n tidak diketahui, tetapi jika n diketahui, maka bisa ditulis n = 5. 
4. i < n, agar lopping berjalan sesuai dengan soal.
5. i % 2 = 0, dibaca i modulus 2 = 0, dikarenakan dari soal bilangan yang akan dijumlahkan adalah bilangan genap dan semua bilangan genap apabila di modulus 2 akan memiliki hasil 0.
6. i++ adalah contoh penggunaan shorthand operator. Dapat juga ditulis i = i + 1.
7. Proses akhir adalah print sum tetapi mengapa dari proses true tidak ada tanda panah ke proses print sum? Untuk mencapai proses print sum, lopping harus mencapai FALSE sehingga baru bisa selesai. Pengandaian apabila n = 5, jika i<5 maka proses lopping akan terus berjalan tetapi apabila i>5 maka lopping akan terjadi FALSE dan berlanjut ke proses print sum dan proses pun berakhir.

Contoh soal 2 : Jumlahkan semua bilangan diawali dari 5 sampai n.
NS Diagram
Ada 4 jenis simbol dalam NS Diagaram : 

NS Diagram berdasarkan Contoh Soal 1
Penjelasan : NS Diagram hampir menyerupai Flowchart namun dalam bentuk yang lebih simple.
1. Until i > n berarti looping akan berhenti apabila i > n. Kondisi nya sama dengan di Flowchart tetapi penulisannya berbeda. Apabila di Flowchart penulisannya i < n maka di NS Diagram i > n.

Pseudocode 
Pseudocode menjelaskan kode dalam bahasa yang lebih mudah dimengerti.
Sesuai soal nomor 1

BEGIN
          sum = 0;
          i =1;
          input n;
          while i < n
                if i % 2 = 0
                        sum = sum + 1
                end if
                i++
          end while
          print sum
END

Math Method
Dalam Math Method ada yang dinamakan Rounding Method, yaitu :
1. ceil : pembulatan ke atas. Contohnya : Math.ceil(2.2) hasilnya menjadi 3.0
2. floor : pembulatan ke bawah. Contohnya : Math.floor(2.3) hasilnya menjadi 2.0
3. rint :  pembuatan ke integer terdekat. Contohnya : Math.rint(2.5) hasilnya menjadi 2.0
4. round : pembulatan ke bawah seperti floor tetapi nilanya ditambahkan 0.5 dulu. Contohnya : Math.round(2.6) hasilnya menjadi 3.0. Karena 2.6 + 0.5 menjadi 3.1 dan dijka dibulatkan ke bawah menjadi 3.0

Numeric Data Type


Shorthand Operator


Increment dan Decrement Operator

Boolean Operator

1. NOT (!)

2. AND (&&)

3. OR (||)

4. XOR (^)

Selection and Iteration Statements
Selection Statement memiliki 5 tipe dalam Java :
1. One-way if statements
2. Two-way if statements
3. Nested if statements
4. Switch statements
5. Conditional expressions

Dalam statement nya ada 3 jenis yaitu, if, if-else, if-else if-else.

One-way if statements
disebut juga Single if. Adalah sebuah statement yang hasilnya benar atau salah dan hanya akan menjalankan statement hanya jika boolean expressionnya True.

Two-way if statements
adalah sebuah statement yang benar maupun salah tetap harus mengerjakan sesuatu. Jika True maka akan ke statement if dan jika False makan akan ke statement else. Dalam two-way if statements ada penggunaan even dan odd, even=genap dan odd=ganjil.
Nested if statements
adalah sebuah statement apabila "if" atau "if else" berada di dalam "if" atau "if else".

Common Errrors in Selection Statements
1. Forgetting neccesary braces : kurangnya kurung kurawal ({}).
2. Wrong semicolon at the if line : penggunaan titik koma ( ; ) dalam if tidak diperbolehkan karena akan membuat proses tidak berjalan.
3. Redundant testing of Boolean values : Penggunaan yang lebih singkat
4. Dangling else Ambiguity : "else" selalu menjadi milik "if" yang terdekat

Switch statements
adalah sebuah statements dengan case bukan True atau False. Dalam switch tidak ada urutan.
Conditional Expressions
adalah penggunaan lebih mudah dan singkat dalam if dan else.
Iteration Statements
Ada 3 tipe Iteration Statements :
1. The while loop
2. The do-while loop
3. The for loop

The while loop
adalah sebuah statement yang dicek terlebih dahulu kemudian baru dijalankan.
The do-while loop
adalah sebuah statement yang dijalankan terlebih dahulu baru di cek kemudian.
The for loop
adalah sebuah statement dengan initialization, condition dan increment/decrement.
Selain semua review di atas, Pak Sky juga mengajarkan bagaimana untuk membuat bentuk-bentuk tertentu dengan codingan di TextPad.
Persegi


Huruf N


Kurang lebih inilah yang kudapatkan di review mata kuliah Algorithm and Programming hari ini. Semoga saja review dan rangkuman ini dapat berguna bagi saya sendiri dan juga orang lain dan semoga review yang dipelajari ini sesuai dengan yang akan muncul di UTS nantinya.. :D
Terima kasih kepada Pak Sky atas review nya hari ini dan thanks Bina Nusantara University :D
God Bless Our mid test O:)

Nama   :   Yuki Tjan
NIM    :   1701308561
Kelas   :   32PAA



Rabu, 26 Maret 2014

Every Week Algorithm

Kembali lagi ke Algortima dan Programming.
Mata kuliah Algortima dan Programming hari ini sebagian besar membahas kembali apa yang diajarkan minggu lalu. Tapi jujur, mata kuliah hari ini lebih membingungkan dari yang minggu lalu. -____-

Logic & Relational Operation
Minggu lalu materi ini sudah dibahas dan sudah ku post sebelumnya.
Untuk tambahan :
Logic terbagi menjadi 3
1. Selection
Selection terbagi menjadi if dan switch. Dimana if ada dua jenis yaitu if-else dan simple.
2. Iteration
Iteration terbagi menjadi tiga yaitu while, do-while dan for.
3. Modular
Modular biasanya disebut juga Function atau Methods.

Methods
Apa itu metode ?
Metode adalah koleksi atau kumpulan statement atau pernyataan yang dikelompokkan bersama untuk satu operasi. Metode mengurangi kode yang berlebihan, mengaktifkan penggunaan kembali kode, meningkatkan program, modularize kode, kode yang mudah dibaca dan mempersempit ruang lingkup debugging.


Remembering
1. Nested. Contoh : nested if, adanya if di dalam if.
2. Modulus adalah sisa hasil bagi. Contoh : Modulus dari 10 dibagi 2 adalah 0 dan modulus dari 5 dibagi 2 adalah 1.
3. Even dan Odd. Even berjumlah genap dan Odd berjumlah ganjil.
4. Equals membandingkan antara 2 string apakah sama atau tidak.

Nama   : Yuki Tjan
NIM    : 1701308561
Kelas   : 02PAA
Bina Nusantara University

Selasa, 18 Maret 2014

Hatsune Miku

Suka Jepang ?
Kalau kalian suka Jepang, berarti ga jauh dari komik, lagu dan terutama anime.
Jika orang ditanyakan sumber komik dan anime, pastinya semua bakal jawab Jepang soalnya Jepang udah terkenal banged di 2 hal itu.
Kalau kalian suka komik dan anime, suatu kemungkinan mungkin kalian juga tau atau minimal pernah dengar tentang Hatsune Miku.
Jujur, awalnya aku cuma tahu Hatsune Miku saja, hanya gambar dan lagunya, lagunya pun hanya beberapa, tetapi yang aku tahu pasti Hatsune Miku adalah sebuah Vocaloid yang terbilang paling populer saat ini. Asal kalian tahu dia ga kalah dari penyanyi asli, dia bahkan punya konser tersendiri dan penggemar yang setia dengan konser-konsernya itu. Salah satunya konsernya adalah Concert "World is Mine".
Ngomong-ngomong, nama Hatsune Miku, berasal dari kata Hatsu yang berarti pertama, Ne yang berarti suara dan Miku yang berarti masa depan. Sehingga kalau di gabungkan berarti "Suara Pertama dari Masa Depan". Arti dari namanya aja udah keren banged. XD

Karena namaku Yuki yang dalam bahasa Jepang berarti salju, otomatis gambar yang kusukai dari Miku adalah Yuki Miku atau Snow Miku.
Ini beberapa gambar yang kusuka mengenai Miku.





Sumber : Google
Thanks for reading :)

Rabu, 12 Maret 2014

Today Algorithm

Hello everyone :D
Post kali ini tetap akan membahas tentang Algoritma dan Programming.
Kelas 32PAA hari ini mendapatkan banyak sekali ilmu dari kelas besar dan kelas kecil.
Materi yang diberikan tentang Basic Class Arithmetic Operation & Logic and Relational Operation dan Selection and Iteration Statements.

Basic Class Arithmetic Operation & Logic and Relational Operation
Math Class
Math Class adalah fungsi matematika dalam Java karena di dalam Java tidak ada simbol seperti akar (√), pangkat (x2)dan phi(π).

Ada 3 metode dalam Math Class, yaitu :
1. Metode Trigonometric : sin, cos, tan, toRadians, toDegrees, asin, acos, atan.
2. Metode Eksponent : exp, log, log10, pow (pangkat), sqrt(akar).
3. Metode Rounding : ceil (pembulatan keatas), floor (pembulatan ke bawah), round (pembulatan biasa), dan rint (pembulatan sampai integer terdekat).
4. Metode min, max dan abs : min (nilai minimum), max (nilai maksimum), dan abs ( merubah minus menjadi plus).
5. Metode Random : metode acak dengan konsep selalu menghasilkan bilangan double dari 0-1.

Bagaimana bila kita menginginkan angka 0-6 dengan menggunakan metode random sedangkan metode random hanya menghasilkan bilangan 0-1 ?
Metode Random menggunakan rumus : a + int Math.random () * b
Dengan metode random hanya dapat menghasilkan nilai antara 0-1 berarti angka terakhir yang dapat dicapai adalah 0,99999999.....
Maka dari itu jika ingin menghasilkan angka 0-6 digunakan :
a + int Math.random () * b
1 + int Math.random () * 6

Penjelasan : Nilai int Math.random adalah 0,999999... kemudian dikalikan dengan angka 6 mendapatkan nilai kurang lebih 5,999999. Angka di belakang koma akan dibuang sehingga mendapatkan hasil 5. Hasil terakhir 5 + 1 = 6. Maka didapatkan hasil 6.

Arithmetic Operations
1. Numeric Operators

Note : % atau Remainder biasanya disebut Modulus adalah sisa dari hasil pembagian.

2. Shorthand Operators


3. Increment and Decrement Operators


Relational dan Comparator Procedure
Relational Procedure == Comparator Procedure
Simbol == hanya berlaku untuk object atau number dan memiliki hasil True atau False.

Comparator Operator 

Dalam comparator operator:
x = 14    , berarti menyimpan angka 14 dalam x
x == 14  , melihat apakah x = 14, hasilnya hanya True atau False.

Boolean Operator

1. NOT (!)

2. AND(&&)

3. OR(||)

4. XOR(^)

Additional Operator
<< : shift left ( unsigned )
>> : shift right ( signed )
>>> : shift right ( unsigned )

Advanced Learning

Selection and Iteration Statements
Selection Statement memiliki 5 tipe dalam Java :
1. One-way if statements
2. Two-way if statements
3. Nested if statements
4. Switch statements
5. Conditional expressions

Dalam statement nya ada 3 jenis yaitu, if, if-else, if-else if-else.

One-way if statements
disebut juga Single if. Adalah sebuah statement yang hasilnya benar atau salah dan hanya akan menjalankan statement hanya jika boolean expressionnya True.

Two-way if statements
adalah sebuah statement yang benar maupun salah tetap harus mengerjakan sesuatu. Jika True maka akan ke statement if dan jika False makan akan ke statement else. Dalam two-way if statements ada penggunaan even dan odd, even=genap dan odd=ganjil.
Note : Untuk mengingat yang manakah yang genap dan ganjil antara even dan odd, Pak Sky mengajarkan sebuah cara mudah, yaitu dengan menghitung jumlah huruf dalam kata even dan odd. Kata "even" memiliki 4 huruf sehingga even adalah genap, sedangkan kata "odd" memiliki 3 huruf sehingga odd adalah ganjil. 


Nested if statements
adalah sebuah statement apabila "if" atau "if else" berada di dalam "if" atau "if else".

Common Errrors in Selection Statements
1. Forgetting neccesary braces : kurangnya kurung kurawal ({}).
2. Wrong semicolon at the if line : penggunaan titik koma ( ; ) dalam if tidak diperbolehkan karena akan membuat proses tidak berjalan.
3. Redundant testing of Boolean values : Penggunaan yang lebih singkat
4. Dangling else Ambiguity : "else" selalu menjadi milik "if" yang terdekat

Switch statements
adalah sebuah statements dengan case bukan True atau False. Dalam switch tidak ada urutan.
Note : Dalam flow chart switch statement ada "break" dalam tiap case, arti dari break adalah berhenti dengan keluar dari case dan melanjutkan coding lainnya. Jika tidak ada break, otomatis akan turun ke proses selanjutnya.

Conditional Expressions
adalah penggunaan lebih mudah dan singkat dalam if dan else.

Iteration Statements
Ada 3 tipe Iteration Statements :
1. The while loop
2. The do-while loop
3. The for loop

The while loop
adalah sebuah statement yang dicek terlebih dahulu kemudian baru dijalankan.

The do-while loop
adalah sebuah statement yang dijalankan terlebih dahulu baru di cek kemudian.

The for loop
adalah sebuah statement dengan initialization, condition dan increment/decrement.

Well friends.. Kurang lebih itulah yang saya dapatkan dari kelas besar dan kelas kecil mata kuliah Algoritma dan Programming di Bina Nusantara University. Untuk kekurangan dan kesalahan dalam pencatatan materi kuliah yang saya post-kan saya minta maaf dan semoga bisa bermanfaat.

Yuki Tjan
1701308561
32PAA

Thanks :)