09 May 2013

Pengurutan Menggunakan LinkedList (C)

Sebuah algoritma pengurutan angka sederhana yang dibuat dengan bahasa C. Iseng aku buat untuk menambah artikel blog ini.

Soal yang akan dipecahkan oleh program ini yaitu 
Mengurutkan angka 2, 3, 5, 6, 1, 8 , 3, 2, 1, 4, dan 9 sehingga urutan angka-angka tersebut menaik dari yang terkecil sampai yang terbesar dengan menggunakan LinkList.

Berikut ini source code yang dibuat dengan bahasa C.

#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
#include<string.h>


struct angka{
       struct angka *kiri;     
       char data;
       struct angka *kanan;
};

char tambahdata(struct angka **bt,char nilai){
        if(*bt==NULL){
          *bt=(struct angka*) malloc (sizeof(struct angka));
          if(*bt==NULL) return 0;
         
          (*bt)->kiri=NULL;
          (*bt)->data=nilai;
          (*bt)->kanan=NULL;                         
          return 1;
        } 
        else {
          if (nilai<((*bt)->data)){
             return tambahdata(&((*bt)->kiri),nilai);
          }
          else {
             return tambahdata(&((*bt)->kanan),nilai); 
          }   
        }    
}

void cetakdata(struct angka *bt)
{
        if(bt->kiri!=NULL){
          cetakdata(bt->kiri);                  
        }   
        if((bt->data!=NULL)){
          printf("%c ",bt->data);
        }
        if(bt->kanan!=NULL){
          cetakdata(bt->kanan);                  
        }
       
}

int main(void){
        struct angka *ptr;
        char karakter;
        char berhasil;
       
        ptr=NULL;
        printf("Solusi Pengurutan Angka\n");
        printf("-----------------------\n");
        printf("Masukkan Kumpulan Angka :\n");
       
        do{
          karakter=getchar();
          berhasil=tambahdata(&ptr,karakter);
          if (!berhasil){
            printf("Data gagal dimasukkan:\n");
            getch();
            return 0;             
          }                
        } while (karakter!= '\n');
       
        printf("\nData setelah diurutkan: \n");
       
        cetakdata(ptr);
       
        getch();
        return 0; 
}

Dan dibawah ini tampilan dari aplikasi tersebut.


Setelah data angka tersebut dimasukkan maka akan menampilkan angka yang sudah terurut.




Semoga bermanfaat...

05 May 2013

OSI Layer dan DOD

          DoD berdasarkan konsep TCP/IP adalah jenis protokol yang pertama digunakan dalam hubungan Internet. Dalam perkembangan, protokol TCP/IP digunakan sebagai standar de facto, yaitu standar yang diterima karena pemakaiannya yang luas.
Transmisi Control Protocol (TCP) dan Internet Protocol (IP), digabung disebut TCP/IP, yang dasarnya dikembangkan untuk US Departement of Defense (DOD), Advanced Research Project Agency Network (ARPANET) pada akhir tahun 1960 dan awal 1970.
           Banyak peneliti dari DOD bekerja pada Universitas yang segera mengadopsi teknologi ARPANET pada jaringan mereka. Jaringan Berdasarkan pada TCP/IP akhirnya terlibat dalam Internet. Service yang berasosiasi secara normal dengan internet mengirimkan melalui TCP IP. Service pada TCP/IP meliputi:
