Thursday, April 13, 2017

Pengenalan bahasa pemrogram C++



Pengenalan bahasa pemrogram C++

Bahasa pemrograman C++ bisa disebut sebagai bahasa pemrograman tingkat menengah ( middle level programming language) yang berarti juga termasuk dalam bahasa tingkat tinggi (high level programming language).

Struktur C++

# include
main()
{
Instruksi-instruksi
}

Keterangan :

a. # include sebagai proses compiler dari c++ menjalankan program yang dinamakan preprosesor yang memiliki kemampuan menambahkan dan menghapus kode dari file sumber. Include berarti menyertakan kode dari file header yang ada didalam kurung, file header adalah file yang berisi deklarasi untuk berbagai fungsi yang dibutuhkan oleh program.

b. main()
Untuk mendeklarasi fungsi utama, bahwa suatu program c++ dapat berisi banyak fungsi, tetapi harus selalu memiliki sebuah fungsi utama ( main function). Fungsi adalah modul yang berisi kode-kode untuk menyelesaikan masalah-masalah tertentu.

c. {
Menandakan awal program.

d. Instruksi
Berisi perintah-perintah yang akan dilakukan program.

e. }
Menandakan akhir program.

Pendeklarasian tipe data variable.

Tipe data Fungsi atau kegunaan Jangkauan Contoh
Int Dapat menampung nilai positif atau nilai negative. -32768 sampai 32767 125
Float Dapat menampung semua nilai bilangan real, mewakili semua bilangan,dan bilangan dengan pecahan decimal. -1038 sampai +1038 56.12
Char Mewakili suatu karakter tunggal, sebuah huruf, 1 digit, atau tanda baca. 1 byte ‘A’

Deklarasi & Variabel

Bentuk penulisan
Tipe_data nama_variabel;

Contoh Deklarasi Variabel
char nama_mahasiswa;
char grade;
float rata_rata ;
int nilai;

Perintah Keluaran

Perintah standar output yang disediakan oleh Borland C++, diantaranya adalah :
• printf()
• puts()
• putchar()
• cout()

printf()

Fungsi printf() merupakan fungsi keluaran yang paling umum digunakan untuk menampilkan informasi kelayar.

contoh1:
#include
#include
#include
main()
{
int a=7;
char b=’G’;
clrscr();
printf(“%c Merupakan Abjad Yang Ke – %d”, b, a);
getch();
}puts()
Perintah puts() sebenarnya sama dengan printf(), yaitu digunakan untuk mencetak string ke layar. puts() berasal dari kata PUT STRING.
Perbedaan antara printf() dengan puts() adalah :

Contoh2:
#include
#include
#include
main()
{
char a[4]=”BSI”;
clrscr();
puts(“Saya Kuliah di. “); {put berfungsi untuk mencetak sekaligus mencipakan baris baru}
puts(a);
getch();
}

putchar()

Perintah putchar() digunakan untuk menampilkan sebuah karakter ke layar. Penampilan karakter tidak diakhiri dengan pindah baris.

Contoh3:
#include
#include
main()
{
clrscr();
putchar(‘B’);
putchar(‘S’);
putchar(‘I’);
getch();
}

cout()

Penjelasan Fungsi cout() merupakan sebuah objeck didalam C++ digunakan untuk menampilkan suatu data kelayar. Untuk menggunakan fungsi cout() ini, harus menyertakan file header iostream.h .

Contoh4:
#include
#include
#include
main()
{
float a, b, c;
a=7.5; b=8.4; c=0;
clrscr();
cout<<"Masukan Nilai A : "<<a;
cout<<"Masukan Nilai B : "<<b<<endl;
c = a + b;
cout<<"Masukan Nilai C : "<<c;
getch();
}

Perintah Masukan

Perintah standar input yang disediakan oleh Borland C++, diantaranya adalah :

scanf()
gets()
cin()
getch()
getche()

scanf()

Fungsi scanf() digunakan untuk memasukkan berbagai jenis data.
Bentuk Umum dari fungsi ini adalah :
scanf("penentu format", &nama-variabel); format sama dengan format printf()

contoh5:
# include
# include
main()
{
int a, b, c = 0 ;
clrscr();
printf(“Masukan Nilai A = “); scanf(“%d”,&a);
printf(“Masukan Nilai B = “); scanf(“%d”,&b);
c = a + b;
printf(“Hasil Penjumlahan = %d”,c);
getch();
}

gets()

Fungsi gets() digunakan untuk memasukkan data string.
Bentuk Umum dari fungsi ini adalah :
gets(nama-variabel-array);

Perbedaan scanf dan gets

Contoh6:
# include
# include
main()
{
char nm1[20];
char nm2[20];
clrscr();
puts(“Masukan nama ke – 1 = “);
gets(nm1);
printf(“Masukan nama ke – 2 = “);
scanf(“%s”,&nm2);
printf(“\n\n”);
puts(“Senang Berkenalan Dengan Anda ..”);
puts(nm1);
printf(“Senang Berkenalan Dengan Anda ..%s”, nm1);
puts(“Senang Berkenalan Dengan Anda ..”);
puts(nm1);
printf(“\n\n”);
puts(“Senang Berkenalan Dengan Anda ..”);
puts(nm2);
printf(“Senang Berkenalan Dengan Anda ..%s”, nm2);
getch();
}

cin() Fungsi cin() merupakan sebuah objeck didalam C++ digunakan untuk memasukkan suatu data. Untuk menggunakan fungsi cin() ini, harus menyertakan file header iostream.h .

contoh7:
# include
# include
# include
main()
{
float a, b, c;
clrscr();
cout<>a;
cout<>b;
c = a + b;
cout<<"Nilai C : "<<c<<endl;
getch();
}

getch ()

Fungsi getch() (get character and echo) dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter yang dimasukan tidak akan ditampilkan di layar. File header yang harus disertakan adalah conio.h.

Contoh8:
# include
# include
main()
{
char kar;
clrscr();
printf(“Masukan Sebuah Karakter Bebas = “);
kar = getch();
printf(“\nTadi Anda Memasukan karakter %c”, kar);
getch();
}

getche ()

Fungsi getche()dipakai untuk membaca sebuah karakter dengan sifat karakter yang dimasukkan tidak perlu diakhiri dengan menekan tombol ENTER, dan karakter yang dimasukan ditampilkan di layar. File header yang harus disertakan adalah conio.h.

Contoh9:
# include
# include
main()
{
char kar;
clrscr();
printf(“Masukan Sebuah Karakter Bebas = “);
kar = getche();
printf(“\nTadi Anda Memasukan karakter %c”, kar);
getch ();
}

Catatan : Getch() dan getche() penulisan sama

Operator Aritmatik

Operator Keterangan
+ (pertambahan)
* (perkalian)
% (Sisa pembagian)
– (Pengurangan)
/ (Pembagian)

Contoh1:
#include
#include
#include
main()
{
int a, b, c = 0, d = 0;
clrscr();
cout<>a;
cout<>b;
c = a % b;
d = a * b;
cout<<" Hasil dari C = A % B = "<<c<<endl;
cout<<" Hasil dari D = A * B = "<<d<<endl;
getch();
}

Operator Penambahan dan Pengurangan

A = A + 1 atau A = A – 1;
disederhanakan menjadi :
A += 1 atau A -= 1;
masih dapat disederhanakan menjadi A ++ atau A–
Notasi “ ++ “ atau “ — “ dapat diletakan didepan atau di belakang variabel.
Contoh A ++ atau ++A / A– atau –A
Kedua bentuk penulisan notasi ini mempunyai arti yang berbeda
• Jika diletakan didepan variabel, maka proses penambahan atau pengurangan akan dilakukan sesaat sebelum atau langsung pada saat menjumpai ekspresi ini, sehingga nilai variabel tadi akan langsung berubah begitu ekspresi ini ditemukan, sedangkan
• Jika diletakan dibelakang variabel, maka proses penambahan atau pengurangan akan dilakukan setelah ekspresi ini dijumpai atau nilai variabel akan tetap pada saat ekspresi ini ditemukan.

Contoh2:
/* Penggunaan Notasi Didepan Variabel*/
#include
#include
main()
{
int a = 10, b = 5;
clrscr();
printf(“Nilai A = %d”, a);
printf(“\nNilai ++A = %d”, ++a);
printf(“\nNilai A = %d”, a);
printf(“\nNilai B = %d”, b);
printf(“\nNilai –B = %d”, –b);
printf(“\nNilai B = %d”, b);
getch();
}

Contoh3:
/* Penggunaan Notasi Dibelakang Variabel*/
#include
#include
main()
{
int a = 10, b = 5;
clrscr();
printf(“Nilai A = %d”, a);
printf(“\nNilai A++ = %d”, a++);
printf(“\nNilai A = %d”, a);
printf(“\nNilai B = %d”, b);
printf(“\nNilai B– = %d”, b–);
printf(“\nNilai B = %d”, b);
getch();
}

Operator Relasi

