Minggu, 12 Mei 2013

Objeck ellips degan java ~ Sholichin ' blog

Objeck ellips degan java


Shob tolong bantuanya klw ada yang salah mohon kasih kritik dan saran, ini tugas pemograman grafis
Source codenya seperti berikut :

    Pertama kita membuat class untuk garis.
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Tugas2;

import Pbo 1.*;
import java.awt.Graphics;

/**
 *
 * @author JC
 */
public class Garis {
 
    public void Garisku (Graphics g, int x0, int y0, int x1, int y1){
        int dx,dy,steps;
        int x_tambah,y_tambah,x,y;
                           
        dx= x1-x0;
        dy= y1-y0;    
               
        if (Math.abs(dx) > Math.abs(dy)){
            steps = Math.abs(dx);
        }
        else{
            steps = Math.abs(dy);  
        }
        x_tambah = dx / steps;
        y_tambah = dy / steps;
                x=x0;
                y=y0;
                       
                g.fillRect(x, y, 1, 1);
        for (int k=10; k< steps ;k++){
            x += x_tambah;
            y += y_tambah;
         
                        g.fillRect(x, y, 1, 1);
        }            
       
    }
   
}


Lalu Kemudian membuat class ellips
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pbo 2;

import java.awt.Graphics;

/**
 *
 * @author JC
 */
public class Ellips {
    private int Rx2, Ry2, x, y, twoRx2, twoRy2, px, py, p;
    private int rx, ry;
    private int X, Y;
    Garis baru = new Garis();
   
   
    public void Ellipsku(Graphics g, int X, int Y, int rx, int ry){
        Rx2 =rx*rx;
        Ry2 =ry*ry;
        x =0;
        y =ry;
        twoRx2 =2*Rx2;
        twoRy2 =2*Ry2;
        px =0;
        py =twoRx2*y;
        int x1 = 0;
        int y1 = 0;
        p =(int) Math.round(Ry2-(Rx2*ry)+(0.25*Rx2));
//      
       
        while (px < py){
           
            x = x+1;
            px += twoRy2;
           
            if(p < 0){
//              
             
                p += Ry2 + px;
//              
               
            }else{
                y -= 1;
                py = py-twoRx2;
               
             
                   p += Ry2 + px - py;
               
//              
//              
            }
            baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1),Math.round(Y+y));
            proy4(g, X, Y, x,y);
            proy5(g, X, Y, x,y);
            proy8(g, X, Y, x,y);
           
               
           
           
           
        }
//      
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1),Math.round(Y+y));
       
//      
         p=(int) (ry*ry*(x+0.5)*(x+0.5)+rx*rx*(y-1)*(y-1)-rx*rx*ry*ry);
