Sunday, November 28, 2010

Pemrograman Berorientasi Objek

Beberapa bahasa pemrograman mempunyai karakteristik berorientasi objek. Java merupakan salah satunya. Pendekatan berorientasi objek dalam pemrograman merupakan fitur bawaan dari program java. Seperti C++, java dapat mendukung pendekatan berorientasi objek untuk menuliskan program. Dengan demikian, desain berorientasi objek dapat menggunakan komponen software untuk digunakan kembali.
Pemrograman berorientasi objek berdasarkan permodelan dari dunia nyata yang disebut objek. Objek terdiri dari data dan perilaku yang dikemas dalam objek. Objek dapat mempunyai karakteristik dari objek lain yang menurunkannya, sehingga programmer dapat membuat metode hanya sekali untuk pekerjaan tertentu.

Konsep dasar dari Pemrograman Berorientasi Objek

Pemrograman orientasi-objek menekankan konsep berikut:
  • kelas — kumpulan atas definisi data dan fungsi-fungsi dalam suatu unit untuk suatu tujuan tertentu. Sebagai contoh 'class of dog' adalah suatu unit yang terdiri atas definisi-definisi data dan fungsi-fungsi yang menunjuk pada berbagai macam perilaku/turunan dari anjing. Sebuah class adalah dasar dari modularitas dan struktur dalam pemrograman berorientasi object. Sebuah class secara tipikal sebaiknya dapat dikenali oleh seorang non-programmer sekalipun terkait dengan domain permasalahan yang ada, dan kode yang terdapat dalam sebuah class sebaiknya (relatif) bersifat mandiri dan independen (sebagaimana kode tersebut digunakan jika tidak menggunakan OOP). Dengan modularitas, struktur dari sebuah program akan terkait dengan aspek-aspek dalam masalah yang akan diselesaikan melalui program tersebut. Cara seperti ini akan menyederhanakan pemetaan dari masalah ke sebuah program ataupun sebaliknya.
  • Abstraksi - Kemampuan sebuah program untuk melewati aspek informasi yang diproses olehnya, yaitu kemampuan untuk memfokus pada inti. Setiap objek dalam sistem melayani sebagai model dari "pelaku" abstrak yang dapat melakukan kerja, laporan dan perubahan keadaannya, dan berkomunikasi dengan objek lainnya dalam sistem, tanpa mengungkapkan bagaimana kelebihan ini diterapkan. Proses, fungsi atau metode dapat juga dibuat abstrak, dan beberapa teknik digunakan untuk mengembangkan sebuah pengabstrakan.
  • Enkapsulasi - Memastikan pengguna sebuah objek tidak dapat mengganti keadaan dalam dari sebuah objek dengan cara yang tidak layak; hanya metode dalam objek tersebut yang diberi ijin untuk mengakses keadaannya. Setiap objek mengakses interface yang menyebutkan bagaimana objek lainnya dapat berinteraksi dengannya. Objek lainnya tidak akan mengetahui dan tergantung kepada representasi dalam objek tersebut.
  • Polimorfisme melalui pengiriman pesan. Tidak bergantung kepada pemanggilan subrutin, bahasa orientasi objek dapat mengirim pesan; metode tertentu yang berhubungan dengan sebuah pengiriman pesan tergantung kepada objek tertentu di mana pesa tersebut dikirim. Contohnya, bila sebuah burung menerima pesan "gerak cepat", dia akan menggerakan sayapnya dan terbang. Bila seekor singa menerima pesan yang sama, dia akan menggerakkan kakinya dan berlari. Keduanya menjawab sebuah pesan yang sama, namun yang sesuai dengan kemampuan hewan tersebut. Ini disebut polimorfisme karena sebuah variabel tungal dalam program dapat memegang berbagai jenis objek yang berbeda selagi program berjalan, dan teks program yang sama dapat memanggil beberapa metode yang berbeda di saat yang berbeda dalam pemanggilan yang sama. Hal ini berlawanan dengan bahasa fungsional yang mencapai polimorfisme melalui penggunaan fungsi kelas-pertama.
  • Inheritas- Mengatur polimorfisme dan enkapsulasi dengan mengijinkan objek didefinisikan dan diciptakan dengan jenis khusus dari objek yang sudah ada - objek-objek ini dapat membagi (dan memperluas) perilaku mereka tanpa haru mengimplementasi ulang perilaku tersebut (bahasa berbasis-objek tidak selalu memiliki inheritas.)
  • Dengan menggunakan OOP maka dalam melakukan pemecahan suatu masalah kita tidak melihat bagaimana cara menyelesaikan suatu masalah tersebut (terstruktur) tetapi objek-objek apa yang dapat melakukan pemecahan masalah tersebut. Sebagai contoh anggap kita memiliki sebuah departemen yang memiliki manager, sekretaris, petugas administrasi data dan lainnya. Misal manager tersebut ingin memperoleh data dari bag administrasi maka manager tersebut tidak harus mengambilnya langsung tetapi dapat menyuruh petugas bag administrasi untuk mengambilnya. Pada kasus tersebut seorang manager tidak harus mengetahui bagaimana cara mengambil data tersebut tetapi manager bisa mendapatkan data tersebut melalui objek petugas adminiistrasi. Jadi untuk menyelesaikan suatu masalah dengan kolaborasi antar objek-objek yang ada karena setiap objek memiliki deskripsi tugasnya sendiri.