Operator Keterangan
== Sama dengan (bukan pemberi nilai
!=  Tidak sama dengan
>    Lebih dari
=    Lebih dari sama dengan
<=  Kurang dari sama dengan

Contoh4:
#include
#include
#include
main()
{
float a, b, c, d, e, f, x, y;
clrscr();
cout<>x;
cout<>y;
a = x == y;
b = x != y;
c = x > y;
d = x = y;
f = x <= y;
cout<<endl;
cout<<"Hasil dari "<<x<<" == "<<y<<" = "<<a<<endl;
cout<<"Hasil dari "<<x<<" != "<<y<<" = "<<b<<endl;
cout<<"Hasil dari "<<x< “<<y<<" = "<<c<<endl;
cout<<"Hasil dari "<<x<<" < "<<y<<" = "<<d<<endl;
cout<<"Hasil dari "<<x<= “<<y<<" = "<<e<<endl;
cout<<"Hasil dari "<<x<<" <= "<<y<<" = "<<f<<endl;
getch();
}

Operator Logika

Operator Relasi digunakan untuk menghubungkan dua buah operasi relasi menjadi sebuah ungkapan kondisi. Hasil dari operator logika ini menghasilkan nilai numerik 1 (True) atau 0 (False).

Operator Keterangan
&& Operator Logika AND
|| Operator Logika OR
! Operator Logika NOT

Operator And
digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila semua ekspresi relasi yang dihubungkan bernilai BENAR.
Contoh :
Ekspresi Relasi-1  A + 4 A + 5
Ekspresi Relasi-3  C – 3 >= 4

Contoh5:
/* Penggunaan Operasi Logika AND */
#include
#include
#include
main()
{
float a, b, c, d, e, f, g, h;
clrscr();
cout<>a;
cout<>b;
cout<>c;
// Proses
d = a + 4 a + 5;
f = c – 3 >= 4;
g = d && e && f;
cout<<endl<<endl;
cout<<"Program Ekspresi AND"<<endl<<endl;
cout<<"Hasil dari d = a + 4 < 10 adalah " <<d<<endl;
cout< a + 5 adalah ” <<e<<endl;
cout<= 4 adalah ” <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d && e && f adalah " <<g;
cout<<endl;
getch();
}

Operator OR
digunakan untuk menghubungkan dua atau lebih ekspresi relasi, akan dianggap BENAR, bila salah satu ekspresi relasi yang dihubungkan bernilai BENAR.
Contoh :
Ekspresi Relasi-1  A + 4 A + 5
Ekspresi Relasi-3  C – 3 > 4

Contoh6:
/* Penggunaan Operasi Logika OR */
#include
#include
#include
main()
{
float a, b, c, d, e, f, g, h;
clrscr();
cout<>a;
cout<>b;
cout<>c;
d = a + 5 > 10;
e = b > 5 + a ;
f = c – 4 <= 7;
g = d || e || f;
cout<<endl<<endl;
cout<<"Program Ekspresi OR"<<endl<<endl;
cout< 10 adalah ” <<d<<endl;
cout< 5 + a adalah ” <<e<<endl;
cout<<"Hasil dari f = c – 4 <= 7 adalah " <<f;
cout<<endl<<endl;
cout<<"Hasil dari g = d || e || f adalah " <<g;
cout<<endl;
getch();
}

Operator NOT
Operator logika NOT akan memberikan nilai kebalikkan dari ekspresi yang disebutkan. Jika nilai yang disebutkan bernilai BENAR maka akan menghasilkan nilai SALAH, begitu pula sebaliknya.
Contoh:
Ekspresi Relasi  A + 4 < 10

Contoh7:
/* Penggunaan Operasi Logika NOT */
#include
#include
#include
main()
{
int a, b, c;
clrscr();
cout<>a;
/* Proses */
b = (a + 4 < 10);
c = !(b);
cout<<endl<<"Program Ekspresi NOT "<<endl;
cout<<"Nilai A = "<<a<<endl;
cout<<"Nilai b = (a + 4 < 10) = "<<b<<endl;
cout<<"Nilai c = !(b) = "<<c;
getch();
}
Operasi Penyeleksian Kondisi

Pernyataan Percabangan digunakan untuk memecahkan persoalan untuk mengambil suatu keputusan diantara sekian pernyataan yang ada.

Pernyataan IF

if (kondisi)
{
Pernyataan;
……
}

Contoh1:
#include
#include
#include
main()
{
double tot_beli, potongan=0, jum_bayar=0;
clrscr();
cout<>tot_beli;
if (tot_beli >= 50000)
potongan = 0.2 * tot_beli;
cout<<"Besarnya Potongan Rp. "<<potongan<<endl;
jum_bayar = tot_beli – potongan;
cout<<"Jumlah yang harus dibayarkan Rp. "<<jum_bayar;
getch();
}

Pernyataan If Else

if (kondisi-1)
{
perintah-1;
….
}
else
{
perintah-2;
….
}

Contoh2:
#include
#include
#include
main()
{
double tot_beli, potongan=0, jum_bayar=0;
clrscr();
cout<>tot_beli;
if (tot_beli >= 50000)
potongan = 0.2 * tot_beli;
else
potongan = 0.05 * tot_beli;
cout<<"Besarnya Potongan Rp. "<<potongan<<endl;
jum_bayar = tot_beli – potongan;
cout<<"Jumlah yang harus dibayarkan Rp. "<<jum_bayar;
getch();
}

Pernyataan Nested If

if(syarat)
if(syarat)
… perintah;
else
… perintah;
else
if(syarat)
… perintah;
else
… perintah;

Contoh3:
#include
#include
#include
main()
{
char kd;
char ukr,merk[20];
long int hrg,byr,ppn,ttl,u_byr,u_kembali,byk;
clrscr();
cout<<"***Toko Kelontong Keroncongan***"<<endl;
cout<<"============================================="<<endl;
cout<<"A. Susu Dancow "<<endl;
cout<<" 1. Ukuran Kecil "<<endl;
cout<<" 2. Ukuran Sedang "<<endl;
cout<<" 3. Ukuran Besar "<<endl;
cout<<"B. Susu Bendera "<<endl;
cout<<" 1. Ukuran Kecil "<<endl;
cout<<" 2. Ukuran Sedang "<<endl;
cout<<" 3. Ukuran Besar "<<endl;
cout<<"C. Susu SGM "<<endl;
cout<<" 1. Ukuran Kecil "<<endl;
cout<<" 2. Ukuran Sedang "<<endl;
cout<<" 3. Ukuran Besar "<<endl;
cout<>kd;
cout<>ukr;
cout<>byk;
if(kd==’A’||kd==’a’)
{strcpy(merk,”Dancow”);
if(ukr==’1′)hrg=15000;
else if(ukr==’2′)hrg=26000;
else hrg=45000;}
else if(kd==’B’||kd==’b’)
{strcpy(merk,”Bendera”);
if(ukr==’1′)hrg=12000;
else if(ukr==’2′)hrg=22000;
else hrg=40000;}
else
{strcpy(merk,”SGM”);
if (ukr==’1′)hrg=20000;
else if(ukr==’2′)hrg=38000;
else hrg=70000;}
cout<<"Merk Susu :"<<merk<<endl;
cout<<"Harga :"<<hrg<<endl;
byr=hrg*byk;
cout<<"Pembayaran :"<<byr<<endl;
ppn=0.1*byr;
ttl=byr+ppn;
cout<<"PPN :"<<ppn<<endl;
cout<<"Total Bayar :"<<ttl<<endl;
cout<>u_byr;
u_kembali=u_byr-ttl;
cout<<"Uang Kembali :"<<u_kembali<<endl;
cout<<"Terima Kasih Anda Telah Ke Counter Kami"<<endl;
getch();
}

Pernyataan If – Else Majemuk

if (syarat)
{
… perintah;
… perintah;
}
else if (syarat)
{
… perintah;
… perintah;
}
else
{
… perintah;
… perintah;
}

Contoh4:
#include
#include
#include
main()
{
char nm_pes[20],nm[20],kode,tujuan[30];
int jml;
long int harga,ttl;
clrscr();
cout<<"PT TRAVELLING INDONESIA"<<endl;
cout<>nm;
cout<>kode;
cout<>jml;
if(kode==’1′)
{strcpy(tujuan,”Jakarta – Medan”);
strcpy(nm_pes,”Garuda Airlines”);
harga=400000;}
else if(kode==’2′)
{strcpy(tujuan,”Jakarta – Lampung”);
strcpy(nm_pes,”Asia Airlines”);
harga=200000;}
else
{strcpy(tujuan,”Jakarta – Palembang”);
strcpy(nm_pes,”Sriwijaya Airlines”);
harga=300000;}
ttl=jml*harga;
cout<<"Penumpang Yang Bernama :"<<nm<<endl;
cout<<"Nama Pesawat :"<<nm_pes<<endl;
cout<<"Tujuan :"<<tujuan<<endl;
cout<<"Harga Tiket :"<<harga<<endl;
cout<<"Total Bayar :"<<ttl<= 85, maka mendapat hadiah Seperangkat Komputer P4
– Jika Nilai Rata-Rata >= 70, maka mendapat hadiah Uang sebesar Rp. 500,000
– Jika Nilai Rata-Rata < 70, maka mendapat hadiah Hiburan
• Tampilan yang diinginkan sebagai berikut :
Layar Masukkan
PROGRAM HITUNG NILAI RATA-RATA
Nama Siswa : …
Nilai Pertandingan I : …
Nilai Pertandingan II : …
Nilai Pertandingan III : …
Layar Keluaran
Siswa yang bernama …
Memperoleh nilai rata-rata
dari hasil perlombaan yang diikutinya.
Hadiah yang didapat adalah ..

Pernyataan switch – case

switch (ekspresi integer atau karakter )
{
case konstanta-1 :
… perintah;
… perintah;
break;
case konstanta-2 :
… perintah;
… perintah;
break;
default :
… perintah;
… perintah;
}

Setiap cabang akan dijalankan jika syarat nilai konstanta tersebut dipenuhi dan default akan dijalankan jika semua cabang diatasnya tidak terpenuhi. Pernyataan break menunjukan bahwa perintah siap keluar dari switch. Jika pernyataan ini tidak ada, maka program akan diteruskan kecabang – cabang yang lainnya.

Contoh1:
#include
#include
#include
main()
{
char kode;
clrscr();
cout<>kode;
switch(kode)
{
case ‘A’ :
case ‘a’ :
cout<<"Alat Olah Raga";
break;
case 'B' :
case 'b' :
cout<<"Alat Elelktronik";
break;
case 'C' :
case 'c' :
cout<<"Alat Masak";
break;
default:
cout<<"Anda Salah Memasukan kode";
break;
}
getch();
}
Contoh2:
#include
#include
#include
main()
{
char nama[30],kd,bonus[20],jwb;
int jml;
long int hrg,ppn,total,pot;
atas:
clrscr();
cout<<"TOKO BUKU SEJAHTERA"<<endl;
cout<<"Jl.Keadilan No.16"<<endl;
cout<<"Telp.7236573-7236574"<<endl;
cout<<"======================================="<<endl;
cout<>kd;
switch(kd)
{
case ‘A’:
case ‘a’:
{strcpy(nama,”Laskar Pelangi”);
hrg=50000;}
break;
case ‘B’:
case ‘b’:
{strcpy(nama,”Jangan Tinggalkan Aku”);
hrg=35000;}
break;
case ‘C’:
case ‘c’:
{strcpy(nama,”Mencari Mutiara di Dasar Hati”);
hrg=45000;}
break;
default:
cout<<"Anda Salah Memasukan Kode";
break;
}
cout<<"Nama Buku Yang Anda Beli :"<<nama<<endl;
cout<<"Harga Buku Yang Anda Beli :"<<hrg<<endl;
cout<>jml;
if (jml>=3)
{pot=0.1*hrg*jml;
strcpy(bonus,”Buku Saku”);}
else
{pot=0;
strcpy(bonus,”Maaf Anda Tidak Dapat Bonus”);}
cout<<"Anda Dapat Potongan : "<<pot<<endl;
cout<<"Bonus Yang Anda Peroleh : "<<bonus<<endl;
total=jml*hrg;
ppn=0.02*jml*hrg;
cout<<"Total Bayar Buku Yang Dibeli : "<<total<= 80 mendapat Grade A
• Nilai Akhir >= 70 mendapat Grade B
• Nilai Akhir >= 59 mendapat Grade C
• Nilai Akhir >= 50 mendapat Grade D
• Nilai Akhir < 50 mendapat Grade E
• Tampilan yang diinginkan sebagai berikut :

Layar Masukkan
PROGRAM HITUNG NILAI AKHIR
Nama Siswa : ……
Nilai Keaktifan : ……
Nilai Tugas : ……
Nilai Ujian : ……

Layar Keluaran
Siswa yang bernama
Dengan Nilai Persentasi Yang dihasilkan.
Nilai Keaktifan * 20% : …
Nilai Tugas * 30% : …
Nilai Ujian * 50% : …
Jadi Siswa yang bernama
memperoleh nilai akhir sebesar …
Grade nilai yang didapat adalah …
Latihan IF dan Switch case:

PT. DINGIN DAMAI, memberikan Honor tetap kepada karyawan kontraknya sebesar Rp. 300,000,- per bulan, dengan memperoleh tujangan-tunjangan sebagai berikut :
• Tunjangan Jabatan
Golongan Persentase
1 5%
2 10%
3 15%

Sebagai contoh : Jika seorang keryawan tersebut dengan golongan 3, maka mendapatkan tunjangan sebesasr 15% * Rp. 300,000,-
• Tunjangan Pendidikan

Kode Pendidikan Persentase
1 SMU 2,5%
2 D3 5%
3 S1 7,5%

• Honor Lembur
Jumlah jam kerja normal sebanyak 8 Jam Kerja. Honor lembur diberikan jika jumlah jam kerja sebih dari 8 jam, maka kelebihkan jam kerja tersebut dikalikan dengan honor lembur perjam sebesar Rp. 2,500 untuk setiap kelebihan jam kerja perharinya.
• Tampilan yang diinginkan sebagai berikut :

Layar Masukkan
Program Hitung Honor Karyawan Kontrak
PT. DINGIN DAMAI
Nama Karyawan : …
Golongan : …
Pendidikan (SMU/D3/S1) : …
Jumlah Jam Kerja : …

Layar Keluaran
Karyawan yang bernama : …
Honor yang diterima
Honor Tetap Rp. ….
Tunjangan jabatan Rp. ….
Tunjangan Pendidikan Rp. ….
Honor Lembur Rp. ….
———————————————— +
Honor Yang Diterima Rp. ….

Proses Perulangan

Perulangan For

Perulangan yang pertama adalah for. Bentuk umum pernyataan for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
Bila pernyataan didalam for lebih dari satu maka pernyataan-pernyataan tersebut harus diletakan didalam tanda kurung.
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
pernyataan / perintah;
pernyataan / perintah;
pernyataan / perintah;
}

Keterangan:
* inisialisasi : nilai awal pada variabel
* syarat pengulangan : hal yang menentukan apakah suatu perulangan diteruskan atau dihentikan.
* pengubah nilai pencacah : pengatur nilai kenaikan atau penurunan nilai pencacah.

Contoh1:
/* ————————— */
/* Program for – bilangan naik */
/* ————————— */
#include
#include
#include
main()
{
int a;
clrscr();
for(a = 1; a <= 10; ++a)
cout<<a;
getch();
}

Contoh2:
/* ——————————*/
/* Program Menampilkan Warna – 1 */
/* ——————————*/
#include
#include
main()
{
int a=2, b=1, c=2, d=1, e;
clrscr();
for(e=1; 17>e; e++)
{
gotoxy(e, e); textcolor(e);
cprintf(“\nwarna ke-%d”,e);
}
getche();
}

Keterangan:
cprintf() = Menampilkan data dengan format pewarnaan teks dan pewarnaan latar belakang.

Perulangan Nested For

Pernyataaan Nested for adalah suatu perulangan for didalam perulangan for yang lainnya. Bentuk umum pernyataan Nested for sebagai berikut :
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah )
{
for ( inisialisasi; syarat pengulangan; pengubah nilai pencacah)
{
pernyataan / perintah;
}
}

Contoh3:
/* ————————- */
/* Program for – Nested for */
/* ————————- */
#include
#include
#include
main()
{
int a, b;
clrscr();
for(a = 1; a <= 5; a++)
{
printf("\n");
for(b = a; b <= 5; b++)
cout<<a<<" ";
}
getch();
}

Pernyataan Goto

Pernyataan goto merupakan instruksi untuk mengarahkan eksekusi program ke-pernyataan yang diawali dengan suatu label. Label merupakan suatu pengenal (identifier) yang diikuti dengan tanda titik dua ( : ). Bentuk pemakaian goto sebagai berikut :
goto label;

contoh4:
/* —————————— */
/* Program dengan pernyataan goto */
/* —————————— */
#include
#include
#include
main()
{
int a, b;
char lagi;
atas:
clrscr();
cout<>a;
b = a % 2;
printf(“Nilai %d %% 2 adalah = %d”,a, b);
printf(“\n\nIngin Hitung Lagi [Y/T] : “);
lagi = getche() ;
if (lagi == ‘Y’ || lagi == ‘y’)
goto atas;
getch();
}

Pernyataan While

Pernyataan perulangan while merupakan instruksi perulangan yang mirip dengan perulangan for. Bentuk perulangan while dikendalikan oleh syarat tertentu, yaitu perulangan akan terus dilaksanakan selama syarat tersebut terpenuhi.
Bentuk umum perulangan while, sebagai berikut :
while ( syarat )
Pernyataan / perintah ;

Contoh5:
/* Program while01.cpp */
/* ——————- */
#include
#include
#include
main()
{
int bil=1;
clrscr();
while(bil<=10)
{
cout<<bil<<" ";
++bil;
}
getch();
}

Pernyataan do – while

Pernyataan perulangan do – while merupakan bentuk perulangan yang melaksanakan perulangan terlebih dahulu dan pengujian perulangan dilakukan dibelakang.
Bentuk umum perulangan do – while, sebagai berikut :
do
pernyataan / perintah ;
while ( syarat );

contoh6:
/* Program do – while */
/* —————— */
#include
#include
#include
main()
{
int bil=2;
clrscr();
do
{
cout<<bil<<" "; bil+=2;
}
while(bil<=10);
getch();
}

Latihan:
1. Buatlah program untuk menghitung 10 deret bilangan genap dengan hasilnya :
2 + 4 + 6 + 8 + 10 + 12 + 14 + 16 + 18 + 20 = 110
2. Buatlah program untuk menghitung 10 deret bilangan ganjil dengan hasilnya :
1 + 3 + 5 + 7 + 9 + 11 + 13 + 15 + 17 + 19 = 100

Operasi String

Fungsi strcat()

Fungsi ini digunakan untuk menambahkan string sumber kebagian akhir dari string tujuan.
File header yang harus disertakan adalah : string.h dan ctype.h
Bentuk Penulisan :
strcat(tujuan, sumber);

contoh1:
#include
#include
#include
#include
#include
main()
{
char a1[20];
char a2[20];
clrscr();
cout<>a1;
cout<>a2;
strcat(a1, a2);
cout<<"Hasil Penggabungannya "<<a1;
getch();
}

Fungsi strlen()

Fungsi ini digunakan untuk memperoleh banyaknya karakter dalam string. File header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strlen(str);

Contoh2:
#include
#include
#include
#include
main()
{
char huruf[20];
char pindah[20];
clrscr();
cout<<"Masukkan Sembarang Kata = ";
gets(huruf);
cout<<"Panjang Kata Yang Diinputkan = ";
cout<<strlen(huruf);
getch();
}
Fungsi strrev()

Penjelasan Fungsi ini digunakan untuk membalik letak urutan pada string. String urutan paling akhir dipindahkan keurutan paling depan dan seterusnya. File header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strrev(str);

contoh3:
#include
#include
#include
#include
main()
{
char kata[20];
clrscr();
cout<<"Masukan Sembarang Kata = ";
gets(kata);
strrev(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}

Fungsi Strlwr()

Fungsi ini digunakan untuk mengubah setiap huruf kapital (huruf besar ) dalam string menjadi huruf kecil.
File header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strlwr(str);

contoh4:
#include
#include
#include
#include
main()
{
char kata[20];
clrscr();
cout<<"Masukan Sembarang Kata dengan Huruf Besar ="; gets(kata); strlwr(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}

Fungsi strupr()

Fungsi ini digunakan untuk mengubah setiap huruf kecil dalam string menjadi huruf kapital ( huruf besar ).
File header yang harus disertakan adalah : string.h
Bentuk Penulisan :
strupr(str);

contoh5:
#include
#include
#include
#include
main()
{
char kata[20];
clrscr();
cout<<"Masukan Sembarang Kata dengan Huruf Kecil=";
gets(kata);
strupr(kata);
cout<<"Hasil Perubahan = "<<kata;
getch();
}

Latihan 1:

#include
#include
#include
#include
garis()
{cout<<"____________________________________________________"<<endl;}
float harga(float a);
main()
{
int i;
char lagi;
struct
{
char nama[5][20];
char najur[5][10];
int jubel[5],kode[5],tot[5];
}travel[5];
atas:
clrscr();
cout<<"\tTRAVEL SILIWANGI"<<endl;
garis();
for (i=1;i<3;i++)
{
cout<<"Data Ke- "<<i;
cout<<"\nMasukan Nama : ";gets(travel[i].nama[i]);
cout<>travel[i].kode[i];
cout<>travel[i].jubel[i];
}
for (i=1;i<3;i++)
{
if (travel[i].kode[i]==1)
strcpy (travel[i].najur[i],"JKT – SBY");
else if (travel[i].kode[i]==2)
strcpy(travel[i].najur[i],"SBY – BALI");
else
strcpy (travel[i].najur[i],"SBY – JKT");
}
for (i=1;i<3;i++)
{
travel[i].tot[i]=travel[i].jubel[i]*harga(travel[i].kode[i]);
}
garis();
cout<<"\tTRAVEL SILIWANGI"<<endl;
cout<<"No. Nama Jurusan Harga jumlah Total"<<endl;
garis();

for (i=1;i<3;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(10)<<travel[i].nama[i];
cout<<setiosflags(ios::left)<<setw(15)<<travel[i].najur[i];
cout<<setiosflags(ios::left)<<setw(8)<<harga(travel[i].kode[i]);
cout<<setiosflags(ios::left)<<setw(5)<<travel[i].jubel[i];
cout<<setiosflags(ios::left)<<setw(10)<<travel[i].tot[i];
cout<<endl;
}
garis();
cout<<"\n\n\n\n"<<"apakah anda ingin input lagi?";
lagi=getche();
if (lagi=='y'||lagi=='Y')
goto atas;
getch();
}
float harga(float a)
{
if (a==1)
{
return 400000;
}
else if (a==2)
{
return 250000;
}
else
{
return 150000;
}
}

Hasil Tampilan:

Latihan2:

/* Program Gaji Karyawan Honerer */
/* Jawaban Kuis Pra UAS C++ A1 */
/* ================================= */
#include
#include
#include
#include
long Lembur(int LJam);
main()
{
struct
{
char NIK[10];
char Nama[25];
int JmlJam;
long Total;
}Karyawan[5];
int i,N;
clrscr();
cout<>N;
for(i=1;i<=N;i++)
{
clrscr();
cout<<"==============================="<<endl;
cout<<" PROGRAM GAJI KARYAWAN "<<endl;
cout<<" HONORER "<<endl;
cout<<"==============================="<<endl;
cout<<" Data Ke – : "<<i<<endl;
cout<>Karyawan[i].NIK;
cout<<" Nama Karyawan : ";gets(Karyawan[i].Nama);
cout<>Karyawan[i].JmlJam;
}
clrscr();
cout<<"==============================================="<<endl;
cout<<" RINCIAN GAJI KARYAWAN HONORER "<<endl;
cout<<"==============================================="<<endl;
cout<<" No NIK Nama Jumlah Jam Upah Lembur Total Gaji "<<endl;
cout<<"==============================================="<<endl;
for(i=1;i<=N;i++)
{
cout<<setiosflags(ios::right)<<setw(3)<<i<<" ";
cout<<setiosflags(ios::left)<<setw(10)<<Karyawan[i].NIK;
cout<<setiosflags(ios::left)<<setw(10)<<Karyawan[i].Nama;
cout<<setiosflags(ios::right)<<setw(3)<<Karyawan[i].JmlJam<<" ";
cout<<setiosflags(ios::right)<<setw(10)< 48)
Karyawan[i].Total = (((Karyawan[i].JmlJam – (Karyawan[i].JmlJam – 48)) * 2000) + (Lembur(Karyawan[i].JmlJam)));
else
Karyawan[i].Total = ((Karyawan[i].JmlJam * 2000) + Lembur(Karyawan[i].JmlJam));
cout<<setiosflags(ios::right)<<setw(10)<<Karyawan[i].Total<<endl;
}
cout<<"==============================================="< 48)
{
return(LJam – 48) * 3000;
}
else
{
return 0;
}
}

Hasil Tampilan:

Masukan Keluaran

Latihan3:

#include
#include
#include
#include
#include
main()
{
long int total;
int i,j;
char napeg[20],hari[12];
struct
{
float jumbar[5],kobar[5];
long int tot[5],harga[5];
char nabar[5][20];
}terima[5];
clrscr();
cout<>j;
cout<>napeg;
cout<>hari;
cout<<"_______________________________________________________________"<<endl;
cout<<"Rincian Data Barang "<<endl;
for(i=1;i<=j;i++)
{
cout<<"Data Barang Ke = "<<i<<endl;
cout<>terima[i].kobar[i];
cout<>terima[i].nabar[i];
cout<>terima[i].jumbar[i];
cout<>terima[i].harga[i];
cout<<endl;
}
clrscr();
cout<<"\t\t\t Laporan Data Barang "<<endl;
cout<<"\t\t\t PT.Makmur Sejahtera "<<endl<<endl<<endl;
cout<<"Hari = "<<hari<<"\t\t\t\t\t"<<"Nama Pencatat = "<<napeg<<endl;
cout<<"_______________________________________________________________"<<endl;
cout<<" No Kode Nama Barang Jumlah Harga Total "<<endl;
cout<<" Barang "<<endl;
cout<<"_______________________________________________________________"<<endl;
total = 0;
for(i=1;i<=j;i++)
{
terima[i].tot[i]=terima[i].jumbar[i]*terima[i].harga[i];
cout<<setiosflags(ios::left)<<setw(2)<<ends;
cout<<setiosflags(ios::left)<<setw(10)<<i;
cout<<setiosflags(ios::left)<<setw(10)<<terima[i].kobar[i];
cout<<setiosflags(ios::left)<<setw(15)<<terima[i].nabar[i];
cout<<setiosflags(ios::left)<<setw(13)<<terima[i].jumbar[i];
cout<<setiosflags(ios::left)<<setw(10)<<terima[i].harga[i];
cout<<setiosflags(ios::left)<<terima[i].tot[i];
total = total + terima[i].tot[i];
cout<<endl;
}
cout<<"_______________________________________________________________"<<endl;
cout<<"total bayar"<<setiosflags(ios::left)<<setw(50)<<ends<< total;
getch();
}

Latihan_IF:
#include
#include
#include
main()
{
char kd,judul[20],np[20],bonus[20],jwb;
int jumbel;
float harsat,j_pemby,dis,harber,tunj;
awal:
textbackground(0);
clrscr();
cout<<" \n Toko Kaset Utama \n"<<endl;
cout<>np;
cout<>kd;
cout<>jumbel;
cout<<"\n##################################"<<endl<=5)
dis=0.15*j_pemby;
else
dis=0;

if(kd==’1′ &&jumbel>=5)
tunj=5000;
else
if(kd==’2’&&jumbel>=5)
tunj=6000;
else
if(kd==’3’&&jumbel>=5)
tunj=7000;
else
tunj=0;

harber=j_pemby-dis+tunj;
cout<<"Judul Lagu : "<<judul<<endl;
cout<<"Bonus : "<<bonus<<endl;
cout<<"Harga : "<<harsat<<endl;
cout<<"Jumlah bayar : "<<j_pemby<<endl;
cout<<"Discount : "<<dis<<endl;
cout<<"Tunjangan : "<<tunj<<endl;
cout<<"Total Bayar : "<<harber<<endl<<endl;
cout<<"Mau Menghitung Lagi[Y/T]?";jwb=getche();
if(jwb=='Y'||jwb=='y')
goto awal;
getch();
}

