Perangkat Keras Jaringan

PERANGKAT KERAS JARINGAN KOMPUTER

3.1. Kabel

Kabel jaringan adalah kabel yang menghubungkan antara komputer dengan komputer atau perangkat / device dalam jaringan komputer. Di dalam jaringan LAN, kita biasa menggunakan jenis Kabel UTP sehingga orang kebanyakan mengidentikkan kabel UTP sebagai kabel jaringan. Padahal masih banyak jenis kabel lagi yang biasa di gunakan di jaringan sebagai contoh Fiber optik dan Coaxial. Berikut akan dijelaskan beberapa jenis kabel yang biasa digunakan dalam jaringan komputer baik dalam skala jaringan yang kecil seperti LAN maupun jaringan yang lebih kompleks.

2.1.1. Kabel UTP / STP

UTP singkatan dari Unshielded Twisted Pair, varian lain yang sejenis adalah STP  atau Shielded Twisted Pair. Perbedaan nya hanya ada pada Isolator yang menyelimuti kabel tersebut. Pada kabel jenis UTP isolator nya sedikit lebih tipis dan tidak punya jaket atau shielded untuk membungkus kabel.Kebanyakan kabel jenis UTP digunakan pada instalasi jaringan LAN dalam ruangan. Untuk jumlah kabel nya sendiri persis sama dengan tipe STP yaitu 8 kabel dengan warna yang berbeda,  yang membedakan hanya pada ukuran kabel yang lebih besar. Jadi tidak heran penggunaan kabel STP sendiri kebanyakan di pakai di luar ruangan.

Kabel UTP juga memiliki beberapa Tipe atau kategori.Adapun kategori dari kabel UTP ada
pada tabel berikut ini.
  
Ada dua jenis pemasangan kabel UTP yang umum digunakan pada jaringan LAN dan satu jenis pemasangan khusus untuk perangkat Cisco Router sebagai berikut :

       Straigh Trhough

Untuk pemasangan jenis ini biasanya digunakan untuk menyambungkan perangkat yang berbeda misalnya antara komputer dengan switch. Pemasangan pada jaringan LAN akan membentuk sebuah topologi Star (Bintang) dan Tree (Pohon).

       Cross Over

Berbeda dengan tipe Straigh Through, pemamfaatan kabel tipe Cross Over ini digunakan untuk menyambungkan antara perangkat (device) yang sejenis misalnya komputer dengan komputer atau switch dengan switch.Kebutuhan Cross over sendiri biasa digunakan untuk memperluas jaringan LAN dan membentuk jaringan Peer to
Peer.





       Roll Over

Tipe Roll Over digunakan untuk mengkonfigurasi perangkat Cisco Router dengan menggunakan Komputer .Kabel Roll-Over tersebut sebelumnya terkoneksi dengan DB25 atau DB-9 Adapter sebelum ke terminal (PC).


Pemasangan kabel UTP membutuhkan alat dan bahan seperti krimping tool, Konektor RJ 45, dan LAN Tester. Langkah-langkah pemasangan kabel UTP :

Ø  Kupas kulit kabel UTP kira-kira sepanjang 1,5 cm dengan menggunakan crimping tool urai kabel-kabel yang ada di dalamnya.
Ø  Susun urutan warna sesuai dengan tipe pemasangan jaringan.
Ø  Ratakan ujung kabel dengan memangkas ujungnya menggunakan crimping tool agar. (Pada saat akan memotong ujungnya kabel tetap harus tersusun rapi sesuai dengan urutan).
Ø  Dengan tetap memperhatikan kerapian kabel yang telah disususn, masukkan kabel UTP pada konektor RJ 45 hingga ujung kabel terlihat pada ujung konektor,Setelah itu kunci konektor dengan menggunakan crimping tool.
Ø  Tes kabel UTP dengan menggunakan LAN tester.

2.1.2.  Kabel Coaxial

Kabel Koaksial terbagi menjadi dua jenis tipe yang biasa digunakan pada jaringan komputer, yaitu :

         Thick Coax (memiliki diameter cukup besar)

Kabel coaxial jenis ini dispesifikasikan berdasarkan standar IEEE 802.3 - 10BASE5, dimana kabel ini mempunyai diameter rata-rata 12mm. Kabel jenis ini biasa disebut sebagai standard ethernet atau thick ethernet, atau hanya disingkat ThickNet, atau bahkan cuma disebut sebagai yellow cable karena warnanya yang kuning.

Kabel Coaxial ini jika digunakan dalam jaringan mempunyai spesifikasi dan aturan sebagai berikut:
 
