Halo semua yang masih setia membaca blog dunia komputasi algoritma. Hari ini saya memberikan materi tentang dunia metode numerik. Namun, untuk materi yang aku berikan dalam bentuk materi PDF dan PPT. Soalnya materi ini saya gunakan untuk praktikum metode numerik untuk angkatan 2016 di jurusan informatika FMIPA UNS. Bagi pembaca yang ingin liat materi yang saya buat boleh kok di download. Sifatnya terbuka untuk kalian yang setia.
Nah guys berikut ini saya kasih beberapa materi yang saya ajarkan.
Materi 1 : Pengantar & Pengenalan MATLAB.
Materi 2 : Galat atau Error Perhitungan.
Materi 3 : Sistem Persamaan Linier
Materi 4 : Persamaan Non Linier Bagian I.
Materi 5 : Persamaan Non Linier Bagian II.
Materi 6 : Responsi I ( Materi 2-5 )
Materi 7 : Persamaan Differensial Bagian I
Materi 8 : Persamaan Differensial Bagian II
Materi 9 : Interpolasi
Materi 10 : Penyelesaian Integral Bagian I
Materi 11 ; Penyelesaian Integral Bagian II
Materi bisa klik Disini.
Semoga Bermanfaat ya :)
Jika ada yang mau tanyakan, silahkan hehe...
Kumpulan Komputasi Algoritma
Website ini akan memberi informasi tentang kumpulan - kumpulan algoritma seperti Struktur Data, Komputasi, dan Analisis Algoritma beserta Implementasinya
Selasa, 10 April 2018
Senin, 15 Januari 2018
5 Rahasia Agar Bisa Ngoding
Hello guys, lama gak jumpa ya guys. Saking sibuknya kuliah membuat aku lupa untuk membuat blog. Oke ya langsung aja ya hehe...
Biasanya kan aku kasih tentang masalah - masalah dunia komputasi. Tapi, untuk edisi kali ini adalah aku akan jelaskin bagaimana sih caranya agar kalian sebagai anak informatika bisa ngoding maupun ahli di bidang IT manapun. Banyak anak informatika cepet nyerah dan putus asa karena tidak mampu belajar di dunia IT bahkan tidak bisa ngoding. Memang kalau belajar IT itu tidak mudah karena harus membutuhkan konsep logika yang kuat dalam menangani suatu problem tertentu.
Oke kalau begitu ini aku kasih 5 rahasia bagaimana caranya biar bisa ahli di dunia IT terutama untuk ngoding atau membuat program. Berikut rahasianya.
1. Perkuat konsep logika atau algoritma
Poin pertama ini merupakan poin yang SANGAT penting bagi para IT terutama membuat program atau ngoding. Hal ini dikarenakan kalau logikanya tidak kuat bakal susah mencari solusinya bahkan jika anak IT tidak tau algoritma-nya sangat susah untuk membuat program dari suatu program. So, sebagai anak IT setidaknya harus kuat di bagian logic-nya dulu dan jangan lupa ya harus kuat algoritmanya karena algoritma itu adalah pondasi utama untuk buat program hehe....
2. Banyak latihan
Setidaknya kalau seorang IT harus banyak latihan. Dengan kata lain, harus sering latihan buat program atau ngoding. Pelajari basic - basic terlebih dahulu dari bahasa pemrograman yang anda sukai seperti C, C++, Java. PHP, dll. Kalau sudah menguasai basic-nya usahakan latih lebih lanjut lagi sampai tingkat kerumitan yang tinggi seperti pengolahan citra, sinyal, algoritma jaringan syaraf tiruan, dll. Anda juga bisa latihan lewat di komunitas - komunitas tertentu seperti dicoding, dll.
3. Kalau bisa masuk ke komunitas atau grup
Anda juga bisa belajar ngoding di komunitas komunitas tertentu seperti PHP Indonesia, Java Programmer, Matlab komunitas, dll. Hal itu bisa mengembangkan anda dalam membuat program dan bisa diskusi kepada para mastah - mastah agar bisa menemukan solusinya jika ada terjadi error programming. Tapi, kalau bisa jangan apa apa tanya kalau ada terjadi error. Cari solusi terlebih dahulu di berbagai referensi seperti stackoverflows, dll. Jika bener - bener tidak ketemu baru bisa tanya ke komunitas tertentu.
4. Biasakan jangan bergadang
Anda seorang IT perlu juga yang namanya istirahat. Badan kita butuh istirahat dan tidak boleh kecapekan. So, kalau bisa jangan sampai ngoding sambil bergadang karena tidak baik untuk kesehatan terutama mata.
5. Terapkan dunia IT ke bidang lain.
Zaman makin lama makin maju. Anda seorang IT jangan sampai ketinggalan zaman dan bisa mengembangkan dunia IT di beberapa bidang lain. Salah satunya adalah robotik, program akuntansi, Internet of Things, dan masih banyak lagi di berbagai bidang seperti pertanian, biologi ( sudah ada bioinformatika ), fisika, dll.
Itu sih 5 rahasia dari saya gimana caranya bisa ngoding atau ahli IT. Itu sih pendapat saya sih guys. So, jika ada tambahan ya monggo aja guys ku tunggu kalian dehh...
From : @algokelvin_373
Jumat, 02 Desember 2016
KOMPUTASI NUMERIK : [003-001] GALAT / ERROR
KOMPUTER NUMERIK : GALAT ATAU ERROR [003-001]
Hay guys, ketemu lagi di blog
Kumpulan Komputasi Algoritma. Sudah sekian lama saya tidak ngeblog. Ya harus
cari materi dulu dong hehe... Sebelumnya udah bahas tentang dunia Citra,
Sinyal, dan Grafik. Sekarang aku akan membahas tentang Komputer Numerik atau
biasanya Metode Numerik. Sebenarnya pernyataan kedua tu sama saja. Hanya
bedanya kalau Metode Numerik itu nanti ada rumus – rumusnya sedangkan Komputer
Numerik itu rumus tersebut diterapkan ke dalam komputer.
Komputer Numerik ? Keliatannya
kalian cukup asing mendengar nama ini. Okay, jika kalian merasa puyeng aku akan jelaskan. Komputer
Numerik itu dibisa dikatakan sebagai penentuan error suatu perhitungan untuk
mencapai nilai akurasi. Error disini adalah nilai yang menyebabkan nilai
tersebut tidak tepat. Komputer Numerik bertujuan untuk menentukan suatu akurasi
dari hasil perhitungan atau percobaan. Contoh yang sederhana adalah kalian yang
jurusan Fisika, Kimia, Teknik buat laporan untuk menganalisis dan menghitung
data dari hasil percobaan dengan teknik aproksima kesalahan. Contoh tersebut
sudah masuk ke dalam Komputer Numerik.
Jadi bisa dikatakan bahwa suatu perolehan data yang didapat pasti ada error-nya.
Sedikit mustahil jika data yang diperoleh akurasinya tepat.
Komputer Numerik ini banyak
sekali diimplementasikan dalam kehidupan termasuk dunia kedokteran, teknik,
ekonomi, dan sains. Contoh yang sangat sederhana adalah misalkan jika ingin
menjumlahkan dari 10/3 + 9/7. Anggap saja hasilnya banyak diperoleh seperti :
( pembulatan 2 desimal ) 10/3 + 9/7 = 0,33 + 1,29 = 1,62
( pembulatan 5 desimal ) 10/3 + 9/7 = 0,33333 + 1,28571 = 1,61904
( pembulatan 7 desimal ) 10/3 + 9/7 = 0,3333333 + 1,2857143
= 1,6190476
Hasil tersebut dapat dilihat bahwa setiap pembulatan desimal
menghasilkan nilai yang berbeda. Tentunya akan menjadi pengaruh dalam
perhitungan dalam komputer ( anda bisa liat pada simulasi gerak peluru bagian
Fisika Komputasi [002-001] ). Anggap saja nilai a = 1,62 dan b = 1,61904,
nah nilai error itu dapat dibuat formula seperti ini :
Dengan nilai a
sebagai nilai asli, maka nilai error-nya diperoleh x = 1,62 – 1,61904 = 0,00096. Nah, nilai tersebut merupakan galat atau error.
(Suarga,
___) Komputer numerik dapat dikatakan sebagaikomputasi yang mengikuti suatu
algoritma pendekatan (aproksimasi)
untuk menyelesaikan suatu persoalan, yang dengan demikian besar kemungkinan di
situ terkandung “kesalahan”. Beberapa sumber kesalahan pada komputasi numerik
yaitu :
1.
Round off
errors
Kesalahan yang timbul karena adanya teknik pembulatan. Ilustrasinya pada
contoh sebelumnya.
2.
Truncation
errors
Kesalahan ini terjadi karena adanya pemotongan suku pada suatu deret
aproksimasi. Misalkan perhitungan nilai cos
dengan teknik Taylor dan teknik differensial.
3.
Range
errors
Kesalahan
yang terjadi akibat nilai hasil komputasi melampaui batas angka yang
diperbolehkan dalam komputer. Misalkan dalam penggunaan variabel integer pada proses perhitungan energi
benda hitam yang menghasilkan nilai yang tidak tepat bahkan tidak terdefinisi.
Agar
kalian paham, ini aku kasih penjelasan mengenai ketiga sumber kesalahan dalam
komputasi numerik.
A.
Round off errors
Kesalahan jenis ini terjadi akibat proses pembulatan dalam perhitungan.
Secara umum, proses pembulatan ada 2 aturan yaitu :
-
Jika digit yang dibulatkan kurang dari 5, maka
tidak terjadi pembulatan.
-
Sebaliknya, jika lebih dari 5, maka terjadi
pembulatan yaitu dengan menambah satu.
Contoh sederhananya adalah sebagai berikut :
Pada perhitungan nilai x = 6/7, maka nilai x = 0,857142857143. Maka, jika
terjadi pembulatan akan diperoleh nilai sebagai berikut :
è
x = 0,86 ( mendekati nilai 2 desimal ).
è
x = 0,8571 ( mendekati nilai 4 desimal ).
è
x = 0,857143 ( mendekati nilai 6 desimal ).
è
x = 0,85714286 ( mendekati nilai 8 desimal ).
Dalam proses pembuatan, kesalahan yang timbul akibat pembulatan pada
digit ke-n di belakang koma selalu
bernilai :
Dengan begitu, maka :
è
Untuk x = 0,86 (n = 2), maka Error = |
0,857142857143 – 0,86 | = 0,00285714286
Dengan begitu terbukti bahwa Error ≤ 10-4/2 <-> 0,00285714286 ≤ 0,005.
è
Untuk x = 0,8571 (n = 4), maka Error = |
0,857142857143 – 0,8571 | = 0,000042857143
Dengan begitu terbukti bahwa Error ≤ 10-4/2 <-> Error ≤ 0,00005.
è
Dan seterusnya. ( Anda bisa membuktikan untuk x
= 0,857143 dan x = 0,85714286. )
Kesalahan ini biasanya digunakan pada perhitungan data dari hasil
percobaan praktikum seperti perhitungan nilai gravitasi dengan teknik
perhitungan bandul, menentukan nilai tegangan permukaan, dan lain – lain.
Masing – masing percobaan biasanya mengulang sebanyak 5 – 10 kali dengan tujuan
untuk mengetahui kesalahan mutlak dan mengetahui apakah data yang diperoleh
dari hasil praktikum itu tepat, teliti, masih ada kesalahan, atau bahkan
error-nya sangat jauh dari perhitungan berdasarkan formula. Teknik ini adalah
aprosikmasi kesalahan ( dibahas di bagian blog Aprosikmasi Kesalahan ).
Disinilah kegunaan untuk menentukan error suatu perhitungan dengan teknik ini.
B.
Truncation errors
Kesalahan pemotongan biasanya terjadi karena pembuangan suku yang
berderajat tinggi. Sebagai contoh untuk menghitung nilai cosinus dapat
menggunakan deret Taylor yang dirumuskan di bawah ini :
Karena batas akhirnya tak hingga, maka dilakukan pemotongan suku agar
perhitungannya lebih sederhana. Misalkan menentukan nilai sin(20) = 0.9129452507276277.
Dengan deret Taylor ( hampir sama dengan konsep perhitungan nilai cos ) sampain = 100 akan diperoleh :
Dengan begitu nilai errornya adalah
Maka, dalam hal ini juga berpengaruh dalam proses perhitungan nilai
numerik. Kesalahan ini berkaitan dengan kesalahan Range Errors karena kesalahan Range
Errors ini berkaitan dengan batasan nilai representasi angka. Dalam dunia
komputasi, penggunaan variabel berpengaruh pada hasil komputasi. Anggap saja
untuk menghitung nilai yang mencapai > 109 harus menggunakan
Float atau Double. Jika nilai tersebut menggunakan Integer, maka hasilnya akan
acak atau bahkan memberi hasil NaN
alias tak definisi. Maka, dalam komputasi, anggap saja ∞ ditentukan sendiri
misalkan mencapai N = 1000000.
C.
Range errors
Untuk kesalahan ini berkaitan dengan batas dalam jangkauan representasi
angka. Ini bisa dikatakan bahwa jika hasil perhitungan melebihi jangkauan, maka
komputer akan menampilkan hasil yang tidak beraturan ( anggap saja hasil yang
diperoleh diatur lagi oleh OS yang kita pakai ). Berikut ini saya kasih 2
contoh kasus untuk jenis kesalahan ini :
-
Menghitung jari – jari atom Bohr.
Untuk menghitung jari – jari atom Bohr dapat dirumuskan seperti ini :
Dengan :
Seandainya jika rumus itu dibuat dalam bentuk program, maka variabel r
harus menggunakan tipe Double. Jika
ingin bukti, berikut aku kasih bentuk program menghitung jari – jari atom Bohr
dengan tipe variabel yang berbeda.
a.
Menggunakan INTEGER.
b.
Menggunakan FLOAT.
c.
Menggunakan DOUBLE.
Dari hasil di atas dapat diketahui bahwa penggunakan INTEGER dan FLOAT
tidak bisa menampilkan hasil perhitungan yang tepat. Tetapi, penggunaan DOUBLE
akan memberi hasil yang tepat sesuai perhitungan dari rumus tersebut. Hal ini terjadi
karena jenis tipe data INTEGER memiliki jangkauan ... dan FLOAT punya jangkauan
... , Karena melebihi jangkauan, maka menampilkan hasil yang tidak sesuai
-
Menghitung nilai sinus dengan teknik Taylor.
Bentuk rumus-nya sudah ditulis sebelumnya. Disini akan diberi 2 teknik perhitungan dalam penggunaan deret Taylor.
a.
Teknik Penggunaan Fungsi Math.
Bentuk program dapat dibuat seperti di bawah ini :
for (double n =
0; n <= N; n++)
B += (Math.pow(-1, n))*(Math.pow(x,
2*n+1))/(factorial(2*n+1));
Hasil output :
( Dengan N = 100 )
A : -0.9881209821429402
Time : 7.33534E-4 detik
( Dengan N = 500 )
A : NaN
Time : 0.002157699 detik
( Dengan N = 1000 )
A : NaN
Time : 0.005704589 detik
( Dengan N = 5000 )
A : NaN
Time : 0.108811078 detik
( Dengan N = 10000 )
A : NaN
Time : 0.418405214 detik
( Dengan N = 50000 )
A : NaN
Time : 24.734975616 detik
b.
Teknik Pengurangan Operasi.
for (double n =
N; n >= 0; n--) {
A += (1/factorial(2*n+1));
if (n == 0)
A *= x;
else
A *= -(x*x);
}
Hasil Output :
( Dengan N = 100 )
A : -0.9879136391243737
Time : 0.001511368 detik
( Dengan N = 500 )
A : -0.9879136391243737
Time : 0.005108622 detik
( Dengan N = 1000 )
A : -0.9879136391243737
Time : 0.008196645 detik
( Dengan N = 5000 )
A : -0.9879136391243737
Time : 0.106724261 detik
( Dengan N = 10000 )
A : -0.9879136391243737
Time : 0.415457556 detik
( Dengan N = 50000 )
A : -0.9879136391243737
Time : 9.187904015 detik
Dari hasil di atas ternyata
membawa hasil yang berbeda dari kedua teknik di atas. Hal ini dapat dilihat
bahwa pada saat nilai N = 500, pada model program (a) menampilkan nilai NaN alias tak definisi. Tetapi, untuk model program (b) akan muncul nilainya.
Hal ini terjadi karena proses perhitungan pada model program (a) kemungkinan
ada nilai yang infinity sehingga
hasil akhirnya adalah NaN pada saat
perhitungan nilai dengan Math.pow dan
method factorial. Untuk model program
(b) karena menggunakan teknik pengurangan operasi, maka hasil outputnya bisa
tampilkan bahkan pada saat N = 50000. Jika dilihat, model program (a) sangat tidak efisien daripada model
program (b) karena pada model (a) operasinya sangat banyak dan membutuhkan
waktu yang banyak untuk masuk method Math
dan factorial.
Kita bisa lihat bahwa dalam
pemrograman, perhitungan data yang nilai sangat besar seperti besar pertumbuhan
ekonomi di Indonesia ini, besar energi radiasi matahari atau nilai yang sangat
kecil seperti jari – jari atom, besar muatan listrik pada elektron, dan lain –
lain sangat berpengaruh dalam program komputer. Tentunya, tipe data yang
digunakan harus tepat. Misalkan jika perhitungan data aritmatika biasa seperti
deret aritmatika cukup pakai INTEGER, menghitung nilai rata – rata mahasiswa
menggunakan FLOAT karena bisa menghasilkan nilai desimal. Oleh karena itu,
perlu diperhatikan tipe data-nya beserta bentuk formula yang dibuat seperti
menghitung nilai cosinus dengan
teknik pengurangan operasi.
Bagaimana
pun juga, metode numerik ini sangat berguna untuk penerapan dalam kehidupan
sehari – hari terutama dalam dunia teknik dan sains. Contoh yang sangat
sederhana adalah ketika ingin memotong kayu dengan panjang 10 cm, saat mengukur
ukuran harus diberi error sekitar 0,1 cm. Hal ini bertujuan agar saat memotong
kayu akan menghasilkan ukuran pas 10 cm dan 0,1 cm ini akan hilang akibat
gesekan / panas yang menyebabkan menjadi aus. Jadi, bisa dikatakan bahwa
numerik ini berpengaruh dalam berbagai macam faktor. Misalkan pembangunan
gedung tinggi harus memperhatikan pondasi-nya dan tingkat keretakan bahan yang
dipakai ( lebih ke arah elastisitas bahan bangunan ).
Okay
sekian dulu ya blog aku di sini. Untuk metode ini masih sangat banyak. Ya saya
usahakan saya posting materi selanjutnya. Udah ya sekian dulu aja. Jangan bosan
dengan blog aku siap tau bisa berguna buat kalian wkwk... Okay udah dulu ya.
Jangan lupa like blog ku ya. Mantapp (y).
Referensi :
https://www.academia.edu/11633559/METODE_NUMERIK
https://materi78.files.wordpress.com/2013/06/atom_fis4.pdf
Jumat, 30 September 2016
Komputer Grafik - Membuat Program Bangun Datar
Komputer Grafik – Membuat Program Bangun Datar
Hello guy, ketemu lagi di blog
saya. Masih semangat kan ? Tentu dong jangan patah semangat. Oh ya kali ini aku
akan post tentang program bangun datar. Kalian pasti pernah mendengar yang
namanya bangun datar pas jaman SD. Bangun datar itu digambarkan suatu bangun
yang hanya punya panjang dan lebar saja alias 2 dimensi. Bangun datar itu
seperti persegi, persegi panjang, segitiga, lingkaran, dan lain – lain. Nah,
untuk blog kali ini saya akan kasih contoh program bangun datar dengan bahasa
Java dengan menggunakan GUI alias ada gambarnya. Serukan hehe.... Untuk membuat
program ini tidak susah kok hanya sederhana saja.
Okay, aku akan membahasnya.
Pertama seperti biasa buat project baru pada program java. Software yang saya
gunakan adalah Netbeans ( pakai Eclipse boleh ). Cara membuat project baru : File – New Project – (Java – Java
Application) – Next – Buat nama project – Finish. Jika masih belum paham bisa
diliat pada blog dengan kode 005-001. Setelah itu, ikuti langkah di bawah ini :
1.
Menyusun komponen – komponen GUI dengan bentuk
seperti di bawah ini :
Bentuk GUI Utama
Bentuk GUI Pada Tab Persegi
Bentuk GUI Pada Tab Persegi Panjang
Bentuk GUI Pada Tab Lingkaran
Dengan Navigator seperti ini :
2. Klik Source dan kemudian tambahkan source code pada bagian kontruktor-nya : ( warna merah
)
public class ProgramBangunDatar extends javax.swing.JFrame {
public ProgramBangunDatar() {
initComponents();
jScrollPane1.setViewportView(new Grafik());
}
@SuppressWarnings("unchecked")
3.
Setelah membentuk di atas, klik Tab Persegi dan klik double pada tombol
Tampilkan sehingga akan muncul
seperti ini :
Kemudian pada bagian program ini akan dibuat source code seperti ini :
private void Tampil_PersegiActionPerformed(java.awt.event.ActionEvent
evt) {
String
S = P_persegi.getText();
String Xp = Xp_persegi.getText();
String Yp = Yp_persegi.getText();
jScrollPane1.setViewportView(new Grafik(Double.parseDouble(S),
Double.parseDouble(Xp), Double.parseDouble(Yp), 1));
}
4.
Lanjut lagi ke desain JFrame-nya, sekarang klik Tab Persegi Panjang à
klik double pada tombol Tampilkan
yang akan muncul seperti ini :
Bentuk source code seperti ini :
private void
Tampil_PersegiPanjangActionPerformed(java.awt.event.ActionEvent evt) {
String
P = P_persegipanjang.getText();
String L = L_persegipanjang.getText();
String Xp = Xp_persegipanjang.getText();
String Yp = Yp_persegipanjang.getText();
jScrollPane1.setViewportView(new Grafik(Double.parseDouble(P),
Double.parseDouble(L), Double.parseDouble(Xp), Double.parseDouble(Yp), 2));
}
5.
Begitupula pada Tab Lingkaran, dengan teknik yang sama pada langkah no 3 dan 4 akan membentuk source code seperti ini
Kemudian tambahkan source codenya :
private void Tampil_LingkaranActionPerformed(java.awt.event.ActionEvent
evt) {
String
R = Radius.getText();
String Xp = Xp_lingkaran.getText();
String Yp = Yp_lingkaran.getText();
jScrollPane1.setViewportView(new Grafik(Double.parseDouble(R),
Double.parseDouble(Xp), Double.parseDouble(Yp), 3));
}
6.
Dengan begitu, desain program JFrame sudah
selesai.
Selanjutnya adalah membuat
program gambar bangun datar dan grid-nya alias koordinat garis. Nama
kelasnya
“Grafik.java”. untuk bentuk kodingannya dapat dilihat di bawah ini :
import java.awt.*;
import
java.awt.geom.AffineTransform;
import java.awt.geom.Ellipse2D;
import java.awt.geom.Rectangle2D;
import javax.swing.*;
public class Grafik extends
JPanel {
private int width = 200, height = 200, grid
= 20;
private double S, P, L, R, Xpusat, Ypusat;
private int pilih;
public Grafik () { }
// Kontraktor untuk memberi ukuran dan
titik awal pada persegi atau lingkaran
public Grafik (double s, double xp, double
yp, int p) {
Xpusat = xp;
Ypusat = yp;
if (p == 1) { // Untuk menggambar
persegi
S = s;
pilih = p;
}
else if (p == 3) { // Untuk menggambar
lingkaran
R = s;
pilih = p;
}
}
// Kontraktor untuk memberi ukuran dan
titik awal pada persegi panjang
public Grafik (double p, double l, double
xp, double yp, int z) {
P = p;
L = l;
Xpusat = xp;
Ypusat = yp;
pilih = z;
}
@Override
public void paintComponent(Graphics g) {
super.paintComponent(g);
this.setBackground(Color.WHITE); //
Warna background Grid
Graphics2D gr = (Graphics2D)g;
// Grid
for(int i = 0; i <= width; i +=
grid) {
int angka = i / grid; // Variabel
untuk nyimpen angka di grid
g.setColor(Color.LIGHT_GRAY); //
Warna grid
g.drawLine(i, 0, i, height); //
Garis Y
g.drawLine(0, i, width, i); //
Garis X
if(angka == 0) {}
else {
gr.setColor(Color.BLACK); //
Warna angka
gr.setStroke(new
BasicStroke(1)); // Tebal angka
if(angka < 10) {
gr.drawString(""
+angka, width / 2 + i - 8, height / 2 + 13); // Angka sumbu X < 10
gr.drawString(""
+angka, width / 2 - 10, height / 2 - i + 5); // Angka sumbu Y < 10
gr.drawString(""
+(-angka), width / 2 - 15, height / 2 + i + 5); // Angka negatif sumbu Y <
10
}
else {
gr.drawString(""
+angka, width / 2 + i - 13, height / 2 + 13); // Angka sumbu X >= 10
gr.drawString(""
+angka, width / 2 - 15, height / 2 - i + 5); // Angka sumbu Y >= 10
gr.drawString(""
+(-angka), width / 2 - 20, height / 2 + i + 5); // Angka negatif sumbu Y >=
10
}
gr.drawString(""
+(-angka), width / 2 - i - 13, height / 2 + 13); // Angka negatif sumbu X
}
}
gr.setStroke(new BasicStroke(2)); //
Tebal garis pusat (objek)
gr.setColor(Color.BLACK); // Warna garis
pusat
gr.drawLine(0, height / 2, width,
height / 2); // Garis pusat X
gr.drawLine(width / 2, 0, width / 2,
height); // Garis pusat y
// Bagian ini adalah proses menampilkan
gambar
// case 1 -> gambar persegi, case 2
-> gambar persegi panjang, case 3 -> gambar lingkaran
switch (pilih) {
case 1 : gr.draw(new
Rectangle2D.Double(width/2 + Xpusat*grid, height/2 - Ypusat*grid, S*grid,
S*grid));
break;
case 2 : gr.draw(new
Rectangle2D.Double(width/2 + Xpusat*grid, height/2 - Ypusat*grid, P*grid,
L*grid));
break;
case 3 : gr.draw(new
Ellipse2D.Double(width/2 + Xpusat*grid, height/2 - Ypusat*grid, 2*R*grid,
2*R*grid));
break;
}
}
}
Dan akhirnya program bangun datar sudah jadi.
Untuk hasil running-nya dapat
dilihat di bawah ini :
Tampilan Awal Pada Program Bangun Datar
Menggambar persegi dengan s = 2 dan titik awal ( pojok kiri atas ) dengan
x = 1 dan y = 1
Menggambar persegi panjangdengan p = 2, l = 3 dan titik awal ( pojok kiri
atas ) dengan x = -2 dan y = 3
Menggambar lingkaran dengan r = 3 dan titik awal ( pojok kiri atas )
dengan x = -4 dan y = -2
Jadi,
gimana ? mudahkan buat program bangun datar.
Sebenarnya selain menggunakan Java, bisa juga menggunakan library Processing (
nanti aku akan post selanjutnya ). Ya semoga bermanfaat buat kalian yang
kesulitan buat program bangun datar. Jika ada yang kesulitan bisa komen ke aku.
#SemangatHidup
"Desain bagus, perancangan bagus, dan menarik. Namun, jika anda melupakan pondasi, hasilnya akan hancur total"
By : Kelvin Herwanda Tandrio
Referensi :
Kelvin H Tandrio, Hanif Sultan R, Faizah Yasarah, dan Nadya Ranti Agnestya. 2016. Laporan . Universitas Sebelas Maret. Surakarta
Enterprise, Jubilee. 2015. Kumpulan Aplikasi Java. Penerbit : PT Elex Media Komputindo. Jakarta
H. M. Deitel, P. J. Deitel and S. E. Santry. 2001. Advanced Java 2 Platform How To Program. Prentice Hall. New Jersey.
Jumat, 16 September 2016
Pengolahan Citra Digital – Menampilkan Gambar dari Direktori [005-001]
Menampilkan Gambar dari
Direktori
Hello guy, ketemu lagi di blog
saya. Sekarang blog ini aku akan membahas tentang Pengolahan Citra Digital.
Citra dapat diartikan sebagai gambar. Jadi, Pengolahan Citra Digital itu adalah
kumpulan data yang objeknya berupa gambar. Jadi, data dalam bentuk gambar akan
dirilis dengan berbagai formula tertentu. Tentunya, jika ingin buat program
yang berkaitan dengan citra, maka harus dibuat program inputan data gambar dari
direktori. Nah, disini saya akan kasih tips gimana caranya membuat program
untuk menampilkan data gambar dari direktori. Untuk pemrograman ini akan
menggunakan bahasa pemrograman Java.
Bentuk program ini akan dibentuk dalam GUI. Nah, itu membuat
program Java pertama – tama buat project baru dalam bentuk tipe JFrame From.
Untuk langkahnya dapat diuraikan sebagai berikut :
1.
Buka software Netbeans.
2.
Tunggu software tersebut berjalan hingga muncul
tampilan di bawah ini.
3.
Pilih File
-> New Project
4.
Pilih Java
dan Java Application, Pilih Next
Kemudian kasih nama project misalkan “ReadImage” dan di OK. Maka akan
muncul seperti di bawah ini.
5.
Kemudian buat hiasan JFrame seperti di bawah
ini.
Bentuk JFrame di atas ada 4 komponen yaitu :
a.
JLabel sebanyak 1 -> dikasih nama
“Menampilkan Citra dengan Memilih Menu”
b.
JPanel sebanyak 1.
c.
JTextArea sebanyak 1 ( di dalam JPanel ).
d.
JButton sebanyak 1 -> nama button “Pilih
Menu”
6. Setelah itu, pilih Source
Maka akan muncul seperti ini :
7. Pada bagian baris , tambahkan source code (
warna merah ) di bagian kontraktor sehingga akan membentuk program seperti ini
:
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
public class ReadImage2 extends javax.swing.JFrame {
private String filename;
public ReadImage2() {
initComponents();
/* Source code yang
ditambahkan
jPanel1
= new PanelCitraLewatMenu("");
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
*/
}
@SuppressWarnings("unchecked")
8.
Kemudian pilih Desain dan muncul kembali seperti
ini :
Pada button “Pilih Menu”, klik 2 kali sehingga akan muncul seperti ini :
9.
Pada bagian button “Pilih Menu” tambahkan source
code ( warna merah ) seperti ini
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt)
{
int
returnVal = jFileChooser1.showOpenDialog(this);
if
(returnVal == jFileChooser1.APPROVE_OPTION) {
filename = jFileChooser1.getSelectedFile().toString();
jPanel1 = new PanelCitraLewatMenu(filename);
jPanel1.repaint();
jScrollPane1.setViewportView(jPanel1);
jPanel1.setAutoscrolls(true);
}
}
10. Kemudian pada bagian source code ini akan dibuat
kelas PanelCitraLewatMenu untuk memunculkan gambar. Bentuk source code-nya
seperti ini :
class PanelCitraLewatMenu extends JPanel {
private
ImageIcon Ikoncitra;
private
Image citra;
//
Proses menampilkan citra dari direktori yang dipilih
public
PanelCitraLewatMenu (String gambar) {
Ikoncitra = new ImageIcon(gambar);
citra = Ikoncitra.getImage();
}
protected void paintComponent (Graphics g) {
super.paintComponent(g);
if
(citra != null)
g.drawImage(citra, 0, 0, getWidth(), getHeight(), this);
}
}
Keterangan :
Jangan lupa untuk import java untuk mendukung panel, image, graphics, dan
paintComponent. Import java tersebut adalah
import java.awt.Graphics;
import java.awt.Image;
import javax.swing.ImageIcon;
import javax.swing.JPanel;
11.
Maka, pembuatan program tersebut selesai.
Maka, jika dijalankan akan diperoleh hasil di bawah ini :
1.
Awalan Tampilan Jendela.
2.
Klik button “Pilih Menu” akan muncul seperti ini
:
3.
Pilih file gambar dengan tipe apapun.
a.
Direktori : E:\Jadwal Kuliah Semester 5.png
b.
Direktori : E:\BLOGGER\Other\image
Bagaimana ? Mantap kan hehe... Itu sedikit penjelasan tentang program menampilkan gambar lewat direktori dengan bahasa Java. Jadi, intinya adalah pada fungsi jFIleChooser itulah yang akan melakukan proses pencarian data gambar dalam direktori tersebut.
Okay, sekian dulu dari blog saya ya. Kalau ada yang mau tanyakan monggo dikomen atau boleh di CP ( copy paste ) untuk tugas :v
#SemangatHidup
Langganan:
Postingan (Atom)