1.      Transfer file melaui File Transfer Protocol (FTP)
2.      Login remote melalui protocol Telnet
3.      Distribusi surat elektronik melalui Simple Mail Transfer Protocol (SMPTP)
4.      Mengakses halaman web melalui Hypertext Transfer Protocol (HTTP).
         TCP IP bergabung menjadi jaringan pribadi bersama membentuk internet dan World Wide Web. Layer Protocol TCP/IP kurang berhasil berkorespondensi dengan OSI Model. IP sulit menyamai ke OSI Data Link, network, dan Transport Layer. TCP sulit menyamai OSI Session Layer. IP menyediakan paket routing dan service forwarding ke Layer Jaringan yang lebih tinggi. IP tidak tergantung pada layer jaringan fisik dan secara efektif menyembunyikan dari layer diatasnya. Sebuah IP Layer adalah implementasi untuk virtuallayer jaringan fisik. IP menerima paket yang disebut datagram dari TCP dan Protocol Session Layer lainnya. IP menterjemahkan datagram kedalam sebuah format yang cocok untuk transport oleh jaringan fisik. Jika sebuah datagram lebih besar dari fisikal layer data transfer Unit. Sebagai contoh, sebuah paket Ethernet – maka IP layer memisahkan datagram kedalam bagian unit dan mentransmisikan secara individual. IP menghubungkan informasi header ke setiap unit, termasuk urutan dalam data gram. IP Layer pada saat menerima merakit ulang unit pada urutan sebetulnya dan mengirimkan datagram ke TCP.
              IP diasumsikan bahwa datagram akan melintasi jaringan ganda melalui titik koneksi yang disebut gateway. Yang menentukan rute transmisi melalui jumlah protocol yang berhubungan termasuk Internet Control Message Protocol (ICMP) dan Routing Informaation Protocol (RIP). Sebuah gateway adalah beberapa titik koneksi yang terkonek di dua atau lebih jaringan atau Segment Jaringan.. Sebuah gate way mungkin secara fisik diimplementasikan sebagai sebuah workstation, server, hub, bridge , router, atau switch.

Perbandingan OSI Layer dan DOD
TCP / IP DOD Layer
Lapisan Process / Application
Telnet
(Telecomunication Network)
a.       Menggunakan port 23
b.      Hubungan dua komputer sebagai terminal virtual
c.       Telnet memberikan akses penuh ke semua lapisan TCP/IP
Catatan :
Port adalah jalur yang digunakan untuk mengakses lapisan transport.
Socket adalah kumpulan dari port
FTP (File Transfer Protocol)
a.             Berfungsi memindahkan file dari satu komputer ke komputer lain melalui jaringan komputer.
b.             Menggunakan port 21.
c.             Jenis hubungan adalah connection-oriented (TCP).
d.            Tidak dapat mengeksekusi program secara remote.
SMTP (Simple Mail Transfer Protocol)
a.       Berfungsi untuk pengaturan pengiriman electronic mail.
b.      Menggunakan port 25.
c.       Jenis hubungan adalah connection-oriented (TCP).
TFTP (Trivial File Transfer Protocol)
a.       Merupakan penyederhanaan dari FTP
b.      Menggunakan port 69
c.       Jenis hubungan connectionless-oriented (UDP)
Kerberos
a.         Protokol untuk keamanan yang menggunakan sebuah alat yaitu autentication server untuk memeriksa password dan enkripsi yang digunakan
b.         Banyak digunakan oleh sistem operasi UNIX

DNS(Domain Name System)
Sistem yang memungkinkan translasi suatu nama dari host di jaringan komputer atau internet menjadi IP address.
SNMP (Simple Network Management Protocol)
Cara untuk mengawasi dan mengatur peralatan di jaringan komputer
RPC (Remote Prosedure Call)
Membuat sebuah fungsi remote transparant seperti pada komputer lokal
X Windows
Protokol yang memungkinkan dilakukannya proses multitasking