ü  Setiap ujung harus diterminasi dengan terminator 50-ohm (dianjurkan menggunakan terminator yang sudah dirakit, bukan menggunakan satu buah resistor 50 ohm 1 watt, sebab resistor mempunyai disipasi tegangan yang lumayan lebar).
ü  Maksimum 3 segment dengan tambahan peralatan (attached devices, seperti repeater) atau berupa populated segments (seperti bridge).
ü  Setiap kartu jaringan mempunyai kemampuan penguat sinyal (external transceiver).
ü  Setiap segment maksimum berisi 100 perangkat jaringan, termasuk dalam hal ini repeaters.
ü  Maksimum panjang kabel per segment adalah 1.640 feet (sekitar 500m).
ü  Maksimum jarak antar segment adalah 4.920 feet (atau sekitar 1500 meter) dan setiap segment harus diberi ground.
ü  Jarak maksimum antara tap atau pencabang dari kabel utama ke perangkat (device) adalah 16 feet (sekitar 5 meter).
ü  Jarak minimum antar tap adalah 8 feet (sekitar 2,5 meter).

       Thin Coax (memiliki diameter lebih kecil)

Kabel coaxial jenis ini banyak dipergunakan di kalangan radio amatir, terutama untuk transceiver yang tidak memerlukan output daya yang besar. Jenis yang banyak digunakan RG-8 atau RG-59 dengan impedansi 75 ohm. Jenis kabel untuk televisi juga termasuk jenis coaxial dengan impedansi 75 ohm.

Namun untuk perangkat jaringan, kabel jenis coaxial yang dipergunakan adalah (RG-58) yang telah memenuhi standar IEEE 802.3 - 10BASE2, dimana diameter rata-rata berkisar 5 mm dan biasanya berwarna hitam. Setiap perangkat (device) dihubungkan dengan BNC T-connector. Kabel jenis ini juga dikenal sebagai thin Ethernet atau ThinNet.

Kabel coaxial jenis ini, misalnya jenis RG-58 A/U atau C/U, jika diimplementasikan dengan T-connector dan terminator dalam sebuah jaringan, harus mengikuti aturan sebagai berikut :

ü  Pada topologi bus, setiap ujung kabel diberi terminator 50-ohm.
ü  Panjang maksimal kabel adalah 606.8 feet (185 meter) per segment.
ü  Setiap segment maksimum terkoneksi sebanyak 30 perangkat jaringan (devices)
ü  Kartu jaringan sudah menggunakan transceiver yang onboard, tidak perlu tambahan transceiver, kecuali untuk repeater.
ü  Maksimum ada 3 segment terhubung satu sama lain (populated segment) dengan pengubung repeater 185 x 3 = 555 meter.
ü  Setiap segment sebaiknya dilengkapi 1 ground.
ü  Panjang minimum antar T-Connector adalah 1,5 feet (0.5 meter).


2.1.3.  Kabel Fiber Optik

Kabel yang memiliki inti serat kaca sebagai saluran untuk menyalurkan sinyal antar terminal, sering dipakai sebagai saluran BACKBONE karena kehandalannya yang tinggi dibandingkan dengan coaxial cable atau kabel UTP. Karakteristik dari kabel ini tidak terpengaruh oleh adanya cuaca dan panas.


Kemampuan Kabel Serat Optik (FO)

Fiber optik menunjukkan kualitas tinggi untuk berbagai macam aplikasi, hal ini di sebabkan:

       Dapat mentransmisi bit rate yg tinggi,
       Tidak sensitif pada gangguan elektromagnetik
       Memiliki Bit Error Rate (kesalahan) kecil
       Reliabilitas lebih baik dari kabel koaksial

Kondisi & tempat pemasangan kabel FO

       Di wilayah kota, terdapat banyak lekukan dan saluran yang biasanya dipenuhi oleh kabel lain, sehingga pemasangan infrastruktur baru selalu dibuat dalam jumlah kecil, sehingga radius belokan fiber dan kabel diusahakan tetap kecil.
       Kabel terpasang dalam bermacam-macam kondisi, seperti: di luar, dibawah tanah, di udara, dalam ruangan. Konsekuensinya banyak kondisi termal, mekanikal dan tekanan lain yang harus diterima.
       Hindari kondisi banyaknya penyambungan, sehingga tidak memerlukan teknisi yang terlatih dan persiapan yang mudah.
       Jangan sampai terjadi banyak tekukan & kebocoran jacket pelindung yang bisa menyebabkan kebocoran Cahaya
       Biaya jalur koneksi global harus menjadi lebih rendah.

3.2. Ethernet Card

Ethernet adalah sistem jaringan yang dibuat dan dipatenkan perusahaan Xerox. Kecepatan Ethernet waktu itu hanya 3 Mbps dan dikenali sebagai Experimental Ethernet. Ethernet adalah implementasi metoda CSMA/CD (Carrier Sense Multiple Access with Collision Detection) yang dikembangkan tahun 1960 pada proyek wireless ALOHA di Hawaii University diatas kabel coaxial. Standarisasi sistem ethernet dilakukan sejak tahun 1978 oleh IEEE. Kecepatan transmisi data di ethernet sampai saat ini adalah 10 sampai 100 Mbps. Saat ini yang umum ada dipasaran adalah ethernet berkecepatan 10 Mbps – 100 Mbps yang biasa disebut seri 10Base / 100Base.

