Tampilkan postingan dengan label Java. Tampilkan semua postingan
Tampilkan postingan dengan label Java. Tampilkan semua postingan

Kamis, 08 Desember 2016

ATM Case Study (Deitel Book)


Assalamu’alaikum.

Pagi ini, saya akan sedikit men-demonstrasikan sebuah program Java yang melibatkan banyak Class dengan banyak kompleksitas pula tentunya.
Program kali ini adalah program mesin ATM.
Untuk source code aslinya sendiri bisa dilihat pada buku “Java – How to Program, 9th edition by Deitel”.
Disini saya mungkin hanya akan sekedar copy paste saja, karena ini adalah demonstrasi. Tapi akan saya sedikit jelaskan gambaran dari program ini.

Berikut adalah bentuk arus dari programnya, yang tersusun atas beberapa class dan hubungan antar class-nya.
 
Kemudian untuk source code dari masing-masing class sendiri bisa dilihat dibawah ini.

ATM class
Class yang ini adalah class yang menjadi penghubung dari 3 major class, yaitu UI (User-Interface) ATM, Transaksi ATM dan Database ATM.
Class ATM ini hanya difungsikan sebagai penghubung saja, ibarat seperti mesin ATM itu sendiri.

4 class selanjutnya adalah class yang membentuk UI dari ATM.

DepositSlot class

Class ini adalah salah satu dari 4 UI ATM class pada program ini.
Fungsi dari class ini sendiri sebenarnya tidak terlalu penting jika diaplikasikan kedalam sebuah program ini. Akan tetapi penggunaan class ini menjadi penting di dunia nyata. Karena ini diibaratkan seperti kita menerima bon / struk dari mesin ATM yang menandakan bahwa saldo kita berhasil ditambahkan.

Screen class
Class Screen ini adalah class yang paling nampak berperan dalam salah satu UI ATM class.
Seperti namanya, screen. Class ini berfungsi untuk menampilkan UI itu sendiri pada user.
Jadi isinya adalah opsi2 apa saja yang dapat ditawarkan mesin kepada user.

Keypad class
Class Keypad ini adalah class yang berfungsi untuk mengambil input dari user.

CashDispenser class
Class ini berfungsi untuk melakukan pengecekan dari input user terhadap arus variabel uang dalam program.

4 class selanjutnya adalah class yang mengatur Transaksi pada program.

Transaction class
Class ini adalah class yang menjadi inti dari pengaturan transaksi pada program.
Class Transaction ini akan membuat 3 kelas turunan yang mengatur transaksi utama pada program, yaitu Withdrawal, Deposit, dan penyeimbangan Balance uang.

 Withdrawal class
Class turunan dari Transaction, class ini berfungsi untuk mengatur proses pengambilan uang dengan melakukan pengecekan-pengecekan pada variabel2 tertentu dalam program.

Deposit class
Class turunan dari Transaction, class ini berfungsi untuk mengatur proses pemasukan uang dengan melakukan pengecekan-pengecekan pada variabel2 tertentu dalam program.
BalanceInquiry class
Class turunan dari Transaction, class ini berfungsi untuk mengeluarkan output berupa total penyimpanan dan yang bisa diambil dari ATM.
Selain itu class ini juga mengatur balance dari uang dalam mesin ATM supaya tidak bisa bertambah seperti uang dari user itu sendiri.
2 class selanjutnya adalah class yang mengatur database dari ATM.

BankDatabase class
Class ini berfungsi untuk pengaturan database pada mesin ATM. Digunakan untuk menyimpan total saldo user, ID user dan PIN user.

Account class
Class ini berfungsi sebagai pengecekan apakah pemberian input sesuai dengan database.
Kemudian melakukan panggilan fungsi ke Balance yang masih ada (uang dalam ATM)

ATM case study (core class runner)

Dan ini adalah class utama yang difungsikan sebagai penjalan program.
Uniknya class ini hanya memiliki satu perintah saja dalam fungsi main() nya, yaitu run() yang sebenarnya adalah method dari class ATM. Maka program mesin ATM dapat dijalankan.

Contoh pengeksekusian program


Sekain dulu penjelasan singkat dari saya tentang mesin ATM ini.
Jika ada saran atau pertanyaan, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Kamis, 24 November 2016

Java Programming : Decimal to Octal Converter