Onyx white telah hadir di Indonesia

VIVAnews - Seperti yang sudah disiarkan VIVAnewssebelumnya, BlackBerry Bold 9700 alias Onyx putih akan segera hadir di Indonesia pasca diluncurkan di Inggris. PT XL Axiata (XL) menjadi mitra Research In Motion (RIM) pertama yang resmi memasarkan BlackBerry Onyx per 7 Juni 2010.
Dibanderol dengan harga hingga Rp 4,99 juta, Onyx putih milik XL baru akan didistribusikan di Jakarta terlebih dahulu melalui titik-titikXL Center dan XL Xperience Land.
"Saat ini sudah tersedia sebanyak lima ribu unit. Setelah Jakarta, kota-kota besar lain akan menyusul secara bertahap," kata Budi Harjono, Head of Marketing Mobile Data XL, melalui keterangan tertulis yang diterima VIVAnews, Selasa 8 Juni 2010.
Tak ada yang berbeda dibandingkan BlackBerry Onyx warna hitam, kecuali warna. BlackBerry Onyx putih ini juga bekerja di jaringan 3G HSDPA, WiFi b/g, dengan prosesor berkecepatan 624MHz, memori flash 256MB serta kamera 3,2 megapiksel (autofokus, lampu flash, dan rekam video). Fitur GPS terintegrasi yang mendukung aplikasi peta dan photo geotagging juga ada.
Dengan dimensi seukuran 10,9cm x 6cm x 1,4cm, dan bobot 122 gram, Onyx menggunakan layar 2,44 inci beresolusi 480x360, 245 ppi. Papan ketik Qwerty-nya dilapis krom agar nyaman saat diketik.
Sama halnya dengan Gemini, pada Onyx, RIM juga menggunakan navigasi trackpad, bukan trackball, seperti pada hampir semua produknya selama ini. Dengan OS versi 5, RIM menjanjikan pengalaman browsing web lebih baik serta proses JavaScript lebih cepat.
Di Indonesia, XL menawarkan kepada pelanggan kartu kredit HSBC untuk memperoleh BlackBerry Onyx putih dengan harga Rp 3,88 juta. Penawaran ini berlaku selama 10-13 Juni 2010 dan hanya dapat dibeli di Atrium Mall Kelapa Gading 3, Jakarta.
Untuk program BlackBerry Internet Service (BIS), operator selular yang sementara ini memiliki sekitar 310 ribu pelanggan per Maret 2010, juga masih menggelar program berlangganan layanan XL BlackBerry dengan tarif sebesar Rp 99.000/30 hari bagi pelanggan baru hingga 31 Juli 2010. (hs)

Friday, November 26, 2010

Dasar Sistem Pakar