Pada metoda CSMA/CD, sebuah host kompiuter yang akan mengirim data ke jaringan pertama-tama memastikan bahwa jaringan sedang tidak dipakai untuk transfer dari dan oleh host kompiuter lainnya. Jika pada tahap pengecekan ditemukan transmisi data lain dan terjadi tabrakan (collision), maka host kompiuter tersebut diharuskan mengulang permohonan (request) pengiriman pada selang waktu berikutnya yang dilakukan secara acak (random). Teknik ini disebut dengan backoff algorithm Dengan demikian maka jaringan efektif bisa digunakan secara bergantian.

Cara kerja Ethernet Card berdasarkan broadcast network yaitu setiap node dalam suatu jaringan menerima setiap transmisi data yang dikirim oleh suatu node yang lain. Setiap Ethernet card mempunyai alamat sepanjang 48 bit yang dikenal sebagai Ethernet address (MAC Address).

Alamat tersebut telah ditanam ke dalam setiap rangkaian kartu jaringan (NIC) yang dikenali sebagai ‘Media Access Control’ (MAC) atau lebih dikenali dengan istilah ‘hardware address’. 24 bit atau 3 byte awal merupakan kode yang telah ditentukan oleh IEEE.


3.3. Hub / Switch (Konsentrator)

Sebuah konsentrator (Hub atau switch) adalah sebuah perangkat yang menyatukan kabel-kabel network dari tiap workstation, server atau perangkat lain. Dalam topologi bintang, kabel twisted pair datang dari sebuah workstation masuk kedalam hub atau switch.

Hub dan switch mempunyai banyak lubang port RJ-45 yang dapat dipasang konektor RJ-45 dan terhubung ke sejumlah komputer. Beberapa jenis hub dapat dipasang bertingkat (stackable) hingga 4 susun. Biasanya hub maupun switch memiliki jumlah lubang sebanyak 4 bh, 8 bh, 16 bh, hingga 24 buah.
Switch merupakan konsentrator yang memiliki kemampuan manajemen trafic data lebih baik bila dibandingkan hub. Saat ini telah terdapat banyak tipe switch yang manageable, selain dapat mengatur traffic data, juga dapat diberi IP Address.
Switch merupakan konsentrator yang memiliki kemampuan manajemen trafic data lebih baik bila dibandingkan hub. Saat ini telah terdapat banyak tipe switch yang manageable, selain dapat mengatur traffic data, juga dapat diberi IP Address.


3.4. Repeater

Fungsi utama repeater yaitu untuk memperkuat sinyal dengan cara menerima sinyal dari suatu segmen kabel LAN lalu memancarkan kembali dengan kekuatan yang sama dengan sinyal asli pada segmen kabel yang lain. Dengan cara ini jarak antara kabel dapat diperjauh.

Penggunaan repeater antara dua segmen atau lebih segmen kabel LAN mengharuskan penggunaan protocol physical layer yang sama antara segmen-segmen kebel tersebut misalnya repeater dapat menghubungkan dua buah segmen kabel Ethernet 10BASE2.


3.5. Bridge

Fungsi dari bridge itu sama dengan fungsi repeater tapi bridge lebih fleksibel dan lebih cerdas dari pada repeater. Bridge dapat menghubungkan jaringan yang menggunakanmetode transmisi yang berbeda. Misalnya bridge dapat menghubungkan Ethernet baseband dengan Ethernet broadband.

Bridge mampu memisahkan sebagian dari trafik karena mengimplementasikan mekanisme frame filtering. Mekanisme yang digunakan di bridge ini umum disebut sebagai store and forward. Walaupun demikian broadcast traffic yang dibangkitkan dalam LAN tidak dapat difilter oleh bridge.

Terkadang pertumbuhan network sangat cepat makanya di perlukan jembatan untuk itu. Kebanyakan Bridges dapat mengetahui masing-masing alamat dari tiap-tiap segmen komputer pada jaringan sebelahnya dan juga pada jaringan yang lain di sebelahnya pula. Diibaratkan bahwa Bridges ini seperti polisi lalulintas yang mengatur dipersimpangan jalan pada saat jam-jam sibuk. Dia mengatur agar informasi di antara kedua sisi network tetap jalan dengan baik dan teratur.

Bridges juga dapat digunakan untuk mengkoneksi network yang menggunakan tipe kabel yang berbeda ataupun topologi yang berbeda pula. Bridges dapat mengetahui alamat masing-masing komputer di masing-masing sisi jaringan.


3.6. Router

Sebuah Router mampu mengirimkan data/informasi dari satu jaringan ke jaringan lain yang berbeda, router hampir sama dengan bridge, meski tidak lebih pintar dibandingkan bridge, namun pengembangan perangkat router dewasa ini sudah mulai mencapai bahkan melampaui batas tuntutan teknologi yang diharapkan.