//      
     
        while( y > 0 ){
           
            y = y-1;
            py=py-twoRx2;
////          
           
            if (p < 0){
               
                x=x+1;
                px=px+2*ry*ry;
                p= p+Rx2+px-py;
               
            }else {
                  p=p+rx*rx-py;
               
//              
            }
           
           
            baru.Garisku(g, Math.round(X+x), Math.round(Y+y), Math.round(X+x+1), Math.round(Y+y));
            proy4(g, X, Y, x,y);
            proy5(g, X, Y, x,y);
            proy8(g, X, Y, x,y);
//          
           
        }
    }
    public void proy2(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=x;
        x=a;
        baru.Garisku(g, Math.round(x+X), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
    public void proy3(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=-x;
        x=a;
        baru.Garisku(g, Math.round(x+X), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
    public void proy4(Graphics g, int X, int Y, int x, int y){
        y=-y;
        x=x;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }

    public void proy5(Graphics g, int X, int Y, int x, int y){
        x=-x;
        y=-y;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
    public void proy6(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=-x;
        x=-a;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }

    public void proy7(Graphics g, int X, int Y, int x, int y){
        int a;
        a=y;
        y=x;
        x=-a;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }

    public void proy8(Graphics g, int X, int Y, int x, int y){
        x=-x;
        y=y;
        baru.Garisku(g, Math.round(X+x), Math.round(Y+y),Math.round(X+x+1), Math.round(Y+y));
    }
   
}


Dan terakhir kita membuat class PanggilEllips untuk memanggil class Ellips dan Garis.

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Pbo 2;

import java.awt.Color;
import java.awt.Graphics;
import javax.swing.JFrame;
import javax.swing.JPanel;

/**
 *
 * @author JC
 */
public class PanggilEllips extends JPanel{

   
    @Override
    public void paintComponent(Graphics g){
       
        Ellips bru = new Ellips();
        Lingkaran br = new Lingkaran();
        g.setColor(Color.BLACK);
        bru.Ellipsku(g, 300, 150, 250, 100);
        br.Lingkaranku(g, 300, 150, 50);
       
       
    }
   
    public static void main(String[] args) {
        JFrame frame = new JFrame("Gambar Ellips");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        frame.add(new PanggilEllips());
        frame.setSize(600, 600);
        frame.setLocationRelativeTo(null);
        frame.setVisible(true);
       
    }
}

Sabtu, 11 Mei 2013

Array Adalah


Array adalah kumpulan data bertipe sama yang menggunakan nama sama.
 Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan berdasarkan subscript. Sebuah subscript berupa bilangan di dalam kurung siku.

Array dapat dibedakan menjadi :
1. Array berdimensi satu
2. Array berdimensi dua
3. Array berdimensi tiga

Array Berdimensi Satu

      Contoh array berdimensi satu, misalnya menginputkan 5 buah data temperatur. Dan kelima data tersebut disimpan pada array bernama suhu.

Contoh 1 :
#include
#include

void main()
{
float suhu[5];
// array dengan 5 elemen bertipe float
// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl;
for (int i=0; i<5; i++)
{
cout << i + 1 << " : "; cin >> suhu[i];
}

// Menampilkan isi array ke layar
cout << "Data suhu yang dimasukkan : " << endl;
for (i=0; i<5; i++)
cout << suhu[i] << endl;
}
Mendefinisikan array
Float suhu[5]; float : Tipe elemen array suhu : Nama array [5] : Jumlah elemen array Maka array suhu dapat menyimpan data sebanyak 5 buah.  Subscript dari array selalu dimulai dari nol. Misal, jika jumlah elemen array [5], maka index dari array tersebut yaitu 0, 1, 2, 3, 4.  Mengakses elemen array Setelah suatu array didefinisikan, elemen array dapat diakses dengan bentuk : suhu[i] menyatakan “elemen suhu dengan subscript sama dengan i” Perintah seperti cin >> suhu[i]; berarti “membaca data dari keyboard dan meletakkan ke elemen nomor i pada array suhu”.
Perintah seperti cout >> suhu[i]; berarti “menampilkan elemen bernomor i pada array suhu”.


Contoh 2 :
#include
#include

const int jum_data = 5;
void main()
{
float suhu[jum_data]; // array suhu
float total; // untuk menampung total suhu

// Membaca data dari keyboard dan meletakkan ke array
cout << "Masukkan 5 buah data suhu" << endl; for (int i=0; i<5; i++) { cout << i + 1 << " : "; cin >> suhu[i];
}
// Menghitung nilai rata-rata
total = 0; // Mula-mula diisi dengan nol
for(i=0; i<< "Suhu rata-rata= " << total/jum_data << endl; }  Memberikan nilai awal terhadap array Seperti halnya variabel biasa, array juga dapat diberi nilai awal (diinisialisasikan) pada saat didefinisikan. Misalnya: int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; Catatan: C++ secara otomatis akan memberikan nilai awal nol terhadap array yang bersifat global. Jika bersifat lokal, maka harus diatur terlebih dahulu. Contoh 3 : #include
#include
#include

void main()
{
// Pendefinisian array jum_hari dan pemberian nilai awal
int jum_hari[12]={ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 };
// Tampilkan isi jum_hari
cout << "Masukkan 5 buah data suhu" << endl; for (int i=0; i<12; i++) { cout << "jum_hari[" << i << "] =" << jum_hari[i] << endl; } } Array Berdimensi Dua Sebagai gambaran, data kelulusan dari jurusan Teknik Informatika, Manajemen Informatika, dan Teknik Komputer dari tahun 1992 hingga 1995. Nama 1992 1993 1994 1995 Teknik Informatika 35 45 80 120 Manajemen Informatika 100 110 70 101 Teknik Komputer 10 15 20 17  Mendefinisikan array berdimensi dua Bentuk diatas dapat dibentuk dalam array berdimensi dua, pendefinisiannya : int nilai[3][4]; Pada pendefinisian di atas :  3 menyatakan jumlah baris (mewakili nama)  4 menyatakan jumlah kolom (mewakili nilai)  Mengakses array berdimensi dua Masing-masing elemen di dalam array berdimensi dua dapat diakses dengan bentuk : Baris dan kolom dimulai dari 0. Contoh pengaksesan elemen array berdimensi dua : 1. data_lulus[1][2] = 5; Merupakan instruksi untuk memberikan nilai 5 ke baris 1 kolom 2. 2. cout << data_lulus[1][2]; Merupakan perintah untuk menampilkan elemen data_lulus dengan subscript pertama (baris) berupa 1 dan subscript kedua (kolom) bernilai 2. Contoh 4 : #include
#include

void main()
{
int data_lulus[3][4]; // Array berdimensi dua
int tahun, jurusan;

// Memberikan data ke elemen array data_lulus
data_lulus[0][0] = 35; // TI - 1992
data_lulus[0][1] = 45; // TI - 1993
data_lulus[0][2] = 90; // TI - 1994
data_lulus[0][3] = 120; // TI - 1995
data_lulus[1][0] = 100; // MI - 1992
data_lulus[1][1] = 110; // MI - 1993
data_lulus[1][2] = 70; // MI - 1994
data_lulus[1][3] = 101; // MI - 1995
data_lulus[2][0] = 10; // TK - 1992
data_lulus[2][1] = 15; // TK - 1993
data_lulus[2][2] = 20; // TK - 1994
data_lulus[2][3] = 17; // TK - 1995

// Proses untuk memperoleh informasi kelulusan
while(1)
{
cout << "Jurusan (0 = TI, 1 = MI, 2 = TK): "; cin >> jurusan;
if ((jurusan==0) || (jurusan==1) || (jurusan==2))
break; // keluar dari while
}
while(1)
{
cout << "Tahun (1992 - 1995): "; cin >> tahun;

if ((tahun >= 1992) && (tahun <= 1995)) { tahun -= 1992; // konversi ke 0, 1, 2 atau 3 break; // keluar dari while } } cout << "Jumlah yang lulus = " << data_lulus[jurusan][tahun] << endl; } Melewatkan Array Sebagai Argumen Fungsi  Array juga dapat berkedudukan sebagai parameter di dalam fungsi. Misalnya : const int MAKS = 5 int data[MAKS]; Dari data di atas, fungsi yang menerima array di atas dapat dibuat prototipe-nya sebagai berikut : void inisialisasi_data(data[MAKS]); Dan deklarasi fungsi sebagai berikut : void inisialisasi_data(data[], int & jumlah); Pada contoh kedua, tanda di dalam tanda [ ] tidak terdapat apa-apa dan parameter kedua digunakan untuk menyatakan jumlah elemen array serta berkedudukan sebagai referensi (bisa diubah dari dalam fungsi inisialisasi_data()). Contoh 5 : #include
#include
#include
#include

const int MAKS = 100;
void inisialisasi_data(int data[], int &jumlah);
void main()
{
int data_acak[MAKS]; // array berdimensi satu
int jumlah;
inisialisasi_data(data_acak, jumlah);

// Tampilkan elemen-elemen array
cout << "Isi array : " << endl; for(int i=0; i<< data_acak[i] << endl; } // Definisi fungsi void inisialisasi_data(int data[], int &jumlah) { while(1) { cout << "Berapa jumlah data yang ingin" << endl; cout << "dibangkitkan secara acak (5 - 100) ? "; cin >> jumlah;

if ((jumlah >= 5) && (jumlah<=100)) break; } randomize(); // Menyetel pembangkit bilangan acak for(int i=0; i
#include
#include

const int BARIS = 5;
const int KOLOM = 5;
void isi_matriks(float mat[][KOLOM], int &brs, int &kol);

void main()
{
float matriks[BARIS][KOLOM];
int jum_baris, jum_kolom;
int i,j;

isi_matriks(matriks, jum_baris, jum_kolom);
cout << "\nMatriks yang terbentuk: " << endl; cout << setiosflags(ios::fixed); // ios::fixed --> mengatur angka yg dimasukkan dalam bentuk angka biasa
// bukan dalam bentuk eksponen
for (i=0; i<< setw(12) << setprecision(5) << matriks[i][j]; // setprecision(5) --> mengatur banyak angka dibelakang koma
cout << endl; } } // Definisi Fungsi void isi_matriks(float mat[][KOLOM], int &brs, int &kol) { int i,j; cout << "Pastikan jumlah baris dan kolom" << endl; cout << "tidak melebihi 5" << endl; cout << "Jumlah baris = "; cin >> brs;
cout << "Jumlah kolom = "; cin >> kol;
for (i=0; i< brs; i++) for (j=0; j<< "Elemen " << i << ", " << j << " = "; cin >> mat[i][j];
}
}

Mengurutkan Data
Salah satu mengurutkan data adalah dengan menggunakan bubble sort. Pengurutan dilakukan dengan membandingkan setiap elemen dengan seluruh elemen yang terletak sesudah posisinya.

Contoh 7 :
#include
#include
#include

void main()
{
int i, j, tmp, jumdata;
int data[] = {5, 100, 20, 31, 77, 88, 99, 20, 55, 1};
jumdata = sizeof(data)/sizeof(int);

// Menampilkan data
cout << "Data semula: " << endl; for(i=0; i<< setw(4) << data[i]; cout << endl; // Pindah baris // Mengurutkan data for(i=0; i data[j])
{
tmp = data[i];
data[i] = data[j];
data[j] = tmp;
}

// Menampilkan data
cout << "Data setelah diurutkan: " << endl;
for (i=0; i
cout << setw(4) << data[i];
cout << endl; // Pindah baris
}

Hidup sehat

Mental yang sehat merupakan satu dari sekian juta kebutuhan manusia. Dalam kehidupan sehari hari kita sering mendengar ungkapan dari para istri yang bertanya, 'kenapa hanya istri yang selalu minta pertanggungjawaban?'. Istri diminta ketekunannya dalam mengurus rumah tangga, sedangkan para suami jarang dibicarakan. Seringkali menempatkan dirinya sebagai orang yang selalu harus dilayani oleh istri. Istrilah yang harus mengurus. Setiap pasangan yang melangsungkan pernikahan tentu berharap perkawinan yang mereka bina akan menjadikan sebuah rumah tangga yang bahagia. Namun mewujudkan perkawinan yang bahagia tidaklah mudah karena akan ada banyak faktor yang mempengaruhinya.

Oleh karena itu diperlukan suatu pengetahuan dan sikap mental yang baik sehingga mampu membina suatu hubungan suami istri yang harmonis. Untuk itu suami istri harus memiliki ketrampilan baru dalam menjalani kehidupan berumah tangganya. Berikut ini beberapa tips untuk menggapai kebahagiaan dalam perkawinan:
Pertama, Berpikir Positif, - berpikir positif akan memberikan suatu pandangan hidup yang lebih konstruktif, sehingga mampu mewujudkan suatu tata komunikasi yang sehat antara suami dan istri. Kebanyakan pasangan suami istri yang mengalami kesukaran dalam perkawinanya hanya mencatat dan melihat hal hal yang buruk saja.

Oleh karena itu mulai detik ini carilah hal hal yang baik dari pasangan anda, dan ungkapkan dengan kata kata manis atau pujian yang tulus kepadanya. Dengan berpikir positif dan memperhatikan hal hal yang baik akan memberikan suasana yang baik dalam hubungan perkawinan, sehingga banyak hal yang bisa dipahami secara lebih baik dan akan berjalan lebih harmonis dari sebelumnya. Kedua, Menerima Kenyataan dengan Sabar, -setiap orang tentu memiliki kelebihan dan kekurangan yang mungkin dulu belum diketahui. Sementara ketika anda telah hidup bersama pasangan apa yang dulu jadi rahasia kini terungkap semua.

Disinilah sikap arif dan kesabaran anda akan teruji, anda harus belajar menerima segala kekurangan yang terdapat pada pasangan, janganlah mengeluh tentang pasangan anda, tetapi terimalah kenyataan dan berusahalah untuk mengatasi masalah yang muncul dengan pikiran positif. Namanya manusia dimanapun tak ada yang sempurna, dibalik keunggulan biasanya terselip kelemahan, kini sudah jadi tugas anda untuk melengkapi kelemahan tersebut dengan keunggulan yang anda miliki. Dan yang terakhir berpikirlah dan berbuatlah dengan ide yang lebih maju dari sebelumnya. Go..!!