Pada tulisan kali ini penulis akan sedikit berbagi ilmu mengenai Hal yang paling mendasar tentang Sistem Pakar. Sistem pakar pertama kali dikembangkan oleh komunitas AI pada pertengahan tahun 1960. Sistem pakar yang muncul pertama kali adalah General-purpose Problem Solver (GPS) yang dikembangkan oleh Newel dan Simon. GPS (dan program-program yang serupa) ini mengalami kegagalan dikarenakan cakupannya terlalu luas sehingga terkadang justru meninggalkan pengetahuan-pengetahuan penting yang seharusnya disediakan

Sunday, November 21, 2010

Definisi Java

Java adalah bahasa pemrograman yang dapat dijalankan di berbagai komputer termasuk telepon genggam. Dikembangkan oleh Sun Microsystems dan diterbitkan tahun 1995. Java tidak boleh disalah pahami sebagai JavaScript. JavaScript adalah bahasa scripting yang digunakan oleh web browser. Salah satu hasil proyek java adalah maskot Duke yang dibuat oleh Joe Palrang.
Nama Oak, diambil dari pohon oak yang tumbuh di depan jendela ruangan kerja "bapak java", James Gosling. Nama Oak ini tidak dipakai untuk versi release Java karena sebuah perangkat lunak sudah terdaftar dengan merek dagang tersebut, sehingga diambil nama penggantinya menjadi "Java". Nama ini diambil dari kopi murni yang digiling langsung dari biji (kopi tubruk) kesukaan Gosling.
Versi awal Java ditahun 1996 sudah merupakan versi release sehingga dinamakan Java Versi 1.0. Java versi ini menyertakan banyak paket standar awal yang terus dikembangkan pada versi selanjutnya:
* java.lang: Peruntukan kelas elemen-elemen dasar.
* java.io: Peruntukan kelas input dan output, termasuk penggunaan berkas.
* java.util: Peruntukan kelas pelengkap seperti kelas struktur data dan kelas kelas penanggalan.
* java.net: Peruntukan kelas TCP/IP, yang memungkinkan berkomunikasi dengan komputer lain menggunakan jaringan TCP/IP.
* java.awt: Kelas dasar untuk aplikasi antarmuka dengan pengguna (GUI)
* java.applet: Kelas dasar aplikasi antar muka untuk diterapkan pada penjelajah web.

Sumber : http://id.wikipedia.org/wiki/Java

kegiatan formal dan informal beserta konfliknya

ORGANISASI FORMAL

Organisasi formal salah satu contonya adalah organisasi siswa intra sekolah “OSIS”. Osis disetiap sekolah merupakan ajang kepemimpinan bagi para siswa disekolah. Mengeluarkan kereativitas siswa dalam kerkarya, semua itu dikeluarkan dengan cara baksos, class meeting, porseni, pensi, muharom, 17 aguatus dls.
Didalam sekolah  hanya 20% yang akan menjadi pengurus osis yang terpilih bukan sembarang orang tetapi orang yang terpilih lah yang bisa menjadi pengurus osis karena harus memiliki kemampuan untuk menjadi pemimpin yang baik dan juga bertanggung jawab dalam menjalankan perintanh untuk mengarur acara-acara yang diselenggarakan sekolah.
Seperti contoh diatas seperti baksos kt mengumpulkan pakaian bekas,uang,sepatu,dan sembako yang masih layak pakai untuk kami sumbangkan keorang yang kurang mampu. Dan kami datang kedesa2 terpencil untuk memberikan sumbangan tersebut.
Contoh kedua muharom adalah acara tahun baru islam dimana siswa dituntut untuk berkreativitas sebagus mungkin. Karena banyak yang akan dipentaskan seperti nasid, fashion show, drama, kaligrafi, dll.
Class meeting adalah mengisi acara seusai ujain semester seperti pertandiangan basket, sepak bola, bulu tangkis, renang, dan yang lainnya.
Acara 17 agustus juga adalah acara untuk meningkatkan kreatif para siswa untuk menungkatkan kekompakan satu sama lain dan acara ini menyelanggarakan lomba-lomba yang beragam seperti : membuat resep baru agar para siswa lebih kreatif, lomba bakyak, makan kerupuk, dan lomba sebagainya.
Setiap ada  momen yang bearti akan dilaksanakan acara-acara yang membangun kreatif-kreatif siswa bukan itu saja setiap minggu diadakan madding, eskul,dan banyak lainya.
KONFLIK 
Tetapi didalam sebuah organisasi ini banyak terdapat konflik seperti pertanggungjawaban diakhir tanhun banyak misi yang tidak tercapai untuk dilaksanakan. oleh karena itu yang bisa membuat konflik disaat rapat seluruh anggota osis adanya ketidak cocokan dalam pendapat untuk membuat suatu solusi dalam masalah. Disaat studytour seluruh anggota dimintanya pendapat untuk mengeluarkan pendapatnya disaat itu terjadinya cekcok karena menentukan yang akan dikunjungi.setelah dibicarakan panjang lebar baru mendapat solusinya.