Router akan mencari jalur terbaik untuk mengirimkan sebuah pesan yang berdasarkan atas alamat tujuan dan alamat asal. Router mengetahui alamat masingmasing komputer dilingkungan jaringan lokalnya, mengetahui alamat bridges dan router lainnya.

Router juga dapat mengetahui keseluruhan jaringan dengan melihat sisi mana yang paling sibuk dan bisa menarik data dari sisi yang sibuk tersebut sampai sisi tersebut bersih/clean.

Jika sebuah perusahaan mempunyai LAN dan menginginkan terkoneksi ke internet, maka mereka sebaiknya membeli dan menggunakan router, mengapa ?

Karena kemampuan yang dimiliki router, diantaranya:

       router dapat menterjemahkan informasi diantara LAN anda dan internet.
       Router akan mencarikan alternatif jalur yang terbaik untuk mengirimkan data melewati internet.
       Mengatur jalur sinyal secara effisien dan dapat mengatur data yang mengalir diantara dua buah protocol.
       Dapat mengatur aliran data diantara topologi jaringan linear Bus dan Star.
       Dapat mengatur aliran data melewati kabel fiber optic, kabel koaksial atau kabel twisted pair.




READ MORE

OPERATOR ARITMATIKA DAN LOGIKA PEMROGRAMAN

Haii guys. :D kali ini kita akan belajar tentang operator aritmatika dan logika pemrograman. di sini kita akan belajar pemrograman bahasa C++. silahkan disimak yah guys.
sintak yang pertama ini adalah contoh program dalam Operator Aritmatika

#include <iostream.h>
main()
{
float bilangan1, bilangan2,jumlah, kurang, bagi, kali;

cout << "Masukkan bilangan pertama: ";
cin >> bilangan1;
cout << "Masukkan bilangan kedua: ";
cin >> bilangan2;
jumlah = bilangan1 + bilangan2;
kurang = bilangan1 - bilangan2;
bagi = bilangan1 / bilangan2;
kali = bilangan1*bilangan2;
cout << "Hasil penjumlahan adalah : " << jumlah << endl;
cout << "Hasil pengurangan adalah : " << kurang << endl;
cout << "Hasil pembagian adalah : " << bagi << endl;
cout << "Hasil perkalian adalah : " << kali << endl;
return 0;
}

dan yang ini adalah tentang logika pemrogramannya :D
#include <iostream.h>

int main()
{
int angka1, angka2;
cout << "Masukkan angka pertama:";
cin >> angka1;
cout << "Masukkan angka kedua: ";
cin >> angka2;

if (angka1>angka2)
cout <<"angka pertama lebih besar dari angka kedua\n";
else if (angka1<angka2)
cout<<"angka pertama lebih kecil dari angka kedua\n";
else if (angka1==angka2)
cout <<"angka pertama sama dengan angka kedua\n";
}
Bagaimana ?? cukup pusing bukaaan ??? iyya, sama kalo begitu .. oke kalo ada pertanyaan silahkan tanyakan di komentar yaah ato kunjungi facebook saya.
READ MORE

Cara Memperlebar Halaman Blog


Memperlebar Halaman Blog dan Side Bar Blog : Setiap template blog memiliki ukuran lebar sendiri-sendiri terutama template non-blogspot. Jika kebetulan Anda mempunyai blog dengan template dengan lebar yang tidak sesuai dengan keinginan, Anda dapat melakukan kustomasi lebar halaman blog maupun side bar blog. Ikuti tipsnya bersama Tips dan Trik Blog berikut ini.


