Rabu, 08 Desember 2010
Sejarah Sistem Operasi dari DOS, Windows sampai Linux
Kalimat ini bukan hanya berlaku di dunia nyata, tetapi juga di dunia komputer, khususnya dunia sistem operasi.
Mempelajari sejarah memang menarik, bahkan sekalipun itu hanya sejarah sistem operasi / operating system (OS) suatu komputer. Paling tidak dengan mempelajari sejarah sistem operasi komputer, wawasan kita bertambah luas dan tidak hanya berkutat pada satu sistem operasi saja.
Artikel ini akan menguraikan sejarah sistem operasi dari DOS, Mac, Windows, BSD, sampai Linux.
1980
• QDOS : Tim Paterson dari Seattle Computer menulis QDOS yang dibuat dari OS terkenal pada masa itu, CP/M. QDOS (Quick and Dirty Operating System) dipasarkan oleh Seatle Computer dengan nama 86-DOS karena dirancang untuk prosesor Intel 8086.
• Microsoft : Bill Gates dari Microsoft membeli lisensi QDOS dan menjualnya ke berbagai perusahaan komputer.
1981
• PC¬ DOS : IBM meluncurkan PC¬ DOS yang dibeli dari Microsoft untuk komputernya yang berbasis prosesor Intel 8086.
• MS¬ DOS : Microsoft menggunakan nama MS¬ DOS untuk OS ini jika dijual oleh perusahaan diluar IBM.
1983
• MS¬ DOS 2.0 : Versi 2.0 dari MS¬ DOS diluncurkan pada komputer PC XT.
1984
• System 1.0 : Apple meluncurkan Macintosh dengan OS yang diturunkan dari BSD UNIX. System 1.0 merupakan sistem operasi pertama yang telah berbasis grafis dan menggunakan mouse.
• MS ¬DOS 3.0 : Microsoft meluncurkan MS DOS 3.0 untuk PC AT yang menggunakan chip Intel 80286 dan yang mulai mendukung penggunaan hard disk lebih dari 10 MB.
• MS ¬DOS 3.1 : Microsoft meluncurkan MS¬DOS 3.1 yang memberikan dukungan untuk jaringan.
1985
• MS ¬Windows 1.0 : Microsoft memperkenalkan MS¬Windows, sistem operasi yang telah menyediakan lingkungan berbasis grafis (GUI) dan kemampuan multitasking. Sayangnya sistem operasi ini sangat buruk performanya dan tidak mampu menyamai kesuksesan Apple.
• Novell Netware : Novell meluncurkan sistem operasi berbasis jaringan Netware 86 yang dibuat untuk prosesor Intel 8086.
1986
• MS¬ DOS 3.2 : Microsoft meluncurkan MS¬ DOS 3.2 yang menambahkan dukungan untuk floppy 3.5 inch 720 KB.
1987
• OS/2 : IBM memperkenalkan OS/2 yang telah berbasis grafis, sebagai calon pengganti IBM PC DOS.
• MS¬ DOS 3.3 : Microsoft meluncurkan MS¬ DOS 3.3 yang merupakan versi paling populer dari MS DOS.
• Windows 2.0 : Windows versi 2.0 diperkenalkan.
• MINIX : Andrew S. Tanenbaum mengembangkan Minix, sistem operasi berbasis Unix yang ditujukan untuk pendidikan. MINIX nantinya menginspirasi pembuatan Linux.
1988
• MS¬ DOS 4.0 : Microsoft mengeluarkan MS¬DOS 4.0 dengan suasana grafis.
• WWW : Proposal World Wide Web (WWW) oleh Tim Berners¬Lee.
1989
• NetWare/386 (juga dikenal sebagai versi 3) diluncurkan oleh Novell untuk prosesor Intel 80386.
1990
• Perpisahan : Dua perusahaan raksasa berpisah, IBM berjalan dengan OS/2 dan Microsoft berkonsentrasi pada Windows.
• Windows 3.0 : Microsoft meluncurkan Windows versi 3.0 yang mendapat sambutan cukup baik.
• MS¬Office : Microsoft membundel Word, Excel, dan PowerPoint untuk menyingkirkan saingannya seperti Lotus 1¬2¬3, Wordstar, Word Perfect dan Quattro.
• DR DOS : Digital Research memperkenalkan DR DOS 5.0.
1991
• Linux 0.01 : Mahasiswa Helsinki bernama Linus Torvalds mengembangkan OS berbasis Unix dari sistem operasi Minix yang diberi nama Linux.
• MS DOS 5.0 : Microsoft meluncurkan MS¬DOS 5.0 dengan penambahan fasilitas full¬-screen editor, undelete, unformat dan Qbasic.
1992
• Windows 3.1 : Microsoft meluncurkan Windows 3.1 dan kemudian Windows for Workgroups 3.11 di tahun berikutnya.
• 386 BSD : OS berbasis Open Source turunan dari BSD Unix didistribusikan oleh Bill Jolitz setelah meninggalkan Berkeley Software Design, Inc (BSDI). 386 BSD nantinya menjadi induk dari proyek Open Source BSD lainnya, seperti NetBSD, FreeBSD, dan OpenBSD.
• Distro Linux : Linux didistribusikan dalam format distro yang merupakan gabungan dari OS plus program aplikasi. Distro pertama Linux dikenal sebagai SLS (Softlanding Linux System).
1993
• Windows NT : Microsoft meluncurkan Windows NT, OS pertama berbasis grafis tanpa DOS didalamnya yang direncanakan untuk server jaringan.
• Web Browser : NCSA memperkenalkan rilis pertama Mosaic, browser web untuk Internet.
• MS¬ DOS 6.0 : Microsoft memperkenalkan MS¬DOS 6.0 Upgrade, yang mencakup program kompresi harddisk DoubleSpace.
• Slackware : Patrick Volkerding mendistribusikan Slackware Linux yang menjadi distro populer pertama di kalangan pengguna Linux.
• Debian : Ian Murdock dari Free Software Foundation (FSF) membuat OS berbasis Linux dengan nama Debian.
• MS¬ DOS 6.2 : Microsoft meluncurkan MS¬DOS 6.2.
• NetBSD : Proyek baru OS berbasis Open Source yang dikembangkan dari 386BSD dibuat dengan menggunakan nama NetBSD.
• FreeBSD : Menyusul NetBSD, satu lagi proyek yang juga dikembangkan dari 386BSD dibuat dengan nama FreeBSD.
1994
• Netscape : Internet meraih popularitas besar saat Netscape memperkenalkan Navigator sebagai browser Internet.
• MS¬DOS 6.22 : Microsoft meluncurkan MS¬DOS 6.22 dengan program kompresi bernama DriveSpace. Ini merupakan versi terakhir dari MS DOS.
• FreeDOS : Jim Hall, mahasiswa dari Universitas Wisconsin¬River Falls Development mengembangkan FreeDOS. FreeDOS dibuat setelah Microsoft berniat menghentikan dukungannya untuk DOS dan menggantikannya dengan Windows 95.
• SuSE : OS Linux versi Jerman dikembangkan oleh Software und System Entwicklung GmbH (SuSE) dan dibuat dari distro Linux pertama, SLS.
• Red Hat : Marc Ewing memulai pembuatan distro Red Hat Linux.
1995
• Windows 95 : Microsoft meluncurkan Windows 95 dengan lagu Start Me Up dari Rolling Stones dan terjual lebih dari 1 juta salinan dalam waktu 4 hari.
• PC DOS 7 : IBM memperkenalkan PC DOS 7 yang terintegrasi dengan program populer pengkompres data Stacker dari Stac Electronics. Ini merupakan versi terakhir dari IBM PC DOS.
• Windows CE : Versi pertama Windows CE diperkenalkan ke publik.
• PalmOS : Palm menjadi populer dengan PalmOS untuk PDA.
• OpenBSD : Theo de Raadt pencetus NetBSD mengembangkan OpenBSD.
1996
• Windows NT 4.0 : Microsoft meluncurkan Windows NT versi 4.0
1997
• Mac OS : Untuk pertama kalinya Apple memperkenalkan penggunaan nama Mac OS pada Mac OS 7.6.
1998
• Windows 98 : Web browser Internet Explorer menjadi bagian penting dari Windows 98 dan berhasil menumbangkan dominasi Netscape Navigator.
• Server Linux : Linux mendapat dukungan dari banyak perusahaan besar, seperti IBM, Sun Microsystem dan Hewlet Packard. Server berbasis Linux mulai banyak dipergunakan menggantikan server berbasis Windows NT.
• Google : Search Engine terbaik hadir di Internet dan diketahui menggunakan Linux sebagai servernya.
• Japan Goes Linux : TurboLinux diluncurkan di Jepang dan segera menjadi OS favorit di Asia, khususnya di Jepang, China dan Korea.
• Mandrake : Gael Duval dari Brazil mengembangkan distro Mandrake yang diturunkan dari Red Hat.
1999
• Support : Hewlett Packard mengumumkan layanan 24/7 untuk distro Caldera, Turbo Linux, Red Hat dan SuSE.
• Corel Linux : Corel pembuat program Corel Draw, yang sebelumnya telah menyediakan Word Perfect versi Linux, ikut membuat OS berbasis Linux dengan nama Corel Linux dan yang nantinya beralih nama menjadi Xandros.
2000
• Mac OS/X : Mac OS diganti dengan mesin berbasis BSD Unix dengan kernel yang disebut sebagai Mac OS/X.
• Windows 2000: Microsoft meluncurkan Windows 2000 sebagai penerus Windows NT.
• Windows Me : Microsoft meluncurkan Windows Me, versi terakhir dari Windows 95.
• China Goes Linux : Red Flag Linux diluncurkan dari Republik Rakyat China.
• Microsoft vs IBM : CEO Microsoft Steve Ballmer menyebut Linux sebagai kanker dalam sebuah interview dengan Chicago Sun¬Times. Di lain pihak, CEO IBM Louis Gartsner menyatakan dukungan pada Linux dengan menginvestasikan $ 1 milyar untuk pengembangan Linux.
2001
• Windows XP : Microsoft memperkenalkan Windows XP.
• Lindows: Michael Robertson, pendiri MP3.com, memulai pengembangan Lindows yang diturunkan dari Debian. Nantinya Lindows berganti nama menjadi Linspire karena adanya tuntutan perubahan nama oleh Microsoft.
2002
• Open Office : Program perkantoran berbasis Open Source diluncurkan oleh Sun Microsystem.
• OS Lokal : OS buatan anak negeri berbasis Linux mulai bermunculan, diantaranya Trustix Merdeka, WinBI, RimbaLinux, Komura.
2003
• Windows 2003 : Microsoft meluncurkan Windows Server 2003.
• Fedora : Redhat mengumumkan distro Fedora Core sebagai penggantinya. Nantinya ada beberapa distro lokal yang dibuat berbasiskan Fedora, seperti BlankOn 1.0 dan IGOS Nusantara.
• Novell : Ximian, perusahaan pengembang software berbasis Linux dibeli oleh Novell, begitu juga halnya dengan SuSE yang diakuisisi oleh Novell.
• LiveCD : Knoppix merupakan distro pertama Linux yang dikembangkan dengan konsep LiveCD yang bisa dipergunakan tanpa harus diinstal terlebih dahulu. Distro lokal yang dibuat dari Knoppix adalah Linux Sehat dan Waroeng IGOS.
2004
• Ubuntu : Versi pertama Ubuntu diluncurkan dan didistribusikan ke seluruh dunia. Ada beberapa versi distro yang dikeluarkan, yaitu Ubuntu (berbasis Gnome), Kubuntu (berbasis KDE), Xubuntu (berbasis XFCE), dan Edubuntu (untuk pendidikan).
2005
• Mandriva : Mandrake bergabung dengan Conectiva dan berganti nama menjadi Mandriva.
2006
• Unbreakable Linux : Oracle ikut membuat distro berbasis Linux yang diturunkan dari Red Hat Enterprise.
• CHIPLux : Distro lokal terus bermunculan di tahun ini, bahkan Majalah CHIP yang lebih banyak memberikan pembahasan tentang Windows juga tidak ketinggalan membuat distro Linux dengan nama CHIPLux, yang diturunkan dari distro lokal PC LINUX dari keluarga PCLinuxOS (varian Mandriva). CHIPLux merupakan distro lokal pertama yang didistribusikan dalam format DVD.
2007
• Vista : Setelah tertunda untuk beberapa lama, Microsoft akhirnya meluncurkan Windows Vista. Windows Vista memperkenalkan fitur 3D Desktop dengan Aero Glass, SideBar, dan Flip 3D. Sayangnya semua keindahan ini harus dibayar mahal dengan kebutuhan spesifikasi komputer yang sangat tinggi.
2008
• 3D OS : Tidak seperti halnya Vista yang membutuhkan spesifikasi tinggi, 3D Desktop di Linux muncul dengan spesifikasi komputer yang sangat ringan. Era hadirnya teknologi 3D Desktop di Indonesia ditandai dengan hadirnya sistem operasi 3D OS yang dikembangkan oleh PC LINUX. Ada beberapa versi yang disediakan, yaitu versi 3D OS untuk pengguna umum serta versi distro warnet Linux dan game center Linux.
Selasa, 16 November 2010
rangkuman buku the ultimate guide to graphic design
Teknik Merancang denganLine Art
Senin, 15 November 2010
[Rangkuman Buku] The Production Manual
Adapun hal-hal yang harus diperhatikan dalam membuat sebuah desain yang baik yaitu :
- Dasar-dasar desain
Kita harus mengetahui apa saja yang dibutuhkan untuk pembuatan sebuah desain dan kita juga harus tahu apa saja yang diperlukan untuk membuat sebuah desain yang kita buat dan apakah memiliki sebuah makna atau tidak serta memiliki hasil yang baik dalam sebuah gambar.
- Elemen
Mengeksplorasi dan memisahkan unsur-unsur yang terkandung dalam membuat desain, seperti jenis, gambar dan berbagai item yang disusun oleh seorang desainer dalam sebuah layout serta bentuk dari gambar itu sendiri dan bentuk backgorundnya harus sesuai dengan desain.
- Warna
Sebab warna merupakan sebuah faktor yang cukup dominan dalam perform dan karakterisasi sebuah desain visual, baik dalam dunia grafis maupan dunia seni. Karena sebuah warna biasanya melambangkan makna dari desain itu sendiri.
- Produksi
Merupakan hasil dari desain yang sudah dirancang terlebih dahlu yang kemudian dibuat sedemikian rupa yang hasilnya akan dilihat oleh beberapa orang yang terkait dalam desain tersebut.
- Finishing
Merupakan akhir dari pembuatan desain dimana dalam bagian ini seorang desainer harus benar-benar memperhatikan tata letak,warna dan lain-lain agar hasilnya memuaskan dan baik untuk sebuah desain yang dibuat.
DASAR-DASAR RANCANGAN/DESAIN
Desain, pada dasarnya, adalah disiplin serbaguna dan kreatif, tetapi desainer akan sering menemukan diri mereka bekerja dalam batas-batas yang ditetapkan, seperti standar ukuran kertas, sistem pengukuran dan grid.
A. Pengukuran
Desain grafis melibatkan penggunaan pengukuran untuk menentukan segala sesuatu dari jenis dan ukuran divisi halaman untuk ukuran gambar serta memahami bentuk dan layout betapa berbedanya pengukuran yang digunakan untuk membantu dalam pembuatan sebuah desain. Didalam pengukuruan memiliki beberapa faktor yaitu :
- Absolut dan Relatif
Biasanya dua jenis pengukuran yang digunakan dalam proses tipografi.
- Pengukuran Mutlak
Pengukuran Mutlak adalah pengukuran nilai tetap.
- Pengukuran Relatif
Dalam tipografi ini banyak bagain-bagian dari pengukuran itu sendiri, seperti karakter jarak, terkait dengan jenis ukuran dan bentuk gambar.
- Alfabet Huruf Kecil
Hal ini berdampak pada typesetting sebagai jenis huruf yang lebih luas dapat diatur dalam ukuran yang lebih luas atau lebar kolom dan masih nyaman untuk membacanya.
- Em
Em adalah unit relatif pengukuran, yang digunakan dalam huruf untuk menentukan fungsi jarak dasar.
- En
En adalah unit pengukuran yang relatif sama dengan setengah dari satu em.
B. Elemen
- Jenis Gambar
Produksi gambar untuk pekerjaan desain sekarang luas dicapai melalui penggunaan teknologi komputer.
- Raster dan Vektor
Ada dua jenis gambar utama: raster dan vektor. Kedua format memiliki kekuatan khusus dan kelemahan yang membuat mereka cocok untuk tujuan yang berbeda.
- Raster
Sebuah citra raster adalah setiap yang terdiri dari piksel dalam grid, dimana setiap piksel berisi informasi warna reproduksi gambar, seperti nada kontinu foto pada contoh di bawah.
- Vektor
Gambar vektor berisi objek scalable banyak yang didefinisikan oleh rumus matematika atau path daripada piksel.
- Gambar Jenis
Sebuah gambar digital dapat disimpan dalam beberapa format file yang berbeda, seperti bitmap, line art, setengah-nada atau abu-abu, yang semuanya memiliki keunggulan tertentu untuk keperluan tertentu.
- Bitmaps
Sebuah bitmap atau raster adalah setiap gambar yang terdiri dari piksel dalam kotak.
- Format file
File format seperti PSD, TIFF, PDF, EPS, BMP dan JPEG merupakan alur kerja grafik desain.
- Resize gambar
Gambar sering harus diubah ukurannya sehingga gambar yang dilihat tidak terkesan berbayang.
- Ukuran Gambar
Ukuran gambar dapat diubah dengan mengubah nilai untuk piksel dimensi atau ukuran dokumen.
- Manipulasi Gambar
Merupakan perubahan gambar dan kemudian di filter yang menawarkan pilihan kuat untuk membuat gambar lebih unik dan dramatis, namun mereka harus digunakan dengan hati-hati dan menahan diri tertentu untuk menghasilkan hasil yang dikenali.
C. Warna
Warna juga dapat digunakan oleh desainer untuk membantu mengatur elemen pada halaman dan menuntun mata dari satu item lain, atau menanamkan hirarki.
- Manajemen Warna
Warna manajemen adalah proses yang mengatur warna agar terlihat indah dan nyaman untuk dilihat.
- Kreatif Warna
Merupakan warna yang mengangkat sebuah unsur-unsur yang terkandung didalamnya agar terlihat memiliki arti yang sangat luas dan bermakan sangat menarik.
- Lapisan Warna
Merupakan background dari desain yang disesuai kan berdasarkan makna dari gambar itu sendiri.
- Efek Pada Gambar
Merupakan sebuah kombinasi yang disesuaikan oleh bentuk serta gambar agar desain ini memiliki banyak arti dan terlihat menarik dan unik.
- Resolusi
Merupakan ukuran dari gambar atau betuk dari gambar itu sendiri yang memiliki resolusi pixel.
- Pemindaian
Sebuah gambar dapat dipindai dengan cara yang berbeda untuk menghasilkan hasil kualitas yang bervariasi.
D. Produksi
Dalam produksi memiliki beberapa bagian yang terkandung pada produksi yaitu :
- Proses Cetak
Percetakan adalah sebuah proses yang berlaku untuk melihat hasil secara real dalam desain.
- Metode pencetakan
Ada empat proses utama yang digunakan oleh industri percetakan komersial - offset lithography, gravure, letterpress dan sutera layar - yang semuanya berbeda dalam biaya, kualitas produksi dan produksi tingkat atau volume.
E. Penyelesaian (Finishing)
Finishing mencakup berbagai proses untuk memberikan sentuhan akhir pada gambar dan desainnya.
Tic Tac Toe pada prolog
set(pos([[f,f,f], [f,f,f], [f,f,f]])),
set(lose_flag(false)),
brush(system_color(window)),
window( _, _, win_func(_), "Tick-Tack-Toe", 200, 100, 248, 268).
put_mark(Mark) :-
pos(Current_Pos),
member(Current_Pos, L, Y),
member(L, Mark, X),
X1 is 40 + 60*X, Y1 is 40 + 60*Y, X2 is X1 + 40, Y2 is Y1 +40,
write_mark(Mark, X1, Y1, X2, Y2),
fail.
put_mark(_).
write_mark(x, X1, Y1, X2, Y2) :-
ellipse(X1,Y1,X2,Y2),
line(((X2-X1)//2)+X1, ((Y2-Y1)//2)+Y1, X2, Y2).
write_mark(o, X1, Y1, X2, Y2) :-
X3 is X2-X1,
X4 is X3*1//5,
Y3 is Y2-Y1,
X5 is X3*4//5,
line(X1,Y1,X4+X1,Y2,X3//2+X1,Y3//2+Y1,X5+X1,Y2,X2,Y1).
win_func(paint) :-
pen(2, rgb(0, 0, 0)), % black
line(30, 30, 30, 210),
line(30, 210, 210, 210),
line(210, 210, 210, 30),
line(210, 30, 30, 30),
line(90, 30, 90, 210),
line(150, 30, 150, 210),
line(30, 90, 210, 90),
line(30, 150, 210, 150),
pen(4, rgb(255, 0, 0)), % red
put_mark(x),
pen(4, rgb(0, 0, 255)), % blue
put_mark(o),
fail.
win_func(mouse_click(X, Y)) :-
lose_flag(false),
X>30, Y>30,
X<210, Y<210,
X1 is (X - 30)//60,
Y1 is (Y - 30)//60,
pos(Current_Pos),
member(Current_Pos, L, Y1),
member(L, f, X1),
!,
replace(L2, L, x, X1),
replace(Current_Pos2, Current_Pos, L2, Y1),
set(pos(Current_Pos2)),
not(win_func(paint)),
think(Current_Pos2).
win_func(mouse_click(X, Y)) :-
beep.
think(Pos) :-
try_to_win(Pos), !.
think(Pos) :-
try_nolose(Pos), !.
try_nolose(Pos) :-
move(o, Pos, Sit2),
nolose(x, Sit2),
set(pos(Sit2)),
not(win_func(paint)).
try_to_win(Pos) :-
move(o, Pos, Sit2),
is_it_win(Sit2).
is_it_win(Sit2) :-
victory(o, Sit2),
set(pos(Sit2)),
not(win_func(paint)),
set(lose_flag(true)),
message("Sorry","You cannot win against the AI.",s).
is_it_win(Sit2) :-
win(x, Sit2),
set(pos(Sit2)),
not(win_func(paint)).
member([Element, _, _], Element, 0).
member([_, Element, _], Element, 1).
member([_, _, Element], Element, 2).
replace([Element, A, B], [_, A, B], Element, 0).
replace([A, Element, B], [A, _, B], Element, 1).
replace([A, B, Element], [A, B, _], Element, 2).
victory( Who, [[Who, Who, Who], [_, _, _], [_, _, _]]).
victory( Who, [[_, _, _], [Who, Who, Who], [_, _, _]]).
victory( Who, [[_, _, _], [_, _, _], [Who, Who, Who]]).
victory( Who, [[Who, _, _], [Who, _, _], [Who, _, _]]).
victory( Who, [[_, Who, _], [_, Who, _], [_, Who, _]]).
victory( Who, [[_, _, Who], [_, _, Who], [_, _, Who]]).
victory( Who, [[Who, _, _], [_, Who, _], [_, _, Who]]).
victory( Who, [[_, _, Who], [_, Who, _], [Who, _, _]]).
win( o, Sit) :- move(o, Sit, Sit2), win(x, Sit2).
win( x, Sit) :- victory(o, Sit).
win( x, Sit) :- not(nowin( x, Sit)).
nowin(x, Sit) :- move(x, Sit, Sit2), nowin(o, Sit2).
nowin( o, Sit) :- victory(x, Sit).
nowin(o, Sit) :- not(move(Sit)). % the last move belongs to X
nowin(o, Sit) :- not(win(o, Sit)).
lose( x, Sit) :- move(x, Sit, Sit2), lose(o, Sit2).
lose( o, Sit) :- victory(x, Sit).
lose( o, Sit) :- not(nolose( o, Sit)).
nolose(o, Sit) :- not(move(Sit)). % the last move belongs to X
nolose(o, Sit) :- move(o, Sit, Sit2), nolose(x, Sit2).
nolose( x, Sit) :- victory(o, Sit).
nolose(x, Sit) :- not(lose(x, Sit)).
move(P, Sit, Sit2) :-
member(Sit, L, Y),
member(L, f, X),
replace(L2, L, P, X),
replace(Sit2, Sit, L2, Y).
move(Sit) :-
member(Sit, L, _),
member(L, f, _).
menghitung persegi dengan GUI
import javax.swing.JTextField;
import javax.swing.JButton;
import java.awt.Container;
import java.awt.FlowLayout;
import javax.swing.JTextField;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
class persegi {
public static void main(String args[]) {
//deklarasikan komponen2
JFrame frame;
Container contentPane;
JTextField tfpanjang, tflebar, tfluas;
JButton button;
FlowLayout layout;
frame = new JFrame();
//inisialisasi/ setting tiap2 komponen
frame.setTitle("Program Perhitungan Luas Persegi");
contentPane = frame.getContentPane();
tfpanjang = new JTextField("Masukkan panjang", 10);
tflebar = new JTextField("Masukkan lebar", 10);
tfluas = new JTextField("", 10);
button = new JButton("Hitung Luas");
//sambungkan button dgn perintah yg akan dijalankan
//kirimkan komponen2 ke action listener
button.addActionListener(new hitung(tfpanjang,tflebar,tfluas));
//rakitkan komponen2
contentPane.add(tfpanjang);
contentPane.add(tflebar);
contentPane.add(button);
contentPane.add(tfluas);
layout = new FlowLayout();
contentPane.setLayout(layout);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.pack();
frame.setVisible(true);
}
}
class hitung implements ActionListener {
JTextField tp,tl,tf;
hitung(JTextField tfp,JTextField tfl,JTextField tfL) {
//tampung data dari class container ke local
//by refference
tp = tfp;
tl = tfl;
tf = tfL;
}
public void actionPerformed(ActionEvent e) {
int temp,p,l;
//tampung isi textfield ke string,
//kemudian ekstrak data menjadi angka.
String sp = tp.getText();
p = Integer.parseInt(sp);
String sl = tl.getText();
l = Integer.parseInt(sl);
temp = p*l; //hitung luas persegi
//kirimkan hasil temp ke tf
//tf & tfL adalah identik, yaitu text field Luas
//di class pemanggil actionlistener
tf.setText(String.valueOf(temp));
}
}
Message Dialog pada java menggunakan GUI
import java.awt.event.*;
import javax.swing.*;
public class MessageDialog extends JFrame {
private JButton tombol, btn2, btn3, btn4, btn5;
public MessageDialog() {
super ("Event Handling");
Container container = getContentPane();
container.setLayout(new FlowLayout());
tombol = new JButton ("Message Dialog");
tombol.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
JOptionPane.showMessageDialog (null,"Contoh Message Dialog");
}
}
);
container.add(tombol);
btn2 = new JButton ("Warning Message");
btn2.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
JOptionPane.showConfirmDialog(null, "Contoh Warning Message","Peringatan",
JOptionPane.CLOSED_OPTION, JOptionPane.WARNING_MESSAGE);
}
}
);
container.add(btn2);
btn3 = new JButton ("Question Message");
btn3.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
JOptionPane.showConfirmDialog(null, "Contoh Question Message","Pertanyaan",
JOptionPane.OK_CANCEL_OPTION, JOptionPane.QUESTION_MESSAGE);
}
}
);
container.add(btn3);
btn4 = new JButton ("Information Message");
btn4.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
JOptionPane.showConfirmDialog(null, "Contoh Information Message","Informasi",
JOptionPane.NO_OPTION, JOptionPane.INFORMATION_MESSAGE);
}
}
);
container.add(btn4);
btn5 = new JButton ("Input Dialog");
btn5.addActionListener(
new ActionListener() {
public void actionPerformed (ActionEvent e) {
String a = JOptionPane.showInputDialog("Input Nama : ");
JOptionPane.showMessageDialog(null, a);
}
}
);
container.add(btn5);
setSize (200,300);
setLocationRelativeTo(null);
setVisible (true);
}
public static void main (String arg[]) {
MessageDialog test = new MessageDialog();
test.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
Selasa, 13 April 2010
Filosofi tentang website bisnis internet
- Warna
- Font
- Sponsor
- Information
- Artikel Blog
- Support
Senin, 05 April 2010
Selasa, 23 Maret 2010
kerangka web tentang bisnis

Keterangan :
1. Logo website/perusahaan
2. Nama website/perusahaan
3. Slogan/motto website
4. Link utama
5. Bahasa
6. Salam/kalimat pembuka
7. Kotak pencarian
8. Content : bisa berupa headline, berita terbaru, daftar produk terbaru,dll
9. Content/menu tambahan : bisa berupa polling, form login, dll
10. Content/menu tambahan : bisa berupa polling, form login, daftar lain, dll
11. Content : bisa berupa daftar berita, produk lain, dll
12. Content : bisa berupa daftar berita, produk lain, dll
13. Footer : bisa berisi copyright, link yang sama dengan link utama, dll
Jumat, 05 Maret 2010
Penggunaan Web Dalam Bidang Bisnis
Pada masa dulu, bisnis masih belum mengenal sebuah teknologi yang menggunakan akses internet. Meskipun pada masa dulu bisnis sudah mengenal computer tetapi waktu itu computer cenderung hanya untuk kebutuhan kantor saja dan pada masa itu pula computer belum memiliki sebuah jaringan bantuan yang sekarang yang kita kenal dengan Internet. Sebelum kita membahas sebuah bisnis internet maka kita harus terlebih dahulu mengetahui perkembangan internet itu sendiri. Internet merupakan jaringan komputer yang dibentuk oleh Departemen Pertahanan Amerika Serikat di tahun 1969, melalui proyek ARPA yang disebut ARPANET (Advanced Research Project Agency Network), di mana mereka mendemonstrasikan bagaimana dengan hardware dan software komputer yang berbasis UNIX, kita bisa melakukan komunikasi dalam jarak yang tidak terhingga melalui saluran telepon. Proyek ARPANET merancang bentuk jaringan, kehandalan, seberapa besar informasi dapat dipindahkan, dan akhirnya semua standar yang mereka tentukan menjadi cikal bakal pembangunan protokol baru yang sekarang dikenal sebagai TCP/IP (Transmission Control Protocol/Internet Protocol).
Tujuan awal dibangunnya proyek itu adalah untuk keperluan militer. Pada saat itu Departemen Pertahanan Amerika Serikat (US Department of Defense) membuat sistem jaringan komputer yang tersebar dengan menghubungkan komputer di daerah-daerah vital untuk mengatasi masalah bila terjadi serangan nuklir dan untuk menghindari terjadinya informasi terpusat, yang apabila terjadi perang dapat mudah dihancurkan.
Pada mulanya ARPANET hanya menghubungkan 4 situs saja yaitu Stanford Research Institute, University of California, Santa Barbara, University of Utah, di mana mereka membentuk satu jaringan terpadu di tahun 1969, dan secara umum ARPANET diperkenalkan pada bulan Oktober 1972. Tidak lama kemudian proyek ini berkembang pesat di seluruh daerah, dan semua universitas di negara tersebut ingin bergabung, sehingga membuat ARPANET kesulitan untuk mengaturnya.
Oleh sebab itu ARPANET dipecah manjadi dua, yaitu "MILNET" untuk keperluan militer dan "ARPANET" baru yang lebih kecil untuk keperluan non-militer seperti, universitas-universitas. Gabungan kedua jaringan akhirnya dikenal dengan nama DARPA Internet, yang kemudian disederhanakan menjadi Internet.
Mari kita banding kan dan kita lihat perkembangan dunia Internet saat ini dibanding dengan masa lalu. Mari kita lihat dari masing-masing sudut pandangnya yaitu
1. Media Akses
Dahulu pada media ini mengenal sebuah nama yang sering kita sebut sekarang sebagai Dial Up, dial up menggunakan jaringan telepon tetap adalah satu-satunya media akses yang paling masuk akal agar perorangan dapat terhubung ke internet dari rumah atau kantor. Bahkan warnet-warnet pun banyak mengandalkan dial-up sebagai media koneksi Internet.
Perusahaan penyedia jasa internet mulai tumbuh satu per satu. Indonet merupakan salah satu pelopor untuk hal ini yang kemudian diikuti oleh perusahaan jasa internet lainnya. Hingga suatu saat lahirlah TelkomNet Instan, di mana dengan model seperti ini pelanggan dengan lebih mudah untuk melakukan dial-up tanpa perlu melakukan registrasi. Kecepatan maksimal dari dial-up hanya 57 Kbps. memang pada media ini masih ada dan masih bisa digunakan sampai saat ini. Bahkan penyedia jasa internet masih tetap menjual layanan tersebut. Tetapi pada zaman sekarang kecepatan dial-up bisa mencapai lebih dari Mbps yang dibantu dengan sebuah layanan internet yang berupa WIFI, MODEM, dan sekarang internet tidak hanya bisa di pakai menggunakan computer tetapi lewat handphone juga bisa mengakses internet dengan menggunakan gprs.
2. Konten
Saat itu para para penyedia konten masih terbatas hanya menyediakan informasi yang searah, walau memang ada beberapa penyedia konten interaktif (forum) dan social networking, sebut saja kafegaul.com, astaga.com, boleh.com, dan lainnya. Besarnya halaman berkisar antara 50 KB-100 KB per halaman, hal ini mungkin masih disebabkan karena akses yang digunakan mayoritas masih menggunakan dial-up modem dengan kecepatan 57 Kbps. Konten luar negeri pun masih di dominasi oleh layanan penyedia jasa email gratisan seperti Yahoo, usa.net, eudoramail, multicity. Tetapi pada zaman sekarang sudah berkembang dengan adanya sebuah forum, layanan email, website, bahkan yang lagi besar namanya yaitu BLOG. Dengan adanya blog kita dimudahkan untuk melakukan layanan internet dengan sangat nyaman.
3. Social Networking
Dahulu pada bagian ini, masyarakat hanya mengenal sebuah layanan internet yang memudahkan kita untuk berbicara, berkenalan, dan sebagainya. Tapi pada zaman sekaang yang sudah maju dengan diadakannya internet dapat mengakses sampai ke layanan chatting seperti facebook, plurk, twitter dan sebagainya.
Dari beberapa bagian yang kita ketahui dapat kita simpulkan bahwa sebuah bisnis pada zaman dahulu belum mengenal sebuah layanan internet, yang kemudian tahun demi tahun internet mulai muncul dan dibuatnya sebuah konten-konten pembantu dalam melancarkan sebuah layanan dalam penggunaan internet. Yang kemudian sebuah pengusaha bisnis mulai terjun memakai jasa internet yang memudahkan mereka mencari sebuah informasi, berbicara serta membuat sebuah diskusi secara online sehingga para pengusaha mulai berfikir untuk menggunakan jasa internet. Yang kemudian para pengusaha bisnis ini merasa nyaman dan tertarik untuk memakai nya. Dengan adanya sebuah internet dalam bentuk sebuah konten-konten web ini bisa membantu mereka untuk memasarkan atau memberikan sebuah iklan secara online yang bisa dilakukan pula dalam hal pembelian serta penjualan barang dan jasa secara online.
sumber :
1. http://id.wikipedia.org/wiki/Sejarah_internet
2. http://www.astaga.com/forum/showthread.php?t=76
3. http://www.bisnisinternetonline.com/
Sabtu, 27 Februari 2010
Tantangan Implementasi IP Mobility
A. Umum
Para analis memperkirakan bahwa ledakan pertumbuhan industri wireless communication beberapa tahun terakhir akan terus berlanjut. Tahun 2006 jumlah pekerja yang mobile akan mencapai 105 juta atau 66 persen dari total pekerja (sumber IDC-1). Meta Group memperkirakan dalam 3 tahun 50 persen perusahaan akan mempunyai wireless email dan akan mendorong munculnya aplikasi-aplikasi wireless. Gartner memperkirakan bahwa tahun 2010, 80 persen dari key bisnis proses akan melekat dalam pekerja yang mobile. Meta Group memperkirakan bahwa tahun 2005, 95 persen industri laptop akan mengemas laptop dengan kemampuan mobile. Dampaknya wireless connectivity akan memjadi sesuatu yang normal/wajar tanpa melihat dari sisi bisnis sudah siap atau belum.
Pertumbuhan mobility yang fenomenal didorong oleh kebutuhan end-user dan perkembangan IP network yang sangat cepat. Dan dalam kenyataannya beberapa perusahaan mempunyai infrastruktur wireless yang dikembangkan secara independen oleh para pegawainya. Analisa dari Gartner memperkirakan satu dari lima perusahaan telah mengimplementasikan wireless LAN (WLAN) meskipun belum tentu CIO perusahaan tersebut tahu. Yang menggembirakan adalah banyak perusahaan telah mengenali kebutuhan mereka untuk mendukung perangkat mobile dan meningkatkan kemampuan mobility.
Departemen-departemen dalam pemerintahan, pusat kesehatan, lembaga pendidikan, dan industri-industri high technology dengan lingkungan kampus yang cukup luas dan populasi pegawai yang mobile cukup besar secara proaktif mengembangkan infrastruktur wireless dengan memadukan wireless access point dan wireless switching yang mendukung kemampuan roaming. Sementara IP based mobility berkembang dengan pesat, perusahaan-perusahaan juga mengembangkan aplikasi-aplikasi yang dapat mendukung produktivitas dan kepuasan pelanggan. Aplikasi seperti unified messaging, conferencing dan instant messaging mengalami pertumbuhan yang signifikan.
Pengaruh dari IP based mobility, convergence applications, perangkat mobile yang kaya dengan fitur menawarkan peluang-peluang baru bagi perusahaan. Mereka dapat meningkatkan produktivitas karyawan dan meningkatkan layanan ke pelanggan dengan biaya yang rendah dibanding dengan solusi mobility dengan berbasis teknologi TDM.
B. IP Mobility
Mobility adalah kemampuan untuk roaming dan masih dapat melakukan akses ke jaringan lain. Mobility seperti pada jaringan selular, memungkinkan user dalam suatu perusahaan berpindah ke corporate atau lokasi yang berbeda sepanjang wireless network masih tersedia. Pendekatan mobility adalah dengan mempertimbangkan tipe dari jaringan yang dipakai di berbagai macam waktu dan keadaan, seorang karyawan perusahaan dalam melaksanakan tugasnya dapat saja dalam keadaan sbb:
* Di meja kerja dengan telepon meja
* Di ruang conference dengan wireless LAN
* Roaming/di luar kantor
* Sedang dalam kendaraan menuju kantor cabang
* Di hotel dengan koneksi PSTN atau Internet
* Di rumah dengan media akses ke telepon rumah
Visi kedepannya adalah menyediakan seamless mobility dengan user dapat memilih berbagai alternatif akses sesuai kondisi user, tentunya dengan mempertimbangkan biaya.
Mobility biasanya dibagi dalam tiga dimensi :
* Physical Mobility: user dapat pindah diantara network-network yang tersedia dengan pertimbangan cost-effective. Pilihan network seperti Enterprise LAN, Enterprise WAN, wireless LAN, Internet dan PSTN.
* Identity Portability: User dapat roaming di berbagai infrastruktur jaringan yang berbeda dengan menggunakan identitas tunggal. Identitas tunggal bisa saja berupa nomor telepon, ini juga sangat berguna apabila ada karyawan yang keluar atau pindah maka identitas bisa diteruskan ke penggantinya sehingga customer tidak kehilangan kontak.
* User Interface Universality: User dapat menggunakan seluruh fitur dan aplikasi sesuai dengan tingkat otorisasi user, tentunya dengan menggunakan berbagai perangkat dan tipe akses.
C. Tantangan Implementasi IP Mobility
Tantangan implementasi IP mobility dapat dikelompokkan dalam empat kategori yaitu: Security, roaming, device dan portability.
Security: Ketika user sedang mobile, koneksi dan akses data mau tidak mau terjadi lintas multiple network boundaries, dimana masing-masing jaringan mempunyai kebijakan security tersendiri. Wireless network juga memerlukan proteksi dimana tidak semua user dapat masuk ke jaringan melalui akses point. Penyediaan autentikasi akses ke wireless network dan aplikasi-aplikasi yang didalamnya melalui wireless domain menjadi persyaratan penting dalam implementasi enterprise mobility ini.
Roaming: Roaming dapat diartikan berpindah dari satu network boundary ke network lain selama komunikasi berlangsung. Roaming tidak hanya antar enterprise wireless LAN tetapi juga antar subnet. Roaming menyebabkan komunikasi terputus khususnya komunikasi yang bersifat real-time seperti komunikasi suara. Menjaga koneksi yang konsisten selama switch over dan hand-offs diantara wireless network merupakan faktor esensial dalam enterprise mobility terutama untuk mengakomodasi berbagai aplikasi dalam enterprise wireless LAN.
Devices: Mobility memungkinkan akses secara remote dengan menggunakan perangkat seperti IP Phone dan juga roaming. Ada dua persyaratan perangkat dalam mendukung mobility, pertama perangkat harus mampu berkomunikasi dengan perangkat lain dengan berbagai tipe akses. Dan yang kedua perangkat harus mempunyai kemampuan untuk mengakses berbagai aplikasi yang dibangun oleh enterprise.
Portability: Dalam jaringan yang konvensional, pemanggil mempunyai banyak pilihan nomor untuk menghubungi yang dipanggil (PSTN, Cellular, Office, and Home). Dan tentu saja akan lebih mudah kalau user yang dipanggil hanya mempunyai satu nomor identitas, dan identitas tersebut otomatis akan melekat pada apa saja perangkat dan akses yang sedang dipakai oleh user.
D. Kesimpulan
Banyak yang memperkirakan bahwa IP Mobility akan menjadi layanan yang sangat diperlukan bagi perusahaan untuk meningkatkan produktivitas, terutama perusahaan yang sebagian besar pegawainya mobile. Mobility sendiri harus mencakup mobile secara fisik, identitas dan aplikasi sesuai dengan user authority. Sedangkan dalam implementasinya tantangan yang perlu segera dipecahkan adalah masalah security, roaming, devices dan portability.
Karno Budiono, penulis adalah engineer lab transport di TELKOM R&D Center yang terlibat dalam kegiatan assessment teknologi jaringan transport, Pengembangan Hosted IP PBX dan Video Conference dan anggota tim percepatan industri ICT dalam negeri.
Referensi:
1. Mobile IP-Technology and Application, Cisco, 2005
2. IP mobility, 3com, 2003
Macm-macam situs web
Sebuah Website statik, adalah salah satu bentuk website yang isi didalam website tersebut tidak dimaksudkan untuk di update secara berkala, dan biasanya di maintain secara manual oleh beberapa orang yang menggunakan software editor. Ada 3 tipe kategori software editor yang biasa dipakai untuk tujuan maintaining ini, mereka adalah :
- Elemen 1 Penyunting teks. Contohnya adalah Notepad atau TextEdit, dimana HTML diubah didalam program editor tersebut.
- Elemen 2 WYSIWYG editor. Contohnya Microsoft Frontpage dan Macromedia Dreamweaver, dimana situs di edit menggunakan GUI (Graphical User Interface) dan format HTML ini secara otomatis di generate oleh editor ini.
- Elemen 3 Editor yang sudah memiliki templat, contohnya Rapidweaver dan iWeb, dimana, editor ini membolehkan user untuk membuat dan mengupdate websitenya langsung ke server web secara cepat, tanpa harus mengetahui apapun tentang HTML. Mereka dapat memilih templat yang sesuai dengan keinginan mereka, menambah gambar atau obyek, mengisinya dengan tulisan, dan dengan sekejap mereka sudah dapat membuat situs web tanpa harus melihat sama sekali kode-kode HTML.
Sebuah website dynamic adalah website yang secara berkala, informasi didalamnya berubah, atau website ini bisa berhubungan dengan user dengan berbagai macam cara atau metode (HTTP cookies atau Variabel Database, sejarah kunjungan, variabel sesi dan lain-lain) bisa juga dengan cara interaksi langsung menggunakan form dan pergerakan mouse. Ketika web server menerima permintaan dari user untuk memberikan halaman tertentu, maka halaman tersebut akan secara otomatis di ambil dari media penyimpanan sebagai respon dari permintaan yang diminta oleh user. Sebuah situs dapat menampilkan dialog yang sedang berlangsung diantara dua user, memantau perubahan situasi, atau menyediakan informasi yang berkaitan dengan sang user.
Ada banyak jenis sistem software yang dapat dipakai untuk meng-generate Dynamic Web System dan Situs Dynamic, beberapa diantaranya adalah ColdFusion (CFM), Active Server Pages (ASP), Java Server Pages (JSP) dan PHP, bahasa program yang mampu untuk meng-generate Dynamic Web System dan Situs Dinamis. Situs juga bisa termasuk didalamnya berisi informasi yang diambil dari satu atau lebih database atau bisa juga menggunakan teknologi berbasis XML, contohnya adalah RSS. Isi situs yang statis juga secara periodik di generate, atau, apabila ada keadaan dimana dia butuh untuk dikembalikan kepada keadaan semula, maka dia akan di generate, hal ini untuk menghindari kinerjanya supaya tetap terjaga.
Plugin tersedia untuk menambah banyaknya feature dan kemampuan dari web browser, dimana, plugin ini dipakai untuk membuka content yang biasanya berupa cuplikan dari gambar bergerak (active content) contohnya adalah Flash, Shockwave atau applets yang ditulis dalam bahasa JAVA. Dynamic HTML juga menyediakan untuk user supaya dia bisa secara interaktif dan realtime, meng-update di web page tersebut (catatan; halaman yang dirubah, tak perlu di load atau di reloaded agar perubahannya dapat dilihat), biasanya perubahan yang dilakukan mereka memakai DOM dan Javascript yang sudah tersedia pada semua Web Browser sekarang ini.
Seperti yang tertulis di atas, di luar sana ada beberapa perbedaan dalam penulisan dari terminologi website. Walaupun ¨Website¨ sudah secara umum dipakai, namun untuk Associated Press Stylebook, Reuters, Microsoft, Academia, dan kamus-kamus yang ada, penulisan yang mereka pakai adalah dengan menggunakan 2 kata, yaitu Web site. Hal ini karena ¨Web¨ bukanlah terminilogi umum, namun kependekan dari World Wide Web.
Senin, 15 Februari 2010
Pengenalan Microsoft Office 2010
Microsoft Office 2010
Microsoft sudah siap dengan versi beta disini cuma sekedar versi uji coba saja dari Office 2010. Versi terakhir Office adalah Office 2007, Office 2003 dan sebelumnya Office 2000. Versi beta ini bisa di download (diunduh) dari situs Microsoftnya langsung, dan bisa dipakai secara free hingga waktu tertentu atau yang sering kita sebuat dengan “Trial”. Bagi pengguna komputer yang memiliki pengetahuan terbatas, tidak dianjurkan menggunakan aplikasi ini karena masih bisa mengandung bug atau error.
berdasarkan pengalaman yang saya ketahui dalam segi tampilan awal atau tampilan pada saat kita masuk ke office word, excel, powerpoint dan lain-lain memang sangat menarik. tapi kekurangan dari windows 2010 ini tidak bagus dari segi letak file,formatnya dan lain-lain dibandingkan dengan Office 2007. memang saya akui Office 2010 ini baru sekedar uji coba saja. tapi dengan kita memakai Office 2010 bisa menambah daya ingat kita dalam hal memakai semua peritah-perintah yang ada pada Office 2010 dibandingkan dengan Office 2007 disini memang dari segi kualitas lebih menarik dan mudah untuk memakainya.
Namun saya pikir sangat layak untuk dicoba, jika anda mengalami crash atau sulit, langsung switch back ke versi lama yang sudah stabil saja. Selamat mencoba, klik disini untuk info detail dan download.
Yang tersedia dalam Office 2010 adalah:
Word
Access
PowerPoint
Publisher
Outlook
InfoPath
Excel
SharePoint Workspace
OneNote
Communicator
Dalam paket terpisah juga ada:
Microsoft Visio 2010
Microsoft Project 2010
membuat kalkulator dalam JAVA
{
int A=11;
int B=10;
int C=9;
int D=8;
int E;
public static void main(String[] args)
{
tugas mv = new tugas ();
System.out.println("Panjang luar =" +mv.A);
System.out.println("Panjang dalam =" +mv.B);
System.out.println("Lebar Luar =" +mv.C);
System.out.println("Lebar Dalam =" +mv.D);
System.out.println("Luas Arsir ="+((mv.A * mv.C-mv.B * mv.D)));
}
}
/**
* @(#)Text1.java
*
*
* @author
* @version 1.00 2008/11/6
*/
import javax.swing.*;
import java.io.*;
import java.awt.*;
import java.awt.event.*;
import javax.swing.UIManager;
class MiniCalculator extends JFrame implements ActionListener {
private JPanel panelAtas = new JPanel();
private JPanel panelTengah = new JPanel();
private JPanel panelBawah = new JPanel();
private JTextField tampilan = new JTextField("");
private JCheckBox pemisahRibuan = new JCheckBox("Pemisah Ribuan", true);
private JButton[] tombolFungsi =
{
new JButton("Hapus"), new JButton("Batal"),
new JButton("Ulang"), new JButton("^"),
new JButton("7"), new JButton("8"),
new JButton("9"), new JButton("*"),
new JButton("4"), new JButton("5"),
new JButton("6"), new JButton("/"),
new JButton("1"), new JButton("2"),
new JButton("3"), new JButton("-"),
new JButton("0"), new JButton("."),
new JButton("="), new JButton("+"),
};
private JLabel informasi = new JLabel("(c)2008");
private JButton tombolExit = new JButton("Exit");
private char operator = ' ';
private double dataPertama = 0.0;
private double dataKedua = 0.0;
private double dataHasil = 0.0;
private boolean awalKetikan = true;
private boolean entryPertama = true;
private boolean entryDesimal = true;
//----------------------------
//Constructor class
//----------------------------
public MiniCalculator() {
super("Kalkulator Sederhana");
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setLocationRelativeTo(null);
setSize(350,300);
setResizable(false);
//Procedure
setPanelAtas();
setPanelTengah();
setPanelBawah();
resetNilai();
getContentPane().setLayout(new BorderLayout());
getContentPane().add(panelAtas, BorderLayout.NORTH);
getContentPane().add(panelTengah, BorderLayout.CENTER);
getContentPane().add(panelBawah, BorderLayout.SOUTH);
show();
}
//----------------------
//Mereset seluruh nilai
//----------------------
private void resetNilai()
{
operator = ' ';
dataPertama = 0.0;
dataKedua = 0.0;
dataHasil = 0.0;
awalKetikan = true;
entryPertama = true;
entryDesimal = false;
}
//-------------------
//Mengatur Panel Atas
//-------------------
private void setPanelAtas()
{
pemisahRibuan.setForeground(new Color (0,0,0));
pemisahRibuan.setFont(new Font ("arial", Font.PLAIN, 14));
tampilan.setEnabled(false);
tampilan.setHorizontalAlignment(JTextField.RIGHT);
tampilan.setFont(new Font("arial", Font.BOLD, 15));
panelAtas.setLayout(new BorderLayout());
panelAtas.add(tampilan, BorderLayout.CENTER);
panelAtas.add(pemisahRibuan, BorderLayout.SOUTH);
}
//---------------------
//Mengatur Panel Tengah
//---------------------
private void setPanelTengah()
{
panelTengah.setLayout(new GridLayout (5,4));
for (int i=0; i<5*4; temp =" data.toString();"> 3)
{
temp = data.substring(data.length() - 3);
data.delete(data.length() - 3, data.length());
temp = pisahkan(data) + ',' + temp.toString();
}
return(temp);
}
//---------------------------
//Pemisah Ribuan
//---------------------------
private String pisahkanRibuan(double data)
{
String string = Double.toString(data);
int titik = string.indexOf('.');
String pecahan = string.substring(titik);
long bulat = new Double(dataHasil).longValue();
string = Long.toString(bulat);
string = pisahkan(new StringBuffer (string));
return(string);
}
//---------------------------
//Menghapus karakter terakhir
//---------------------------
private void hapusKarakter()
{
if (tampilan.getText().length() > 0)
{
StringBuffer data = new StringBuffer(tampilan.getText());
char terakhir = data.charAt(data.length()-1);
if (terakhir == '.')
entryDesimal = false;
data.deleteCharAt(data.length()-1);
tampilan.setText(data.toString());
}
}
//---------------------------
//Membatalkan data Terakhir
//---------------------------
private void batalkanData()
{
if (entryPertama)
dataPertama = 0.0;
else
dataKedua = 0.0;
tampilan.setText("");
}
//---------------------------
//Mengupdate data angka
//---------------------------
private void updateData(int index)
{
if (awalKetikan)
tampilan.setText("");
String label = tombolFungsi[index].getLabel();
char karakter = label.charAt(0);
StringBuffer data = new StringBuffer(tampilan.getText());
tampilan.setText(data.toString() + karakter);
awalKetikan = false;
}
//---------------------------
//Mengupdate Data Operator
//---------------------------
private void updateOperator(int index)
{
if (entryPertama)
{
StringBuffer data = new StringBuffer(tampilan.getText());
dataPertama = Double.parseDouble(data.toString());
}
String label = tombolFungsi[index].getLabel();
operator = label.charAt(0);
entryPertama = false;
awalKetikan = true;
}
//----------------------------
//Melakukan proses perhitungan
//----------------------------
private void prosesPerhitungan()
{
StringBuffer data = new StringBuffer(tampilan.getText());
dataKedua = Double.parseDouble(data.toString());
switch(operator)
{
case '+': dataHasil = dataPertama + dataKedua;
break;
case '-': dataHasil = dataPertama - dataKedua;
break;
case '*': dataHasil = dataPertama * dataKedua;
break;
case '/': dataHasil = dataPertama / dataKedua;
break;
case '^': dataHasil = Math.pow(dataPertama, dataKedua);
break;
}
if (pemisahRibuan.isSelected())
tampilan.setText(pisahkanRibuan(dataHasil));
else
tampilan.setText(Double.toString(dataHasil));
entryPertama = true;
awalKetikan = true;
}
//--------------------------
//Menambahkan tanda desimal
//--------------------------
private void tambahTandaDesimal()
{
if(!entryDesimal && !awalKetikan)
{
entryDesimal = true;
StringBuffer data = new StringBuffer(tampilan.getText());
tampilan.setText(data.toString() + '.');
}
}
//---------------------------
//Action terhadap respon user
//---------------------------
public void actionPerformed(ActionEvent event)
{
Object objek = event.getSource();
int lokasi = 0;
if (objek == tombolExit)
System.exit(0);
else
{
for (; lokasi<20; lokasi++)
if (objek == tombolFungsi[lokasi])
break;
switch(lokasi)
{
case 0 : hapusKarakter();
break;
case 1 : batalkanData();
break;
case 2 : resetNilai();
tampilan.setText("");
break;
case 16 : ;
case 12 : ;
case 13 : ;
case 14 : ;
case 8 : ;
case 9 : ;
case 10 : ;
case 4 : ;
case 5 : ;
case 6 : updateData(lokasi);
break;
case 3 : ;
case 7 : ;
case 11 : ;
case 15 : ;
case 19 : updateOperator(lokasi);
break;
case 18 : prosesPerhitungan();
break;
case 17 : tambahTandaDesimal();
break;
}
}
}
}
//-----------
//Class Utama
//-----------
public class CobaCalculator
{
public static void main(String[] args) {
java.awt.EventQueue.invokeLater(new Runnable() {
public void run() {
try {
UIManager.setLookAndFeel("com.sun.java.swing.plaf.gtk.GTKLookAndFeel");
} catch (Exception e) {
System.out.println("Look And Feel Not Supported, Ignored !!!");
}
new MiniCalculator();
} // end run method
}); // end thread safe
}
}