ORGANISASI INFORMAL
organisasi informal seperti futsal yang saya ikuti saya mempunyai regu untuk bermain futsal yang dilaksanakan selama seminggu sekali dan setiap seminggu sekali kami bertanding untuk melatih kemampuan kami semua bukan hanya itu setahun sekali ada acara pertandingan futsal se-bekasi dan kami menggikuti pertandingan itu dan mendapatkan juara 2 bukan sekedar pertandingan saja tetapi menjalin persahabatan dan kesehatan juga.

KONFLIK 
disetiap minggu kami bermain futsal bukan hanya itu kami mempereratkan persahabatan dan banyak hal positif lainya seperti yang pasti bisa sehat tetapi didalam itu semua bisa terjadi konflik seperti adanya masalah pribadi didalam regu yang menyebabkan keluarnya salah satu anggotanya.dan itu menyebabkan regu berkurangnya anggotanya. 

Tuesday, November 9, 2010

Algoritma Bresenham dalam Bahasa C

#include<stdio.h>
#include<graphics.h>
void ikan(int,int,int,int);
void setPixel(int,int);
void main()
{
int x1,y1,x2,y2;
int gd=DETECT,gm=0;
initgraph(&gd,&gm,0);
printf(“Masukkan koordinat titik x1 : \n “);
scanf(“%d”,&x1);
printf(“Masukkan koordinat titik y1: \n “);
scanf(“%d”,&y1);
printf(“Masukkan koordinat titik x2: \n”);
scanf(“%d”,&x2);
printf(“Masukkan koordinat titik y2: \n “);
scanf(“%d”,&y2);
initgraph(&gd,&gm,0);
ikan(x1,y1,x2,y2);
getch();
closegraph();
}
void ikan(int x1,int y1,int x2,int y2)
{
int x,y;
int dx, dy;
int d;
dy=y2-y1;
dx=x2-x1;
d = dx – 2 * dy;
y = y1;
for (x = x1; x <= x2; x++)
{
putpixel(x,y,4);
if (d < 0)
{
y = y +1;
d = d + 2*dx – 2*dy;
}
else
{
d = d – 2*dy;
}
}
}
void setPixel(int x,int y)
{
putpixel(x,y,4);
}
di buat dengan nano dan di compile/test dengan gcc di linux ubuntu 9.10

Monday, November 1, 2010

Bresenhem (Grafik dan Pengolahan Citra)

Penggambaran grafik garis lurus dan kurva memerlukan waktu komputasi yang tinggi, untuk mereduksi waktu komputasi yang tinggi tersebut dapat dilakukan dengan peningkatan kemampuan komputasi prosesor dan peningkatan efisiensi algoritma. Algoritma Midpoint merupakan Algoritma dengan dasar operasi bilangan integer, sehingga memerlukan waktu operasi yanglebih sedikit dibandingkan dengan algoritma yang menggunakan operasi bilangan riel.
Implementasi ke dalam bahasa pemrograman C dari kedua macam algoritma diatas, menunjukkan bahwa waktu komputasi algoritma midpoint lebih cepat sebesar 8 kali pada pembuatan garis lurus, dan lebih cepat sebesar 15 kali pada penggambaran lingkaran, dibandingkan dengan waktu komputasi algoritma yang menggunakan dasar operasi bilangan riel. Dan waktu komputasi algoritma midpoint lebih cepat sebesar 6 kali pada pembuatan garis lurus, dibandingkan dengan waktu komputasi lgoritma yang Breserham telah menggunakan dasar operasi bilangan integer juga.
Kata kunci: Penggambaran garis, penggambaran kurva,
Algoritma Bresenham, Algoritma midpoint, Algoritma DDA.
.