Array / Larik

Variabel Larik atau lebih dikenal dengan ARRAY adalah adalah Tipe terstruktur yang terdiri dari sejumlah komponen-komponen yang mempunyai tipe yang sama. Suatu Array mempunyai jumlah komponen yang banyaknya tetap. Banyaknya komponen dalam suatu larik ditunjukan oleh suatu indek untuk membedakan variabel yang satu dengan variabel yang lainnya.

Array Berdimensi Satu

Bentuk Umum pendeklarasian array :
Tipe-Data Nama_Variabel[Ukuran]
Keterangan :
• Type Data : Untuk menyatakan type data yang digunakan.
• Ukuran : Untuk menyatakan jumlah maksimum elemen array.

Float Nil_Akhir[6];

Contoh1:
#include
#include
#include
#include
main()
{
int i;
char nama[5][20];
float nilai1[5];
float nilai2[5];
float hasil[5];
clrscr();
for (i=1;i<=2;i++)
{
cout<<"Data Ke- "<<i<<endl;
cout<<"Nama Siswa :";gets(nama[i]);
cout<>nilai1[i];
cout<>nilai2[i];
hasil[i]=(nilai1[i]*0.40)+(nilai2[i]*0.60);
cout<<endl;
}
clrscr();
cout<<endl<<endl;
cout<<"———————————————–"<<endl;
cout<<"No. Nama Siswa Nilai Nilai Hasil "<<endl;
cout<<" Teori Praktek Ujian "<<endl;
cout<<"———————————————–"<<endl;
for (i=1;i<=2;i++)
{
cout<<setiosflags(ios::left)<<setw(4)<<i;
cout<<setiosflags(ios::left)<<setw(18)<<nama[i];
cout<<setprecision(2)<<" "<<nilai1[i];
cout<<setprecision(2)<<" "<<nilai2[i];
cout<<setprecision(2)<<" "<<hasil[i]<<endl;
}
cout<<"———————————————–"<<endl;
getch();
}

