Pages

Wednesday, 12 June 2013

Mengatur Letak JFrame ke Tengah Layar (JAVA)

Bingung gimanaya caranya nampilkan JFrame ke tengah layar,, aq cari di Properties gak ketemu. langsung ja cari-cari di mbah google. aq dapet 2 cara. Berikut cara untuk mengatur letak JFrame agartampil di tengah layar saat di running


tambahkan "this.setLocationRelativeTo(null);" dibawah initComponents();

seperti berikut:





atau bisa juga dengan cara seperti ini:


// Memindahkan window ke tengah screen monitor
private void setWindowToCenter(){
          // Mencari ukuran screen monitor
          Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();

          // Menghitung ukuran window
          int w = getSize().width;
          int h = getSize().height;
          int x = (screen.width-w)/2;
          int y = (screen.height-h)/2;

          // Memindahkan window ke tengah screen
         setLocation(x, y);
}


 sumber:
http://limjadi.wordpress.com/2008/08/11/kode-java-menempatkan-aplikasi-di-tengah-layar/
http://bad-cloudy.blogspot.com/2013/05/mengatur-letak-jframe-di-tengah-layar.html

Wednesday, 13 February 2013

Double Linked List



Double Link List adalah elemen-elemen yang dihubungkan dengan dua pointer dalam satu elemen dan list dapat melintas baik di depan atau belakang.
Elemen double link list terdiri dari tiga bagian:
  1. Bagian data informasi
  2. Pointer next yang menunjuk ke elemen berikutnya
  3. Pointer prev yang menunjuk ke elemen sebelumnya


Dalam double linked list ( Linked List berpointer ganda ) dapat mengatasi kelemahan-kelemahan single linked list tersebut.



contoh program
#include 'iostream.h'
#include 'conio.h'
#include 'stdio.h'
#include 'malloc.h'
#include 'windows.h'


void SetColor(unsigned short color) {
HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsoleOutput,color);
}
int pil;
void pilih();
void buat_baru();
void tambah_belakang();
void tambah_depan();
void hapus_belakang();
void hapus_depan();
void tampil();




struct simpul
{
char nim[8], nama [20];
int umur;
struct simpul *kiri, *kanan;
} mhs, *baru, *awal=NULL, *akhir=NULL,*hapus,*bantu;
int main()
{
system("COLOR f0");
do
{
system("cls");
cout<<"MENU DOUBLE LINKEDLIST"<
cout<<"1. Tambah Depan"<
cout<<"2. Tambah Belakang"<
cout<<"3. Hapus Depan"<
cout<<"4. Hapus Belakang"<
cout<<"5. Tampilkan"<
cout<<"6. Selesai"<
cout<<"Pilihan Anda : ";
cin>>pil;
pilih();
} while(pil!=6);
return 0;
}


void pilih()
{
if(pil==1)
tambah_depan();
else if(pil==2)
tambah_belakang();
else if(pil==3)
hapus_depan();
else if(pil==4)
hapus_belakang();
else if(pil==5)
tampil();
else
cout<<"selesai";
}


void buat_baru()
{
baru=(simpul*)malloc(sizeof(struct simpul));
cout<<"input nim : ";cin>>baru->nim;
cout<<"input nama : ";cin>>baru->nama;
cout<<"input umur : ";cin>>baru->umur;
baru->kiri=NULL;
baru->kanan=NULL;
}


void tambah_belakang()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
}
else
{
akhir->kanan=baru;
baru->kiri=akhir;
akhir=baru;
}
cout<
tampil();
}


void tambah_depan()
{
buat_baru();
if(awal==NULL)
{
awal=baru;
akhir=baru;
}
else
{
baru->kanan=awal;
awal->kiri=baru;
akhir=awal;
awal=baru;
}
cout<
tampil();
}