Sebelum melakukan pengeditan ini, saya sarankan untuk melakukan back up template Anda terlebih dahulu untuk mengantisipasi hal-hal yang tidak kita inginkan. Atau Anda dapat mencoba pada blog simulasi (blog latihan) terlebih dahulu sebelum benar mengaplikasikan pada blog Anda yang sebenarnya.
Ada beberapa istilah yang perlu diketahui sehubungan dengan kustomasi lebar halaman blog ini. Untuk mempermudah simulasi, saya menggunakan template Minima milik blogspot. Mungkin Anda akan menemui kode yang agak berbeda namun pada prinsipnya sama. Jika Anda menggunakan Firefox, untuk mempermudah pencarian kode-kode dalam pengeditan ini, gunakan Ctrl + F.
Survei Gratis Dapet Duit
Halaman Blog
Dipresentasikan dengan kode seperti di bawah ini.
#outer-wrapper {
width: 660px;
margin:0 auto;
padding:10px;
text-align:$startSide;
font: $bodyfont;
}
Untuk melakukan kustomasi lebar halaman blog, Anda dapat merubah angka pada width sesuai keinginan.
Halaman Posting
Dipresentasikan dengan kode seperti di bawah ini.
#main-wrapper {
width: 410px;
float: $startSide;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden;/* fix for long non-text content breaking IE sidebar float */
}
Untuk melakukan kustomasi lebar halaman posting, Anda dapat merubah angka pada width sesuai kebutuhan.
Side Bar Blog
Dipresentasikan dengan kode seperti di bawah ini.
#sidebar-wrapper {
width: 220px;
float: $endSide;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
Untuk melakukan kustomasi lebar side bar blog, Anda dapat merubah angka pada width sesuai kebutuhan.
Header Blog,
Dipresentasikan dengan kode seperti di bawah ini.
#header-wrapper {
width:660px;
margin:0 auto 10px;
border:1px solid $bordercolor;
}
Untuk melakukan kustomasi lebar Header blog, Anda dapat merubah angka pada width sesuai kebutuhan.
Footer Blog
Dipresentasikan dengan kode seperti di bawah ini.
#footer {
width:660px;
clear:both;
margin:0 auto;
padding-top:15px;
line-height: 1.6em;
text-transform:uppercase;
letter-spacing:.1em;
text-align: center;
}
Untuk melakukan kustomasi lebar Footer blog, Anda dapat merubah angka pada width sesuai kebutuhan
Jika lebar salah satu dari kelima elemen tersebut (Halaman Blog, Halaman Posting, Side Bar Blog, Header Blog, dan Footer Blog) diubah maka akan mempengaruhi kesingkronisan elemen yang lain. Oleh karena itu, jika Anda ingin merubah lebar halaman blog maka selain merubah width pada halaman blog, Anda juga harus menyesuaikan lebar elemen halaman posting blog, header blog, footer blog dan (jika perlu) side bar. Jika tidak, Anda akan mendapatkan tampilan blog yang morat-marit.

DELAPAN LANGKAH MEMPERLEBAR HALAMAN BLOG
Sekarang saatnya untuk merubah lebar blog, dengan delapan langkah sebagai berikut.
Pertama, ubah width pada kode halaman blog, misalnya kita tentukan dengan lebar 900 pixel, seperti di bawah ini.
#outer-wrapper {
width: 900px;
margin:0 auto;
padding:10px;
text-align:$startSide;
font: $bodyfont;
}
Kedua, agar jarak antara halaman posting dan side bar tidak terlalu jauh yang dapat menyebabkan tampilan blog kurang rapi/serasi, maka ubah juga width pada kode halaman posting, misalkan 550 pixel, seperti di bawah ini.
#main-wrapper {
width: 550px;
float: $startSide;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
Ketiga, agar side bar kelihatan serasi dengan lebar halaman posting yang telah disesuakan tersebut maka Anda dapat merubahnya dengan lebar maksimal 350 pixel, yaitu 900 pixel (lebar halaman blog) dikurangi 550 pixel (lebar halaman posting). Namun agar jarak antara halaman posting dan side bar tidak berdempetan, Anda dapat memberi jarak antara 30 pixel sampai dengan 50 pixel sesuai selera masing-masing. Misalkan kita tentukan jaraknya 40 pixel, maka lebar side bar nya menjadi 310 pixel {900 – (550 + 40)} , seperti di bawah ini.
#sidebar-wrapper {
width: 310px;
float: $endSide;
word-wrap: break-word; /* fix for long text breaking sidebar float in IE */
overflow: hidden; /* fix for long non-text content breaking IE sidebar float */
}
Keempat, agar tidak timpang, Anda dapat merubah lebar header blog menjadi 900 pixel, seperti di bawah ini.
#header-wrapper {
width:900px;
margin:0 auto 10px;
border:1px solid $bordercolor;
}
Kelima, begitu juga dengan footer agar diperoleh lebar footer yang serasi dengan halaman blog, maka Anda dapat merubahnya menjadi 900 pixel, seperti di bawah ini.
#footer {
width:900px;
clear:both;
margin:0 auto;
padding-top:15px;
line-height: 1.6em;
text-transform:uppercase;
letter-spacing:.1em;
text-align: center;
}
Keenam, sebelum menyimpannya, alangkah baiknya Anda melihat tampilan previewnya terlebih dahulu.
Ketujuh, jika sudah yakin, simpan template.
Kedelapan, selesai.
Yang ingin mencoba, selamat mencoba ya, semoga sukses!!


READ MORE

Binary Tree

Tree merupakan struktur hirarkis dari sebuah susunan data. Dalam tree, kita mempunyai sebuah Root yang nantinya akan menjadi awal dari tree tersebut. Untuk tree, kita juga membutuhkan struct. Ada banyak jenis2 tree, tapi yang akan kita pelajari kali ini adalah binary tree dimana dia mempunyai 2 tangan.
Ini adalah contoh program binary tree mengenai klasifikasi tumbuhan :

#include <stdio.h>
#include <conio.h>
#include <malloc.h>
#include <string.h>
#include <windows.h>


void gotoxy(int,int);
void tambah();
void preOrder();
void find();
void Edit();
void hor(int);
void hapus();