Assalamu'alaikum.
Pagi.. Postingan kali ini saya akan membahas salah satu problem pada Java, yaitu Konversi bilangan.

Konversi bilangan yang sudah kita bahas sebelumnya adalah:
Konversi desimal ke biner
Konversi desimal ke heksadesimal

Kali ini yang akan kita bahas adalah konversi dari desimal ke oktal.

Apa itu bilangan oktal?
Bilangan oktal adalah bilangan yang hanya memiliki digit mulai dari 0-7.
Sesuai dengan namanya oktal >> octagonal >> segi delapan. Bilangan ini hanya memiliki delapan digit, atau bisa direpresentasikan sebagai 2^3 atau sebagai salah satu bilangan komputer selain biner(2^1) dan heksadesimal(2^4).

Konsep yang digunakan hampir mirip dengan mengkonversi bilangan heksadesimal seperti yang sudah pernah dijelaskan.

Contoh : Desimal = 12345
--> 12345 / 8 = 1543 + sisanya adalah 1
--> 1543 / 8 = 192 + sisanya adalah 7
--> 192 / 8 = 24 + sisanya adalah 0
--> 24 / 8 = 3 + sisanya adalah 0
--> 3 / 8 = 0 + sisanya adalah 3

Maka nilai octalnya dibaca secara terbalik dari bawah ke atas, yaitu octal = 30071

Untuk source codenya bisa dilihat dibawah ini.


Kemudian untuk contoh pengeksekusian program bisa dilihat pada gambar dibawah.


Sekian penjelasan singkat tentang konversi desimal ke octal.
Jika ada pertanyaan atau saran untuk postingan ini, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Senin, 21 November 2016

Java Programming : Method dalam Java

Assalamu'alaikum.
Postingan kali ini sedikit membahas tentang salah satu struktur lainnya pada pemrograman Java yang dinamakan method.

Method ini adalah suatu fungsi dalam class yang menjalankan perintah-perintah syntax dari Java.
Penggunaan Method bisa bercabang dalam banyak sekali penggunaan, salah satunya adalah Overloading.
Dalam Java sendiri, boleh ada dua atau lebih method dengan menggunakan nama yang sama.
Hanya saja, parameter dari method-method dengan nama yang sama tersebut haruslah berbeda pula, entah itu banyak data parameter atau tipe data parameter.

Untuk contoh penggunaan method sendiri bisa dilihat pada source code dibawah.


Kemudian bentuk pengeksekusian programnya adalah seperti pada gambar dibawah.


Sekian penjelasan singkat mengenai method pada pemrograman Java.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Fibonacci

Assalamu'alaikum.
Karena postingan-postingan sebelumnya banyak sekali membahas tentang penghitungan pada bangun datar dan bangun ruang, sekarang saya ingin kembali membahas beberapa problem pemrograman Java yang umum ada.
Salah satunya adalah Fibonacci. Meskipun ada postingan yang sama-sama membahas problem Fibonacci di website saya, tapi yang satunya menggunakan konsep rekursi.
Sedangkan yang satu ini adalah menggunakan konsep perulangan.

Untuk penjelasan mengenai Fibonacci sendiri anda bisa lihat pada postingan saya sebelum ini, atau mencari di internet, karena ada banyak sekali sumber di internet.

Berikut adalah source code dari program.


Kemudian contoh eksekusi program ada pada gambar dibawah ini.


Sekian penjelasan singkat tentang fibonacci.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Volume Bola

Assalamu'alaikum.
Postingan kali ini masih membahas bangun dimensi, tapi bahasan kali ini adalah bangun ruang.
Dan untuk bahasan kali ini adalah program java untuk menghitung volume bola.

Bola sendiri adalah konsep bangun ruang yang terjadi ketika kamu memiliki sebuah bangun datar lingkaran yang kamu bisa putar kemanapun sejauh 180 derajat terhadap titik pusat lingkaran.
Volume bola sendiri masih ada yang beranggapan jika masih belum cukup akurat dalam penuturan rumusnya.
Jika menggunakan konsep integral volume (dalam hal ini ada hubungannya dengan kalkulus 1 walaupun tidak perlu masuk kalkulus), maka volume bola ini persis didapatkan seperti halnya rumus volume bola pada umumnya.
Dimana volume bola adalah PI * radius * radius * radius * 4/3
Datangnya angka 4/3 ini adalah hasil dari peng-integralan rumus persamaan lingkaran yang sudah diputar sedemikian rupa hingga membentuk bangun bola.
Sedangkan PI sendiri adalah konstanta umum sebagai pengali pada integral volume.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang volume bola.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Volume Limas