void hapus_depan()
{
if (awal==NULL)
cout<<"Kosong";
else if (awal->kanan==NULL)
{
hapus=awal;
awal=NULL;
akhir=NULL;
free(hapus);
}
else
{
hapus=awal;
awal=hapus->kanan;
awal->kiri=NULL;
free(hapus);
}
cout<
tampil();
}


void hapus_belakang()
{
if (awal==NULL)
cout<<"Kosong";
else if (awal->kanan==NULL)
{
hapus=awal;
awal=NULL;
akhir=NULL;
free(hapus);
}
else
{
hapus=akhir;
akhir=hapus->kiri;
akhir->kanan=NULL;
free(hapus);
}
cout<
tampil();
}


void tampil()
{
if (awal==NULL)
cout<<"Kosong";
else
{
bantu=awal;
while(bantu!=NULL)
{
cout<<"nim : "<nim;
cout<<" nama : "<nama;
cout<<" umur : "<umur<
bantu=bantu->kanan;
}
}
getch();
}

tag: bahasa c, bahasa c++, linked list, double linked list, single linked list, LIFO, FIFO

FIFO Singly-Linked List



Untuk menambah simpul pada akhir (ujung) singly-linked list, sebuah pointer digunakan untuk menelusuri simpul-simpul linked list samapi berada pada simpul terakhir. Kemudian field next simpul terakhir dikaitkan ke simpul baru. Hal lain yang harus dicermati adalah apabila linked list belum mempunyai simpul satu pun, yang dapat diketahui dari pointer head (atau pointer lain yang mengacu simpul pertama) yang bernilai NULL, maka simpul baru ini menjadi simpul pertama.

Menambah simpul di akhir linked list

Void tambahdiakhir (struct tnode **list, struct tnode *node)
{
Struct tnode *p;
Node -> next = NULL;
If (*list == NULL) *list = node;
Else {
P = *list;
While (p -> next != NULL) p = p -> next;
P -> next = node;
}
}

Simpul-simpul linked list dapat dilepaskan satu persatu, mulai dari simpul pertama sampai dengan simpul terakhir. Pada waktu simpul pertama akan dilepaskan maka sisa linked list (simpul ke-2, ke-3, dan seterusnya) harus diacu, maka diperlukan sebuah pointer lain untuk mengacu sisa linked list.

Membebaskan simpul linked list satu persatu

Void bebaslist (struct tnode **list)
{
Struct tnode *p;
While (*list != NULL){
P = *list;
*list = (*list) -> next;
Free (p);
}
}

Program berikut membentuk singly-linked list dengan penambahan simpul di akhir list. Hal ini menyebabkan linked list yang terbentuk bersifat first-in-first-out (FIFO). Simpul yang pertama ditambahkan menjadi simpul yang pertama diakses.

#include
#include

Struct tnode {
char nama [16] ;
int nilai ;
struct tnode *next;
};
void cetaklist (struct tnode *list) {
}
void bebaslist (struct tnode **list) {
}
void tambahdiakhir (struct tnode **list, struct tnode *node) {
struct tnode *head, *node;
int i;
head = NULL;
for (i = 0; i < 3; i++) {
node = (struct tnode *) malloc (sizeof (struct tnode)) ;
fflush (stdin) ;
printf (“Nama ? “); gets (node-> nama);
printf(“Nilai ? “); scanf(“%d”, &node ->nilai);
tambahdiakhir (&head, node);
}
cetaklist (head);
bebaslist(&head);
}


tag: linked list, single-linked list, LIFO, FIFO

LIFO Singly-Linked List



Program berikut membentuk singly-linked list dengan penambahan simpul di awal list. Hal ini menyebabkan linked list yang terbentuk bersifat last-in-first-out (LIFO), simpul yang terakhir ditambahkan menjadi simpul yang pertama diakses.

#include 'stdio.h'
#include 'malloc.h'
Struct tnode {
Char nama [16];
Int nilai;
Struct tnode *next;
};

Void cetaklist (struct tnode *list) {
}

