Tuesday, December 4, 2018

MAKALAH ROUTING

CONTOH MAKALAH KONSEP ROUTING


BAB I
PENDAHULUAN
1.1  Latar Belakang
Jaringan komputer (jaringan) adalah jaringan telekomunikasi yang memungkinkan antar komputer untuk saling berkomunikasi dengan bertukar data. Pada jaringan tersebut banyak sekali rute yang digunakan untuk menyambungkan satu jaringan dengan yang lainnya agar bisa tersambung atau berkomunikasi. Salah satu rute untuk meyambungkan jaringan satu dengan yang lainnya adalah Routing
Routing adalah suatu protokol yang digunakan untuk mendapatkan rute dari satu jaringan ke jaringan yang lain. Dimana rute yaang digunakannya rute yang paling dekat. Selain itu routing juga memiliki dua jenis yaitu statis dan dynamic. Kedua jenis itu juga memiliki kelebihan dan kekurangan masing masing.
1.2  Rumusan Masalah
1.2.1        Pengertian Routing
1.2.2        Routing Statis
1.2.3        Routing Default
1.2.4        Routing Dynamic
1.3  Metode Pengumpulan Data
Metode yang digunakan yaitu membaca buku dan mencari sumber di internet



BAB II
PEMBAHASAN
2.1  Pengertian Routing
Routing adalah suatu protokol yang digunakan untuk mendapatkan rute dari satu jaringan ke jaringan yang lain. Rute ini, disebut dengan route dan informasi route secara dinamis dapat diberikan ke router yang lain ataupun dapat diberikan secara statis ke router lain.
Routing adalah proses dimana suatu router mem-forward paket ke jaringan yang dituju. Suatu router membuat keputusan berdasarkan IP address yang dituju oleh paket. Semua router menggunakan IP address tujuan untuk mengirim paket. Agar keputusan routing tersebut benar, router harus belajar bagaimana untuk mencapai tujuan. Ketika router menggunakan routing dinamis, informasi ini dipelajari dari router yang lain. Ketika menggunakan routing statis, seorang network administrator mengkonfigurasi informasi tentang jaringan yang ingin dituju secara manual.
Jika routing yang digunakan adalah statis, maka konfigurasinya harus dilakukan secara manual, administrator jaringan harus memasukkan atau menghapus rute statis jika terjadi perubahan topologi. Pada jaringan skala besar, jika tetap menggunakan routing statis, maka akan sangat membuang waktu administrator jaringan untuk melakukan update table routing. Karena itu routing statis hanya mungkin dilakukan untuk jaringan skala kecil. Sedangkan routing dinamis bisa diterapkan di jaringan skala besar dan membutuhkan kemampuan lebih dari administrator.
2.2  Routing Static
Routing static adalah entri suatu route yang dilakukan oleh seorang administrator untuk mengatur jalur dari sebuah paket data. Entri routing table bisa dilakukan dengan program yang terdapat pada perangkat tersebut.
Cara kerja routing statis dapat dibagi menjadi 3 bagian :
·         Administrator jaringan yang mengkonfigurasi router
·         Router melakukan routing berdasarkan informasi dalam tabel routing
·         Routing statis digunakan untuk melewatkan paket data Seorang administrator harus menggunakan perintah ip route secara manual untuk mengkonfiguras router dengan routing statis.
Berikut ini adalah syntax perintah yang kita gunakan untuk menambah sebuah route statis ke sebuah routing table :
Ip route [destination_network] [mask] [next-hop_address or exit interface]
[admistrative_distance] [permanent]
Daftar ini menggambarkan setiap perintah dalam string:
·         Ip route Perintah ini digunakan untuk menciptakan routing statis.
·         Destination_address Network yang kita tempatkan di routing table.
·         Mask Subnet mask yang digunakan di network.
·         Next-hop_address Alamat dari router di hop berikutnya (next-hop) yang akan menerima paket dan meneruskannya ke network remote.
·         Alamat next-hop address adalah sebuah interface router yang berada disebuah network
yang terhubung secara langsung. Kita harus mampu melakukan ping ke interface Alamat next-hop address adalah sebuah interface router yang berada disebuah network yang terhubung secara langsung. Kita harus mampu melakukan ping ke interface.
·         Exit interface Kita dapat menggunakan ini untuk menggantikan nexthop_address jika kita menginginkannya, tetapi ini hanya dapat diterapkan di sebuah link point-to-point, seperti sebuah WAN. Perintah ini tidak akan bekerja pada sebuah LAN seperti Ethernet.
·         Administrative_distance Secara default, route statis memiliki sebuah administrative distance (jarak administrasi) 1 (atau bahkan 0 jika kita menggunakan sebuah exit interface dibandingkan sebuah alamat next-hop). Kita dapat mengubah nilai default dengan menambahkan apa yang disebut administrative weight (bobot administrasi) pada akhir dari perintah ini.
·         Permanent jika interface dimatikan (shut down), atau router tidak dapat berkomunikasi ke router hop berikutnya, secara otomatis route akan dibuang dari routing table. Pilihan permanent akan membuat entri route ini tetap ada dirouting table meski apa pun yang terjadi.
Routing statis memiliki keuntungan-keuntungan berikut :
ü  Tidak ada overhead (waktu pemrosesan) pada CPU router, yang berarti kita mungkin dapat membeli router yang lebih murah daripada jika kita menggunakan routing dinamis.
ü  Tidak ada bandwidth yang digunakan di antara router, yang berarti kita mungkin dapat menghemat uang untuk link WAN
ü  Routing statis menambah keamanan, karena administrator dapat memilih untuk mengizinkan akses routing ke network tertentu saja.
Routing statis memiliki kerugian-kerugian berikut :
Ø  Administrator harus benar-benar memahami internetworking dan bagaimana setiap router dihubungkan untuk dapat mengkonfigurasi router dengan benar.
Ø  Jika sebuah network ditambahkan ke internetwork, administrator harus menambahkan sebuah route ke semua router secara manual.
Ø  Routing statis tidak sesuai untuk network-network yang besar karena
Ø  menjaganya akan menjadi sebuah pekerjaan full-time sendiri.
2.3  Routing Default
Routing default digunakan untuk mengirimkan paket-paket ke sebuah network tujuan yang remote yang tidak ada di routing table, ke router hop berikutnya. Routing default hanya digunakan pada network network stub yaitu network yang hanya memiliki satu jalur keluar (exit path) dari network tersebut.
Untuk mengkonfigurasikan sebuah route default, kita menggunakan wildcard di alamat network dan lokasi mask dari sebuah route statis. Bahkan sebenarnya, kita dapat menganggap sebuah route default sebagai route statis yang menggunakan wildcard daripada informasi network dan mask.
Berikut ini adalah syntax perintah yang kita gunakan untuk menambah sebuah route default ke sebuah routing table :
Ip route 0.0.0.0 0.0.0.0 [next-hop_address]
2.4  Routing Dynamic
Routing dinamis adalah ketika routing protokol digunakan untuk menemukan network dan melakukan update routing table pada router. Routing dinamis adalah ketika routing protokol digunakan untuk menemukan network dan melakukan update routing table pada router.
Terdapat dua jenis routing protokol yang digunakan di internetwork: internet gateway protocol (IGP) dan exterior gateway protocol (EGP). IGP digunakan untuk melakukan pertukaran informasi routing dengan router-router yang berada di autonomous system (AS) yang sama. IGP digunakan untuk melakukan pertukaran informasi routing dengan router-router yang berada di autonomous system (AS) yang sama. Sedangkan EGP digunakan untuk berkomunikasi antar-AS.
Sebuah contoh EGP adalah Border Gateway Protocol (BGP) Administative Distance (disingkat AD) digunakan untuk mengukur apa yang disebut trustworthiness (ke-dapatdipercaya-an) dari informasi routing yang diterima oleh sebuah router dari router tetangga.Sebuah administrative distance adalah sebuah bilangan bulat dari 0 sampai 255, dimana 0 adalah yang paling dapat dipercaya dan 225 berarti tidak akan lalu lintas data yang akan melalui route ini. Jika sebuah router menerima dua update mengenai network yang sama, maka hal pertama yang dicek oleh router adalah AD. Jika satu dari route yang di-advertised (diumumkan oleh router lain) memiliki AD yang lebih rendah dari yang lain, maka route dengan AD terendah tersebut akan ditempatkan di routing table. Jika kedua route yang di-advertised memiliki AD yang sama, maka yang disebut metrics dari routing protokol(misalnya jumlah hop atau bandwidth dari sambungan) akan digunakan untuk menemukan jalur terbaik ke network remote. Router yang diadvertised dengan metrics terendah akan ditempatkan di routing table. Tetapi jika kedua route memiliki AD dan metric yang sama, maka routing protokol akan melakukan load-balance (pengimbangan beban) ke network remote (yang berarti router akan mengirimkan paket melalui kedua link yang memiliki AD dan metric yang sama tersebut).
Jika sebuah network terhubung secara langsung, router akan selalu menggunakan interface yang terhubung ke network itu. Jika seorang administrator mengkonfigurasikan sebuah route statis, router akan lebih mempercayai route statis tersebut dibandingkan route
dinamis yang dipelajari dari router lain. Kita dapat mengubah administrative distance dari route statis tetapi secara default mereka memiliki AD 1.
Jika anda memiliki sebuah route statis, route yang diumumkan oleh RIP (RIPadvertised route), dan sebuah route yang diumumkan oleh IGRP (IGRPadvertised route),
maka secara default router akan selalu menggunakan route statis kecuali jika kita mengubah
AD dari route statis tersebut.
Terdapat tiga class routing protokol :
1. Distance Vector Protokol, distance-vector menemukan jalur terbaik ke sebuah nerwork remote dengan menilai jarak. Setiap kali sebuah paket melalui sebuah router disebut sebagai sebuah hop. Route dengan hop yang paling sedikit ke network yang dituju akan menjadi route terbaik. Vektor menunjukan arah (direction) ke network remote. Baik RIP dan IGRP adalah routing protokol jenis distance-vector. RIP dan IGRP mengirimkan semua routing table ke router-router tetangga yang terhubung secara langsung.
2. Link state Pada protokol link-state atau yang juga disebut protokol shortestpath-first setiap router akan menciptakan tiga buah tabel terpisah. Satu dari tabel ini mencatat perubahan dari network-network yang terhubung secara langsung. Satu tabel lain menentukan topologi dari keseluruhan internetwork, dan tabel yang terakhir digunakan sebagai routing table. Router yang link-state mengetahui lebih banyak tentang internetwork dibandingkan semua jenis routing protokol yang distance-vector. OSPF adalah sebuah routing protokol IP yang sepenuhnya link-state. Protokol link-state mengirimkan update-update yang berisi status dari link mereka sendiri ke semua router lain di network.
3. Hybrid Protokol hybrid menggunakan aspek-aspek dari routing protokol jenis distance-vector dan routing protokol jenis link-state. Sebagai contoh adalah EIGRP. Tidak ada cara tunggal untuk mengkonfigurasikan routing protokol untuk digunakan di semua bisnis atau pekerjaan. Mengkonfigurasikan routing protokol adalah hal yang harus kita lakukan secara kasus-per-kasus. Jika kita mengerti bagaimana cara kerja routing protokol yang berbeda, kita dapat membuat keputusan yang baik, kuat, dan yang benar-benar memenuhi kebutuhan semua orang di semua jenis bidang usaha.
Routing Information Protocol (RIP)
Routing protokol yang menggunakan algoritma distance vector, yaitu algortima BellmanFord. Pertama kali dikenalkan pada tahun 1969 dan merupakan algoritma routing yang pertama pada ARPANET. Versi awal dari routing protokol ini dibuat oleh Xerox Parc’s PARC Universal Packet Internetworking dengan nama Gateway Internet Protocol. Kemudian diganti nama menjadi Router Information Protocol (RIP) yang merupakan bagian Xerox network Services.
Versi dari RIP yang mendukung teknologi IP dimasukkan dalam BSD system sebagai routed daemon.
Spesifikasi RIP dapat dilihat di RFC 1058.
RIP yang merupakan routing protokol dengan algoritma distance vector, yang menghitung jumlah hop (count hop) sebagai routing metric. Jumlah maksimum dari hop yang diperbolehkan adalah 15 hop. Tiap RIP router saling tukar informasi routing tiap 30 detik, melalui UDP port 520. Untuk menghindari loop routing, digunakan teknik split horizon with poison reverse. RIP merupakan routing protocol yang paling mudah untuk di konfigurasi.
RIP memiliki 3 versi yaitu RIPv1, RIPv2, RIPng
Ø  RIPv1 didefinisikan pada RFC 1058, dimana menggunakan classful routing, tidak menggunakan subnet. Tidak mendukung Variable Length Subnet Mask (VLSM).
Ø  RIPv2 hadir sekitar tahun 1994, dengan memperbaiki kemampuan akan Classless Inter-Domain Routing. Didefinisikan pada RFC 2453.
Ø  RIPng merupakan protokol RIP untuk IPv6. Didefinisikan pada RFC 2080.