Assalamu'alaikum.
Postingan kali ini masih membahas bangun dimensi, tapi bahasan kali ini adalah bangun ruang.
Dan untuk bahasan kali ini adalah program java untuk menghitung volume limas.

Limas sendiri adalah sebuah bangun ruang yang tercipta dari membagi sebuah bangun prisma tegak menjadi tiga bagian sama besar dalam volume.
Hal ini membuat volume limas sendiri menjadi 1/3 dari volume prisma tegak.
Karena volume prisma tegak adalah luas alas prisma * tinggi prisma.
Maka, volume limas bisa dikatakan luas alas limas * tinggi limas / 3. (Karena dikali 1/3 sama saja dengan dibagi 3).
Hal ini tidak peduli bagaimanapun bentuk alasnya, entah itu lingkaran, segitiga, segi empat, segi enam, segi dua belas, bahkan segi seratus pun, konsep volume limas tidak akan berubah.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang volume limas.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Volume Silinder / Tabung

Assalamu'alaikum.
Postingan kali ini masih membahas bangun dimensi, tapi bahasan kali ini adalah bangun ruang.
Dan untuk bahasan kali ini adalah program java untuk menghitung volume tabung.

Tabung sendiri sebenarnya merupakan konsep dari balok dan prisma tegak. Dengan menggunakan lingkaran sebagai alas dan tutupnya, maka bangun ruang itu disebut tabung atau silinder.
Karena konsepnya yang mirip balok, otomatis volumenya pun juga tidak jauh beda dari balok.
Yang membedakan hanyalah bentuk alas dan tutup tabung saja yang berbentuk lingkaran.
Karena konsepnya menggunakan prisma tegak, maka volume tabung secara umum bisa dikatakan luas alas * tinggi tabung.
Dengan luas alas berupa lingkaran, maka volume tabung bisa diketahui.
Volume tabung = PI * radius * radius * tinggi tabung.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang volume tabung.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Volume Kubus

Assalamu'alaikum.
Postingan kali ini masih membahas bangun dimensi, tapi bahasan kali ini adalah bangun ruang.
Dan untuk bahasan kali ini adalah program java untuk menghitung volume kubus.

Karena kubus sendiri adalah konsep balok dimana panjang tiap rusuknya sama. Sehingga panjang ke-12 rusuk yang ada pada kubus memiliki panjang yang sama persis.
Hal ini membuat volume kubus sama seperti volume balok, tapi dapat dibuat lebih sederhana lagi.
Karena panjang = lebar = tinggi, maka panjang rusuk kubus dapat dianggap sebagai sisi, atau disebut rusuk. (Karena yang dijadikan acuan disini adalah bangun ruang)

Maka volume kubus adalah rusuk * rusuk * rusuk = (rusuk)^3

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang volume balok.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Volume Balok

Assalamu'alaikum.
Postingan kali ini masih membahas bangun dimensi, tapi bahasan kali ini adalah bangun ruang.
Dan untuk bahasan kali ini adalah program java untuk menghitung volume balok.

Volume balok sendiri sebenarnya sederhana, yaitu panjang * lebar * tinggi dari balok.
Dimana panjang, lebar dan tinggi balok semuanya tidak ada yang saling sejajar satu dengan yang lain.
Tapi masing-masing memiliki 4 rusuk yang saling sejajar satu dengan yang lain.
Jadi garis panjang balok memiliki 4 rusuk sama panjang dan saling sejajar, garis lebar dan garis tinggi pun demikian. Sehingga total ada 12 rusuk pada balok.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang volume balok.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Luas dan Keliling Belah Ketupat

Assalamu'alaikum.
Postingan kali ini masih membahas bangun datar.
Dan untuk bahasan kali ini adalah program java untuk menghitung luas dan keliling belah ketupat.

