Rabu, 22 Februari 2017

TUTORIAL GREENFOOT - MEMBUAT GAME SEDERHANA ALA FEEDING FRENZY


Gambaran Umum Game

• Game ini memiliki skenario sederhana yaitu 1 aktor ikan yang lapar, 2 aktor ikan yang dapat dimakan, 1 aktor ikan yang beracun.
• Game terdiri dari 2 scene yaitu scene Level dan Menu.
• Pada Level1, jika berhasil memakan lebih dari 10 ikan, maka pemain dinyatakan menang. Sedangkan jika pemain menyentuh ikan beracun, maka pemain dinyatakan kalah.


Langkah Pembuatan
Langkah Pembuatannya adalah sebagai berikut :

1) Siapkan Resource Image dan Sound untuk project ini.

(Download di SINI )

Letakan gambar berikut di folder images :
*Semua image berformat .png

Letakan file suara berikut di folder sounds :


*Bisa pakai gambar dan sounds dari anda sendiri, tapi jangan lupa nama dan ekstensi disesuaikan dengan coding nantinya.

Buat subclass-subclass berikut :




2) Mari kita Mulai Coding!

Class Levels

 import greenfoot.*;   
 abstract class Levels extends World  
 {  
   public Levels()  
   {      
     super(800, 600, 1);  
   }  
 }  


Class Level1

 import greenfoot.*;   
 public class Level1 extends Levels  
 {  
   public Level1()  
   {    
     super();  
     prepare();  
  }  
  public void prepare()  
   {  
     Crab crab = new Crab();  
     addObject(crab, 506, 668);  
     Crab crab2 = new Crab();  
     addObject(crab2, 657, 602);  
     crab.setLocation(499, 546);  
     crab2.setLocation(652, 567);  
     crab.setLocation(491, 511);  
     crab.setLocation(482, 501);  
     IkanJahat hungryFish = new IkanJahat();  
     addObject(hungryFish, 434, 135);  
     fish fish = new fish();  
     addObject(fish, 212, 262);  
     fish fish2 = new fish();  
     addObject(fish2, 408, 307);  
     fish fish3 = new fish();  
     addObject(fish3, 506, 313);  
     fish fish4 = new fish();  
     addObject(fish4, 517, 268);  
     fish fish5 = new fish();  
     addObject(fish5, 203, 89);  
     fish fish6 = new fish();  
     addObject(fish6, 147, 51);  
     fish fish7 = new fish();  
     addObject(fish7, 102, 169);  
     fish fish8 = new fish();  
     addObject(fish8, 94, 254);  
     fish fish9 = new fish();  
     addObject(fish9, 180, 320);  
     fish fish10 = new fish();  
     addObject(fish10, 264, 342);  
     fish fish11 = new fish();  
     addObject(fish11, 311, 53);  
     fish fish12 = new fish();  
     addObject(fish12, 519, 56);  
     fish fish13 = new fish();  
     addObject(fish13, 266, 217);  
     fish fish14 = new fish();  
     addObject(fish14, 422, 237);  
     fish fish15 = new fish();  
     addObject(fish15, 89, 99);  
     fish fish16 = new fish();  
     addObject(fish16, 57, 353);  
     fish1 fish1 = new fish1();  
     addObject(fish1, 154, 149);  
     fish1 fish17 = new fish1();  
     addObject(fish17, 259, 259);  
     fish1 fish18 = new fish1();  
     addObject(fish18, 25, 42);  
     fish1 fish19 = new fish1();  
     addObject(fish19, 40, 268);  
     fish1 fish110 = new fish1();  
     addObject(fish110, 417, 368);  
     fish1 fish111 = new fish1();  
     addObject(fish111, 524, 251);  
     fish1 fish112 = new fish1();  
     addObject(fish112, 317, 298);  
     fish3 fish32 = new fish3();  
     addObject(fish32, 259, 159);  
     fish3 fish33 = new fish3();  
     addObject(fish33, 40, 148);  
     fish3 fish34 = new fish3();  
     addObject(fish34, 530, 205);  
     fish3 fish35 = new fish3();  
     addObject(fish35, 242, 37);  
     fish3 fish36 = new fish3();  
     addObject(fish36, 145, 355);  
     fish3 fish37 = new fish3();  
     addObject(fish37, 174, 241);  
     fish3 fish38 = new fish3();  
     addObject(fish38, 553, 378);  
     fish111.setLocation(443, 24);  
     fish2.setLocation(574, 127);  
     fish38.setLocation(347, 230);  
     fish110.setLocation(528, 370);  
     fish10.setLocation(395, 371);  
     fish36.setLocation(408, 306);  
     fish.setLocation(257, 382);  
     fish17.setLocation(147, 373);  
     fish37.setLocation(104, 28);  
     fish33.setLocation(33, 376);  
     fish32.setLocation(186, 251);  
     fish34.setLocation(575, 68);  
     fish38.setLocation(501, 219);  
     fish3 fish39 = new fish3();  
     addObject(fish39, 260, 149);  
     fish3 fish310 = new fish3();  
     addObject(fish310, 48, 159);  
     removeObject(fish14);  
     removeObject(fish39);  
     removeObject(fish36);  
     removeObject(fish10);  
     removeObject(fish6);  
     removeObject(fish12);  
     removeObject(fish);  
     removeObject(fish9);  
     fish32.setLocation(206, 328);  
     fish13.setLocation(300, 359);  
     hungryFish.setLocation(425, 143);  
     fish34.setLocation(415, 348);  
     fish35.setLocation(544, 65);  
     fish111.setLocation(215, 31);  
     fish3.setLocation(267, 214);  
     fish7.setLocation(433, 29);  
     fish11.setLocation(200, 250);  
     fish34.setLocation(249, 572);  
     fish110.setLocation(727, 620);  
     fish13.setLocation(934, 322);  
     fish112.setLocation(368, 686);  
     fish32.setLocation(147, 608);  
     fish17.setLocation(597, 551);  
     fish33.setLocation(39, 471);  
     fish16.setLocation(270, 383);  
     hungryFish.setLocation(765, 128);  
     fish4.setLocation(477, 341);  
     fish38.setLocation(637, 437);  
     fish3.setLocation(377, 143);  
     fish11.setLocation(160, 357);  
     fish8.setLocation(891, 515);  
     fish1.setLocation(375, 519);  
     fish5.setLocation(666, 388);  
     fish111.setLocation(263, 216);  
     fish37.setLocation(153, 198);  
     removeObject(fish7);  
     removeObject(fish3);  
     removeObject(fish11);  
     removeObject(fish17);  
     removeObject(fish13);  
     removeObject(fish4);  
     bubble bubble = new bubble();  
     addObject(bubble, 763, 375);  
   }  
 }  