Open Shortest Path First (OSPF)
OSPF merupakan routing protocol berbasis link state, termasuk dalam interior Gateway Protocol (IGP). Menggunakan algoritma Dijkstra untuk menghitung shortest path first (SPF). Menggunakan cost sebagai routing metric. Setelah antar router bertukar informasi maka akan terbentuk database link state pada masing-masing router.
OSPF mungkin merupakan IGP yang paling banyak digunakan. Menggunakan metode MD5 untuk autentikasi antar router sebelum menerima Link-state Advertisement (LSA). Dari awak OSPF sudah mendukung CIDR dan VLSM, berbeda dengan RIP. Bahkan untuk OSPFv3 sudah mendukung untuk IPv6.
Router dalam broadcast domain yang sama akan melakukan adjacencies untuk mendeteksi satu sama lainnya. Pendeteksian dilakukan dengan mendengarkan “Hello Packet”. Hal ini disebut 2 way state. Router OSPF mengirimkan “Hello Packet” dengan cara unicast dan multicast. Alamat multicast 224.0.0.5 dan 224.0.0.6 digunakan OSPF, sehingga OSPF tidak menggunakan TCP atau UDP melainkan IP protocol 89.
IGRP (Interior Gateway Routing Protocol)
IGRP yang merupakan contoh routing protokol yang menggunakan algoritma distance vector yang lain. Tidak seperti RIP, IGRP merupakan routing protokol yang dibuat oleh Cisco. IGRP juga sangat mudah diimplementasikan, meskipun IGRP merupakan routing potokol yang lebih komplek dari RIP dan banyak factor yang dapat digunakan untuk mencapai jalur terbaik
IGRP mempunyai karakteristik sebagai berikut :
·         Protokol routing distance vector
·         Menggunakan composite metric yang terdiri atas bandwidth, load, delay dan reliability
·         Update routing dilakukan secara broadcast setiap 90 detik
Enhanced Interior Gateway Routing Protocol (EIGRP)
EIGRP merupakan routing protocol yang dibuat CISCO. EIGRP termasuk routing protocol dengan algoritma hybrid.
EIGRP menggunakan beberapa terminologi, yaitu :
ü  Successor : istilah yang digunakan untuk jalur yang digunakan untuk meneruskan paket data.
ü  Feasible Successor : istilah yang digunakan untuk jalur yang akan digunakan untuk meneruskan data apabila successor mengalami kerusakan.
ü   Neighbor table : istilah yang digunakan untuk tabel yang berisi alamat dan interface untuk mengakses ke router sebelah
ü  Topology table : istilah yang digunakan untuk tabel yang berisi semua tujuan dari router sekitarnya.
ü  Reliable transport protocol : EIGRP dapat menjamin urutan pengiriman data.
Perangkat EIGRP bertukar informasi hello packet untuk memastikan daerah sekitar. Pada bandwidth yang besar router saling bertukar informasi setiap 5 detik, dan 60 detik pada bandwidth yang lebih rendah.
Border Gateway Protocol (BGP)
Border Gateway Protocol (BGP) merupakan routing protokol eksterior, dengan karakteristik
sebagai berikut :
·         Menggunakan routing protokol distance vector
·         Digunakan antara ISP dengan ISP dan client-client
·         Digunakan untuk merutekan trafik internet antar autonomous system