Luas belah ketupat atau diamond sendiri adalah diagonal 1 * diagonal 2 / 2
Panjang diagonal 1 adalah panjang garis lurus yang menghubungkan salah satu titik sudut pada belah ketupat yang berseberangan dengan titik sudut lainnya.
Dan panjang diagonal 2 adalah konsep yang sama dengan diagonal 1, hanya saja menggunakan titik yang masih tersisa.
Syarat belah ketupat adalah kedua diagonal ini haruslah saling tegak lurus. Karena jika tidak tegak lurus, maka bangun datar tidak bisa dikatakan sebagai belah ketupat. Tapi bisa disebut sebagai jajar genjang (parallellogram).
Syarat belah ketupat yang kedua adalah keempat sisinya memiliki panjang yang sama. Karena jika keempat sisinya tidak memiliki panjang yang sama, maka bangun datar tersebut bukanlah belah ketupat, melainkan layang-layang (kite).
Karena panjang sisi-sisinya yang sama, keliling belah ketupat adalah 4 * sisi. Sama seperti keliling dari persegi.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang luas segi empat.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Luas dan Keliling Lingkaran

Assalamu'alaikum.
Postingan kali ini masih membahas bangun datar.
Dan untuk bahasan kali ini adalah program java untuk menghitung luas lingkaran.

Konsep pencarian luas lingkaran sendiri bisa ditemukan lewat integral dengan menggunakan persamaan umum lingkaran.
Karena pencarian luas lingkaran secara langsung agak sulit dibuktikan dengan logika berpikir bangun sederhana, sehingga dibutuhkan pemahaman tentang integral, diferensial dan persamaan umum lingkaran untuk bisa lebih memahami konsep luas lingkaran.

Sederhananya, luas lingkaran sendiri adalah PI * radius * radius.
Dimana radius adalah panjang garis lurus dari titik pusat menuju ke garis lingkaran.
PI sendiri adalah sebuah konstanta yang mana bernilai 3.141592653... yang kemudian disederhanakan menjadi 3.14 untuk perhitungan radius bukan kelipatan 7, atau PI disederhanakan menjadi 22/7 untuk perhitungan radius yang merupakan kelipatan 7.
Hal ini diperbolehkan untuk mempermudah pemahaman konsep lingkaran dalam sekolah, dan juga untuk mempermudah latihan perhitungan.
Meskipun nantinya nilai PI sendiri diharuskan menggunakan nilai sebenarnya dalam pengaplikasian pada kehidupan sehari-hari.

Kok ini malah bahas kemana-mana ya.. Maaf maaf.. Kembali lagi ke topik.
Jadi karena luas lingkaran sudah dibahas diatas, sekarang membahas keliling lingkaran.
Keliling lingkaran sendiri adalah 2 * PI * radius.
Dimana 2 * radius itu sendiri dapat disubstitusi menjadi diameter. Diameter lingkaran adalah panjang garis lurus yang menghubungkan satu titik pada garis lingkaran dengan titik lain pada garis lingkaran dan melewati titik pusat lingkaran.

Jadi langsung saja,
Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang luas dan keliling lingkaran.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Luas dan Keliling dari Bangun Persegi

Assalamu'alaikum.
Postingan kali ini masih membahas bangun datar.
Dan untuk bahasan kali ini adalah program java untuk menghitung luas persegi.

Konsep dari persegi sendiri sebenarnya adalah segi empat beraturan yang memiliki panjang keempat sisi yang sama panjang.
Sehingga luas bangun persegi sendiri adalah panjang * lebar dari persegi tersebut.
Tapi karena panjang dan lebarnya sama, maka bisa dikatakan panjang = lebar, atau biasa disebut sisi.
Jadi luas bangun persegi sendiri bisa dikatakan sisi * sisi atau (sisi)^2
Keliling bangun persegi adalah 2 * (sisi + sisi) = 2 * 2 sisi = 4 * sisi

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang luas dan keliling dari persegi.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Luas Trapesium

Assalamu'alaikum.
Postingan kali ini masih membahas bangun datar.
Dan untuk bahasan kali ini adalah program java untuk menghitung luas trapesium.

Luas bangun trapesium sendiri adalah (sisi atas + sisi bawah) * tinggi trapesium / 2.

Disini mungkin banyak yang bertanya, bagaimana bisa mendapat luasan trapesium seperti itu?
Oke, saya akan memberikan penjelasan singkatnya.

>> Trapesium adalah luas gabungan antara persegi panjang dengan segitiga siku-siku.
Maka luas trapesium adalah luas persegi panjang + luas segitiga siku-siku.
Dengan gambaran jika tinggi segitiga siku-siku sama dengan tinggi persegi panjang, maka :

