Hello Guys,
Now i wanna write article about Hibernate.
What is Hibernate????
Ok i will explain about hibernate, hibernate is a framework for object relational mapping that placed at layer model in MVC concept.
Hibernate is layer which connects between application and database,beside of that hibernate make available connection to database with connecting class with table.
Table mapping can be done use xml or annotation. Ok Now i will be make a simple Hibernate Application with xml as table mapping..
Ok, You must download Hibernate Library
Yup.. you already have hibernate Library in your IDE, hmmm i use Netbeans 6.5 as my Favourite IDE.
# Make New Project with netbeans .. sorry i can’t upload the picture (my internet connection is low) but i trust you can follow this step by step …
# After that we must make hibernate configuration file, in netbeans we just choose New–>Other–>Categories–>Hibernate–>Hibernate Configuration File. And then you can set your dbms that you use. (in my example i use MySQL) . this is my hibernate configuration file :
Now we have done make hibernate configuration file, and then we will create PODJO class which will be mapping to table
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.nuxprog.model;
/**
*
* @author nuxprog
*/
public class Mahasiswa {
private long id;
private String nim;
private String nama;
private String alamat;
private String telepon;
public String getAlamat() {
return alamat;
}
public void setAlamat(String alamat) {
this.alamat = alamat;
}
public long getId() {
return id;
}
public void setId(long id) {
this.id = id;
}
public String getNama() {
return nama;
}
public void setNama(String nama) {
this.nama = nama;
}
public String getNim() {
return nim;
}
public void setNim(String nim) {
this.nim = nim;
}
public String getTelepon() {
return telepon;
}
public void setTelepon(String telepon) {
this.telepon = telepon;
}
}
Plain Old Java Object has been created, now we must create mapping file which used to mapping PODJO class to table (Mahasiswa.hbm.xml)
after created this file, at hibernate configuration file will be automatically add this file as mapping resource.
Ok now we create file HibernateUtil, in netbeans you only choose New–>Other–>Categories–>Hibernate–>HibernateUtil.java
Class HibernateUtil.java
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.nuxprog.model;
import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;
/**
* Hibernate Utility class with a convenient method to get Session Factory object.
*
* @author nuxprog
*/
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
// config file.
sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Now we must test with make main function , in main function we can make CRUD operation from class that we make before. this is my example main function :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.nuxprog.main;
import org.hibernate.Session;
import org.nuxprog.model.HibernateUtil;
import org.nuxprog.model.Mahasiswa;
/**
*
* @author nuxprog
*/
public class Main {
public static void main(String[] args) {
Session session = HibernateUtil.getSessionFactory().openSession();
session.beginTransaction();
try{
Mahasiswa mhs = new Mahasiswa();
mhs.setNama("Wahyu Sumartha");
mhs.setAlamat("Yogya");
mhs.setNim("06018124");
mhs.setTelepon("0817359298");
session.save(mhs);
session.getTransaction().commit();
}catch(Exception e){
session.getTransaction().rollback();
e.printStackTrace();
}finally{
session.close();
}
}
}
Now You can check in your database… any record added??????? hehe.. it’s so simple guys, ok i feel sleepy now, i will continue with other operation like retrieve, update , and delete,,
Be patient…
hehehe
Readmore...
Hello guys.. finally i write article about java programming again.
I want to share about how to get input from keyboard in java.
Input from keyboard will be make your program become interactive, because user can input something, like name or everything.
Usually i use BufferedReader to get input from keyboard if we make program with console based.
Class BufferedReader be in package java.io.*, so we must add import java.io.* on top of your code program.
Now i wanna write an example :
/*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package org.wahyu.main;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author gepenk
*/
public class GetInput {
public static void main(String[] args){
try {
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));
String firstName = "";
String lastName = "";
System.out.println("Enter Your First Name : ");
firstName = bufferedReader.readLine();
System.out.println("Enter Your Last Name");
lastName = bufferedReader.readLine();
System.out.println("Your name is " + firstName + " " +
lastName);
} catch (IOException ex) {
Logger.getLogger(GetInput.class.getName()).log(Level.SEVERE, null, ex);
}
}
}
Output for program above is
Enter Your First Name :
wahyu
Enter Your Last Name
sumartha
Your name is wahyu sumartha
Ok now i will try to explain program above.
statement BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in)); means we declaration variable with BufferedReader class type.
To get input from keyboard we use method bufferedReader.readLine(); that return String value. This value will be save with String data type.
Ok guy's now .. you can try it..
Readmore...
Today i'am become participant in Opera Software Community Seminar in Gadjah Mada University Yogyakarta. The seminar is so interest, my knowledge was increase when listen the speakers extend they presentation. The Speakers is Bruce Lawson, Zibin Chech, and the one and only indonesian girl's but i'm forget her name.
In that Seminar the speaker talk about how to build Open Web Standard and also promotion their product(Opera Browsers). Mr Bruce Lawson says Open Web Standard consist of HTML,CSS, and javaScript.
I'm very amazed when Mr.Bruce Lawson show some code from HTML 5 and CSS 3. For me it's something new. But After I try it at home, HTML 5 now only can work at Browser Opera 9.62 even at Mozilla Firefox 3.04. In HTML 5 is so simple to show date time picker, we not use javascript but only use HTML,
Beside of that the speakers also tell what web site which the most visited with indonesian.The web site is friendster. And Then The Speakers ask with the audience why indonesian people like to visited friendster?. No one audience brave to answer it, because no one answer his questions and then Mr.Bruce make his own conclusion, his conclusion is "Because at Friendster user can upload their photo".
Ehm... it's means indonesian people can called "NARCISSISM"(hehehe...).
Ok guy's i'am feel sleepy now, i'am only write my experience today when become participant in Opera University Seminar.
See you in next article....
Readmore...
Are you ever feel resentful with advertising banner when you chat with Yahoo Messenger, especially if you have internet connection with volume based, off course it can waste your cost.
Copy script below to your favourite editor
[code]
@ECHO OFF
> %TEMP%.\noYMads.reg ECHO REGEDIT4
>>%TEMP%.\noYMads.reg ECHO.
>>%TEMP%.\noYMads.reg ECHO [HKEY_CURRENT_USER\Software\Yahoo\Pager\YUrl]
>>%TEMP%.\noYMads.reg ECHO "Messenger Ad"="*"
>>%TEMP%.\noYMads.reg ECHO "Webcam Upload Ad"="*"
>>%TEMP%.\noYMads.reg ECHO "Webcam Viewer Ad"="*"
>>%TEMP%.\noYMads.reg ECHO "Webcam Viewer Ad Big"="*"
>>%TEMP%.\noYMads.reg ECHO "Webcam Viewer Ad Medium"="*"
>>%TEMP%.\noYMads.reg ECHO "Change Room Banner"="*"
>>%TEMP%.\noYMads.reg ECHO "Conf Adurl"="*"
>>%TEMP%.\noYMads.reg ECHO "Chat Adurl"="*"
>>%TEMP%.\noYMads.reg ECHO "Y Content"="*"
REGEDIT /S %TEMP%.\noYMads.reg
DEL %TEMP%.\noYMads.reg
ATTRIB -R "%PROGRAMFILES%\Yahoo!\Messenger\Cache\urls.xml"
ECHO "" >"%PROGRAMFILES%\Yahoo!\Messenger\Cache\urls.xml"
ATTRIB +R "%PROGRAMFILES%\Yahoo!\Messenger\Cache\urls.xml"
[/code]
and then save file with *.bat extension
run your *.bat file, and restart your yahoo messenger
You can see the result? yes.. advertising banner now is lost
Readmore...
At Afternoon, i was see my friend that practice computer networking at laboratory...
With their asisstant, they must setting their PC until can connect with internet.
Oh ya.. at laboratory every pc was installed with linux operating system and use slackware..(Slackware is my Favourite Distro)
That is very funny,When i look they feel confused to configure it. (My Friend's majority is windows user)
Ok.. now i just want to share, how to configure network in slackware, so that your computer can connect to internet..
type netconfig at console, and will be appear screen with text based, Only write each of parameter, like IP Address , Gateway , and DNS Server.
beside of that, i have another way to set configutration, use your favourite editor to open file at /etc/rc.drc.inet1.conf
For example, nano /etc/rc.d/rc.inet1.conf
fill IP Address,netmask, and gateway appropiate with interface used.
After that, we must edit file /etc/resolv.conf and put your dns address there. in my computer is nameserver 192.168.1.1
If you have been finish with step by step above, you must restart restart your interface with command /etc/rc.d/rc.inet1 restart
Ok now ping google.com,any reply ? if nothing happen you must configure your pc again, check if there fault with you configuration..
Ok let's try guys
Readmore...
I wanna Share about how to tweak your mozilla firefox..
after find the solution with uncle google..
Ok let's do it..
the first i try to download mozilla firefox add ons, it's name are Addblock Plus and Tweak Network, You can download Addblock Plus here and Tweak Network here
Ok Guy's ..
You can try it and feel the change
Readmore...
casually, i wanna use thunderbird as mail client, but i have some problem
after i asked with uncle google i have solution to solve the problem.
Ok this is the way..
The first you must setting your gmail account, enable your POP email
And then in thunderbird at column POP fill pop.gmail.com with port 995, you must use SSL.
For Outgoing you must fill smtp.gmail.com with port 587 and use TLS
Now Try to download your email inbox...
Readmore...
Make System Tray Application in Delphi
Make System Tray Application in delphi,
Make System Tray Application in Delphi in order to run background or placed on system tray is very easy. We Only need one API function that is Shell_NotifyIcon,the Application will be run as system tray with there function.
The First at private you must declaration
private
{ Private declarations }
systemTrayIcon:TNotifyIconData;
And Then, make a form, on event on Create add script below this :
with systemTrayIcon do
begin
cbSize := Sizeof(systemTrayIcon);
Wnd:=Handle;
uID := 0;
uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;
uCallbackMessage := WM_USER;
hIcon := Application.Icon.Handle;
StrCopy(szTip,'Aplikasi System Tray');
End;
Shell_NotifyIcon(NIM_ADD,@systemTrayIcon);
explanation script above are :
Wnd is parameter from systemTrayIcon that use for appear icon on system tray and receive message information from system.
hIcon is parameter for appear icon on system tray
szTip is parameter for appear icon tips on system tray
And then the most important part is Shell_NotifyIcon(NIM_ADD,@systemTrayIcon); that useful to place application on system tray
To make our application disable on taskbar we must add some line in project part :
begin
Application.Initialize;
Application.ShowMainForm := false; //tambahkan baris ini
Application.CreateForm(TForm1, Form1);
Application.Run;
end.
If you want to disable icon when you close yout application you must add some code below on even OnDestroy at Form1
Shell_NotifyIcon(NIM_DELETE,@systemTrayIcon);
After you finished, now we make our application can run normally or foreground, we can make a procedure,
Example i have declaration procedure gotoTray at private section
procedure gotoTray(pesan :TMessage);
message WM_USER;
if you have been declaration, we must make implementation of procedure gotoTray.
This script below is implementation of procedure gotoTray
procedure TForm1.gotoTray(pesan :TMessage);
begin
case pesan.LParam of
WM_LBUTTONDOWN:
begin
ShowMessage('Form ditampilkan');
Form1.Show;
end;
WM_RBUTTONDOWN:
begin
ShowMessage('Form Menuju System Tray');
Form1.Hide;
end;
end;
end;
Ok, You can try it,
Good Luck Guy's
Readmore...
The First i have a question, what is template ? My Opinion template use when we would make a function that not use primitive data type.
For Example we want to make tukar function use primitive data type :
void tukar (int a, int b) {
int temp = a;
a = b;
b = temp;
}
If we use function above, so we only can input each of parameter with integer data type only.
What must we do if we want to make each of parameter can input with many kind of data type ?? The Solution is Use Template
This is Function that using template
template <class T>
void tukar (T a, T b) {
T temp = a;
a = b;
b = temp;
}
Now tukar function can be used with many kind of data type, like integer, float, character, and etc.
Readmore...
Tutorial IPTables
Tulisan ini ditujukan untuk memberikan pengetahuan dasar mengenai pemfilteran
paket menggunakan IPTables pada Linux. Tulisan ini bersifat general yang menjelaskan
secara umum bagaimana sintaks IPTables dibuat. Beberapa (banyak?) bagian dari
tulisan diambil dari official site IPTables. Tidak ada copyright apapun
dalam dokumen ini, anda bebas menyalin, mencetak, maupun memodifikasi (dengan
menyertakan nama penulis asli). Kritik, koreksi, saran dan lain-lain
silahkan dialamatkan ke email tersebut di atas. Semoga bermanfaat.
1. Persiapan
Sebelum mulai, diharapkan pembaca sudah memiliki pengetahuan dasar
mengenai TCP/IP karena hal ini merupakan dasar dari penggunaan IPTables. Ada
(sangat) banyak resource yang mendokumentasikan konsep dasar tentang TCP/IP,
baik itu secara online maupun cetak. Silahkan googling untuk mendapatkannya.
Hal berikutnya yang harus anda persiapkan adalah sebuah komputer yang terinstall
Linux. Akan lebih baik jika komputer anda memiliki 2 buah network interface
card, sebab bisa menjalankan fungsi packet forwarding. Disarankan
anda menggunakan linux dengan kernel 2.4 ke atas, karena (setahu saya) linux
dengan kernel 2.4 ke atas sudah memiliki dukungan IPTables secara default, sehingga
anda tidak perlu mengkompilasi ulang kernel anda. Bagi anda yang menggunakan
kernel 2.2 atau sebelumnya, anda harus melakukan kompilasi kernel untuk memasukkan
dukungan IPTables. Silahkan lihat tutorial Kompilasi
kernel 2.4.x di Linux oleh mas Asfik.
2. Pendahuluan
IPTables memiliki tiga macam daftar aturan bawaan dalam tabel penyaringan,
daftar tersebut dinamakan rantai firewall (firewall chain) atau sering
disebut chain saja. Ketiga chain tersebut adalah INPUT, OUTPUT dan
FORWARD.
Pada diagram tersebut, lingkaran menggambarkan ketiga rantai atau chain. Pada
saat sebuah paket sampai pada sebuah lingkaran, maka disitulah terjadi proses
penyaringan. Rantai akan memutuskan nasib paket tersebut. Apabila keputusannnya
adalah DROP, maka paket tersebut akan di-drop. Tetapi jika rantai memutuskan
untuk ACCEPT, maka paket akan dilewatkan melalui diagram tersebut.
Sebuah rantai adalah aturan-aturan yang telah ditentukan. Setiap aturan menyatakan
“jika paket memiliki informasi awal (header) seperti ini, maka inilah
yang harus dilakukan terhadap paket”. Jika aturan tersebut tidak sesuai
dengan paket, maka aturan berikutnya akan memproses paket tersebut. Apabila
sampai aturan terakhir yang ada, paket tersebut belum memenuhi salah satu aturan,
maka kernel akan melihat kebijakan bawaan (default) untuk memutuskan apa yang
harus dilakukan kepada paket tersebut. Ada dua kebijakan bawaan yaitu default
DROP dan default ACCEPT.
Jalannya sebuah paket melalui diagram tersebut bisa dicontohkan sebagai berikut:
Perjalanan paket yang diforward ke host yang lain
1. Paket berada pada jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada table Mangle. Chain ini berfungsi untuk
me-mangle (menghaluskan) paket, seperti merubah TOS, TTL dan lain-lain.
4. Paket masuk ke chain PREROUTING pada tabel nat. Chain ini berfungsi utamanya
untuk melakukan DNAT (Destination Network Address Translation).
5. Paket mengalami keputusan routing, apakah akan diproses oleh host lokal atau
diteruskan ke host lain.
6. Paket masuk ke chain FORWARD pada tabel filter. Disinlah proses pemfilteran
yang utama terjadi.
7. Paket masuk ke chain POSTROUTING pada tabel nat. Chain ini berfungsi utamanya
untuk melakukan SNAT (Source Network Address Translation).
8. Paket keluar menuju interface jaringan, contoh eth1.
9. Paket kembali berada pada jaringan fisik, contoh LAN.
Perjalanan paket yang ditujukan bagi host lokal
1. Paket berada dalam jaringan fisik, contoh internet.
2. Paket masuk ke interface jaringan, contoh eth0.
3. Paket masuk ke chain PREROUTING pada tabel mangle.
4. Paket masuk ke chain PREROUTING pada tabel nat.
5. Paket mengalami keputusan routing.
6. Paket masuk ke chain INPUT pada tabel filter untuk mengalami proses penyaringan.
7. Paket akan diterima oleh aplikasi lokal.
Perjalanan paket yang berasal dari host lokal
1. Aplikasi lokal menghasilkan paket data yang akan dikirimkan melalui jaringan.
2. Paket memasuki chain OUTPUT pada tabel mangle.
3. Paket memasuki chain OUTPUT pada tabel nat.
4. Paket memasuki chain OUTPUT pada tabel filter.
5. Paket mengalami keputusan routing, seperti ke mana paket harus pergi dan
melalui interface mana.
6. Paket masuk ke chain POSTROUTING pada tabel NAT.
7. Paket masuk ke interface jaringan, contoh eth0.
8. Paket berada pada jaringan fisik, contoh internet.
3. Sintaks IPTables
iptables [-t table] command [match] [target/jump]
1. Table
IPTables memiliki 3 buah tabel, yaitu NAT, MANGLE dan FILTER. Penggunannya
disesuaikan dengan sifat dan karakteristik masing-masing. Fungsi dari masing-masing
tabel tersebut sebagai berikut :
- NAT : Secara umum digunakan untuk melakukan Network Address Translation.
NAT adalah penggantian field alamat asal atau alamat tujuan dari sebuah paket. - MANGLE : Digunakan untuk melakukan penghalusan (mangle) paket, seperti TTL,
TOS dan MARK. - FILTER : Secara umum, inilah pemfilteran paket yang sesungguhnya.. Di sini
bisa dintukan apakah paket akan di-DROP, LOG, ACCEPT atau REJECT
2. Command
Command pada baris perintah IPTables akan memberitahu apa yang harus dilakukan
terhadap lanjutan sintaks perintah. Umumnya dilakukan penambahan atau penghapusan
sesuatu dari tabel atau yang lain.
Command | Keterangan |
-A | Perintah ini menambahkan aturan pada akhir chain. |
-D | Perintah |
-R | Penggunaannya sama seperti --delete, tetapi command |
-I | Memasukkan aturan pada suatu baris di chain. Aturan akan dimasukkan pada |
-L | Perintah ini menampilkan semua aturan pada sebuah tabel. Apabila tabel tidak |
-F | Perintah ini mengosongkan aturan pada sebuah chain. Apabila chain tidak |
-N | Perintah |
-X | Perintah ini akan menghapus chain yang disebutkan. Agar perintah di atas |
-P | Perintah ini membuat kebijakan default pada sebuah chain. Sehingga jika |
-E | Perintah ini akan merubah nama suatu chain. |
3. Option
Option digunakan dikombinasikan dengan command tertentu yang akan menghasilkan
suatu variasi perintah.
Option | Command Pemakai | Keterangan |
-v | --list | Memberikan output yang lebih detail, utamanya digunakan |
-x | --list | Memberikan output yang lebih tepat. |
-n | --list | Memberikan output yang berbentuk angka. Alamat |
--line-number | --list | Akan menampilkan nomor dari daftar aturan. Hal |
--modprobe | All | Memerintahkan IPTables untuk memanggil modul tertentu. |
4. Generic Matches
Generic Matches artinya pendefinisian kriteria yang berlaku secara umum. Dengan
kata lain, sintaks generic matches akan sama untuk semua protokol. Setelah protokol
didefinisikan, maka baru didefinisikan aturan yang lebih spesifik yang dimiliki
oleh protokol tersebut. Hal ini dilakukan karena tiap-tiap protokol memiliki
karakteristik yang berbeda, sehingga memerlukan perlakuan khusus.
Match | Keterangan |
-p | Digunakan untuk mengecek tipe protokol tertentu. Contoh protokol yang |
-s | Kriteria ini digunakan untuk mencocokkan paket berdasarkan alamat IP asal. |
-d | Digunakan untuk mecocokkan paket berdasarkan alamat tujuan. Penggunaannya sama dengan match –src |
-i | Match ini berguna untuk mencocokkan |
-o | Berfungsi untuk mencocokkan paket berdasarkan interface di mana paket |
5. Implicit Matches
Implicit Matches adalah match yang spesifik untuk tipe protokol tertentu. Implicit
Match merupakan sekumpulan rule yang akan diload setelah tipe protokol disebutkan.
Ada 3 Implicit Match berlaku untuk tiga jenis protokol, yaitu TCP matches, UDP
matches dan ICMP matches.
a. TCP matches
Match | Keterangan |
--sport | Match ini berguna untuk mecocokkan paket --sport juga bisa dituliskan untuk range port tertentu. Misalkan Jika bagian salah satu bagian pada range tersebut kita hilangkan maka hal |
--dport --destination-port | Penggunaan |
--tcp-flags | Digunakan untuk mencocokkan paket berdasarkan TCP flags yang ada pada paket tersebut. Pertama, pengecekan akan mengambil Pada kedua list, masing-masing |
--syn | Match ini akan memeriksa apakah flag Paket dengan match di atas digunakan |
b. UDP Matches
Karena bahwa protokol UDP bersifat connectionless, maka tidak ada flags yang
mendeskripsikan status paket untuk untuk membuka atau menutup koneksi. Paket
UDP juga tidak memerlukan acknowledgement. Sehingga Implicit Match untuk protokol
UDP lebih sedikit daripada TCP.
Ada dua macam match untuk UDP:
--sport atau --source-port
--dport atau --destination-port
c. ICMP Matches
Paket ICMP digunakan untuk mengirimkan
pesan-pesan kesalahan dan kondisi-kondisi jaringan yang lain. Hanya ada
satu implicit match untuk tipe protokol ICMP, yaitu :
--icmp-type
6. Explicit Matches
a. MAC Address
Match jenis ini berguna untuk melakukan pencocokan paket berdasarkan MAC source
address. Perlu diingat bahwa MAC hanya berfungsi untuk jaringan yang menggunakan
teknologi ethernet.
iptables –A INPUT –m mac –mac-source 00:00:00:00:00:01
b. Multiport Matches
Ekstensi Multiport Matches digunakan untuk mendefinisikan port atau port range
lebih dari satu, yang berfungsi jika ingin didefinisikan aturan yang sama untuk
beberapa port. Tapi hal yang perlu diingat bahwa kita tidak bisa menggunakan
port matching standard dan multiport matching dalam waktu yang bersamaan.
iptables –A INPUT –p tcp –m multiport --source-port 22,53,80,110
c. Owner Matches
Penggunaan match ini untuk mencocokkan paket berdasarkan pembuat atau pemilik/owner
paket tersebut. Match ini bekerja dalam chain OUTPUT, akan tetapi penggunaan
match ini tidak terlalu luas, sebab ada beberapa proses tidak memiliki owner
(??).
iptables –A OUTPUT –m owner --uid-owner 500
Kita juga bisa memfilter berdasarkan group ID dengan sintaks --gid-owner. Salah
satu penggunannya adalah bisa mencegah user selain yang dikehendaki untuk mengakses
internet misalnya.
d. State Matches
Match ini mendefinisikan state apa saja yang cocok. Ada 4 state yang berlaku,
yaitu NEW, ESTABLISHED, RELATED dan INVALID. NEW digunakan untuk paket yang
akan memulai koneksi baru. ESTABLISHED digunakan jika koneksi telah tersambung
dan paket-paketnya merupakan bagian dari koneki tersebut. RELATED digunakan
untuk paket-paket yang bukan bagian dari koneksi tetapi masih berhubungan dengan
koneksi tersebut, contohnya adalah FTP data transfer yang menyertai sebuah koneksi
TCP atau UDP. INVALID adalah paket yang tidak bisa diidentifikasi, bukan merupakan
bagian dari koneksi yang ada.
iptables –A INPUT –m state --state RELATED,ESTABLISHED
7. Target/Jump
Target atau jump adalah perlakuan yang diberikan terhadap paket-paket yang
memenuhi kriteria atau match. Jump memerlukan sebuah chain yang lain dalam tabel
yang sama. Chain tersebut nantinya akan dimasuki oleh paket yang memenuhi kriteria.
Analoginya ialah chain baru nanti berlaku sebagai prosedur/fungsi dari program
utama. Sebagai contoh dibuat sebuah chain yang bernama tcp_packets. Setelah
ditambahkan aturan-aturan ke dalam chain tersebut, kemudian chain tersebut akan
direferensi dari chain input.
iptables –A INPUT –p tcp –j tcp_packets
Target | Keterangan |
-j ACCEPT | Ketika |
-j DROP | Target ini men-drop paket dan Paket yang menerima target DROP benar-benar mati dan target tidak akan mengirim |
-j RETURN | Target ini akan membuat paket berhenti melintasi aturan-aturan pada chain |
-j MIRROR | Apabila Target |
Beberapa target yang lain biasanya memerlukan parameter tambahan:
a. LOG Target
Ada beberapa option yang bisa digunakan bersamaan dengan target ini. Yang pertama
adalah yang digunakan untuk menentukan tingkat log. Tingkatan log yang bisa
digunakan adalah debug, info, notice, warning, err, crit, alert dan emerg.Yang
kedua adalah -j LOG --log-prefix yang digunakan untuk memberikan string yang
tertulis pada awalan log, sehingga memudahkan pembacaan log tersebut.
iptables –A FORWARD –p tcp –j LOG --log-level debug
iptables –A INPUT –p tcp –j LOG --log-prefix “INPUT Packets”
b. REJECT Target
Secara umum, REJECT bekerja seperti DROP, yaitu memblok paket dan menolak untuk
memproses lebih lanjut paket tersebut. Tetapi, REJECT akan mengirimkan error
message ke host pengirim paket tersebut. REJECT bekerja pada chain INPUT, OUTPUT
dan FORWARD atau pada chain tambahan yang dipanggil dari ketiga chain tersebut.
iptables –A FORWARD –p tcp –dport 22 –j REJECT --reject-with icmp-host-unreachable
Ada beberapa tipe pesan yang bisa dikirimkan yaitu icmp-net-unreachable, icmp-host-unreachable,
icmp-port-unreachable, icmp-proto-unrachable, icmp-net-prohibited dan icmp-host-prohibited.
c. SNAT Target
Target ini berguna untuk melakukan perubahan alamat asal dari paket (Source
Network Address Translation). Target ini berlaku untuk tabel nat pada chain
POSTROUTING, dan hanya di sinilah SNAT bisa dilakukan. Jika paket pertama dari
sebuah koneksi mengalami SNAT, maka paket-paket berikutnya dalam koneksi tersebut
juga akan mengalami hal yang sama.
iptables –t nat –A POSTROUTING –o eth0 –j SNAT --to-source 194.236.50.155-194.236.50.160:1024-32000
d. DNAT Target
Berkebalikan dengan SNAT, DNAT digunakan untuk melakukan translasi field alamat
tujuan (Destination Network Address Translation) pada header dari paket-paket
yang memenuhi kriteria match. DNAT hanya bekerja untuk tabel nat pada chain
PREROUTING dan OUTPUT atau chain buatan yang dipanggil oleh kedua chain tersebut.
iptables –t nat –A PREROUTING –p tcp –d 15.45.23.67 --dport 80 –j DNAT --to-destination 192.168.0.2
e. MASQUERADE Target
Secara umum, target MASQUERADE bekerja dengan cara yang hampir sama seperti
target SNAT, tetapi target ini tidak memerlukan option --to-source. MASQUERADE
memang didesain untuk bekerja pada komputer dengan koneksi yang tidak tetap
seperti dial-up atau DHCP yang akan memberi pada kita nomor IP yang berubah-ubah.
Seperti halnya pada SNAT, target ini hanya bekerja untuk tabel nat pada chain
POSTROUTING.
iptables –t nat –A POSTROUTING –o ppp0 –j MASQUERADE
f. REDIRECT Target
Target REDIRECT digunakan untuk mengalihkan jurusan (redirect) paket ke mesin
itu sendiri. Target ini umumnya digunakan untuk mengarahkan paket yang menuju
suatu port tertentu untuk memasuki suatu aplikasi proxy, lebih jauh lagi hal
ini sangat berguna untuk membangun sebuah sistem jaringan yang menggunakan transparent
proxy. Contohnya kita ingin mengalihkan semua koneksi yang menuju port http
untuk memasuki aplikasi http proxy misalnya squid. Target ini hanya bekerja
untuk tabel nat pada chain PREROUTING dan OUTPUT atau pada chain buatan yang
dipanggil dari kedua chain tersebut.
iptables –t nat –A PREROUTING –i eth1 –p tcp --dport 80 –j REDIRECT --to-port 3128
Tutuorial Squid bisa dilihat di Instalasi
Squid, Banner Filter, Porn Filter, Limit Bandwith, Transparan Proxy bikinan
mas Hanny.
4. Penutup
Demikian dasar-dasar dari IPTables beserta komponen-komponennya. Mungkin anda
masih agak bingung tentang implementasi dari apa yang telah dijelaskan di atas.
Insya Allah dalam tulisan yang akan datang, saya akan memberikan beberapa contoh
kasus jaringan yang menggunakan IPTables. Yea.. may I have enough power to do
it :)
5. Change Log
5 Agustus 2003
- Penulisan pertama dokumen ini
6. Referensi
- www.netfilter.org
- Manual page iptables
- Beberapa sumber yang lain, tapi saya lupa :)
Readmore...
Pengenalan J2ME
J2ME???
J2ME (Java 2 Micro Editon) merupakan gambaran dari versi sederhana J2SE dengan pengurangan beberapa bagian fitur.
J2ME sebenarnya merupakan bagian dari J2SE yang mendukung beberapa fiture yang dapat diaplikasikan pada perangkat mobile, baik kabel maupun nirkabel. J2ME memiliki sedikit perbedaan diantara J2SE dan J2EE , J2ME di desain berubah-ubah tergantung dari spesifikasi dari alat yang akan digunakan. Dengan kata lain, J2ME APIs tidak tertanam pada alat tersebut.
Masing-masing bagian dari J2ME ditetapkan dan diaplikasikan untuk semua peralatan, tetapi beberapa bagian ditetapkan spesifikasinya untuk berbagai macam peralatan seperti mobile phone atau PDA.
J2ME dan Teknologi Wireless Lain
Pada saat sekarang mungkin ada tiga teknologi wireless paling penting yang sudah berkembang yaitu WAP, SMS, dan BLUETOOTH.
J2ME dan WAP
WAP merupakan singkatan dari Wireless Application Protocol adalah teknologi yang memungkinkan peralatan mobile / wireless untuk menerima data dari internet dan menampilkannya dalam layar yang terbatas/kecil. Pada dasarnya WAP merupakan teknologi yang mensupport web browser mini dalam peralatan mobile.Tetapi WAP bukan merupakan suatu aplikasi tetapi merupakan protokol. Hanya kekurangan dari WAP adalah harus mendukung untuk client (device) dan web server dan WAP Gateway sebagai perantara internet dan jaringan peralatan-peralatan mobile juga harus tersedia.
Halaman Web untuk WAP agak berbeda dengan tampilan web pada umumnya. WAP ditulis dengan bahasa yang berbeda yaitu WML(Wireless Markup Language). WML juga mendukung bahasa scripting yang biasa disebut WMLScript, merupakan versi sederhana dari java script.
WAP dapat langsung digunakan dan didukung oleh berbagai macam tipe handphone. Banyak orang berpendapat dalam membandingkan dua teknologi ini sebagai saingan. J2ME bukan lagi saingan/kompetitor WAP daripada java adalah kompetitor dari HTML.
J2ME dan SMS
SMS merupakan singkatan dari Short Message Service. SMS merupakan teknologi yang mendukung pengiriman dan penerimaan pesan pendek pada peralatan mobile seperti handphone dan pager. Fitur menarik lain dari SMS adalah mensupport gabungan pesan yang memperbolehkan user untuk mengakses voice mail, e-mail, dan fax dari perangkat mobile.
J2ME dan Bluetooth
Teknologi wireless yang paling sering dibicarakan adalah bluetooth, bluetooth merupakan teknologi jaringan wireless yang banyak diharapkan untuk mengganti cara dalam bekerja dan beraktifitas. Ide dalam bluetooth adalah untuk memungkinkan komunikasi tanpa kabel jarak pendek diantara banyak peralatan. Jadi Bluetooth memiliki banyak keuntungan , misalnya anda tidak perlu khawatir ada kabel yang tergigit oleh binatang pengerat jika menggunakan bluetooth, anda tidak perlu berjalan untuk menancapkan kabel pada printer, dan lain-lain.
Apa hubungan antara Bluetooth dan J2ME? Sebenarnya tidak ada hubungan langsung diantara keduanya, karena bluetooth merupakan sebuah hardware dan J2ME merupakan sebuah software.
Readmore...
Super karamba is one of desktop widget on linux, but in my computer (use slackware 12) super karamba cannot autostart, so lazy if every turn on computer must be setting my slackware.
But now i have the solution, so easy, only add script on directory /home/namauser/.kde/Autostart/
And then make a file with file format themesname.desktop
at file that you create, you can copy this script below
[Desktop Entry]
Exec=superkaramba /pathletaktheme
Name=berinamadisini
Type=Application
X-KDE-StartupNotify=false
And then save with themesname.desktop, you can give another name for this file
Ok, Let's Try Guys!!!!!
Readmore...
Deklarasi Variabel di Pemrograman Java
Sintaks untuk mendeklarasikan variabel adalah
Tipedata variabel;
Untuk lebih jelasnya kita akan langsung saja membuat contoh program sederhana dengan macam-macam tipe data yang ada pada Java.
1. Tipe Data Boolean
class boolean1 {
public static void main(String[] args)
{
//deklarasi variabel dengan tipe data boolean
boolean p1 = true;
boolean p2 = false;
System.out.println("nilai variabel p1 = "+p1);
System.out.println("nilai variabel p2 = "+p2);
}
}
Output yang dihasilkan pada potongan program di atas :
nilai variabel p1 = true
nilai variabel p2 = false
2. Tipe data karakter
class karakter {
public static void main(String[] args)
{
//mendeklarasikan variabel dengan tipe data char
char a = 'a';
char b = 'b';
char c = 'c';
System.out.println("Isi masing - masing variabel adalah a = "+a+", b = "+b+", c = "+c);
}
}
Output yang dihasilkan
Isi masing - masing variabel adalah a = a, b = b, c = c
3. Tipe Data String
class String1{
public static void main(String[] args)
{
//deklarasi tipe data dengan variabel string
String nama_depan = "Wahyu Sumartha";
String nama_belakang = " Priya Dharma";
System.out.println("Nama Lengkap : "+nama_depan + nama_belakang);
}
}
Output yang dihasilkan :
Nama Lengkap : Wahyu Sumartha Priya Dharma
4. Tipe Data pada Bilangan Bulat
Tipe data pada bilangan bulat pada java meliputi Byte, short, int, dan long.
class bilanganbulat
{
public static void main(String[] args)
{
byte tp1 = 22;
short tp2 = 2000;
int tp3 = 42;
long tp4 = 202;
System.out.println("tp1 = "+tp1);
System.out.println("tp2 = "+tp2);
System.out.println("tp3 = "+tp3);
System.out.println("tp4 = "+tp4);
}
}
Output yang dihasilkan adalah
tp1 = 22
tp2 = 2000
tp3 = 42
tp4 = 202
5. Tipe data bilangan berkoma
Tipe data bilangan berkoma yang terdapat pada java adalah float dan double.
class BilanganBerkoma{
public static void main(String[] args)
{
double db1 = 41.222;
float fl2 = 4;
float fl3 = 3;
System.out.println("db1 = "+db1);
System.out.println("fl2/fl3 = "+(fl2/fl3));
}
}
Output yang dihasilkan
db1 = 41.222
fl2/fl3 = 1.3333334
Kayaknya Udah dulu deh hehehe...
Ok Selamat Mencoba .........
Readmore...
After, ask with uncle google, i have this solution,
You only put at file /etc/group
And then search plugdev and cdrom, add your username.
After that you must restart rc.messagebus and rc.hald with command below
/etc/rc.d/rc.messagebus restart
/etc/rc.d/rc.hald restart
Readmore...
Tipe data pada Java
Tipe data dasar
Tipe data dasar merupakan tipe data paling sederhana yang dimiliki Java. Untuk menggunakan tipe ini kita tidak perlu melakukan instansiasi (seperti pada class). Tipe data dasar pada java ada 3 bentuk :
1. Boolean
Tipe data boolean digunakan untuk menentukan nilai benar atau salah. Oleh karena itu boolean hanya terdiri atas 2 nilai , yaitu TRUE dan FALSE.
2. Karakter atau char
Tipe data karakter digunakan untuk menangani data berupa karakter karakter ASCII. Data karakter ditandai dengan penggunaan tande kutip tunggal ‘’ yang melingkupi data karakter. Keyword yang digunakan adalah char.
3. String
Tipe data string digunakan untuk menangani data berupa untaian beberapa karakter yang diistilahkan dengan string. Data string ditandai dengan penggunaan tanda kutip ganda “ “ yang melingkupi data string. Keyword tipe string adalah string.
4. Bilangan
Tipe data bilangan terbagi menjadi bilangan bulat dan bilangan berkoma
Tipe data bilangan bulat
Tipe data bilangan berkoma
Readmore...
Java dikembangkan oleh SUN Micro System dengan sejumlah keunggulan yang memungkinkan Java dijadikan sebagai bahasa pengembangan enterprise.
Keunggulan – keunggulan Java adalah :
- Berbasis GUI
- Berorientasi Objek
- Bisa Berjalan pada aplikasi web
- Multiplatform
- Keamanannya sangat bagus
- Bisa Digunakan pada aplikasi Jaringan terdistribusi
- Multithread
Pada tahun 1994, Oak diubah namanya menjadi java. Pada era ini, Java divisikan sebagai bahasa yang memiliki dukungan baik terhadap web.
Dibawah ini adalah struktur pemrograman java :
public static void main(String [] args)
{
System.out.println("Hallo Java");
}
}
Baris “ public class Hello{ “ merupakan kode untuk class Public.
Pada baris tersebut kita membuat class public bernama Hello. Perhatian!!!!! nama class ini harus sama dengan nama file dimana class ini berada. Jika tidak method main tidak dapat dijalankan
Baris “ public static void main(String [] args) “ adalah kode untuk method main. Method main adalah method pada class public yang akan dipanggil pertama kali oleh JVM pada saat program dijalankan.
Output Hello Java yang muncul merupakan efek pemanggilan statement
Membuat DNS Server dengan bind
Saya Akan Coba Share Bagaimana Membuat DNS server dengan bind. Distro yang digunakan disini adalah Open SUSE 10.3.
Sebelumnya pastikan bind sudah terinstall pada komputer anda, jika belum silahkan install terlebih dahulu. ^_^.
Setelah Itu Masuk ke direktori /etc/named.conf
lalu buat konfigurasi seperti dibawah ini pada direktori /etc/named.conf
linux-nuxprog:/etc # vim /etc/named.conf
#tambahkan baris ini
zone "dnsserver.org" in {
type master;
file "dnsserver.org";
};
zone "100.168.192.in-addr.arpa" in {
type master;
file "192.168.100.5";
};
pada baris yang berisi zone “100.168.192.in-addr.arpa” adalah kebalikan dari IP address yang anda gunakan sebagai DNS Server.
Lalu masuk ke direktoru /var/lib/named/
linux-nuxprog:/ # cd /var/lib/named/
lalu kopikan file localhost.zone ke file yang akan kita buat yaitu dnsserver.org
linux-nuxprog:/var/lib/named # cp localhost.zone dnsserver.org
ubah konfigurasi pada file dnsserver.org seperti dibawah ini
$TTL 1W
@ IN SOA @ dnsserver.org. root.dnsserver.org. (
42 ; serial (d. adams)
2D ; refresh
4H ; retry
6W ; expiry
1W ) ; minimum
IN NS dnsserver.org.
IN A 192.168.100.5
kemudian copikan file dnserver.org ke file kedua yang akan kita buat yaitu 192.168.100.5
linux-nuxprog:/var/lib/named # cp dnsserver.org 192.168.100.5
lalu buat konfigurasi pada file 192.168.100.5 seperti di bawah ini
$TTL 1W
@ IN SOA @ dnsserver.org. root.dnsserver.org. (
42 ; serial (d. adams)
2D ; refresh
4H ; retry
6W ; expiry
1W ) ; minimum
IN NS dnsserver.org.
5 IN PTR www.dnsserver.org.
angka 5 menunjukkan host pada IP Address yang menjadi DNS server.
Setelah itu masuk ke direktori /etc/hosts
linux-nuxprog:/var/lib/named # vim /etc/hosts
tambahkan baris berikut ke dalam file /etc/hosts
192.168.100.5 dnsserver.org
selain itu tambahkan pada /etc/resolv.conf baris berikut
nameserver dnsserver.org
search dnsserver.org
nameserver 192.168.100.5
Lalu coba ping dengan perintah
linux-nuxprog:/var/lib/named # ping dnsserver.org
PING dnsserver.org (192.168.100.5) 56(84) bytes of data.
64 bytes from dnsserver.org (192.168.100.5): icmp_seq=1 ttl=64 time=0.071 ms
64 bytes from dnsserver.org (192.168.100.5): icmp_seq=2 ttl=64 time=0.049 ms
64 bytes from dnsserver.org (192.168.100.5): icmp_seq=3 ttl=64 time=0.057 ms
--- dnsserver.org ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1998ms
rtt min/avg/max/mdev = 0.049/0.059/0.071/0.009 ms
jika terlihat seperti hasil di atas maka dns server telah berhasil dibuat.
Selain itu juga gunakan perintah
linux-nuxprog:/var/lib/named # dig dnsserver.org
linux-nuxprog:/var/lib/named # host dnsserver.org
jika keluar dnsserver.org has address 192.168.100.5
maka dns server berhasil dibuat
Silahkan Mencoba , Jika Ada Kesalahan Mohon Diperbaiki!!!!!!
Spirit Open Source!!!!!
Readmore...
Konsep Dasar TCP/IP
Pada dasarnya komunikasi data merupakan proses mengirimkan data dari satu komputer ke komputer lain. Untuk dapat mengirimkan data, pada komputer harus ditambahkan alat khusus yang dikenal dengan network interface card (NIC). Jenis interface ini beragam bergantung pada media fisik yang digunakan untuk mentransfer data tersebut.
Untuk Mengrimkan data dari satu komputer ke komputer lain diperlukan suatu aturan. Untuk mengatur proses pengiriman data digunakan protokol. Protokol merupakan himpunan aturan yang mengatur komunikasi data. Protokol ini diimplementasikan dalam bentuk program komputer dan peralatan komunikasi data lainnya.
TCP/IP adalah sekumpulan protokol yang di desain untuk melakukan fungsi-fungsi komunikasi data pada Wide Area Network (WAN). TCP/IP terdiri dari sekumpulan protokol yang masing-masing bertanggung jawab atas bagian tertentu dari komunikasi data. Berkat prinsip ini, tugas masing-masing protokol menjadi jelas dan sederhana. Protokol yang satu tidak perlu mengetahui cara kerja protokol yang lain, sepanjang ia masih bisa saling mengirim dan menerima data.
Berkat penggunaan prinsip itu, TCP/IP menjadi protokol komunikasi data yang fleksibek. Protokol TCP/IP dapat diterapkan dengan mudah di setiap jenis komputer dan interface jaringan, karena sebagian besar isi kumpulan protokol inin tidak spesifik terhadap satu komputer atai peralata jaringan tertentu. Agar TCP/IP dapat berjalan di atas interface jaringan tertentu, hanya perlu dilakukan perubahan pada protokol yang berhubungan dengan jaringan saja.
Protokol TCP/IP terbagi dalam 5 lapisan , yaitu :
Application layer melayani pemakain untuk mengirim dan menerima data Misalnya : HTTP, SMTP, FTP, dll.
Transport layer melayani komunikasi antara dua host, Protokolnya adalah TCP(Transmission Control Protocol) dan UDP (User Datagram Protocol).
Internet Layer berfungsi menyediakan konsep routing dalam jaringan komputer yang kompleks.
Network Interface Layer berfungsi untuk proses pengiriman ke alamat yang tepat. Protokol yang digunakan adalah IP, ARP, dan ICMP.
Physical layer berfungsi untuk mengirimkan dan menerima data dari dan ke media fisik.
Readmore...
IP ADRESSING
IP address adalah bilangan biner 32 bit yang dipisahkan oleh tanda pemisah berupa tanda titik setiap 8 bitnya. Definisi di atas merupakan definisi untuk IPv4 , sekarang sudah dikembangkan IPv6 untuk mengatasi habisnya IP address, karena semakin banyaknya pengguna internet.
Sekarang saya akan membahas mengenai IPv4. Jika dilihat dari bentuknya, IP Address terdiri atas 4 buah bilangan biner 8 bit. Nilai terbesar dari bilangan biner 8 bit adalah 255 (27 + 26 + 25 + 24 + 23 + 22 +21 + 20). Karena terdiri dari 8 bit maka jumlah IP address yang tersedia adalah 255x255x255x255.IP address sebanyak ini harus dibagi ke seluruh pengguna jaringan internetdi seluruh dunia. Untuk mempermudah pembagiannya IP address dibagikan ke dalam kelas-kelas. Pembagian kelas IP address didasarkan pada network ID dan host ID.
Kelas dalam IP address dibagi menjadi 5 yaitu :
Kelas A
Format : 0nnnnnnn.hhhhhhhh.hhhhhhhh.hhhhhhhh
Bit pertama : 0
Panjang Net ID : 8 bit
Panjang host ID : 24 bit
Jumlah : 126 Kelas A(0 dan 127 dicadangkan)
Range IP : 1.xxx.xxx.xxx sampai 126.xxx.xxx
Jumlah IP : 16.777.214 IP address pada tiap kelas A
Ip address kelas A diberikan pada jaringan yang mempunyai jumlah host yang sangat besar. Bit pertama pada kelas A selalu di set dengan 0 sehingaan bit pertama dari kelas A selalu bernilai angka antara 0 sampai 127.
IP address kelas A biasanya digunakan untuk backbone.
Kelas B
Format : 10nnnnnn.nnnnnnnn.hhhhhhhh.hhhhhhhh
Bit Pertama : 10
Panjang Net ID : 16 bit
Panjang host ID : 8 bit
Jumlah : 16.384 kelas B
Range IP : 128.xxx.xxx.xxx sampai 191.xxx.xxx.xxx
Jumlah IP : 65.352 IP address pada tiap kelas B
IP address kelas B biasanya digunakan untuk jaringan berukuran sedang dan besar. Misalnya ISP .
Kelas C
Format : 110nnnnn.nnnnnnnn.nnnnnnnn.hhhhhhhh
Bit Pertama : 110
Panjang Net ID : 24 bit
Panjang host ID : 8 bit
Jumlah : 2.097.152 untuk kelas C
Range IP : 192.xxx.xxx.xxx sampai 223.xxx.xxx.xxx
Jumlah IP : 254 IP untuk tiap kelas C
IP address kelas C biasanya digunakan untuk jaringan berukuran kecil , misalnya LAN.
Kelas D
Format : 1110mmmm.mmmmmmmm.mmmmmmmm.mmmmmmmm
Bit Pertama : 1110
Bit Multicast : 28 bit
Byte Inisial : 224-227
Deskripsi : Kelas D adalah ruang alam multicast
IP address kelas D digunakan untuk keperluan IP multicasting. 4 bit pertama IP address kelas D di set 1110. Bit – bit berikutnya diatur sesuai keperluan multicast group yang menggunakan IP address ini. Dalam multicast tidak dikenal adanya Network ID dan host ID.
Kelas E
Format : 1111rrrr.rrrrrrrr.rrrrrrrr.rrrrrrrr
Bit pertama : 1111
Bit cadangan : 28 bit
Byte Inisial : 248-255
Deskripsi : Kelas E adalah ruang alamat yang dicadangkan untuk keperluan eksperimental
IP address kelas E tidak digunakan secara umum , 4 bit pertama IP address kelas E diset dengan 1111
Aturan – aturan dasar dalam menentukan Network ID dan host ID adalah network ID tidak boleh sama dengan 127 dan host ID tidak boleh 0. Selain itu, network ID dan host Id tidak boleh sama dengan 255(seluruh bit di set 1) karena network ID dan host ID tersebut diartikan sebagai alamat broadcast.
Pengiriman paket ke alamat ini akan mengakibatkan paket tersebut terdengar oleh semua anggota network tersebut.Host ID dalam suatu jaringan komputer juga harus unik, tidak boleh sama dengan yang lain.
Readmore...
Struktur data dengan C++
Struktur data dengan stack
Stack adalah struktur data yagn sifatn ya LIFO (Last In First Out), yaitu yang masuk belakangan akan keluar duluan. Dalam kehidupan sehari-hari dapat kita jumpai contoh stack seperti : tumpukan buku, tumpukan koin , dan lain lain.
Dalam struktur data stack ada dua operasi yang digunakan pada stack, yaitu operasi push dan operasi pop. Operasi push merupakan operasi memasukkan elemen ke dalam stack, sedangkan operasi pop merupakan operasi mengeluarkan elemen ke dalam stack.
Berikut ini contoh implementasi program stack dengan array.
Deklarasi Class
#include<"iostream.h">
#include<"conio.h">
#include<"stdio.h">
#define max_stack 10
class Stack
{
private:
char data[max_stack];
int top;
public:
Stack(){ top = -1;}
int isFull();
int isEmpty();
void push();
void pop();
void print();
};
Implementasi method isFull() dan isEmpty().
Method isEmpty() digunakan untuk mengecek apakah stack dalam keadaan kosong atau sudah berisi, sedangkan method isFull() digunakan untuk mengecek apakah stack sudah dalam keadaan penuh.
int Stack :: isFull()
{
if (top == max_stack -1 ) return 1;
else
return 0;
}
int Stack :: isEmpty()
{
if(top == -1) return 1;
else return 0 ;
}
Implementasi Method push() dan pop()
Seperti sudah dijelaskan seb elumnya method push() digunakan untuk menambah elemen di dalam stack, sedangkan method pop() digunakan untuk mengeluarkan elemen di dalam stack.
void Stack :: push()
{
char insert;
int i ;
cout << "Much of data : ";
cin >> i;
if( i > max_stack -1) cout << "Out Of Range"; cout << endl;
for(int j = 0;j<=i-1;j++)
{
cout << "insert data : ";
cin >> insert;
top++;
data[top] = insert;
}
getche();
}
void Stack :: pop()
{
cout << "Insert Index Data : ";
cin >> top;
cout << "Data Deleted : " << data[top] << endl;
top--;
}
Implementasi Fungsi pri nt()
Fungsi print() digunakan untuk mencetak isi di dalam stack
void Stack :: print()
{
for(int i = top ; i>=0;i--)
{
cout << "Data " << i << " "<< data[i] << endl;
}
getche();
}
Sepertinya hanya itu saja yang bisa saya share dari materi struktur data yang pernah saya dapatkan , jika teman-teman semua ada yang mau menambahkan atau memperbaikinya silahkan berikan komentar,,,,OK!!^_^
Readmore...
Struktur Data Dengan C++
Struktur Data Dengan Menggunakan Link List
Link List adalah salah satu bentuk struktur data yang dinamis dan saling sambung – menyambung.
Link List lebih fleksibel digunakan daripada array, karena bersifat dinamis(tidak ada batasan data), berbeda dengan array yang mempunyai batasan data maksimal. Link List dapat dihubungkan dengan variabel bertipe pointer.
Contoh :
//deklarasi Link List
Node *a;
Node *berikut;
a = new Node;
//pendeklarasian dengan menggunakan keyword new
//menyambung link list
Int data ;
a -> data = 1;
a->berikut = NULL;
//pendeklarasian node baru
Node * b;
b->data = 2;
b->berikut = NULL;
//menyambung node a dan node b
a->berikut = b;
Ilustrasi Link List Di atas
Deklarasi Node * a
NULL
Node *a
NULL
Deklarasi Node * b
Menyambung Node *a dengan Node * b
NULL
Node * a Node * b
Contoh Program:
#include
#include
class Node
{
public :
int data;
Node *next;
};
void main()
{
Node *a;
a = new Node;
a -> data = 1;
cout << "Isi Node a : " <<> data << endl;
Node *b;
b = new Node;
b -> data = 2;
b -> next = NULL;
cout << "Isi Node b : " <<> data << endl;
//menyambung node a dan node b
a-> next = b;
//cetak isi node setelah disambung
Node *bantu;
bantu = a;
cout << "Isi Node Setelah Disambung " << endl;
while(bantu != NULL)
{
cout <<> data << " ";
bantu = bantu -> next;
}
getche();
}
Struktur Data Dengan C++
Antrian dengan Menggunakan Array
Antrian atau queue merupakan salah satu struktur data yang bersifata FIFO (FIRST IN FIRST OUT), artinya yang pertama masuk akan keluar pertama. Misalnya dalam antrian loket, orang yang datang pertama maka akan dilayani pertama kali.
Langsung Saja kita akan menuju ke Pembuatan Programnya
Deklarasi Class
#include
#include
#define max 8
class Queue
{
private:
int data[max];
int head;
int tail;
public:
Queue();
bool isEmpty();
bool isFull();
void enqueu(int insert);
int dequeue();
void clear();
void print();
};
Implementasi Konstruktor
Queue :: Queue()
{
head = -1;
tail = -1;
}
Pertama kali diciptakan nilai head dan tail di inisialisasi dengan nilai -1 (kosong)
Implementasi Method isEmpty() dan isFull()
bool Queue :: isEmpty()
{
if(tail == -1) return 1;
else
return 0;
}
Jika Nilai tail adalah -1 maka antrian tersebut masih kosong dan diberikan nilai kembalian 1, jika tidak maka akan di return 0.
bool Queue :: isFull()
{
if(tail == max -1) return 1;
else
return 0;
}
Jika Nilai tail sama dengan max-1 maka antrian sudah penuh, dan tidak bisa lagi dimasukkan data atau dilakukan pencegahan untuk memasukkan data sebelum ada data yang dihapus.
Implementasi Method Enqueue(int) dan dequeu
void Queue :: enqueu(int insert)
{
//Pengisian data ketika antrian kosong
if(isEmpty() ==1)
{
head = tail = 0;
data[tail] = insert;
cout << "\nData yang telah dimasukkan : " << data[tail];
}
//pengisian data ketika antrian tidak kosong
else if(isFull() == 0)
{
tail++;
data[tail] = insert;
cout << "\nData has been Entry : " << data[tail];
}
getche();
}
Data Yang Lebih Dulu Masuk Akan Dihapus!!!(Ingat Prinsip Antrian) FIF0!!!!!!
int Queue :: dequeue()
{
for(int i = head;i<=tail-1;i++)
{
data[i] = data[i+1];
}
tail--;
return data[head];
}
Implementasi Method Clear
Method clear digunakan untuk menghapus semua data dalam antrian
void Queue :: clear()
{
head = tail = -1;
cout << "Data Dihapus" << endl;
}
Implementasi Method print()
Method print digunakan untuk mencetak antrian yang sudah masuk
void Queue :: print()
{
if(isEmpty() == 0)
{
for(int i = tail;i >= head;i--)
{
cout << data[i] << endl;
}
}
else
{
cout << "Data Kosong" << endl;
}
}
Bagaimana???Mudah kan , HEHEHEHE ^_^
Kalo Ada Kekurangan Dari Materi Di atas Mohon Maklum , Karena Saya Juga Masih Belajar, Kebenaran datangnya dari Allah SWT, dan kesalahan datangnya dari saya,,,!!!!!!!
The First program that will be we make when study programming language is Hello World Program.
So simple guys, we only write this script below on your favourite editor
void main()
{
cout << "Hello World" ;
getche();
}
So easy guys, isn't ?
Let's try it!
Readmore...