Class IkanJahat

 import greenfoot.*;   
 public class IkanJahat extends Actor  
 {  
   public int totalPoisonEat = 0;  
   public int totalFishEat = 0;  
   Score score_field = new Score("Score:" + totalFishEat);  
   public void act()   
   {  
     keyBoardControl();  
     eat();  
     checkScore();  
   }    
   public void checkScore()  
   {  
     if(totalPoisonEat >= 1)   
     {  
       setImage("fishMainDead.png");   
       loose alert_loose = new loose();  
       getWorld().addObject(alert_loose, 370, 300);     
       Greenfoot.delay(350);  
       Greenfoot.setWorld(new MenuScreen());  
     }  
     if(totalFishEat >= 10)   
     {  
       win alert_win = new win();  
       getWorld().addObject(alert_win, 370, 300);   
        Menus.titleSound.stop();  
       Greenfoot.playSound("fanfare.wav");  
       //Greenfoot.stop();  
       Greenfoot.delay(350);  
       Greenfoot.setWorld(new MenuScreen());  
     }  
   }  
   public void keyBoardControl()  
   {   
     if (Greenfoot.isKeyDown("left") )  
     {  
       setImage("fishMain2left.png");      
       move (-3) ;  
       if (Greenfoot.isKeyDown("down"))  
         turn (-3) ;  
       if (Greenfoot.isKeyDown("up"))  
         turn (3);     
     }     
     if (Greenfoot.isKeyDown("right"))  
     {   
       setImage("fishMain2.png");  
       move (3);  
       if (Greenfoot.isKeyDown("down"))  
         turn (3) ;  
       if (Greenfoot.isKeyDown("up"))  
         turn (-3);  
     }  
   }  
   public void eat()  
   {  
     Actor Score;  
     Actor fish;  
     fish = getOneObjectAtOffset(4, 4, fish.class);  
     getWorld().addObject(score_field, 90, 30);  
     if (fish != null)  
     {  
       World Sea;  
       Sea = getWorld() ;  
       Sea.removeObject(fish);  
       Greenfoot.playSound("eating.wav");  
       totalFishEat++;  
       score_field.setText("Score: " +totalFishEat);  
       hitafish();  
     }  
     Actor fish1;  
     fish1 = getOneObjectAtOffset(4, 4, fish1.class);  
     if (fish1 != null)  
     {  
       World world;  
       world = getWorld() ;  
       world.removeObject(fish1);  
       Greenfoot.playSound("eating.wav");  
       totalFishEat++;  
       score_field.setText("Score: " +totalFishEat);  
       hitafish();  
     }  
     Actor fish3;  
     fish3 = getOneObjectAtOffset(4, 4, fish3.class);  
     if (fish3 != null)  
     {  
       World world;  
       world = getWorld() ;  
       world.removeObject(fish3);  
       Menus.titleSound.stop();  
       Greenfoot.playSound("loose.mp3");  
       totalPoisonEat++;  
       hitafish();  
     }  
   }  
   private void hitafish()  
   {  
     Levels SeaWorld = (Levels) getWorld();  
   }  
 }  