Void main () {
Struct tnode *head, *node;
Int i;

Head = NULL; //baris 22
For (i=0; i<3 font="" i="">
Node = (struct tnode *) malloc (sizeof(struct tnode)); //baris 24
Fflush(stdin); //baris 25
Printf(“nama?”); gets(node -> nama); //baris 26
Printf(“nilai?”); scanf(“%d”,&node -> nilai); //baris 27
Node -> next = head; //baris 28
Head = node; //baris 29
}
Cetak list(head);
Free (head);
}

tag: linked list, LIFO, FIFO, single-linked list, bahasa c, bahasa c++

SINGLE-LINKED LIST

-->
Singly-linked list adalah suatu senarai berkait yang masing-masing simpul pembentuknya hanya mempunyai satu kait (link) ke simpul lainnya.
-->
Pembentukan singly-linked list memerlukan:
  1. Deklarasi tipe simpul
  2. Deklarasi variable pointer penunjuk awal linked list
  3. Pembentukan simpul baru
  4. Pengaitan simpul baru ke linked list yang telah terbentuk.

Deklarasi Tipe Simpul
Tipe simpul dibentuk dengan struktur data struct. Salah satu field berfungsi sebagai kait (link) ke simpul lainnya. Field link ini bertipe pointer ke struct tersebut.

Struct node_type{
Data_type var_name;
[data_type var_name;…]
Struct node_type *link_name;
}

Contoh

Struct tnodebarang{
Char kode[6];
Char nama[25];
Float harga;
Struct tnodebarang *next;
};


Deklarasi pointer Penunjuk Kepala Linked List
Sebuah variabel bertipe pointer ke struct simpul perlu dideklarasi. Umumnya variabel ini diberi nama head. Manipulasi terhadap suatu linked list tidak bisa langsung ke simpul yang dituju tetapi harus melalui simpul pertama linked list. Simpul pertama ini diacu oleh pointer head. Setelah pointer head terbentuk lalu diinisialisasi ke alamat NULL.
Contoh deklarasi pointer
Struct tnodebarang *head, *node, *curr;
Head = NULL;
Pembentukan Simpul Baru
Simpul yang akan dibentuk ditempatkan di heap memory yang dialokasikan secara dinamis. Untuk itu diperlukan instruksi malloc() untuk melakukan alokasi memori.
Node_var = (struct node_type *) malloc (sizeof(struct node_type));


Simpul yang terbentuk diacu (ditunjuk) oleh pointer node_var.
Membentuk simpul
Node = (struct tnodebarang *) malloc (sizeof(struct tnodebarang));
Node -> next = NULL;


Pengaitan simpul ke linked list
Pada saat linked list masih kosong maka pengaitan simpul dilakukan dengan mengacukan pointer head ke simpul ini. Pada saat linked list telah terbentuk (tidak kosong), pengaitan simpul baru dapat dilakukan dengan tiga cara, yaitu: 1) dikaitkan pada posisi setelah simpul terakhir linked list, 2) dikaitkan pada posisi terdepan linked list sehingga simpul baru ini menempati posisi pertama linked list, 3) disisipkan di antara simpul-simpul lainnya.
Membentuk simpul pertama linked list

If (head == NULL) head = node;

Untuk mengaitkan simpul baru pada posisi akhir linked list, gunakan bantuan pointer lain untuk mendapatka posisi simpul terakhir. Kemudian hubungkan field next pada simpul yang diacu pointer lain ini ke simpul baru.
Mengaitkan simpul di akhir linked list

Curr = head;
While (curr -> next != NULL) curr = curr -> next;
Curr -> next = node;

Untuk mengaitkan simpul baru pada posisi awal linked list cukup dengan mengaitkan field next simpul baru ke awal linked list (ke simpul yang ditunjuk poiter head), kemudian pindahkan penunjukan pointer head ke simpul baru ini.
Mengaitkan simpul di awal linked list

Node -> next = head;
Head = node;