BAB III
PENUTUP
3.1  Kesimpulan
Routing adalah suatu protokol yang digunakan untuk mendapatkan rute dari satu jaringan ke jaringan yang lain. Rute ini, disebut dengan route dan informasi route secara dinamis dapat diberikan ke router yang lain ataupun dapat diberikan secara statis ke router lain.
Routing static adalah entri suatu route yang dilakukan oleh seorang administrator untuk mengatur jalur dari sebuah paket data. Routing dinamis adalah ketika routing protokol digunakan untuk menemukan network dan melakukan update routing table pada router. Routing dinamis adalah ketika routing protokol digunakan untuk menemukan network dan melakukan update routing table pada router.
Contoh routing protokol: Routing Information Protocol (RIP), Interior Gateway Routing Protocol (IGRP), Enhanced Interior Gateway Routing Protocol (EIGRP), Open Shortest Path First (OSPF)


DAFTAR PUSTAKA
Buku Ajar Modul 1Mikrotik Operating System Jaringan Komputer
Buku Jaringan Komputer I Sritrusta Sukaridhoto, ST. Ph.D. Politeknik Elektronika Negeri Surabaya (PENS) – 2014
Modul Jaringan Komputer Suryadi syamsu STMIK AKBA

Read More

Tuesday, April 3, 2018