Array Berdimensi Dua

Bentuk Umum pendeklarasian array :
Tipe-Data Nama_Variabel[index-1][index-2]
Keterangan :
• Type Data : Untuk menyatakan type data yang digunakan.
• Index-1 : Untuk menyatakan jumlah baris
• Index-2 : Untuk menyatakan jumlah kolom

Contoh2:
#include
#include
#include
#include
main()
{
int i, j;
int data_jual[4][4];
clrscr();
for(i=1;i<=3;i++)
{
for(j=1;j<=3;j++)
{
cout<<"Data Ke – "<<i<<" "<<j<<endl;
cout<>data_jual[i][j];
}
}
cout<<"Data Penjualan Pertahun"<<endl;
cout<<"———————–"<<endl;
cout<<"NO 2001 2002 2003"<<endl;
cout<<"———————–"<<endl;
for(i=1;i<=3;i++)
{
cout<<setiosflags(ios::left)<<setw(5)<<i;
for(j=1;j<=3;j++)
{
cout<<setiosflags(ios::right)<<setw(4);
cout<<data_jual[i][j]; cout<<" ";
}
cout<<endl;
}
cout<<"———————–"<<endl;
getch();
}

Latihan_array1:
Sebuah perusahaan ayam goreng dengan nama “GEROBAK FRIED CHICKEN” yang telah lumayan banyak pelanggannya, ingin dibantu dibuatkan program untuk membantu kelancaran usahaannya.
“GEROBAK FRIED CHICKEN” mempunyai daftar harga ayam sebagai berikut :
Kode Jenis Harga
——————
D Dada Rp. 2500
P Paha Rp. 2000
S Sayap Rp. 1500
——————

Buatlah programnya dengan ketentuan :
• Setiap pembeli dikenakan pajak sebesar 10% dari pembayaran.
• Banyak Jenis, Jenis Potong dan Banyak Beli diinput.
• Tampilan yang diinginkan sebagai berikut :

Layar Masukkan
GEROBAK FRIED CHICKEN
———————
Kode Jenis Harga
———————
D Dada Rp. 2500
P Paha Rp. 2000
S Sayap Rp. 1500
———————
Banyak Jenis : …
Jenis Ke – …
Jenis Potong [D/P/S] : …
Banyak Potong : …
… <>

Layar Keluaran
GEROBAK FIRED CHICHEN
———————————————–
No. Jenis Harga Bayak Jumlah
Potong Satuan Beli Harga
———————————————–
… …. …. …. Rp ….
… …. …. …. Rp ….
———————————————–
Jumlah Bayar Rp ….
Pajak 10% Rp ….
Total Bayar Rp ….

FUNGSI

Fungsi (Function) merupakan blok dari kode yang dirancang untuk melaksanakan tugas khusus.
Kegunaan dari fungsi ini adalah untuk:
Mengurangi pengulangan penulisan program yang berulangan atau sama.
Program menjadi lebih terstruktur, sehingga mudah dipahami dan dapat lebih dikembangkan.

Fungsi-fungsi yang sudah kita kenal sebelumnya adalah fungsi main(), yang bersifat mutlak, karena fungsi ini program akan dimulai, sebagai contoh yang lainnya fungsi printf(), cout() yang mempunyai tugas untuk menampilkan informasi atau data kelayar dan masih banyak lainnya.

Struktur Fungsi

nama_fungsi(argumen)
{
… pernyataan / perintah;
… pernyataan / perintah;
… pernyataan / perintah;
}

Keterangan:
Nama fungsi, boleh dituliskan secara bebas dengan ketentuan, tidak menggunakan spasi dan nama-nama fungsi yang mempunyai arti sendiri.
Argumen, diletakan diantara tanda kurung “( )” yang terletak dibelakang nama fungsi. Argumen boleh diisi dengan suatu data atau dibiarkan kosong.
Pernyataan / perintah, diletakan diantara tanda kurung ‘{ }’.

Pada pemanggilan sebuah fungsi, cukup dengan menuliskan nama fungsinya.

/* pembuatan fungsi garis() */
#include
#include
#include
garis()
{
printf(“\n———————-\n”);
}
/* program utama */
main()
{
clrscr();
garis(); //memanggil fungsi garis
cout<<"AMIK BSI – Salemba 22"<<endl;;
garis(); //memanggil fungsi garis
getche();
}

Prototipe Fungsi

Prototipe fungsi digunakan untuk mendeklarasikan ke kompiler mengenai: • Tipe data keluaran dari fungsi.
• Jumlah parameter yang digunakan
• Tipe data dari masing-masing parameter yang digunakan.

Keuntungan didalam pemakai prototipe yaitu :
• Kompiler akan melakukan konversi antara tipe parameter dalam definisi dan parameter fungsi.
• Jika jumlah parameter yang digunakan dalam definisi fungsi dan pada saat pemanggilan fungsi berbeda atau tidak sama, maka akan menunjukkan kesalahan.

Pernyataan return().

Digunakan untuk mengirimkan nilai atau nilai dari suatu fungsi kepada fungsi yang lain yang memanggilnya. Pernyataan return() diikuti oleh argumen yang berupa nilai yang akan dikirimkan. Contoh pemakaian pernyataan return() dapat dilihat pada contoh berikut ;

Contoh pengiriman data konstanta
/* ———————— */
/* Pengriman data Konstanta */
/* ———————— */
#include
#include
#include
luas(float sisi);
main()
{
float luas_bs;
clrscr();
luas_bs = luas(4.25);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs;
getch();
}
luas(float sisi)
{
return(sisi*sisi);
}

Keterangan :

Dalam struktur program diatas dilihat bahwa, pernyataan luas_bs=luas(4.25), akan dikirimkan nilai kepada fungsi luas(), untuk diolah lebih lanjut, yang nilai tersebut akan ditampung pada variabel sisi. Selanjutnya didalam fungsi return terjadi perkalian sisi dengan sisi, setelah itu hasil perkalian tersebut dikirim balik ke variabel luas_bs yang memanggil fungsi.

Contoh Pengiriman data variable:

/* ———————— */
/* Pengriman data Variabel */
/* ———————— */
#include
#include
#include
luas(float sisi);
main()
{
float luas_bs, sisi_bs;
clrscr();
cout<<"\nMenghitung Luas Bujur Sangkar"<<endl;
cout<>sisi_bs;
luas_bs = luas(sisi_bs);
cout<<"\nLuas Bujur Sangkar = "<<luas_bs<<" Cm";
getch();
}
luas(float sisi)
{ return(sisi*sisi); }

Latihan function

#include
#include
#include
potong(float harga,float disk);
garis ()
{
printf(“===============================”);
}
main()
{
char nama[20],jwb;
long int harga,total,disk;
ulang:
clrscr();
garis();
cout<<"\n\tToko Mas Jayakarta "<<endl;
cout<>nama;
cout<>harga;
if(harga=1000000&&harga<=5000000)
disk=harga*0.2;
else
disk=harga*0.35;
cout<<"Besar diskont yang diberikan :"<<disk<<endl;
total=potong(harga,disk);
cout<<"Besar harga yang harus dibayar :"<<total<<endl;
cout<<"\n\tAnda Ingin Input Lagi [Y/T]:";jwb=getche();
if(jwb=='Y'||jwb=='y')
goto ulang;
getch();
}
potong(float harga,float disk)
{ return(harga-disk); }

Macro

Preprocessor Directives
Adalah suatu perintah yang termasuk kedalam program, tetapi bukanlah instruksi dari program itu sendiri, tetapi untuk preprocessor. Preprocessor ini dijalankan secara otomatis oleh kompiler, ketika didalam proses penterjemahan (Compile) program berlangsung, didalamnya membuat nilai pembuktian pertama dan menterjemahkan code program didalam kode objek. Didalam penggunaan preprocessor directive selalu dimulai dengan tanda : #
Ada beberapa preprocessor directive, diantaranya adalah :

# define

Digunakan untuk mendefinisikan suatu nilai tertentu kepada suatu nama konstanta.
Bentuk umum dari preprocessor directive #define ini adalah:

#define nama_konstanta teks

Contoh :
Teks

#define A 6

Nama_Konstanta

Dalam pendeklarasian preprocessor directive #define,
Nama_Konstanta sebaiknya ditulis dengan menggunakan huruf besar, guna untuk membedakannya dengan nama_variabel. Sedangkan Teks merupakan suatu nilai yang diberikan pada nama_konstanta. Teks dapat berupa :
• Numerik  #define PI 3.14
• Karakter  #define HURUF ‘B’
• String  #define JABATAN “INSTRUCTOR”
• Pernyataan  #define CETAK (“Borland C++”)
• Fungsi Sederhana  #define LUAS_KUBUS (n*n)

Contoh1:

/* ————————– */
/* Program Penggunaan #define */
/* ————————– */
#include
#include
#include
#define PI 3.141592
#define L(n) PI*n*n
main()
{
clrscr();
cout<<"Luas Lingkaran dengan : "<<endl;
cout<<"Jari-jari = 5 adalah "<<L(5)<<endl;
cout<<"Jari-jari = 10 adalah "<<L(10)<<endl;
getche();
}

Contoh2:

/* ————————– */
/* Program Penggunaan #define */
/* ————————– */
#include
#include
#include
#define awal {
#define akhir }
#define mulai() main()
#define cetak cout
#define masuk cin
#define hapus() clrscr()
#define tahan() getch()
#define LS_KUBUS (sisi*sisi)
mulai()
awal
int sisi, ls_kubus;
hapus();
cetak<<"Program Penggunaan #define"<<endl<<endl;
cetak<>sisi;
ls_kubus = LS_KUBUS;
cetak<<"Luas Kubus adalah : "<<ls_kubus;
tahan();
akhir

# include