Mencetak isi simpul-simpul linked list dimulai dari simpul pertama yang ditunjuk pointer head. Untuk menjangkau simpul-simpul lainnya maka digunakan pointer pembantu. Pointer ini akan berpindah dari simpul yang satu ke simpul berikutnya hingga seluruh simpul diproses, yang ditandai dengan penunjukan pointer ini ke NULL.

Mencetak isi linked list, data terdiri atas nama ( char[16] ) dan nilai int
Void cetaklist (struct tnode *list) {
Struct tnode *curr;
Curr = list;
While (curr != NULL){
Printf(“\n%s, %d”, curr -> nama, curr -> nilai);
Curr -> curr -> next;
}
}

Contoh program:



#include 'iostream.h'
#include 'windows.h'

void SetColor(unsigned short color) {
HANDLE hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleTextAttribute(hConsoleOutput,color);
}
struct node
{  
    char nama[20];    
    int umur;      
    float tinggi;     
    node *nxt;// Pointer ke node berikutnya
};
node *mulai_ptr = NULL;
node *data_now;         // untuk perpindahan setiap list
int pilihan = 0;
void tmbh_node_di_akhir()
{  
    system ("cls");
    node *smntr, *smntr2;   // pointers sementara
    // cadangan ruang untuk node baru
    smntr = new node;
    cout << "Masukkan nama   : ";
    cin >> smntr->nama;
    cout << "Masukkan umur   : ";
    cin >> smntr->umur;
    cout << "Masukkan tinggi : ";
    cin >> smntr->tinggi;
    smntr->nxt = NULL; 
    if (mulai_ptr == NULL)
    { 
        mulai_ptr = smntr;
        data_now = mulai_ptr;
    }
    else
    { 
        smntr2 = mulai_ptr; 
        while (smntr2->nxt != NULL)
        {  
            smntr2 = smntr2->nxt; // pindah ke link berikutnya
        }
    smntr2->nxt = smntr;
    }
}
void tampilkan_list()
{  
    system ("cls");
    node *smntr;
    smntr = mulai_ptr;
    cout << endl;
    if (smntr == NULL)
        cout << "List kosong!" << endl;
    else
    { 
        while (smntr != NULL)
        {
            cout << "nama : " << smntr->nama << " ";
            cout << "umur : " << smntr->umur << " ";
            cout << "tinggi : " << smntr->tinggi;
        cout << endl;
        smntr = smntr->nxt;
        }
        cout << "list akhir!" << endl;
    }
}
void hapus_node_awal()

    node *smntr;
    smntr = mulai_ptr;
    mulai_ptr = mulai_ptr->nxt;
    delete smntr;
}
void hapus_node_akhir()

    node *smntr1, *smntr2;
    if (mulai_ptr == NULL)
        cout << "The list is empty!" << endl;
    else
    { 
        smntr1 = mulai_ptr;
        if (smntr1->nxt == NULL)
        { 
            delete smntr1;
            mulai_ptr = NULL;
        }
        else
        { 
            while (smntr1->nxt != NULL)
            { 
                smntr2 = smntr1;
                smntr1 = smntr1->nxt;
            }
            delete smntr1;
            smntr2->nxt = NULL;
        }
    }

int main()
{  
    system ("cls");
    system("COLOR f0");
    mulai_ptr = NULL;
    do
    {
        tampilkan_list();
        cout << endl;
        cout << "MENU" << endl;
        cout << "1. Masukkan node ke akhir list." << endl;
        cout << "2. Hapus node awal dari list." << endl;
        cout << "3. Hapus node akhir dari list." << endl;
        cout << "0. Exit program." << endl;
        cout << endl << " >> ";
        cin >> pilihan;
        switch (pilihan)
        {
            case 1 : tmbh_node_di_akhir(); break;
            case 2 : hapus_node_awal(); break;
            case 3 : hapus_node_akhir(); break;
        }
    }
    while (pilihan != 0);
}




tag: program, bahasa c, bahasa C++, linked list, program linked list, single-linked list