Class Menus

 import greenfoot.*;   
 abstract class Menus extends World  
 {  
   public static GreenfootSound titleSound;  
   public Menus()  
   {    
     super(720, 480, 1);  
     if (this.getClass().getName().equalsIgnoreCase("MenuScreen"))  
     {  
       addObject(new StartBtn(), 80, 100);  
       addObject(new StoryBtn(), 100, 220);  
       addObject(new HelpBtn(), 80, 310);  
       titleSound = new GreenfootSound("title-theme.mp3");  
       titleSound.stop();  
             titleSound.setVolume(70);  
             titleSound.playLoop();  
     }  
     else  
     {  
       addObject(new BackBtn(), 100, 400);  
     }  
   }  
 }  

Class Button

 import greenfoot.*;   
 public class Buttons extends Actor  
 {  
   public void act(String buttonName)   
   {  
     if (Greenfoot.mouseMoved(this)) {  
       setImage(buttonName + "_over.png");  
     } else if (Greenfoot.mouseMoved(null)) {  
       setImage(buttonName + ".png");  
     }  
     if (Greenfoot.mousePressed(this)) {  
       getImage().scale((int)Math.round(getImage().getWidth() * 0.9), (int)Math.round(getImage().getHeight() * 0.9));  
     }  
     if (Greenfoot.mouseClicked(null) || Greenfoot.mouseDragEnded(null)) {  
       setImage(buttonName + ".png");   
     }  
     if (Greenfoot.mouseClicked(this)) {  
       setImage(buttonName + ".png");  
       Greenfoot.delay(5);   
       if   (buttonName.equalsIgnoreCase("StartBtn")) Greenfoot.setWorld(new Level1());  
       else if (buttonName.equalsIgnoreCase("StoryBtn")) Greenfoot.setWorld(new StoryScreen());  
       else if (buttonName.equalsIgnoreCase("HelpBtn")) Greenfoot.setWorld(new HelpScreen());  
       else if (buttonName.equalsIgnoreCase("BackBtn")) Greenfoot.setWorld(new MenuScreen());  
     }  
   }  
 }  


Pada setiap class button (story, start, help), letakan statement ini (pada method act)

 public void act()   
   {    super.act(this.getClass().getName());  
   }  