berfungsi untuk memasukkan atau menyertakan file-file header kedalam program yang akan dibuat. Dalam penulisan #include ada dua bentuk penulisan :
#include "nama_file_header"
atau
#include

Pada bentuk penulisan #include mempunyai arti yang berbeda, yaitu :

• #include “nama_file_header”
“Pertama kali compiler akan mencari file header yang disebutkan pada directori yang sedang aktif dan apa bila tidak ditemukan akan mencari pada directori dimana file header tersebut berada “.

• #include
“Pertama kali compiler akan mencari file header yang disebutkan pada directori yang ada file headernya, kecuali pada directori yang sedang aktif.

Pembuatan File Header
File Header adalah suatu file dengan akhiran .h . File ini sebenarnya berisikan deklarasi fungsi dan definisi konstanta. Selain file-file header standar yang disediakan oleh C++, kita dapat juga membuat file header sediri, dengan cara yang sama seperti membuat file editor. Yang harus diperhatikan pada saat menyimpan file header yang telah dibuat harus digunakan akhiran .h .

Buatlah program file heder dibawah ini, kemudian simpan dengan nama : atur.h, pada folder kerja anda folder include

Contoh-1

/* atur.h */
#define awal {
#define akhir }
#define mulai() main()
#define cetak cout
#define tampil cprintf
#define masuk cin
#define hapus() clrscr()
#define jika if
#define warna textcolor
#define tahan getche()

Buatlah program dibawah ini, kemudian gunakan file header yang sudah anda buat dan simpan dengan nama : sendiri.cpp

/* ———————————- */
/* program dengan file header sendiri */
/* ———————————- */
#include
#include
#include
#include”atur.h”
mulai()
awal
int a, b, c;
hapus();
warna(4);
tampil(“\nPROGRAM PENJUMLAHAN\n”);
cetak<<endl;
cetak<>a;
cetak<>b;
c=a+b;
cetak<<"Hasil dari "<<a<<" + "<<b<<" = "<<c;
tahan;
akhir

Structure

Structure digunakan untuk mengelompokan sejumlah data yang mempunyai tipe data yang berbeda. Variabel-variabel yang membentuk sebuah struktur dinamakan elemen struktur. Struktur sama seperti Record di dalam Bahasa Pemrograman Pascal

Deklarasi Structure

Atau

Contoh1:

/* —————————- */
/* Program Penggunaan structure */
/* Nama File : struct1.cpp */
/* —————————- */
#include
#include
#include
main()
{
struct
{
char nim[5];
char nama[15];
int nilai;
} mahasiswa;
clrscr();
cout<>mahasiswa.nim;
cout<>mahasiswa.nama;
cout<>mahasiswa.nilai;
cout<<"\n\nData Yang di Inputkan adalah : \n\n";
cout<<"NIM = "<<mahasiswa.nim<<endl;
cout<<"Nama = "<<mahasiswa.nama<<endl;
cout<<"Nilai Akhir = "<<mahasiswa.nilai<<endl;
getch();
}
Nested Structure

Contoh2:
/* ———————————– */
/* Program Penggunaan Nested structure */
/* ———————————– */
#include
#include
#include
main()
{
struct dtmhs
{
char nim[9];
char nama[15];
};
struct dtnil
{
float nil1;
float nil2;
};
struct
{
struct dtmhs mhs;
struct dtnil nil;
} nilai;
clrscr();
//-> masukan data
cout<>nilai.mhs.nim;
cout<>nilai.mhs.nama;
cout<>nilai.nil.nil1;
cout<>nilai.nil.nil2;
cout< menampilkan hasil masukan
cout<<"masukan NIM = "<<nilai.mhs.nim<<endl;
cout<<"masukan Nama = "<<nilai.mhs.nama<<endl;
cout<<"masukan Nilai UTS = "<<nilai.nil.nil1<<endl;
cout<<"masukan Nilai UAS = "<<nilai.nil.nil2<<endl;
cout<<endl;
getch();
return(0);
}
Structure dengan Array

struct
{
elemen_struktur;
…..
…..
} nama_tipe_struktur[jml_index];

Contoh3:
#include
#include
#include
main()
{
int i,j=1;
struct
{
char nim[10];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=1;i<=2;i++)
{
cout<<"Data ke-"<<i<<endl;
cout<>mhs[i].nim;
cout<>mhs[i].nama;
cout<>mhs[i].nilai;
cout<<endl;
}

for(i=1;i<=2;i++)
{
cout<<"Data ke-"<<i<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<endl;
}
getch();
}

Structure dengan Function

/* —————————————— */
/* Program Penggunaan structure pada function */
/* Nama File : struct4.cpp */
/* —————————————— */
#include
#include
#include
char ket(float n);
main()
{
int i, j=1, k=1;
struct
{
char nim[5];
char nama[15];
float nilai;
} mhs[5];
clrscr();
for(i=0; i<2; i++)
{
cout<<"Data Ke – "<<j++<<endl;
cout<>mhs[i].nim;
cout<>mhs[i].nama;
cout<>mhs[i].nilai;
cout<<endl;
}
clrscr();
for(i=0; i<2; i++)
{
cout<<"Data Ke – "<<k++<<endl;
cout<<"NIM = "<<mhs[i].nim<<endl;
cout<<"Nama = "<<mhs[i].nama<<endl;
cout<<"Nilai Akhir = "<<mhs[i].nilai<<endl;
cout<<"Keterangan yang didapat = ";
cout<<ket(mhs[i].nilai)<<endl; cout< 65)
return ‘L’;
else
return ‘G’;
}

Pengertian Pemograman Dasar dan Konsep Dasar Pemrograman

Pengertian Pemograman Dasar

Pemrograman adalah proses menulis, menguji dan memperbaiki (debug), dan memelihara kode yang membangun sebuah program komputer. Kode ini ditulis dalam berbagai bahasa pemrograman. Tujuan dari pemrograman adalah untuk memuat suatu program yang dapat melakukan suatu perhitungan atau 'pekerjaan' sesuai dengan keinginan si pemrogram (programmer). Untuk dapat melakukan pemrograman, diperlukan keterampilan dalam algoritma, logika, bahasa pemrograman, dan di banyak kasus, pengetahuan-pengetahuan lain seperti matematika.

Pemrograman adalah sebuah seni dalam menggunakan satu atau lebih algoritma yang saling berhubungan dengan menggunakan sebuah bahasa pemrograman tertentu sehingga menjadi sebuah program komputer. Bahasa pemrograman yang berbeda mendukung gaya pemrograman yang berbeda pula. Gaya pemrograman ini biasa disebut paradigma pemrograman.


Konsep Dasar Pemrograman

Pengertian Dasar Program adalah rangkaian instruksi-instruksi dalam bahasa komputer yang disusun secara logika dan sistematis.

Pengertian Pemrograman adalah suatu kumpulan urutan perintah ke komputer untuk mengerjakan sesuatu, dimana instruksi tersebut menggunakan bahasa yang dimengerti  oleh komputer atau dikenal dengan bahasa pemrograman.

Konsep Dasar Pemrograman pada umumnya adalah IPO (Input Proses Output), lalu dikembangkan mejadi :
Originating -> input -> proses -> Output -> Distribution

||
Storage
Originating
Berhubungan dengan pengumpulan data yang biasanya merupakan pencatatan data kedokumen dasar. Setelah dikumpulkan dilakukan proses input.

Input
Tahapan ini merupakan proses pemasukan data kedalam proses komputer melalui peralatan input.

Proses
Tahap ini merupakan proses pengolahan data dari data yang sudah diinput berupa proses    menghitung membandingkan, mengurutkan, mengklasifikasikan, mengendalikan dan mencari di storage.

Output
Tahap ini merupakan proses untuk menghasilkan keluaran dari proses pengolahan data ke peralatan output berupa informasi (monitor, speaker, dsb)

Distribution
Tahap ini merupakan proses penyebaran informasi kepada pihak-pihak yang berhak dan membutuhkan informasi.

Storage
Tahap ini merupakan perekaman hasil pengolahan data storage yang nantinya dapat dipergunakan untuk input proses selanjutnya.

DATA
Data adalah bahan mentah yang akan diolah menjadi informasi sehingga  dapat dipergunakan oleh user atau pemakai.

1. Tipe Data Dasar : Merupakan tipe data primitif yang tidak terstruktur yang didefinisikan oleh bahasa pemrograman.

Tipe data dasar dibagi menjadi lima bagian yaitu :
a. Numerik, yaitu menyimpan data berupa angka
b. Enumerasi, yaitu suatu urutan list dari nilai-nilai yang berbeda.
c. Boolean, yaitu tipe data untuk merepresentasikan True atau False.
d. Character, yaitu tipe data untuk menyimpan rangkaian karakter.
e. Internationalization, disebut I18N

2. Tipe Data Terstruktur : Merupakan tipe data campuran dari berbagai tipe data dasar. Contohnya array, record, string, list dan file.

3. Tipe Data didefinisikan oleh Pemakai : Tipe data ini biasanya disebut Enumerasi.

4. Tipe Data Penunjuk : Contoh tipe data penunjuk adalah pointer

Model Komputasi
Model Komputasi adalah suatu kumpulan dari nilai dan operasi-operasi. Ada 3 dasar model komputasi :

1. Model Fungsional, yaitu model perhitungan yang fungsional terdiri dari satu set nilai-nilai, fungsi dan operasi, aplikasi, fungsi dan komposisi fungsi.

2. Model Logika, yaitu logika model perhitungan terdiri dari suatu set nilai-nilai, definisi hubungan dan kesimpulan logis.

3. Model Imperative, yaitu model perhitungan yang imperative terdiri dari satu set nilai-nilai yang mencakup suatu status dan operasi tugas-tugas untuk memodifikasi status tersebut.

Prinsip Bahasa Pemrograman

Empat prinsip dasar perancangan bahasa pemrograman adalah:

1. Sintaks, menjelaskan bagaimana struktur program yang benar.

2.Tipe sistem dan semantik, menunjukkan tipe nilai yang dapat dimanipulasi oleh program dan arti(semantik) dari program, mencakup juga aturan penamaan entitas (variabel,fungsi,class,parameter,dll).

3. Manajemen memori, menunjuk kepada sekumpulan teknik yg membantu kita untuk memahami pemetaan letak dari nilai, struktur data, dan struktur program di dalam memori.

4. Exception handling, mengenai penanganan exception (hal-hal yang tak terduga seperti kesalahan input ketika menjalankan program).
Definisi Sintaks, Semantik, dan Pragmatik

Sintaks   : Aturan gramatikal / komposisi suatu program yang mengatur tata cara penulisanhuruf, angka dan karakter lain.
Contoh : Pada pembuatan program Pascal antara 2 statement dipisahkan oleh ; (titik koma)
X:=1;  X:=X+1;

Semantik : Mendefinisikan arti dari program yang benar secara sintaks dari bahasa pemrograman tersebut.
Contoh : Pada pembuatan program C
int vector[10]
Arti semantiknya akan menyebabkan ruang sebanyak 10

Pragmatik  : Kemampuan pemakai dalam mengaitkan kalimat dengan kontek-kontek yang sesuai bagi kalimat tersebut.
Contoh : (A+B)*(A-B)

Sunday, February 12, 2017

Modul Jaringan Dasar tentang TCP / IP


SEJARAH TCP ATAU IP

habaonline99Sejarah TCP/IP dimulainya dari lahirnya ARPANET yaitu jaringan paket switching digital yang didanai oleh DARPA (Defence Advanced Research Projects Agency) pada tahun 1969.Sementara itu ARPANET terus bertambah besar sehingga protokol yang digunakan pada waktu itu tidak mampu lagi menampung jumlah node yang semakin banyak.Oleh karena itu DARPA mendanai pembuatan protokol komunikasi yang lebih umum, yakni TCP/IP.Ia diadopsi menjadi standard ARPANET pada tahun 1983.

Untuk memudahkan proses konversi, DARPA juga mendanai suatu proyek yang mengimplementasikan protokol ini ke dalam BSD UNIX, sehingga dimulailah perkawinan antara UNIX dan TCP/IP..Pada awalnya internet digunakan untuk menunjukan jaringan yang menggunakan internet protocol (IP) tapi dengan semakin berkembangnya jaringan, istilah ini sekarang sudah berupa istilah generik yang digunakan untuk semua kelas jaringan.Internet digunakan untuk menunjuk pada komunitas jaringan komputer worldwide yang saling dihubungkan dengan protokol TCP/IP.