2.1 Algoritma Bresenham
Bresenham pada tahun 1965, melakukan perbaikan dari algoritma perhitungan koordinat piksel yang menggunakan persamaan (1), dengan cara menggantikan operasi bilangan riel perkalian dengan operasi penjumlahan, yang kemudian dikenal dengan Algoritma Bresenham. Pada algoritma bresenham, nilai y kedua dan seterusnya, dihitung dari nilai y sebelumnya, sehingga hanya titik y pertama yang perlu dilakukan operasi secara lengkap. Perbaikan algoritma ini ternyata tidak menghasilkan perbaikan yang cukup siginifikan. Perbaikan berikutnya dilakukan dengan cara menghilangkan operasi bilangan riel dengan operasi bilangan integer. Operasi bilangan integer jauh lebih cepat dibandingkan dengan operasi bilangan riel, terutama pada penambahan dan pengurangan.





KESIMPULAN
Panjang garis atau banyak piksel dalam garis lurus sangat berpengaruh terhadap perbandingan performance antara sebuah algoritma dengan algoritma yang lain, hal ini disebabkan adanya perbedaan waktu operasi yang berada didalam perulangan sepanjang pembuatan piksel, dan waktu operasi yang berada pada sebelumnya. Panjang jari-jari dalam lingkaran tidak berpengaruh terhadap perbandingan performance antara sebuah algoritma dengan algoritma yang lain, hal ini menunjukkan perbandingan waktu operasi yang berada didalam perulangan sepanjang pembuatan piksel, dan waktu operasi yang berada pada sebelumnya berimbang.
Algoritma dengan dasar operasi bilangan integer memberikan waktu operasi yang lebih cepat dibandingkan dengan algoritma dengan dasar operasi bilangan riel, hal ini ditunjukkan dengan waktu komputasi algoritma DDA, algoritma Bresenham dan algoritma Midpoint yang lebih cepat, baik pada pembuatan garis lurus maupun lingkaran dibandingan waktu komputasi dengan algoritma yang menggunakan dasar operasi bilangan riel. Algoritma midpoint memberikan waktu operasi tercepat diantara algoritma penggambaran garis lurus yang telah menggunakan dasar operasi bilangan integer, seperti algoritma DDA, algoritma Bresenham. Jadi algoritma Midpoint merupakan algoritma yang cocok untuk penggambaran grafik yang menuntut kecepatan sebagai hal yang diutamakan.
Contoh : algoritma Bresenham Garis menggunakan C++




Ini adalah sebagian Contoh Coding dari Algoritm Bresenham Garis Vertikal,Horizontal,dan Diagonal



Dan ini adalah Inputan dari coding Diatas :




Ini adalah tampilan awal dari hasil output algortma brasenham :
Langkah selanjutnya kita akan inputkan program ini



Hasilnya untuk garis vertikal :






Inputan program untuk horizontal :



Hasilnya adalah :


Sedangkan Untuk diagonal :


Hasilnya





#include

#include

#include
#include

using namespace std;

void sumbu(){
glPushMatrix();
glBegin(GL_LINES);
glVertex3f(0, 0, 0.0);
glVertex3f(0, 1, 0.0);
glVertex3f(0, 0, 0.0);
glVertex3f(1, 0, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glPopMatrix();
glEnd();
glFlush();
}

void Diagonal() {
float a,b,c,d;
cout<<"Masukan X0 : ";cin>>a;
cout<<"Masukan Y0 : ";cin>>b;
cout<<"Masukan X1 : ";cin>>c;
cout<<"Masukan Y1 : ";cin>>d;
glPushMatrix();
glBegin(GL_LINES);
glVertex3f(a+0.5, b+0.5, 0.0);
glVertex3f(c+0.5, d+0.5, 0.0);
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glPopMatrix();
glEnd();
glFlush();

}
void Horizontal() {

float c,d,y;
cout<<"Masukan XAwal :";cin>>c;
cout<<"Masukan XAkhir :";cin>>d;
cout<<"Masukan Ytetap :";cin>>y;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(c+0.1, y+0.1, 0.0);
glVertex3f(d+0.1, y+0.1, 0.0);
glEnd();
glFlush();
}
void Vertikal() {

float a,b,x;
cout<<"Masukan Yawal : ";cin>>a;
cout<<"Masukan Yakhir : ";cin>>b;
cout<<"Masukan Xtetap : ";cin>>x;
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 1.0, 1.0);
glBegin(GL_LINES);
glVertex3f(x+0.5,a+0.5,0.0);
glVertex3f(x+0.5,b+0.5,0.0);
glEnd();
glFlush();
}