Proram C Array

ARRAY

Array merupakan kumpulan dari beberapa nilai data yang bertipe sama dalam urutan tertentu yang menggunakan nama yang sama. Letak atau posisi dari elemen array ditunjukkan oleh suatu index. Dilihat dari dimensinya array dapat dibagi menjadi 3, yaitu Array dimensi satu, array dimensi dua dan array multidimensi.

Array Satu Dimensi
Array satu dimensi merupakan array yang terdiri dari satu baris data. Setaip elemen array dapat diakses melalui index. Default Index array dimulai dari 0.
Bentuk Umum                   : Tipe_data_array nama_array[ukuran];
Contoh                               : Int Nilai[5];
Nilai[0]
Nilai[1]
Nilai[2]
Nilai[3]
Nilai[4]
80
90
80
76
87

Contoh Program Array Satu Dimensi





 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include<conio.h>
#include<stdio.h>

main()
{
 int a, nilai[10];
 
 printf("Input Nilai Mahasiswa\n");
 for(a=1;a<=3;a++)
 {
  printf("Masukan Nilai %d",a);
  printf(" = ");
  scanf("%d", &nilai[a]);
 }
 
 printf("\nOutput Nilai Mahasiswa\n");
 for(a=1;a<=3;a++)
 {
  printf("Nilai Mahasiswa %d",a);
  printf(" = %d\n",nilai[a]);
 }
getch();
}