Perkembangan TCP/IP yang diterima luas dan praktis menjadi standar de-facto jaringan komputer berkaitan dengan ciri-ciri yang terdapat pada protokol itu sendiri yang merupakan keunggulun dari TCP/IP, yaitu :

* Perkembangan protokol TCP/IP menggunakan standar protokol terbuka sehingga tersedia secara luas. Semua orang bisa mengembangkan perangkat lunak untuk dapat berkomunikasi menggunakan protokol ini. Hal ini membuat pemakaian TCP/IP meluas dengan sangat cepat, terutama dari sisi pengadopsian oleh berbagai sistem operasi dan aplikasi jaringan.

* Tidak tergantung pada perangkat keras atau sistem operasi jaringan tertentu sehingga TCP/IP cocok untuk menyatukan bermacam macam network, misalnya Ethernet, token ring, dial-up line, X-25 net dan lain lain.

* Cara pengalamatan bersifat unik dalam skala global, memungkinkan komputer dapat mengidentifikasi secara unik komputer yang lain dalam seluruh jaringan, walaupun jaringannya sebesar jaringan worldwide Internet. Setiap komputer yang tersambung dengan jaringan TCP/IP (Internet) akan memiliki address yang hanya dimiliki olehnya.

* TCP/IP memiliki fasilitas routing dan jenis-jenis layanan lainnya yang memungkinkan diterapkan pada internetwork.

1.1. Arsitektur dan Protokol Jaringan TCP/IP Dalam arsitektur jaringan komputer, terdapat suatu lapisan-lapisan ( layer ) yang memiliki tugas spesifik serta memiliki protokol tersendiri. ISO (International Standard Organization) telah mengeluarkan suatu standard untuk arsitektur jaringan komputer yang dikenal dengan nama Open System Interconnection ( OSI ). Standard ini terdiri dari 7 lapisan protokol yang menjalankan fungsi komunikasi antara 2 komputer. Dalam TCP/IP hanya terdapat 5 lapisan sbb :



modul jaringan dasar tentang TCP / IP
modul jaringan dasar tentang TCP / IP 

Walaupun jumlahnya berbeda, namun semua fungsi dari lapisanlapisan arsitektur OSI telah tercakup oleh arsitektur TCP/IP. Adapun rincian fungsi masing-masing layer arsitektur TCP/IP adalah sbb :

* Physical Layer (lapisan fisik) merupakan lapisan terbawah yang mendefinisikan besaran fisik seperti media komunikasi, tegangan, arus, dsb. Lapisan ini dapat bervariasi bergantung pada media komunikasi pada jaringan yang bersangkutan. TCP/IP bersifat fleksibel sehingga dapat mengintegralkan mengintegralkan berbagai jaringan dengan media fisik yang berbeda-beda.

* NetworkAccessLayer mempunyai fungsi yang mirip dengan Data Link layer pada OSI. Lapisan ini mengatur penyaluran data frame-frame data pada media fisik yang digunakan secara handal. Lapisan ini biasanya memberikan servis untuk deteksi dan koreksi kesalahan dari data yang ditransmisikan. Beberapa contoh protokol yang digunakan pada lapisan ini adalah X.25 jaringan publik, Ethernet untuk jaringan Etehernet, AX.25 untuk jaringan Paket Radio dsb.

* InternetLayer mendefinisikan bagaimana hubungan dapat terjadi antara dua pihak yang berada pada jaringan yang berbeda seperti Network Layer pada OSI. Pada jaringan Internet yang terdiri atas puluhan juta host dan ratusan ribu jaringan lokal, lapisan ini bertugas untuk menjamin agar suatu paket yang dikirimkan dapat menemukan tujuannya dimana pun berada. Oleh karena itu, lapisan ini memiliki peranan penting terutama dalam mewujudkan internetworking yang meliputi wilayah luas (worldwide Internet). Beberapa tugas penting pada lapisan ini adalah:

* Addressing, yakni melengkapi setiap datagram dengan alamat Internet dari tujuan. Alamat pada protokol inilah yang dikenal dengan Internet Protocol Address ( IP Address). Karena pengalamatan (addressing) pada jaringan TCP/IP berada pada level ini (software), maka jaringan TCP/IP independen dari jenis media dan komputer yang digunakan.


* Routing, yakni menentukan ke mana datagram akan dikirim agar mencapai tujuan yang diinginkan. Fungsi ini merupakan fungsi terpenting dari Internet Protocol (IP). Sebagai protokol yang bersifat connectionless, proses routing sepenuhnya ditentukan oleh jaringan. Pengirim tidak memiliki kendali terhadap paket yang dikirimkannya dikirimkan bebas dari kesalahan. Jika ditemukan kesalahan pada paket data yang diterima, maka penerima tidak akan menerima data tersebut. Pengirim akan mengirim ulang paket data yang mengandung kesalahan tadi. Namun hal ini dapat menimbulkan delay yang cukup berartii.


Pada TCP/IP protokol yang dipergunakan adalah Transmission Control Protocol (TCP) atau User Datagram Protocol( UDP ). TCP dipakai untuk aplikasi-aplikasi yang membutuhkan keandalan data, sedangkan UDP digunakan untuk aplikasi yang membutuhkan panjang paket yang pendek dan tidak menuntut keandalan yang tinggi. TCP memiliki fungsi flow control dan error detection dan bersifat connection oriented. Sebaliknya pada UDP yang bersifat connectionless tidak ada mekanisme pemeriksaan data dan flow control, sehingga UDP disebut juga unreliable protocol.Untuk beberapa hal yang menyangkut efisiensi dan penyederhanaan, beberapa aplikasi memilih menggunakan UDP sebagai protokol transport. Contohnya adalah aplikasi database yang hanya bersifat query dan response, atau aplikasi lain yang sangat sensitif terhadap delay seperti video conference. Aplikasi seperti ini dapat mentolerir sedikit kesalahan (gambar atau suara masih bisa dimengerti), namun akan tidak nyaman untuk dilihat jika terdapat delay yang cukup berarti. untuk bisa mencapai tujuan. Router-router pada jaringan TCP/IP lah yang sangat menentukan dalam penyampaian datagram dari penerima ke tujuan.

* TransportLayer mendefinisikan cara-cara untuk melakukan pengiriman data antara end to end host secara handal. Lapisan ini menjamin bahwa informasi yang diterima pada sisi penerima adalah sama dengan informasi yang dikirimkan pada pengirim. Untuk itu, lapisan ini memiliki beberapa fungsi penting antara lain :

* FlowControl. Pengiriman data yang telah dipecah menjadi paket-paket tersebut harus diatur sedemikian rupa agar pengirim tidak sampai mengirimkan data dengan kecepatan yang melebihi kemampuan penerima dalam menerima data.

* Error Detection. Pengirimdan penerima juga melengkapi data dengan sejumlah informasi yang bisa digunakan untuk memeriksa data yang dikirimkan bebas dari kesalahan. Jika ditemukan kesalahan pada paket data yang diterima, maka penerima tidak akan menerima data tersebut. Pengirim akan mengirim ulang paket data yang mengandung kesalahan tadi Namun hal ini dapat menimbulkan delay yang cukup berartii.

Pada TCP/IP, protokol yang dipergunakan adalah Transmission Control Protocol (TCP) atau User Datagram Protocol( UDP ). TCP dipakai untuk aplikasi-aplikasi yang membutuhkan keandalan data, sedangkan UDP digunakan untuk aplikasi yang membutuhkan panjang paket yang pendek dan tidak menuntut keandalan yang tinggi. TCP memiliki fungsi flow control dan error detection dan bersifat connection oriented. Sebaliknya pada UDP yang bersifat connectionless tidak ada mekanisme pemeriksaan data dan flow control, sehingga UDP disebut juga unreliable protocol.Untuk beberapa hal yang menyangkut efisiensi dan penyederhanaan, beberapa aplikasi memilih menggunakan UDP sebagai protokol transport. Contohnya adalah aplikasi database yang hanya bersifat query dan response, atau aplikasi lain yang sangat sensitif terhadap delay seperti video conference. Aplikasi seperti ini dapat mentolerir sedikit kesalahan (gambar atau suara masih bisa dimengerti), namun akan tidak nyaman untuk dilihat jika terdapat delay yang cukup berarti.

TCP/IP menggambarkan fungsi-fungsi dalam komunikasi antara dua buah komputer. Setiap lapisan menerima data dari lapisan di atas atau dibawahnya, kemudian memproses data tersebut sesuai fungsi protokol yang dimilikinya dan meneruskannya ke lapisan berikutnya. Ketika dua komputer berkomunikasi, terjadi aliran data antara pengirim dan penerima melalui lapisan-lapisan di atas. Pada pengirim, aliran data adalah dari atas ke bawah. Data dari user maupun suatu aplikasi dikirimkan ke Lapisan Transport dalam bentuk paket-paket dengan panjang tertentu. Protokol menambahkan sejumlah bit pada setiap paket sebagai header yang berisi informasi mengenai urutan segmentasi untuk menjaga integritas data dan bit-bit pariti untuk deteksi dan koreksi kesalahan.

Dari Lapisan Transport, data yang telah diberi header tersebut diteruskan ke Lapisan Network / Internet. Pada lapisan ini terjadi penambahan header oleh protokol yang berisi informasi alamat tujuan, alamat pengirim dan informasi lain yang dibutuhkan untuk melakukan routing. Kemudian terjadi pengarahan routing data, yakni ke network dan interface yang mana data akan dikirimkan, jika terdapat lebih dari satu interface pada host. Pada lapisan ini juga dapat terjadi segmentasi data, karena panjang paket yang akan dikirimkan harus disesuaikan dengan kondisi media komunikasi pada network yang akan dilalui. Proses komunikasi data di atas dapat dijelaskan seperti pada gambar berikut ini :

ApplicationLayer merupakan lapisan terakhir dalam arsitektur TCP/IP yang berfungsi mendefinisikan aplikasi-aplikasi yang dijalankan pada jaringan.Karena itu, terdapat banyak protokol pada lapisan ini, sesuai dengan banyaknya aplikasi TCP/IP yang dapat dijalankan. Contohnya adalah SMTP ( Simple Mail Transfer Protocol ) untuk pengiriman e-mail, FTP (File Transfer Protocol) untuk transfer file, HTTP (Hyper Text Transfer Protocol) untuk aplikasi web, NNTP (Network News Transfer Protocol) untuk distribusi news group dan lain-lain. Setiap aplikasi pada umumnya menggunakan protokol TCP dan IP, sehingga keseluruhan keluarga protokol ini dinamai dengan TCP/IP.

Saturday, February 11, 2017

Modul Jaringan Wireless / Wireless Network IEEE 802.11 dan Kabel Serat Optik (Fiber Optik)

Jaringan Wireless / Wireless Network IEEE 802.11

Jenis yang paling popular dari Jaringan Wireless alias wifi network sekarang ini adalah yang berdasarkan standard 802.11, yang disebut secara informal sebagai jaringan Wifi. Spesifikasi 802.11 mendefinisikan bagaimana dua piranti atau lebih bisa saling mengirim dan menerima data.

Wifi adalah shared LAN

Komunikasi Jaringan Wireless adalah merupakan shared LAN – berbagi satu jalur LAN yang sama karena hanya ada satu station saja yang secara effektif dapat mentransmit data pada satu waktu. Standard 802.11 secara effective bisa menjangkau areal sejauh 100 meter saja.Akan tetapi dengan beberapa teknologi khusus sinyal ini juga bisa menjangkau areal lebih luas sampai 300-400 meteran. Jaringan wifi pada umumnya terdiri dari satu atau beberapa komputer yang dilengkapi adapter wireless, plus satu atau lebih wireless access point (WAP). Fungsi dari WAP ini adalah menjebatani atau mengarahkan traffic dari Jaringan wifi ke jaringan kabel LAN dan sebaliknya. Gambar dibawah ini adalah diagram dari komunikasi computer dengan adapter wireless dan access point.