Untuk membuat Kepiting (crab) bergerak, letakkan kode berikut pada class Crab


 import greenfoot.*;  
 public class Crab extends Actor  
 {  
     public void act()   
   {  
      setLocation(getX() - 2, getY());  
      if (getX() <= 0)  
      {  
          setLocation(getWorld().getWidth() +getX() , getY());  
      }  
   }    
 }   


Untuk membuat gelembung (bubble) bergerak, letakkan kode berikut pada class bubble

 import greenfoot.*;  
 public class bubble extends Actor  
 {  
   public void act()   
   {  
     setLocation(getY() - 5, getX());  
      if (getY() <= 0)  
      {  
          setLocation(getWorld().getHeight() + 20 , Greenfoot.getRandomNumber(600));  
      }  
   }     
 }  


Aktor crab dan bubble hanyalah aktor pendukung, tidak ada pengaruhnya pada jalannya game. Hanya sebagai animasi tambahan supaya game lebih menarik.

Pada kelas fish (ikan yang dimakan / ikan musuh) kode dasarnya adalah sebagai berikut 


Class Fish


 import greenfoot.*;  
 public class fish extends Actor  
 {  
   public void act()   
   {  
     move (2) ;  
     if (Greenfoot.getRandomNumber (20) < 10)  
   {  
     turn (Greenfoot.getRandomNumber (50) - 20) ;  
   }   
   if (getX () <= 5 || getX() >= getWorld().getWidth () - 5)  
   {  
   turn (180) ;  
   }  
   if (getY () <= 5 || getY() >= getWorld().getHeight () - 5)  
   {  
     turn (180) ;  
   }  
   }     
 }  


Listing Program ini dipakai juga untuk class fish1 dan fish3. Untuk melakukan variasi terhadap gerakan ikan, maka kita dapat mengubah nilai move() dan turn() diatas sesuai dengan keinginan.

Pada Class Score, kode nya adalah sebagai berikut

Class Score

 import greenfoot.*;   
 import java.awt.Color;  
 import java.applet.*;  
 import java.awt.*;  
 public class Score extends Actor  
 {  
 Font font1=new Font("Helvetica",Font.BOLD,35);  
  public Score(String text)  
  {  
    GreenfootImage img_field = new GreenfootImage(140,50);  
    img_field.setFont(font1);  
    img_field.setColor(Color.white);  
    img_field.drawString(text, 0, 45);  
    setImage(img_field);  
   }  
  public void setText(String text)  
   {  
     GreenfootImage img_field = getImage();  
     img_field.clear();  
     img_field.drawString(text, 0, 45);  
   }  
 }  
Tutorial Greenfoot
Versi 1.0
untuk Greenfoot versi 1.0
Greenfoot merupakan lingkungan pengembangan Java(Java development environtment) yang bersifat interaktif dan didesain untuk tujuan pendidikan pada level SMA dan S1. Dengan program ini, seseorang dapat mengembangkan aplikasi grafis dua dimensi, seperti simulasi dan game interaktif.
Greenfoot dikembangkan oleh University of Kent danLa Trobe University, dengan dukungan dari Oracle. Software ini gratis, dirilis di bawah lisensi GPL. Greenfoot tersedia pada banyak platform, seperti MS Windows, Mac OS X, Linux, Sun Solaris, dan beberapa JVM terbaru.

Dengan greenfoot, seorang siswa/mahasiswa dapat belajar pemrograman berorientasi obyek menggunakan Java. Mereka dapat menciptakan 'actor' dalam suatu 'world'untuk membangun game, simulasi, dan program-program grafis lainnya.

Greenfoot bersifat visual dan interaktif. Perangkat visualisasi dan interaksi dibangun di dalam environment tersebut.Actor diprogram menggunakan kode Java yang standar, sehingga memberikan pengalaman pemrograman berbasis teks yang bersifat tradisional dengan eksekusi visual.