struct Node{
        int nomor;
        char nama[50];
        char nama_ilmiah[30];
        char filum[40];
        struct Node *kiri;
        struct Node *kanan;
    };


int main(){
int pil;
struct Node *pohon;
pohon = NULL;
do{system ("color 7");
system("cls");
int nomor,cari,edit,hpus;
char nama[50],nama_ilmiah[30],filum[40];
gotoxy(22,3);
printf("PROGRAM KLASIFIKASI TUMBUHAN");
gotoxy(22,5);
printf("1. INPUT");
gotoxy(22,6);
printf("2. LIHAT KLASIFIKASI");
gotoxy(22,7);
printf("3. CARI KLASIFIKASI");
gotoxy(22,8);
printf("4. EDIT KLASIFIKASI");
gotoxy(22,9);
printf("5. HAPUS KLASIFIKASI");
gotoxy(22,10);
printf("6. E X I T");
gotoxy(22,11);
printf("Pilihan : "); scanf("%d",&pil);
switch(pil){
case 1: system("cls");
                    gotoxy(29,2);
                    printf("# FORM KLASIFIKASI #");
                    gotoxy(12,5);
                    printf("KODE KLASIFIKASI     : ");
                    gotoxy(12,7);
                    printf("NAMA                 : ");
                    gotoxy(12,9);
                    printf("NAMA ILMIAH          : ");
                    gotoxy(12,11);
                    printf("FILUM                : ");
                    gotoxy(35,5);scanf("%d",&nomor);
                    fflush(stdin);
                    gotoxy(35,7);gets(nama);
                    gotoxy(35,9);gets(nama_ilmiah);
                    gotoxy(35,11);gets(filum);
tambah(&pohon,nomor,nama,nama_ilmiah,filum);
break;
case 2: system("cls");if(pohon!=NULL){
                    gotoxy(25,2) ;
                    printf("#  DARTAR SELURUH KLASIFIKASI  #") ;
                    gotoxy(7,4);
                    printf("KODE          NAMA            NAMA ILMIAH           FILUM");
                    gotoxy(5,6);
                    preOrder(pohon);
                    gotoxy(12,14) ;
                    printf("Press Any Key..." );
                    }
                    else{
                    gotoxy(25,2) ;
                    printf("#  DARTAR KLASIFIKASI  #") ;
                    gotoxy(7,4);
                    printf("KODE          NAMA            NAMA ILMIAH           FILUM");
                    gotoxy(8,6);
                    printf("Data Masih Kosong...!!!");
                    gotoxy(12,14) ;
                    printf("Press Any Key..." );}
break;
            case 6 : system ("cls");
if (pohon!=NULL)
printf("jumlahnya %d",height(pohon));
else
printf("msh kosong...");
break;
            case 3: system("cls");
                    if(pohon!=NULL){
                    gotoxy(20,8);
                    printf("KODE KLASIFIKASI YANG DI CARI");
                    gotoxy(27,10); printf("K O D E : ");
                    gotoxy(39,10);
                    scanf("%d",&cari);
                    system("cls");
                    gotoxy(25,2) ;
                    printf("# DATA KLASIFIKASI YANG ANDA CARI #") ;
                     gotoxy(7,4);
                    printf("KODE          NAMA            NAMA ILMIAH           FILUM");
                    gotoxy(5,6);
                    find(&pohon,cari);
                    gotoxy(12,14) ;
                    printf("Press Any Key..." );
                    }
                    else{
                    gotoxy(25,2) ;
                    printf("#  DAFTAR KLASIFIKASI  #") ;
                     gotoxy(7,4);
                    printf("KODE          NAMA            NAMA ILMIAH           FILUM");
                    gotoxy(7,6);
                    printf("Data Masih Kosong.,!!!");
                    gotoxy(12,14) ;
                    printf("Press Any Key..." );}
                    break;
           case 4: system("cls");
                   if(pohon!=NULL){
                    gotoxy(20,8);
                    printf("KODE KLASIFIKASI YANG DI EDIT");
                    gotoxy(27,10); printf("N O M O R : ");
                    gotoxy(39,10);
                    scanf("%d",&edit);
                    system("cls");
                   Edit(&pohon,edit);}
                   else {
                   gotoxy(25,2) ;
                    printf("#  DAFTAR KLASIFIKASI  #") ;
                     gotoxy(7,4);
                    printf("KODE          NAMA            NAMA ILMIAH           FILUM");
                    gotoxy(7,6);
                    printf("Data Masih Kosong.,!!!");
                    gotoxy(12,14) ;
                    printf("Press Any Key..." );}
                    break;
            case 5: system("cls");
                    if(pohon!=NULL){
                    gotoxy(20,8);
                    printf("KODE KLASIFIKASI YANG DI HAPUS");
                    gotoxy(27,10); printf("K O D E : ");
                    gotoxy(39,10);
                    scanf("%d",&hpus);
                    system("cls");
                    //destroy_tree(&pohon,hpus);
                    }
                    else
                    {
                     gotoxy(25,2) ;
                    printf("#  DARTAR SELURUH KLASIFIKASI  #") ;
                    gotoxy(7,4);
                    printf("KODE          NAMA            NAMA ILMIAH           FILUM");
                    gotoxy(7,6);
                    printf("Data Masih Kosong.,!!!");
                    gotoxy(12,14) ;
                    printf("Press Any Key..." );}
                    break;
}
getch();
}while(pil!=7);
return 0;
}