Array Dua Dimensi
Array dua dimensi merupakan array yang terdiri dari A baris dan B buah kolom. Bentuk dari array dua dimensi dapat berupa matriks atau tabel.
Bentuk Umum             : Tipe_data_array nama_array[baris][kolom];
Contoh Umum             : int Nilai[3][4];
Nilai[0][0]
Nilai[0][1]
Nilai[0][2]
Nilai[0][3]
Nilai[1][0]
Nilai[1][1]
Nilai[1][2]
Nilai[1][3]
Nilai[2][0]
Nilai[2][1]
Nilai[2][3]
Nilai[2][3]

Contoh program array dua dimensi

Array Multi Dimensi
Array multi dimensi merupakan sebuah array yang mempunyai ukuran lebih dari dua. Untuk pendeklarasiannya sama seperti array satu maupun dua dimensi.
Bentuk Umum              : Tipe_Data_Array nama_array[ukuran1][ukuran2]…[ukuranN];
Contoh                          : int x[2][4][3];

Read More

Tuesday, November 7, 2017

Bahasa C Gabungan Switch dan If

PROGRAM  BAHAS C GABUNGAN SWITCH DAN IF

Untuk Penggabungan Switch dan if itu sangat mudah sekali tinggal kita buat suatu percabangan lalu buat switch terlebih dahulu nah nanti tinggal tambahkan if didalamnya. 