Antarmuka yang digunakan sepenuhnya menggunakan konsep IDE, dimana didalamnya terdapat manajemen proyek,auto-completion, syntax highlighting, dan tool-tool lain yang biasanya terdapat pada kebanyakan IDE. Hal ini memungkinkan seorang pemrogram mempublikasikan pekerjaannya baik secara online maupun offline. Meskipun demikian, antarmukanya didesain untuk tetap sederhana dan mudah digunakan, sehingga cocok untuk para pemula.
Greenfoot digunakan oleh ribuan institusi di seluruh dunia. Program ini memberikan peralihan yang mudah keenvironment lainnya, semacam BlueJ dan IDE-IDE profesional yang lain.
Program dalam greenfoot ditulis dengan bahasa Java standar, yang merupakan salah satu bahasa utama dalam dunia akademis dan industri. Software ini didesain agar cukup mudah bagi pemula. Dengan digunakannya Java, memungkinkan seorang programmer membuat aplikasi yang impresif, fleksibel, dan canggih.

Software ini memang cocok bagi siswa/mahasiswa yang ingin belajar dan memperdalam baik secara konsep maupun praktik pemrograman berorientasi obyek. Software tersebut dapat didownload pada alamat inihttp://www.greenfoot.org/daownload, yang tersedia dalam berbagai platform sistem operasi. Beberapa contoh program dapat didownload pada alamat ini: http://www.greenfoot.org/book/material/book-scenarios.zip.
Untuk membuat sebuah game yang simple, diperlukan beberapa tahap antara lain;
  • Ide
    Objek 1 mengambil sebuah bola tanpa tertangkap oleh objek 2
  • Membuat Skenario
    Objek 1 (Ronaldo) mengambil bola dan setiap menemui bola maka bola tersebut akan di ambil. Objek 1 (Ronaldo) akan berkeliing ke seluruh area sampai mengambil seluruh bola yang ada tanpa tertangkap oleh objek 2 (Messi).
  • Objek
    1. Word : Disesuaikan
    2. Aktor : Ronaldo dan Messi
    3. Target : Bola
  • Implementasi dalam Greenfoot
Nah, teman-teman sekrang kita masuk untuk membuat sebuah pemrograman dasar game menggunakan Greenfoot.
1.  Bukalah Aplikasi Greenfoot
0Maka akanmuncul tampilan seperti ini;
3
2.  Buatlah sebuah scenario baru. Caranya; Scenario => New => Nama Objek
1Kemudian akan muncul kotak dialog, dimana teman-teman akan menyimpan diamana hasil kerja teman-teman.
2
3.  Buatlah sebuah sub class di class word dengan cara klik kanan lalu pilih new subclass. lalu akan muncul jendela baru untuk memasukkan nama kelas. saya memberikan nama cell (perhatikan huruf besar dan kecilnya, karena pada pemrograman java bersifat case sensitive artinya huruf besar dan kecil sangat berpengaruh).
4
Akan muncul kotak dialog;
3
Pilih background yang teman-teman sukai, kemudian jangan lupa untuk memberikan nama class. Kemudian pilih OK. Untuk melihat hasilnya, klik compile maka akan tampil background yang dipilih tadi.
6
Klik kanan pada cell kemudian pilih open editor, maka akan ta;mpil tampilan kode program class word dalam hal ini cell
8
9
Perhatikan diatas cell ada perintah super(600,400,1). Perintah ini digunakan untuk membuat ukuran layar dengan panjang 600 x tinggi 400 dengan ukuran cell 1 x 1.
4.  Sekarang kita akan membuat Subclass Actor.
11
10
Disini untuk memasukkan gambar diatas, pilih import from file kemudian pilih gambar sesuai tema. setelah itu,  klik gambar tersebut kemudian jangan lupa untuk mengisikan nama class.  berikut tampilan depan
7
12
5.  Menempatkan objek dalam subclaass cell. Klik kanan pada cell kemudian pilih open editor
14
Tambahkan Program
ronaldo ronaldo = new ronaldo ();        //menciptakan objek
addObject (ronaldo, 50, 50);        //mengatur koordinat letak actor
        