void tambah(struct Node **root,int angka, char tumbuhan[], char ilmiah[],char keluarga []){
    struct Node *baru;
if((*root) == NULL){
baru = malloc(sizeof(struct Node));
baru->nomor = angka;
strcpy(baru->nama,tumbuhan);
strcpy(baru->nama_ilmiah,ilmiah);
strcpy(baru->filum,keluarga);
baru->kiri = NULL;
baru->kanan = NULL;


(*root) = baru;
(*root)->kiri = NULL;
(*root)->kanan = NULL;
        gotoxy(12,14);
printf("DATA TELAH DITAMBAHKAN, Press Any Key!!");
}
    else if(angka < (*root)->nomor){
        tambah(&(*root)->kiri,angka,tumbuhan,ilmiah,keluarga);}
else if(angka > (*root)->nomor){
        tambah(&(*root)->kanan,angka,tumbuhan,ilmiah,keluarga);
}
else if(angka == (*root)->nomor)
{gotoxy(5,23);
printf("Data sudah ada!");}
}


void preOrder(struct Node *root){
if(root != NULL){
printf("\t%d\t%s\t\t%s\t%s\n", root->nomor, root->nama, root->nama_ilmiah,root->filum);
preOrder(root->kiri);
preOrder(root->kanan);
}
}


void find(struct Node **root, int cari)
{
struct Node *find = (*root);//letakkan pointer find pada root
int ketemu=0;
if( find->nomor!=cari )//jika kata yang di cari tidak sama dengan data root
{
  while(find!=NULL && ketemu==0)//looping selama pointer find tidak sama dengan NULL
  {
    if( cari==find->nomor )//jika kata yang di cari sama dengan data find
    {
      printf("\t%d\t%s\t\t%s\t%s\n", find->nomor, find->nama, find->nama_ilmiah,find->filum);;//cetak kata yang dicari
      ketemu=1; break;//keluar dari looping
    }
    else//jika kata yang di cari tidak sama dengan data find
    if(cari<find->nomor)//jika lebih kecil
    {
    find = find->kiri;//maka telusuri sebelah kiri
    }
    else //jika lebih besar
    {
    find = find->kanan;//maka telusuri sebelah kanan
    }
  }
  if(ketemu!=1) printf("\tData Tidak Ditemukan.,!!");
}
else//jika kata yang dicari sama dengan root
if(find->nomor==cari){
printf("\t%d\t%s\t%s\t%s\n", (*root)->nomor, (*root)->nama, (*root)->nama_ilmiah,(*root)->filum);//cetak kata yang di cari
}
}


void Edit(struct Node **root, int cari)
{
struct Node *Edit = (*root);//letakkan pointer Edit pada root
int ketemu=0;
if( Edit->nomor!=cari )//jika kata yang di cari tidak sama dengan data root
{
  while(Edit!=NULL && ketemu==0)//looping selama pointer find tidak sama dengan NULL
  {
    if( cari==Edit->nomor )//jika kata yang di cari sama dengan data Edit
    {
        gotoxy(23,2);
        printf("# FORM EDIT DATA KLASIFIKASI#");
                    gotoxy(12,7);
                    printf("NAMA                 : ");
                    gotoxy(12,9);
                    printf("NAMA ILMIAH          : ");
                    gotoxy(12,11);
                    printf("FILUM                : ");
                    fflush(stdin);
                    gotoxy(35,7);gets(Edit->nama);
                    gotoxy(35,9);gets(Edit->nama_ilmiah);
                    gotoxy(35,11);gets(Edit->filum);
        gotoxy(5,23);
        printf("EDIT DATA SELESAI, TEKAN ENTER UNTUK KEMBALI.,!!");
        ketemu=1; break;//keluar dari looping
    }
    else//jika kata yang di cari tidak sama dengan data Edit
    if(cari<Edit->nomor)//jika lebih kecil
    {
    Edit = Edit->kiri;//maka telusuri sebelah kiri
    }
    else //jika lebih besar
    {
    Edit = Edit->kanan;//maka telusuri sebelah kanan
    }
  }
  if(ketemu!=1){
      gotoxy(20,10);
      printf("Data Tidak Ditemukan.,!!");}
}
else//jika kata yang dicari sama dengan root
if(Edit->nomor==cari){
        gotoxy(23,2);
        printf("# FORM EDIT DATA KLASIFIKASI #");
                    gotoxy(12,7);
                    printf("NAMA                 : ");
                    gotoxy(12,9);
                    printf("NAMA ILMIAH          : ");
                    gotoxy(12,11);
                    printf("FILUM                : ");
                   fflush(stdin);
                    gotoxy(35,7);gets(Edit->nama);
                    gotoxy(35,9);gets(Edit->nama_ilmiah);
                    gotoxy(35,11);gets(Edit->filum);
        gotoxy(5,23);
        printf("EDIT DATA SELESAI, TEKAN ENTER UNTUK KEMBALI.,!!");
}
}