Lapisan Host-to-host
TCP (Transmission Control Protocol)
a.              Mengubah blok data yang besar menjadi segmen-segmen yang di beri nomor dan disusun secara berurutan agar penerima dapat menyusun kembali segmen-segmen itu seperti saat dikirimkan.
b.             Connection-oriented à memberikan kepastian bahwa penerima menerima paket yang dikirim.
UDP (User Datagram Protocol)
a.              Proses pengiriman paket bergantung pada lapisan atas untuk mengontrol keutuhan data.
b.             Banyak digunakan pada aplikasi-aplikasi yang tidak peka terhadap gangguan.
c.              Penggunaan bandwidth effisien.
d.             Berjenis protokol connectionless-oriented.
Lapisan Internet
IP (Internet Protocol)
a.             Protocol yang memberikan alamat atau identitas logika untuk peralatan di jaringan computer.
b.             Berbeda dengan MAC address yang diberikan secara permanen pada waktu peralatan di buat.
Fungsi IP Address
a.       Service tidak bergaransi (connectionless-oriented).
b.      Pemecahan (fragmentation) dan penyatuan paket-paket.
c.       Fungsi meneruskan paket.
d.        IP memiiki elemen yang di sebut time to live (TTL) yaitu membatasi lamanya waktu suatu paket beredar di dalam jaringan.
e.         Jika suatu paket memiliki informasi yang salah maka paket tidak akan berbedar secara terus menerus namun akan dihapus bila TTL sudah tercapai.
ARP (Address Resolution Protokol)
a.         Protokol yang digunakan untuk melakukan translasi dari IP yang diketahui menjadi MAC Address.
b.         Penggunaan ARP dengan asumsi bahwa pada umumnya bahwa relasi dari MAC address dengan IP address jarang berubah-ubah.
c.         Menggunakan protocol broadcast
RARP (Reverse Address Resolution Protocol)
a.             Protocol yang digunakan untuk mentranslasi MAC address yang diketahui menjadi IP address.
b.             Router menggunakan RARP untuk mendapatkan IP address dari MAC address yang diketahuinya.
BOOTP (Bootstrap Protocol)
a.       Protocol yang digunakan untuk proses boot pada jaringan diskless workstation.
b.      Dengan protocol ini IP address dapat diberikan berdasarkan MAC addressnya.
DHCP (Dynamic Host Configuration Protocol)
a.         Memberikan alamat IP secara otomatis pada suatu workstation yang menggunakan protocol TCP/IP.
b.         IP address yang dipinjamkan oleh DHCP bersifat sementara sampai dengan periode waktu tertentu.
c.         Bila suatu workstation berada dalam segemen jaringan yang berbeda digunakan DHCP relay.
ICMP (Internet Control Message Protocol)
Protocol yang digunakan untuk melaporkan jika terjadi suatu masalah dalam jaringan
Fungsi ICMP
a.         Memberitahukan bila terdapat paket yang tidak sampai ke tujuan.
b.         Memberitahukan pengirim bila memory buffer di router penuh.
c.         Memberitahukan pengirim bahwa paket telah melewati jumlah hop maksimum.
d.        Redirect paket dari gateway ke host.
e.         Untuk memeriksa hubungan (ping).
Lapisan Network Address
Setingkat dengan gabungan lapisan data link dan lapisan physical
Protocol yan berfungsi pada layer ini :
a.         Ethernet
b.         Token Ring
c.         FDDI

OSI LAYER
1. Physical
a.         Mengirim bit dan menerima bit.
b.         Berkomunikasi langsung ke berbagai jenis media komunikasi yang sesungguhnya.
2. Data Link
a.       Memastikan bahwa paket akan dikirim dengan peralatan yang sesuai di LAN dengan penggunakan alamat perangkat keras, menerjemahkan pesat-pesan dari layer network untuk dipindahkan ke layer phisical.
b.      MAC, LLC
3. Network
Mengelalo pengalamatan peralatan, melacak lokasi peralatan di jaringan dan memutuskan cara terbaik untuk memindahkan data.
4. Transport
a.       Melakukan segmentasi dan menyatukan kembali data yang tersegmentasi menjadi arus data.
b.       TCP, UDP
5. Session
a.       Membentuk, mengelola dan memutuskan session-session antar layer presentation. Session mengkoordinasi komunikasi antar sistem.
b.      NFS, SQL, X Window
6. Presentation
a.       Menyajikan data ke layer application dan bertanggung jawab pada penerjemahan data dan format data.
b.      PICT, TIFF, JPEG, MIDI, MPEG, RTF
7. Application
a.       Tempat user berinteraksi dengan komputer.
b.      WWW, email gateway, electronic data interchange, dll