messi messi = new messi();
addObject (messi, Greenfoot.getRandomNumber(400), 
Greenfoot.getRandomNumber(200) + 100);
Compile dan jika tidak ada kesalahan syntax lihat apa yang terjadi pada subclass cell.
17
6.  Mengatur gerak aktor dengan Keyboard
Tambahkan kode program pada aktor ronaldo seperti berikut :
if (Greenfoot.isKeyDown(“rigth”)) {
    setLocation(getX() + 2, getY());
}
if (Greenfoot.isKeyDown(“left”)) {
    setLocation(getX() – 2, getY());
}
if (Greenfoot.isKeyDown(“up”)) {
    setLocation(getX(), getY() – 2);
}
if (Greenfoot.isKeyDown(“down”)) {
    setLocation(getX(), getY() +2);
16Telan compile dan pastikan coding yang teman buat sudah sesuai, jika tidak terjadi kesalahan maka akan muncul tulisan Class compiled – no syntax error.
7.  Cara membuat gerakan lain
buatlah 2 buah method didalam kode program subclass ronaldo, seperti berikut;
public void checkMovement()
    
  {    if (Greenfoot.isKeyDown(“right”)) {
       move(3);
    }
    if (Greenfoot.isKeyDown(“left”)) {
       move(-3);
    }
  }
  public void checkDirection(){
if (Greenfoot.isKeyDown(“up”)) {
       turn(-3);
    }
if (Greenfoot.isKeyDown(“down”)) {
       turn(3);
    }
  }
Panggil method tersebut dalam method act () dengan perinta;
chekMovement();
chekDirection();
Compile dan jika tidak ada kesalahan penulisan maka coba jalankan program dan lihat perubahan yang akan terjadi.
8.  Membuat objek (bola) sebagai target
Menciptakan objek bola pada subsclass cell, tambahkan kode program;
 numberofbola = Greenfoot.getRandomNumber(20);
                 for (int i = 0; i <= numberofbola; i++)
        {
            bola bola = new bola();
            addObject(bola, Greenfoot.getRandomNumber(350), Greenfoot.getRandomNumber(350));
        }
      }
      
    public int getNumberOfbola() {
        return numberofbola;
18
Jagan lupa, untuk memberikan class bola pada class cell. ( public int numberofbola; )
Berikut, hasil kode program.
15
9.  Mengambil TargetBuat method pada aktor dalam kasus ini yaitu actor ronaldo bertemu dengan bola.
pada act() berikan kode program;
if (foundbola()) {
             eatbola();
kemudian;
public boolean foundbola()  {
      Actor bola = getOneObjectAtOffset(0, 0, bola.class);
      if(bola !=null)  {
          return true;
        }  else  {
            return false;
        }
    }
    public void eatbola()  {
        Actor bola = getOneObjectAtOffset(0, 0, bola.class);
        if(bola !=null) {
            getWorld().removeObject(bola);
        }
19
10.  Objek (messi) sebagai halangan objek (ronaldo) untuk mengambil bolaUntuk membuat program ini, terlebih dahulu kita masuk ke open editor pada actor (messi), dengan program
public void act() 
    {
        // Add your action code here.
         if (foundronaldo()) {
            eatronaldo(); 
        }
        if(canMove()) {
            move (3);
        } else {
            turn(180);
            move(5);
        }
            }
public boolean canMove()
{
World myWorld = getWorld();
int x = getX();
if (x >= (myWorld.getWidth() – 10)) {
return false;
} else if (x <= 10) {
return false;
} else {
return true;
}
}
public boolean foundronaldo() { 
      Actor ronaldo = getOneObjectAtOffset(0, 0, ronaldo.class);
      if(ronaldo !=null) {
          return true;
        } else {
            return false;
        }
    } 
        public void eatronaldo() {
        Actor wombat = getOneObjectAtOffset(0, 0, ronaldo.class);
        if(wombat !=null) {
        getWorld().removeObject(wombat);
        }
}
}
20



Jumat, 13 Januari 2017

Perangkat Jaringan Komputer dan Fungsinya



1. Modem

Modem (Modulator Demodulator) merupakan perangkat yang menghubungkan kita ke internet. Perangkat ini berfungsi mengubah sinyal Analog menjadi sinyal Digital. Modem mengganti sinyal digital dari komputer menjadi sinyal analog ketika melewati medium seperti saluran telepon, kemudian modem merubah kembali sinya tersebut menjadi sinya digital saat menuju komputer tujuan. Hal ini dilakukan agar bisa dipahami oleh komputer.
2. Kabel Jaringan
Kabel jaringan merupakan peralatan yang berfungsi sebagai media penghubung antara komputer dengan komputer atau komputer dengan perangkat jaringan lainnya. Berikut adalah jenis-jenis kabel yang digunakan dalam jaringan komputer.
  • Twisted Pair (UTP dan STP)
  • Coaxial
  • Fiber Optic
3. Network Interface Card (NIC)
Perangkat keras jaringan komputer yang satu ini dikenal dengan istilah Ethernet Card atau lebih populer dengan istilah LAN Card. Adalah kartu jaringan yang berfungsi sebagai penghubung antar komputer dengan sebuah jaringan. Umumnya NIC ini sudah terintegrasi dengan motherboard komoputer dan laptop, namun ada juga berupa kartu yang ditancapkan ke motherboard. Bahkan seiring dengan maju perkembangan, ada juga yang berupa USB.
4. Konektor

Konektor adalah alat yang menghubungkan kabel dengan network adapter. Coba bayangkan apabila tidak ada konektor, dengan cara bagaimana kabel-kabel jaringan dapat terhubung dengan network adapter atau NIC. Jeni konektor tentunya disesuaikan dengan jenis kabel yang digunakan.
  • Konektor RJ-45 digunakan untuk Kabel UTP
  • Konektor BNC/T digunakan untuk Kabel Coaxial
  • Konektor ST digunakan untuk Kabel Fiber Optic
5.  Hub
Hub adalah sebuah perangkat yang digunakan untuk menyatukan kabel-kabel network dari tiap workstation, server atau perangkat lain. Biasanya perangkat keras jaringan ini digunakan untuk membangun topologi bintang, kabel twisted pair datang dari sebuah workstation masuk kedalam hub.

6. Switch
Switch memiliki fungsi yang sama seperti hub, yaitu dapat membantu memecah – mecah jaringan lokal. Dari satu komputer server atau host, anda dapat menggunakan switch untuk mengkoneksikan lebih dari satu komputer client ke dalam satu jaringan LAN atau lokal.
  • Perbedaan Hub Dengan Switch
Yang membedakan fungsi hub dengan switch adalah kemampuannya. Switch memiliki kemampuan yang lebih pintar daripada hub, karena switch mampu membatasi dan juga mengatur jumlah paket data yang ditransmisikan ke dalam komputer client yang terhubung dalam jaringan. Jadi, dengan menggunakan swictch, pengaturan data antar client bisa dibedakan.
  • Fungsi Utama dari switch
    • Untuk menerima sinyal dan juga data dari komputer atau server
    • Mentransmisikan data dari server atau host ke dalam jaringan dan kepada client
    • Memperkuat sinyal yang ditransmisikan dari server atau host menuju client
    • Dapat mengatur dan juga membatasi jumlah paket data yang ditransmisikan kepada client.
    • Sebagai central connection point
    • Dapat berfungsi sebagai repeater
    • Sebagai splitter atau pemisah antar komputer di dalam suatu jaringa
          • .
7. Repeater


Repeater berfungsi untuk memperkuat sinyal dengan cara menerima sinyal dari suatu segmen jaringan lalu memancarkan kembali dengan kekuatan yang sama dengan sinyal asli pada segmen kabel yang lain.
8. Bridge
Fungsi dari bridge itu sama dengan fungsi repeater tapi bridge lebih fleksibel dan lebih cerdas dari pada repeater. Bridge dapat menghubungkan jaringan yang menggunakan metode transmisi yang berbeda. Misalnya bridge dapat menghubungkan Ethernet baseband dengan Ethernet broadband.
9. Router
Fungsi utama router adalah sebagai perangkat dalam jarinan komputer yang digunakan sebagai penghubung antara jaringan atau network. Router yang menentukan jalur mana yang terbaik untuk dilewati paket data sehingga data dapat sampai ke tujuannya.