Contoh Program Dalam Bahasa C
contoh program gabungan switch dan if adalah menghitung segitiga dan persegi. apabila kita memilih angka 1 maka yang mucul adalah operasi menghitung nilai segitiga. untuk kembali kemenu ada opsi kembali setelah selesai menyelesaikan operasi. Apabila ingin menghitung persegi panjang maka pilih opsi no 2 namun apabila ingin keluar bisa menggunakan opsi no 3 atau pada akhir eksekusi operasi adalah pilih keluar.






 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#include <conio.h>
#include <stdio.h>
#include <windows.h>

main (){
 float luas_segitiga, luas_persegi, alas, tinggi, panjang, lebar;
 int pilih;
 char s;
 
 menu:
 system("cls");
 printf("MENU\n");
 printf("1. Segitiga\n");
 printf("2. Persegi Panjang\n");
 printf("3. Keluar\n");
 printf("Masukan Pilihan Menu  = "); scanf("%d", &pilih);
 
 switch(pilih){
 
 case 1:
  segitiga:
   system("cls");
   printf("Program Menghitung Segitiga\n");
  printf("Masukan Alas  = "); scanf("%f", &alas);
  printf("Masukan Tiggi  = "); scanf("%f", &tinggi);
  luas_segitiga=(alas*tinggi)*0.5;
  printf("hasil Luas Segitiga = %.2f", luas_segitiga);
  printf("\nApakah Anda ingin Mengulangnya (Y/T/M) = ");s=getche();
  printf("\n");
  
  if (s=='y'|| s=='Y'){
   goto segitiga;
  }
  else if(s=='T'||s=='t'){
   goto exit;
  }
  else if(s=='m'||s=='M'){
   goto menu;
  }
  break;
  
 case 2:
  persegi:
   system("cls");
  printf("Program Menghitung Persegi Panjang\n");
  printf("Masukan Nilai Panjang = ");scanf("%f", &panjang);
  printf("Masukan Nilai lebar = "); scanf("%f", &lebar);
  luas_persegi=panjang*lebar;
  printf("Hasil Perhitungan Luas Persegi Panjang  = %.2f", luas_persegi);
  printf("\nApakah Anda ingin Mengulangnya (Y/T/M) = ");s=getche();
  printf("\n");
  
  if (s=='y'|| s=='Y'){
   goto persegi;
  }
  else if(s=='T'||s=='t'){
   goto exit;
  }
  else if(s=='m'||s=='M'){
   goto menu;
  }break;
  
 case 3 :
 exit:
 system("cls");
 printf("Terima Kasih Telah Berpartisipasi");break;
 
 default:
  printf("Kode yang Anda Masukan Salah !!");
 }
 getch();
}
Read More

Monday, November 6, 2017

Aplikasi Menghitung Nilai Mata Kuliah

Aplikasi Menghitung Nilai Mata Kuliah menggunakan Bahasa C




 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include<stdio.h>
#include<conio.h>

main ()
{
 char nama[20], mata_kuliah[20];
 float teori,praktek,ujian,nilai_akhir;
 
 printf("Aplikasi Perhitungan Nilai kuliah\n");
 printf("=================================\n");
 printf("Ketikan Nama Anda : ");
  gets(nama);
 printf("Mata Kuliah : ");
  gets(mata_kuliah);
 printf("Masukan Nilai Teori (0-100) : ");
  scanf("%f", &teori);
 printf("Masukan Nilai Praktek (0-100)  : ");
  scanf("%f", &praktek);
 printf("Masukan Nilai Ujian (0-100) : ");
  scanf("%f", &ujian);
 
 nilai_akhir=0.3*teori+0.3*praktek+0.4*ujian;
 
 printf("\n=============================\n");
 printf("Nama Anda : %s", nama);
 printf("\nMata Kuliah: %s", mata_kuliah);
 printf("\nNilai Akhir : %.2f", nilai_akhir);
 
 
 if (nilai_akhir>=80 && nilai_akhir<=100){
 printf("\nNilai Angka Akhir : %.2f",nilai_akhir);
 printf("\nNilai Huruf  : A");
 printf("\nAnda Dinyatakan  : Lulus Cumlaude"); 
 }
 else if (nilai_akhir>=70 && nilai_akhir<=79){
 printf("\nNilai Angka Akhir : %.2f",nilai_akhir);
 printf("\nNilai Huruf  : B");
 printf("\nAnda Dinyatakan  : Lulus Baik"); 
 }
 else if (nilai_akhir>=60 && nilai_akhir<=69){
 printf("\nNilai Angka Akhir : %.2f",nilai_akhir);
 printf("\nNilai Huruf  : C");
 printf("\nAnda Dinyatakan  : Lulus Cukup");
 }
 else if (nilai_akhir>=50 && nilai_akhir<=59){
 printf("\nNilai Angka Akhir : %.2f",nilai_akhir);
 printf("\nNilai Huruf  : D");
 printf("\nAnda Dinyatakan  : Tidak Lulus"); 
 } 
 else {
 printf("\nNilai Angka Akhir : %.2f",nilai_akhir);
 printf("\nNilai Huruf  : E");
 printf("\nAnda Dinyatakan  : Gagal");
 }
 
getch();
}
Read More