Access point dilengkapi dengan dua buah antenna, yang merupakan komponen dari wireless yang digunakan untuk men-transmit dan receive sinyal radio wireless. Sementara dua laptop juga dilengkapi dengan adapter wifi yang juga mempunyai antenna internal yang memancarkan gelombang radio. Catatan bahwa 802.11 tidak lagi menggunakan IEEE 802.2 LLC ataupun format address yang didefinisikan 802.3; 802.11 menggunakan header MAC yang berbeda dari 802.3. Sehingga untuk melewatkan traffic, si access point cukup menukar header 802.11 dengan header 802.3 dan sebaliknya menggunakan address MAC yang sama. Access point mengarahkan traffic dari Wifi network ke jaringan kabel.
standard wireless 802.11

Ada banyak standard wireless 802.11 yang digunakan secara industri yaitu:

1. Standard wireless-B 802.11b

 mentransmit pada rate kecepatan sampai 11 Mbps menggunakan frequency band 2.4 GHz, berbagi jaringan dengan keluaran maksimum biasanya secara real terpatok sekitaran 7 Mbps.

 802.11b mempunyai range yang bagus akan tetapi bisa dipengaruhi oleh interferensi sinyal radio. Banyak dipakai untuk jaringan dirumahan dan banyak kelemahan disisi keamanan.

2. Standard wireless 802.11a,

 beroperasi pada frequency band 5 GHz dengan transmisi sampai maksimum 54 Mbps.

 Sangat cocok dan bagus pada aplikasi konferensi dan video.

 Bekerja dengan bagus pada populasi yang padat

 Tidak bisa beroperasi pada standard 802.11b/g

3. Standard wireless-G 802.11g

 Pengembangan dari bersi 802.11b dengan rate kecepatan sampai 54 Mbps

 Jangkauan yang lebih pendek (beberapa jenis piranti wireless-G dikuatkan dengan technology yang bisa mencakup area yang lebih luas seperti technology MIMO)

4. Standard wireless-N 802.11n

 Bisa mencapai speed sampai 450 Mbps dengan tiga spatial data streams secara teoritis dengan kondisi ideal

 Dengan teknologi MIMO bisa mencakup area sampai 300-400 meteran. Disamping kecepatannya jauh lebih tinggi dan juga jangkauannya lebih
luas, wireless-N ini dilengkapi dengan standard keamanan wireless terkini yaitu Wi-Fi Protected Access (WPA dan WPA2).

Standard wireless AC 802.11ac

802.11ac adalah standard (masih draft) teknology wifi generasi kelima yang bisa menembus kecepatan sampai 1300Mbps. Banyak sudah diproduksi perangkat wifi dengan teknology wireless ac ini diantaranya Netgear dengan R6300 wireless ac dual band, Asus RT-AC66, TP-link Archer dan lain-lain.

Kabel Serat Optik (Fiber Optik)

Jenis kabel fiber optic merupakan kabel jaringan yang jarang digunakan pada instalasi jaringan tingkat menengah ke atas.Pada umumnya, kabel
jenis ini digunakan pada instalasi jaringan yang besar dan pada perusahaan multinasional serta digunakan untuk antar lantai atau antar gedung.Kabel fiber optic merupakan media networking medium yang digunakan untuk transmisi-transmisi modulasi. Fiber Optic harganya lebih mahal di bandingkan media lain.Fiber Optic mempunyai dua mode transmisi, yaitu single mode dan multi mode.Single mode menggunakan sinar laser sebagai media transmisi data sehingga mempunyai jangkauan yang lebih jauh. Sedangkan multimode menggunakan LED sebagai media transmisi.

Karakteristik kabel fiber optik :
1. Beroperasi pada kecepatan tinggi (gigabit per detik)

2. Mampu membawa paket-paket dengan kapasitas besar

3. Biaya rata-rata pernode cukup mahal

4. Media dan ukuran konektor kecil

5. Kebal terhadap interferensi elektromagnetik

6. Jarak transmisi yang lebih jauh ( 2 - 60 kilometer)

Teknologi fiber optic atau serat cahaya memungkinkan menjangkau jarak yang besar dan menyediakan perlindungan total terhadap gangguan
elektrik. Kecepatan transfer data dapat mencapai 1000 mbps serta jarak dalam satu segment dapat labih dari 3.5 km. kabel serat cahaya tidak
terganggu oleh lingkungan cuaca dan panas.

Fiber optic merupakan media transmisi terkini untuk standard Ethernet dalam kabel lan. Perbedaan utama dalam hal fungsi antara kabel fiber optic
dan kabel electric adalah sebagia berikut:

 Jarak lebih jauh

 Jauh lebih mahal

 Kurang interferensi magnetic, membuatnya lebih ama

 Dapat menunjang keceptan sampai 10Gigabits

Ada dua macam kabel lan dalam piranti optic ini:

 Multimode (MM), menggunakan ukuran diameter fiber optic lebih luas.

 Single mode (SM), menggunakan diameter fiber optic sangat kecil.

Jenis ini sangat mahal dikarenakan proses fabrikasinya lebih presisi. Kabel optic ini bisa mencapai jauh lebih panjang dari pada jenis optic MM.

Konektor optic

Untuk mentransmisikan data lewat kabel lan optic ini anda memerlukan sebuah strand optic tunggal untuk satu arah. Anda memerlukan dua strand optic untuk kedua arah masing-2 untuk kirim dan terima.

Di bawah ini merupakan kelebihan serta kekurangan dari fiber optic :

Kelebihan:

a) kemampuannya yang baik dalam mengantarkan data dengan kapasitas yang lebih besar dalam jarak transmisi yang cukup jauh.

b) kecepatan transmisi yang tinggi hingga mencapai ukuran gigabits, serta tingkat kemungkinan hilangnya data yang sangat rendah.

c) tingkat keamanan fiber optic yang tinggi, aman dari pengaruh interferensi sinyal radio, motor, maupun kabelkabel yang berada di sekitarnya, membuat fiber optic lebih banyak digunakan dalam infrastruktur perbankan atau perusahaan yang membutuhkan jaringan dengan tingkat keamanan yang tinggi.

d) aman digunakan dalam lingkungan yang mudah terbakar dan panas.

e) fiber optic juga jauh lebih kecil dibandingkan dengan kabel tembaga, sehingga lebih menghemat tempat dalam ruangan network data center di mana pun.

modul Media Jaringan

Media Jaringan

Perangkat keras yang dibutuhkan untuk membangun sebuah komputer baik hardware maupun software, yaitu minimal dua buah komputer, Network inteface card, serta perangkat lain seperti hub, repeater, router, bridge, file server, dan media tranmisi.

Media transmisi yang digunakan jaringan komputer sebagai sarana penghubung ada dua macam, yaitu sebagai berikut.

A. Media Transmisi menggunakan Kabel (Wired Network)
Hampir semua jaringan komputer yang ada saat ini mengg unakan kabel sebagai media transmisi. Media transmisi ini memiliki keterbatasan jangkauan dan tidak efisien karena banyak memakai tempat untuk jaringan kabel. Jaringan kabel ini biasanya digunakan dalam area lokal, misalnya dalam satu gedung atau antar gedung dalam satu lembaga pendidikan. Bila sumber data dan penerima memiliki jarak yang tidak terlalu jauh, kabel memang dapat digunakan sebagai media transmisi. Kabel yang sering digunakan sebagai media transmisi antara lain sebagai berikut.

1.Twisted Pair

2. Coaxiax

3.Serat optic,dsb.

B.Media Transmisi tanpa Kabel (WirelessNetwork)

Media transmisi tanpa kabel merupakan komunikasi data dalam jaringan komputer yang tidak memanfaatkan kabel sebagai media transmisi, melainkan berupa gelombang elektromagnetik. Jaringan tanpa kabel ini memberikan keunggulan kepada pemakai untuk dapat mengakses setiap saat di manapun berada. Sedangkan kekurangan media transmisi ini adalah kemampuan transfer data lebih kecil dibandingkan dengan jaringan kabel. Pada media transmisi ini, masih sering terjadi gangguan sehingga memungkinkan terjadinya kehilangan data. Jika sumber data dan penerima data jaraknya cukup jauh atau medannya sulit, maka dapat digunakan media transmisi radiasi elektromagnetik yang dipancarkan melalui udara terbuka berupa:

1. Gelombang Mikro

2. Gelombang radio,dll

1. Kabel Unshielded Twisted Pair (UTP)

Kabel Unshielded Twisted Pair (UTP) merupakan sepasang kabel yang ditwist/ dililit satu sama lain dengan tujuan untuk mengurangi interferensi listrik yang dapat terdiri dari dua, empat atau lebih pasangan kabel (umumnya yang dipakai dalam jaringan komputer terdiri dari 4 pasang kabel / 8kabel). UTP dapat mempunyai transfer rate 10 Mbps sampai dengan100 Mbps tetapi mempunyai jarak yang pendek yaitu maximum 100m.

Terdapat 5 kategori kabel UTP :
1. Category (CAT) 1

Digunakan untuk telekomunikasi telepon dan tidak sesuai untuk transmisi data.

2. Category (CAT) 2

Jenis UTP ini dapat melakukan transmisi data sampai kecepatan 4 Mbps.

3. Category (CAT) 3

Digunakan untuk mengakomodasikan transmisi dengan kecepatan sampai dengan 10 Mbps.

4. Category (CAT) 4

 Digunakan untuk mengakomodasikan transmisi dengan kecepatan sampai dengan 16 Mbps.

5. Category (CAT) 5

Merupakan jenis yang paling popular dipakai dalam jaringan komputer di dunia pada saat ini. Digunakan untuk mengakomodasikan transmisi dengan kecepatan sampai dengan 100 Mbps.

UTP (Unshielded Twisted Pair) dan STP (Shielded twisted pair)

Ada dua jenis kabel dengan kawat tembaga ini yaitu STP dan UTP, akan tetapi yang paling popular adalah kabel lan UTP.

Kabel lan UTP adalah yang paling popular yang terdiri dari 4 pasang kabel yang saling melilit dengan kode warna khusus yang standard dan diisolasi dengan plastic. Tingkatan dari kabel UTP ini diindikasikan oleh banyak nya lilitan atau pumtiran per inchi, tingkat rendahnya attenuasi, kurang nya tingkat interferensi dan gejala crosstalk. Panjang maksimum per segmen dari kabel lan ini adalah 100 meter saja, jika lebih panjang dari 100 meter maka anda tidak bisa menjamin tingginya tingkat attenuasi.

Kecepatan yang bisa dicapai adalah sampai 1 Gigabit yaitu dari jenis kabel lan UTP Cat5e, yang mana jumlah puntiran atau lilitan dari pasangan kabel sedikit lebih banyak per inchi dan ditambah lagi adanya jaket kabel nilon tunggal sebagai insulasi. Jadi sekali lagi grade dari UTP kabel ini ditentukan oleh banyaknya puntiran per inchi.

Standard UTP

1. Kabel lan UTP Cat 1, dipakai untuk jaringan telpon.

2. Kabel lan UTP Cat 2, kecepatan maksimum 4 Mbps, aslinya dimaksudkan untuk mendukung Token Ring lewat UTP.

3. Kabel lan Cat 3, dengan kecepatan maksimum 10 Mbps. Kabel lan ini bisa dipakai untuk jarigan telpon dan merupakan pilihan kabel lan UTP masa silam.

4. Kabel lan UTP Cat 4, kecepatan maksimum adalah 16 Mbps, umum dipakai jaringan versi cepat Token Ring.

5. Kabel lan Cat 5, kecepatan maksimum 1 Gigabps, sangat popular untuk kabel lan desktop.

6. Kabel lan UTP Cat 5e, dengan kecepatan maksimum 1 Gigabps, tingkat emisi lebih rendah, lebih mahal dari Cat 5 akan tetapi lebih
bagus untuk jaringan Gigabit.

7. Kabel lan UTP Cat 6, kecepatan maksimum adalah 1 Gigabps+, dimaksudkan sebagai pengganti Cat 5e dengan kemampuan mendukung kecepatan-2 multigigabit.

Identifikasi UTP

Anda harus terbiasa dengan baik untuk bisa mengidentifikasikan cabling ini dengan memeriksa pin-2 nya. Sebenarnya ada dua macam standard yaitu:

1. T568-A adalah kabel lan UTP jenis straight through, kedua ujung penempatan kabel pada pin-2 konektor RJ-45 adalah sama.

2. T568-B adalah kabel lan UTP jenis cross-over. Anda bisa perhatikan dengan seksama pada kabel cross-over ini, pasangan pin 2 dan 6 dan pasangan pin 1 dan 3 bertukar tempat.