Diketahui : t = tinggi persegi panjang = tinggi segitiga
a = panjang persegi panjang
b = panjang persegi panjang + alas segitiga
Didapat b-a adalah alas segitiga

Luas trapesium = luas persegi panjang + luas segitiga
Luas persegi panjang = a * t
Luas segitiga = 1/2 * ((b - a) * t)

Luas trapesium = (a * t) + (1/2 * ((b - a) * t))
Luas trapesium = (a * t) + (1/2 * (b * t)) - (1/2 * (a * t))
Luas trapesium = [(a * t) - (1/2 * (a * t))] + (1/2 * (b * t))
Luas trapesium = (a * t)[1 - 1/2] + (1/2 * (b * t))
Luas trapesium = (1/2 * (a * t)) + (1/2 * (b * t))
Luas trapesium = (1/2 * t)(a + b)
Luas trapesium = (a + b) * t / 2

Dimana, a = sisi atas (panjang persegi panjang) atau sisi sejajar terpendek dari trapesium
b = sisi bawah (panjang persegi panjang + alas segitiga) atau sisi sejajar terpanjang dari trapesium,
t = tinggi trapesium
Dengan catatan, nilai a dan b boleh dibolak-balik.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang luas trapesium.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Luas dan Keliling Segi Empat

Assalamu'alaikum.
Postingan kali ini masih membahas bangun datar.
Dan untuk bahasan kali ini adalah program java untuk menghitung luas segitiga.

Luas bangun segi empat sendiri adalah panjang * lebar dari segi empat tersebut.
Keliling bangun segi empat adalah 2 * (panjang + lebar).
Hanya berlaku untuk segi empat, dimana sisi-sisinya yang saling bersentuhan, saling tegak lurus satu sama lain.

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang luas segi empat.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Luas Segitiga

Assalamu'alaikum.
Untuk beberapa postingan ke depan, saya akan memposting program java yang terkait dengan bangun datar dan bangun ruang.

Jadi untuk bahasan kali ini adalah program java untuk menghitung luas segitiga.

Luas bangun datar segitiga sendiri seperti yang kita sudah tahu adalah 1/2 kali dari luas segi empat.
Atau bila di visualisasikan, segitiga adalah sebuah segi empat yang dipotong menjadi dua berdasarkan garis diagonal segi empat.

Sehingga didapatkan jika rumus luas segitiga adalah 1/2 * luas segi empat.
Dimana luas segi empat adalah panjang * lebar.
Maka, luas segitiga adalah 1/2 * (panjang * lebar). (Dengan catatan, panjang dan lebar dari segitiga harus saling tegak lurus satu sama lain)

Berikut adalah source code dari program java-nya.


Kemudian contoh eksekusi programnya bisa dilihat sebagai berikut.


Sekian penjelasan singkat tentang luas segitiga.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Fibonacci (Rekursi)

Assalamu'alaikum.
Postingan kali ini saya akan membahas problem yang dapat menggunakan konsep rekursi lainnya, yaitu Bilangan Fibonacci.

Bilangan Fibonacci yang juga banyak disebut sebagai bilangan golden ratio. Karena perbandingan bilangannya merupakan perbandingan emas yang ada pada sebagian besar alam semesta dan tubuh manusia sendiri.
(Itu hanya sebagai pemanis saja.. xD)
Bilangan Fibonacci sendiri memiliki konsep unik, dimana:
suku ke-i = suku ke-(i-1) + suku ke-(i-2); dengan suku ke-0 dan suku ke-1 memiliki nilai pasti (bisa ditentukan sendiri atau asli dari Fibonacci sendiri).

Contoh susunan bilangan Fibonacci :
0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, dst.

Source code java untuk program Fibonacci Sequence bisa dilihat di bawah.


Contoh eksekusi program bisa dilihat pada gambar berikut.


Sekian penjelasan singkat tentang Fibonacci dengan Rekursi.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Binary Search (Rekursi)

Assalamu'alaikum.
Postingan kali ini akan membahas salah satu problem yang dapat menggunakan konsep rekursi, yaitu Binary Search.

Binary Search sendiri adalah konsep mencari data dalam suatu tatanan array yang sudah diurutkan, entah itu ascending atau descending.
Konsep pencarian data yang digunakan dalam Binary Search sendiri adalah sebagai berikut.