void Initialize() {
glClearColor(0.0, 0.0, 0.0, 0.0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
glOrtho(0.0, 1.0, 0.0, 1.0, -1.0, 1.0);
}

int main(int iArgc, char** cppArgv) {
menu:
int a;
cout<<"------MENU------\n";
cout<<"1.Garis Vertikal\n";
cout<<"2.Garis Horizontal\n";
cout<<"3.Garis Diagonal\n";
cout<<"4.Exit\n";
cout<<"----------------\n";
cout<<"Masukan pilihan anda:";cin>>a;
cout<<"\n";
glutInit(&iArgc, cppArgv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(600, 200);
glutCreateWindow("OPenGL with C++");
Initialize();
while (a<=4){
switch(a){
case 1:
glutDisplayFunc(Vertikal);
glutMainLoop();
return 0;

case 2:
glutDisplayFunc(Horizontal);
glutMainLoop();
return 0;
case 3:
glutDisplayFunc(Diagonal);
glutMainLoop();
return 0;
default:
cout<<"anda salah memasukan";
goto menu;
}}

}

Jembatan Wheatstone

Jembatan Wheatstone adalah alat ukur yang ditemukan oleh Samuel Hunter Christie pada 1833 dan meningkat dan dipopulerkan oleh Sir Charles Wheatstone pada tahun 1843. Ini digunakan untuk mengukur suatu yang tidak diketahui hambatan listrik dengan menyeimbangkan dua kaki dari rangkaian jembatan, satu kaki yang mencakup komponen diketahui. kerjanya mirip dengan aslinya potensiometer .

Hukum dasar rangkaian listrik yang berhubungan dengan jembatan wheatstone :
1. Hukum Ohm
Hukum Ohm menyatakan “Jika suatu arus listrik melalui suatu penghantar, maka kekuatan arus tersebut adalah sebanding-larus dengan tegangan listrik yang terdapat diantara kedua ujung penghantar tadi”.
Hukum ini dicetuskan oleh Georg Simon Ohm, seorang fisikawan dari Jerman pada tahun 1825 dan dipublikasikan pada sebuah paper yang berjudul The Galvanic Circuit Investigated Mathematically pada tahun 1827.
Rumus Hukum Ohm
Secara matematis, hukum Ohm ini dituliskan
V = I.R
atau
I = V / R
dimana
I  = arus listrik yang mengalir pada suatu penghantar (Ampere)
V = tegangan listrik yang terdapat pada kedua ujung penghantar (Volt)
R = hambatan listrik yang terdapat pada suatu penghantar (Ohm)
2. Hukum Kirchoff I
Dipertengahan abad 19, Gustav Robert Kichoff (1824-1887) menemukan cara untuk menentukan arus listrik pada rangkaian bercabang yang kemudian dikenal dengan hukum Kirchoff. Hukum Kirchoff berbunyi “Jumlah kuat arus yang masuk dalam titik percabangan sama dengan jumlah kuat arus yang keluar dari titik percabangan.”
Jumlah I masuk = I keluar
3. Hukum Kirchoff II
Hukum Kirchoff II berbunyi, “Dalam rangkaian tertutup, jumlah aljabar GGL (E) dan jumlah penurunan potensial sama dengan nol.”
Maksud dari jumlah penurunan potensial sama dengan nol adalah tidak adanya energi listrik yang hilang dalam rangkaian tersebut atau dalam arti semua energi bisa digunakan atau diserap.