Meghubungkan piranti

Aturan main dari pemakaian kabel ini adalah sebagai berikut, jika untuk menghubungkan dua jenis piranti yang berbeda, gunakan kabel lan UTP straight-through. Sementara jika anda menghubungkan dua piranti yang sejenis, gunakanlah kabel lan cross-over.

Penggunaan cross atau straight UTP cable ke piranti jaringan Kabel UTP (Unshielded Twisted Pair) juga memiliki kelebihan serta kekurangan antara lain.

Kelebihan :

a. Murah

b. mudah diinstalasi

c. ukurannya kecil

Kekurangan :

a. rentan terhadap interferensi gelombang elektromagnetik

b. jarak jangkauannya hanya 100m

2. Kabel Shielded Twisted Pair (STP)

Secara fisik kabel shielded sama dengan unshielded tetapi perbedaannya sangat besar dimulai dari kontruksi kabel shielded mempunyai selubung tembaga atau alumunium foil yang khusus dirancang untuk mengurangi gangguan elektrik. Kekurangan kabel STP lainnya adalah tidak samanya standar antar perusahaan yang memproduksi dan lebih mahal dan lebih tebal sehingga lebih susah dalam penanganan fisiknya.

Kabel ini terdiri dari 4 pasang kabel yang dipilin (twisted pair), instalasinya mudah, harganya relatif murah dan cukup handal.Kelebihan dan kekurangan dari kabel STP (Shielded Twisted Pair) antara lain :

Kelebihan :

a. lebih tahan terhadap interferensi gelombang elektromagnetik baik dari dari dalam maupun dari luar

b. memiliki perlindungan dan antisipasi tekukan kabel

Kekurangan :

a. mahal

b. attenuasi meningkat pada frekuensi tinggi

c. pada frekuensi tinggi, keseimbangan menurun sehingga tidak dapat mengkompensasi timbulnya “crosstalk” dan sinyal “noise”

d. susah pada saat instalasi (terutama masalah grounding)

e. jarak jangkauannya hanya 100m

3. Kabel Coaxial

Kabel coaxial terdiri atas dua kabel yang diselubungi oleh dua tingkat isolasi.Tingkat isolasi pertama adalah yang paling dekat dengan  kawat konduktor tembaga.Tingkat pertama ini dilindungi oleh serabut konduktor yang menutup bagian atasnya yang melindungi dari pengaruh elektromagnetik. Sedangkan bagian inti yang digunakan untuk transfer data adalah bagian tengahnya yang selanjutnya ditutup atau dilindungi dengan
plastik sebagai pelindung akhir untuk menghindari dari goresan kabel. Beberapa jenis kabel coaxial lebih besar dari pada yang lain. Makin besar
kabel, makin besar kapasitas datanya, lebih jauh jarak jangkauannya dan tidak begitu sensitif terhadap interferensi listrik.


Ada 4 jenis kabel coaxial, yaitu :

 Thinnet atau RG-58 (10Base2)

 Thicknet atau RG-8 (10Base5).

 RG-59

 RG-6

Karakteristik kabel coaxial :
1. Kecepatan dan keluaran 10 - 100 MBps

2. Biaya Rata-rata per node murah

3. Media dan ukuran konektor medium

4. Panjang kabel maksimal yang di izinkan yaitu 500 meter (medium)

Berikut ini adalah kelebihan serta kekurangan dari penggunaan kabel
koaksial :

Kelebihan :

a. Murah.

b. jarak jangkauannya cukup jauh.

c. Dapat digunakan untuk menyalurkan informasi sampai dengan 900 kanal telepon.

d. Karena menggunakan penutup isolasi maka kecil kemungkinan terjadi interferensi dengan system lain.

Kekurangan:

a. susah pada saat instalasi

b. mempunyai redaman yang relative besar, sehingga untuk hubungan jauh harus dipasang repeater-repeater

c. jika kabel dipasang di atas tanah, rawan terhadap gangguan-gangguan fisik yang dapat berakibat putusnya hubungan.

 Jaringan yang menggunakan kabel coaxial merupakan jaringan dengan biaya rendah, tetapi jangkauannya sangat terbatas dan keandalannya juga sangat terbatas. Kabel coaxial pada umumnya digunakan pada topologi bus dan ring.

 Kabel lan coaxial digunakan pada Ethernet 10Base2 dan 10Base5 beberapa tahun yang lalu. 10Base5 mengacu pada thicknet sementara 10Base2 mengacu pada thinnet sebab 10Base5 dulu menggunakan kabel lan coaxial yang lebih tebal.


Awalnya Ethernet mendasakan jaringannya pada Kabel lan coaxial yang mana bisa membentang sampai 500 meter dalam satu segmen. Kabel lan
coaxial ini mahal, dan maksimum hanya sampai kecepatan 10Mbps saja. Kabel lan coaxial ini sekarang sudah tidak popular.

4.Wireless
Jaringan Wireless atau jaringan Wifi memungkinkan kita melakukan komunikasi tanpa melalui kabel jaringan.Akan tetapi piranti jaringan pada Jaringan ini masih perlu berkomunikasi dengan piranti lainnya yang ada pada jaringan kabel LAN. Jaringan wifi menawarkan banyak keuntungan yang tampak (yaitu tanpa kabel) dan juga beberapa hal lain yang mungkin tidak pernah kita pertimbangkan. Yang paling nyata adalah sifat praktisnya mudah dibawa-bawa. Anda bahkan bisa browsing disisi kolam renang anda, di teras rumah, di gazebo anda, di pendopo anda (wah ini kayak rumah di sinetron aja …?, jika memang ada Jaringan Wireless atau Wifi di rumah anda. Atau bahkan dengan laptop, anda bisa browsing internet di cafĂ©, di airport, dan banyak lagi tempat-2 yang menyediakan hot-spot layanan Internet gratis demi kenyamanan anda.

Dalam wireless sendiripun tentunya memiliki kelebihan serta kekurangan. Adapun kelebihan serta kekurangannya adalah sebagai berikut:

Kelebihan:

a) Dapat dipergunakan untuk komunikasi data dengan jarak yang jauh sekali.Tergantung LOS (Line of Sight) dan kemampuan perangkat wireless dalam memancarkan gelombang.

b) Sangat baik digunakan pada gedung yang sangat sulit menginstall kabel

Kekurangan:
a) Sulit diperoleh karena spectrum frekuensi terbatas

b) Biaya instalasi, operasional dan pemeliharaan sangat mahal Keamanan data kurang terjamin

c) Pengaruh gangguan (derau) cukup besar Transfer data lebih lambat dibandingkan dengan penggunaan kabel

Menggunakan gelombang radio
Komunikasi wifi terjadi di-mana-2 disekitar kita, seperti telpon rumah tanpa kabel (cordless) yang memungkinkan terjadinya komunikasi antara telpon cordless anda dengan base unit telpon adalah karena menggunakan gelombang radio.Mirip juga yang terjadi antara telpon cellular GSM anda yang juga mengunakan gelombang radio untuk berkomunikasi kepada jaringan tower transmitter dan receiver disekitarnya. Bahkan remote control TV anda juga memperagakan dasar komunikasi wireless dengan mengunakan gelombang infra merah.

Komunikasi Jaringan Wireless atau Wifi menggunakan bentuk energy elektromagnetik yang merambat melewati ruang.Energy merambat melalui udara pada berbagai panjang gelombang.Tergantung dari panjang gelombang itu sendiri, gelombang energy bisa kelihatan kasat mata ataupun tidak kelihatan. Pada dasarnya energy elektromagnetik dapat menmebus melalui materi, akan tetapi tidak jarang materi memantulkan energy pada beberapa derajat dan menyerap sebagian energy juga. Beberapa panjang gelombang energy memerlukan suatu komunikasi untuk bisa terjadi jika berada pada satu garis saling lihat karena panjang gelombang tersebut tidak bisa menembus atau melalui materi itu dengan baik. Sebagai contoh, sebuah remote control televisi anda yang menggunakan gelombang infra merah pada umumnya memerlukan komunikasi segaris lurus, tidak terhalang.

Halangan bisa melemahkan gelombang
Tidak seperti gelombang inframerah, gelombang radio lainnya yang dipakai pada telpon cellular tidak memerlukan komunikasi segaris dengan Tower BTS disekitarnya, akan tetapi berpengaruh juga terhadap ketebalan materi penghalang. Di suatu daerah yang penerimaan sinyal cellular ini kurang, terkadang kita akan mencari-cari tempat yang agak tinggi atau bahkan disamping bangunan untuk mendapatkan sinyal yang bagus – karena dalam kenyataannya bagian dari bangunan tersebut menyerap sebagian energy dan ada juga yang memantulkannya.

Jaringan Wireless menjadi begitu sangat popular untuk dipasan dirumah-rumah atau di kantor-2. Keuntungan dari komunikasi wireless adalah kurang memerlukan perkabelan dalam jaringan. Kekurangannya adalah dalam hal kecepatan yang biasanya lebih rendah dari kecepatan jaringan kabel, resiko keamanan karena setiap orang disekitar jaringan Wifi ini akan bisa berusaha nguping komunikasi anda, dan juga memerlukan technology extra untuk bisa mendapatkan sinyal yang bagus dalam area yang bisa di jangkau seperti Teknology MIMO.

Topology Jaringan Wireless
Dalam jaringan komputer, istilah topology umumnya merujuk pada pola kabel yang digunakan untuk menghubungkan komputer-2. Jaringan Wifi tidak menggunakan kabel, akan tetapi masih mempunyai topology, yang mendefinisikan bagaimana piranti wireless berinteraksi pada layer physical pada model OSI. Pada layer Phyisical, Jaringan berbasis wireless standard 802.11 menggunakan komunikasi spectrum yang menyebar secara berurutan pada frequency 2.4 GHz, dan piranti-2 tersebut berkomunikasi satu sama lain menggunakan dua dasar topology: ad hoc dan infrastructure.

Jaringan Ad Hoc

Suatu jaringan Ad Hoc terdiri dari dua atau lebih piranti wireless yang berkomunikasi secara langsung satu sama lain. Sinyal yang dihasilkan oleh interface adapter Jaringan Wifi adalah berarah Omni keluar ke rentang jangkauan yang dipengaruhi oleh faktor-2 lingkungan, dan juga sifat dari piranti yang terlibat. Jangkauan ini disebut sebagai suatu area layanan dasar (BSA – basic service area).

Jika dua piranti berdelatan pada jangkauan satu sama lain, mereka bisa berkomunikasi satu sama lain, dan segera membentuk 2 node jaringan. Piranti jaringan yang berada pada area layanan dasar disebut suatu set layanan dasar (BSS – basic service set).

Jaringan Wireless Ad Hoc

Jika ada satu lagi piranti wireless mendekat masuk dalam jangkauan BSA ini juga bisa berpartisipasi dalam jaringan. Akan tetapi jaringan Ad Hoc tidaklah transitive , artinya jika dua piranti A dan B saling berkomunikasi dalam jangkauan piranti A, maka jika ada satu piranti C masuk dalam jangkauan piranti B tetapi tidak masuk dalam jangkauan A, maka piranti C tidak bisa berkomunikasi dengan piranti A.

Jaringan infrastructure

Suatu jaringan infrastructure menggunakan suatu piranti Wifi yang disebut Access Point (AP) sebagai suatu bridge antara piranti wireless dan
jaringan kabel standard. Suatu Access Point (yang berisi transceiver wireless compliant) adalah suatu unit yang menghubungkan ke jaringan Ethernet (atau jaringan kabel lain) oleh suatu kabel. Jika ada piranti Wifi lain masuk dalam jangkauan wireless Access Point ini maka ia bisa saling
komunikasi dengan jaringan kabel, layaknya mereka terhubung dengan kabel saja. Fungsi dari Access Point adalah seperti bridge transparan, yang
secara effektif memperpanjang kabel jaringan dengan memasukkan piranti wireless didalamnya.

Clinet berkomunikasi dengan AP

Dalam jaringan Infrastructure ini, piranti Wifi berkomunikasi dengan access point; nereka tidak berkomunikasi satu sama lain secara langsung. Makanya walaupun jika kedua piranti wireless berada satu jangkauan mereka masih harus menggunakan Access Point untuk bisa saling berkomunikasi.
Related Posts Plugin for WordPress, Blogger...