Contoh Program C If Else

If  Else
Penggunaan If dan Else
bentuk umum if else

if(kondisi 1){
statement yang akan dieksekusi;
}
else if(kondisi 2){
statement yang akan dieksekusi;
}
else{
statement terkahir yang akan dieksekusi;
}

penggunaan if else:
1. apabila kondisi pertama memenuhi syarat maka akan diesksekusi apabila tidak makan beralih ke kondisi selanjutnya
2. apabila tidak ada yang memenuhi maka akan menampilkan pilihan terakhir.

contoh program if else



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
#include <conio.h>
#include <stdio.h>

main()
{
 int x;
 printf("Masukan Nilai Negatif atau Positif\n");
 printf("Masukan Nilai X = "); scanf("%d", &x);
 if(x>0){
  printf("x Bernilai Positif");
 } 
 else {
  printf("x bernilai Negatif");
 }
 getch();
}
Read More

Program C Switch Case

Switch Case
Penggunaan Switch
Bentuk Umum Switch
switch(variabel){
case konstanta 1:statement yang akan dieksekusi;break;
case konstanta 2:statement yang akan dieksekusi;break;
default:statement terakhir; 
}
penggunaan switch merupakan penggunaan yang bisanya digunakan dengan nilai nilai yang konstan sehingga apabila meiliki bilangan yang cacah akan sulit untuk menggunakannya. apabila menggunakan bilangan cacah maka akan banyak case yang dimasukan.

dibawah ini merupakan contoh program c Switch Case



 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <conio.h>
#include <stdio.h>
#include <windows.h>

main (){
 float luas_segitiga, luas_persegi, alas, tinggi, panjang, lebar;
 int pilih;
 
 printf("MENU\n");
 printf("1. Segitiga\n");
 printf("2. Persegi Panjang\n");
 printf("Masukan Pilihan Menu  = "); scanf("%d", &pilih);
 
 switch(pilih){
 
 case 1:
  printf("Masukan Alas  = "); scanf("%f", &alas);
  printf("Masukan Tiggi  = "); scanf("%f", &tinggi);
  luas_segitiga=(alas*tinggi)*0.5;
  printf("hasil Luas Segitiga = %.2f", luas_segitiga);break;
  
 case 2:
  printf("Masukan Nilai Panjang = ");scanf("%f", &panjang);
  printf("Masukan Nilai lebar = "); scanf("%f", &lebar);
  luas_persegi=panjang*lebar;
  printf("Hasil Perhitungan Luas Persegi Panjang  = %.2f", luas_persegi);break;
  
 default:
  printf("Kode yang Anda Masukan Salah !!");
 }
 getch();
}
Read More

Contoh Program C Menghitung Pesanan Makanan

Program C Menghitung Pesanan Warteg



Naha untuk program c ini menggunakan syntax percabangan seperti switch case lalu digabungkan dengan if dan else apabila ada yang error. untuk lebih lengkapnya bisa coba sendiri 




  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
#include <conio.h>
#include <stdio.h>
#include <windows.h>