void gotoxy(int x, int y)
{
HANDLE hConsoleOutput;
COORD dwCursorPosition;
dwCursorPosition.X = x;
dwCursorPosition.Y = y;
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput,dwCursorPosition);
}
int height(struct Node *root)
{
if (root == NULL) return -1;
int u = height(root->kiri), v = height(root->kanan);
if (u > v) return u+1;
else return v+1;
}
int count(struct Node *root)
{
if (root == NULL) return 0;
return count(root->kiri) + count(root->kanan) + 1;
}

READ MORE

Membuat Objek Melayang di Blog

Objek melayang atau sering juga di sebut dengan Float Top Bar, sebuah jendela kecil yang muncul dari atas halaman setiap kali kita mengunjungi Website atau Blog. Float Top Bar ini biasanya berisi Content Iklan ataupun sebuah Form SubScribe sehingga pasti terlihat oleh pengunjung Website atau Blog kita. Untuk membuat Iklan melayang seperti ini sangatlah mudah, hanya dengan beberapa langkah, maka Iklan Melayang tersebut sudah bisa terpasang pada Website atau Blog Anda.

 Oke, berikut ini adalah langkah-langkah pembuatannya :
Login Ke Blogger.com dengan Akun anda masing-masing Pastinya
Masuk ke Tab Tata Letak
Pilih Elemen Halaman
Tambah Gadget Pilih HTML / JAVASCRIPT
Dan copy kode di bawah ini kedalamnya yah

&lt;a onblur=&quot;try {parent.
deselectBloggerImageGracefully();} catch(e) {}&quot; href=&quot;http://3.bp.blogspot.com/_xBW8tvgOXL4/S2eYQCC16pI/AAAAAAAABkE/f-qrOCcQZzU/s1600-h/Widget.JPG&quot;&gt;&lt;img style=&quot;margin: 0px auto 10px; display: block; text-align: center; cursor: pointer; width: 400px; height: 300px;&quot; src=&quot;http://3.bp.blogspot.com/_xBW8tvgOXL4/S2eYQCC16pI/AAAAAAAABkE/f-qrOCcQZzU/s400/Widget.JPG&quot; alt=&quot;&quot; id=&quot;BLOGGER_PHOTO_ID_5433478876639914642&quot; border=&quot;0&quot; /&gt;&lt;/a&gt;

&lt;style type=&quot;text/css&quot;&gt;
#gb{
position:fixed;
top:10px;
z-index:+1000;
}
* html #gb{position:relative;}
.gbcontent{
float:right;
border:2px solid #A5BD51;
background:#ffffff;
padding:10px;
}
&lt;/style&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
function showHideGB(){
var gb = document.getElementById(&quot;gb&quot;);
var w = gb.offsetWidth;
gb.opened ? moveGB(0, 30-w) : moveGB(20-w, 0);
gb.opened = !gb.opened;
}
function moveGB(x0, xf){
var gb = document.getElementById(&quot;gb&quot;);
var dx = Math.abs(x0-xf) &gt; 10 ? 5 : 1;
var dir = xf&gt;x0 ? 1 : -1;
var x = x0 + dx * dir;
gb.style.top = x.toString() + &quot;px&quot;;
if(x0!=xf){setTimeout(&quot;moveGB(&quot;+x+&quot;, &quot;+xf+&quot;)&quot;, 10);}
}
&lt;/script&gt;
&lt;div id=&quot;gb&quot;&gt;
&lt;div class=&quot;gbtab&quot; onclick=&quot;showHideGB()&quot;&gt; &lt;/div&gt;
&lt;div class=&quot;gbcontent&quot;&gt;
&lt;div style=&quot;text-align:right&quot;&gt;
&lt;a href=&quot;javascript:showHideGB()&quot;&gt;
.:[Close][Klik 2x]:.
&lt;/a&gt;
&lt;/div&gt;
&lt;center&gt;

Masukan Kode iklan atau Gambar yang anda inginkan di sini

&lt;/center&gt;
&lt;script type=&quot;text/javascript&quot;&gt;
var gb = document.getElementById(&quot;gb&quot;);
gb.style.center = (30-gb.offsetWidth).toString() + &quot;px&quot;;
&lt;/script&gt;&lt;/center&gt;&lt;/div&gt;&lt;/div&gt;
READ MORE

hanif fuadi nurdin. Diberdayakan oleh Blogger.