Misalkan data-datanya adalah : 2 3 5 8 11 12 13 20 24 25
Data yang ingin dicari adalah 8
Jumlah datanya adalah : 10

Proses :
-> Data sekarang adalah posisi ke-1 sampai posisi ke-10
Data dibagi menjadi dua, sehingga didapat 5 data awal dan 5 data akhir.
Diambil titik tengahnya, dalam hal ini: (posisi awal + posisi akhir) / 2
Posisi tengah = (1 + 10) / 2 = 11 / 2 = 5
Nilai data ke-5 adalah 11
8 < 11
Karena data yang dicari bernilai lebih kecil dari data pada posisi tengah, maka posisi akhir diganti menjadi titik tengah - 1 (posisi ke-4)
-> Data sekarang adalah posisi ke-1 sampai posisi ke-4
Data dibagi menjadi dua, sehingga didapat 2 data awal dan 2 data akhir.
Diambil titik tengahnya, dalam hal ini: (1 + 4) / 2 = 5 / 2 = 2
Nilai data ke-2 adalah 3
8 > 3
Karena data yang dicari bernilai lebih besar dari data pada posisi tengah, maka posisi awal diganti menjadi titik tengah + 1 (posisi ke-3)
-> Data sekarang adalah posisi ke-3 sampai posisi ke-4
Data dibagi menjadi dua, sehingga didapat 1 data awal dan 1 data akhir.
Diambil titik tengahnya, dalam hal ini: (3 + 4) / 2 = 7 / 2 = 3
Nilai data ke-3 adalah 5
8 > 5
Karena data yang dicari bernilai lebih besar dari data pada posisi tengah, maka posisi awal diganti menjadi titik tengah + 1 (posisi ke-4)
-> Data sekarang adalah posisi ke-4 sampai posisi ke-4
Data dibagi menjadi dua, sehingga didapat 1 data awal dan 0 data akhir.
Diambil titik tengahnya, dalam hal ini: (4 + 4) / 2 = 8 / 2 = 4
Nilai data ke-4 adalah 8
8 == 8
Karena data sudah ditemukan, maka tampilkan posisi datanya.

Untuk source codenya bisa dilihat di bawah.


Contoh eksekusi programnya adalah pada gambar berikut.


Sekian penjelasan singkat Binary Search dengan Rekursi.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Pembulatan Bilangan Real ke Bawah (Floor)

Assalamu'alaikum.
Postingan kali ini adalah lanjutan dari post sebelumnya, yaitu pembulatan bilangan real.
Hanya saja kali ini pembulatannya adalah pembulatan ke bawah.

Contoh pembulatan ke bawah (floor) :
9.9991 -> 9
10 -> 10
1.0009 -> 1
2.5 -> 5

Berikut adalah source code java untuk program floor.


Contoh eksekusi programnya bisa dilihat pada gambar berikut.


Sekian penjelasan singkat tentang pembulatan ke bawah suatu bilangan real (floor).
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Minggu, 20 November 2016

Java Programming : Pembulatan Bilangan Real ke atas (Ceiling)

Assalamu'alaikum.
Postingan kali ini, saya akan membahas satu masalah programming termudah, yaitu pembulatan bilangan.

Pembulatan bilangan kali ini adalah pembulatan bilangan real ke atas.
Biasanya disebut sebagai ceiling.

Contoh pembulatan :
0.9 -> 1
2.345 -> 3
12.0001 -> 13
10 -> 10

Berikut adalah source code program.


Kemudian contoh visualisasi program.


Sekian penjelasan singkat tentang pembulatan bilangan ceiling.
Jika ada pertanyaan atau saran, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.

Java Programming : Palindrome String (Rekursi)

Assalamu'alaikum.
Postingan kali ini, saya akan membahas problem cek String Palindrome.

Untuk yang mungkin belum tau palindrome.
Palindrome (string) adalah suatu string dimana ketika di-reverse maka tetap menjadi string tersebut.

Beberapa contoh string palindrome : malam, @_+*+_@, kawakawak
Dan masih banyak lagi.

Jadi langsung saja, berikut adalah source code nya.


Kemudian visualisasi program adalah seperti berikut.


Sekian penjelasan singkat tentang program pengecek string palindrome dengan konsep rekursi.
Jika ada pertanyaan atau saran untuk postingan ini, silahkan tulis di komentar.
Terima kasih.
Wassalamu'alaikum.