main(){
 float total_harga, kembali, pembayaran, kurang;
 int pilih, banyak_pembelian;
 char m;
 

 menu:
  system("cls");
 printf("\t\tWarteg Bengkel Perut\n");
 printf("\tKhusus Orang Orang yang Kelaparan\n");
 printf("==================================================\n");
 printf("\n Daftar Menu\n");
 printf("--------------------------------------------------\n");
 printf("Menu Makanan   Harga\n");
 printf("1. Ayam Goreng + Nasi  Rp. 12.000\n");
 printf("2. Mie Goreng   Rp. 8.000\n");
 printf("3. Nasi Goreng   Rp. 10.000\n");
 printf("4. Kupat Tahu   Rp. 7.500\n");
 
 printf("\n Masukan Kode Jenis Makanan [1/2/3/4] = ");scanf("%d", &pilih);
 
 switch(pilih){
  
  case 1:
   printf("\nMenu yang dipilih adalah Ayam Goreng + Nasi\n");
   printf("Pesan Berapa Banyak   = ");scanf("%d", &banyak_pembelian);
   total_harga=12000*banyak_pembelian;
   printf("Total Yang Harus dibayar   = Rp. %.0f", total_harga);
   printf("\ndibayar    = Rp. ");scanf("%f", &pembayaran);
   if (total_harga<=pembayaran){
    kembali=pembayaran-total_harga;
    printf("Kembali    = Rp. %.0f", kembali);
   }
   else if(total_harga>=pembayaran){
    kurang=total_harga-pembayaran;
    printf("uang Anda Kurang   = Rp. %.0f", kurang);
   }getch();
   printf("\n\nTerima Kasih telah Berbelanja");
   break;
   
  case 2:
   printf("\nMenu yang dipilih adalah Mie Goreng\n");
   printf("Pesan Berapa Banyak   = ");scanf("%d", &banyak_pembelian);
   total_harga=8000*banyak_pembelian;
   printf("Total Yang Harus dibayar  = Rp. %.0f", total_harga);
   printf("\ndibayar    = Rp. ");scanf("%f", &pembayaran);
   if (total_harga<=pembayaran){
    kembali=pembayaran-total_harga;
    printf("Kembali    = Rp. %.0f", kembali);
   }
   else if(total_harga>=pembayaran){
    kurang=total_harga-pembayaran;
    printf("uang Anda Kurang   = Rp. %.0f", kurang);
   }getch();
   printf("\n\nTerima Kasih telah Berbelanja");
   break;
  
  case 3:
   printf("\nMenu yang dipilih adalah Nasi Goreng\n");
   printf("Pesan Berapa Banyak   = ");scanf("%d", &banyak_pembelian);
   total_harga=10000*banyak_pembelian;
   printf("Total Yang Harus dibayar  = Rp. %.0f", total_harga);
   printf("\ndibayar    = Rp. ");scanf("%f", &pembayaran);
   if (total_harga<=pembayaran){
    kembali=pembayaran-total_harga;
    printf("Kembali    = Rp. %.0f", kembali);
   }
   else if(total_harga>=pembayaran){
    kurang=total_harga-pembayaran;
    printf("uang Anda Kurang  = Rp. %.0f", kurang);
   }getch();
   printf("\n\nTerima Kasih telah Berbelanja");
   break;
   
  case 4:
   printf("\nMenu yang dipilih adalah Kupat Tahu\n");
   printf("Pesan Berapa Banyak   = ");scanf("%d", &banyak_pembelian);
   total_harga=7500*banyak_pembelian;
   printf("Total Yang Harus dibayar  = Rp. %.0f", total_harga);
   printf("\ndibayar    = Rp. ");scanf("%f", &pembayaran);
   if (total_harga<=pembayaran){
    kembali=pembayaran-total_harga;
    printf("Kembali    = Rp. %.0f", kembali);
   }
   else if(total_harga>=pembayaran){
    kurang=total_harga-pembayaran;
    printf("uang Anda Kurang  = Rp. %.0f", kurang);
   }getch();
   printf("\n\nTerima Kasih telah Berbelanja");
   break;
   
 
   
  default:
   printf("\nKode yang anda Masukan Salah\n");
   printf("Apakah Anda Ingin Kemabali Ke Menu? (Y/T)");m=getche();
   if(m=='Y'||m=='y'){
    goto menu;
   }
   else if (m=='T'||m=='t'){
    goto exit;
   }
   exit:
   printf("\n\nTerima Kasih telah Berbelanja");
   break;
 }getch();
}
Read More