Thursday, February 28, 2013
Komponen Jaringan Komputer
1. Komputer
Merupakan komponen utama dalam membangun sebuah jaringan. Komputer berdasarkan fungsinya terbagi dua yaitu komputer server dan komputer client.
2. NIC
Harus memiliki mac Address (12 digit) yang berfungsi sebagai alamat. Alamat yang dapat diubah biasnya disebut logicl address sedangkan alamat yang tidak dapat diubah disebut physical address.
3. Network Device
Ada 4 network device yaitu:
a. Hub : pengiriman data secara broadcast
b. Router : intreface untuk menghubungkan jaringan yang berbeda
c. Access Point
d. Switch : Pengiriman data secara unicast
4. Media Transmisi
Media transmisi adalah media yang dapat digunakan untuk mengirimkan informasi dari suatu tempat ke tempat lain. Dalam jaringan, semua media yang dapat menyalurkan gelombang listrik atau elektromagnetik atau cahaya dapat dipakai sebagai media pengirim, baik untuk pengiriman dan penerimaan data. Media transmisi terbagi 2 yaitu:
a. Wire (guide) terbagi 2 yaitu media transmisi data yang terbuat dari bahan tembaga. Orang biasanya menyebut dengan nama kabel. Data yang dikirim melalui kabel, bentuknya adalah sinyal-sinyal listrik (tegangan atau arus) digital. Jenis-jenis kabel yang dipakai sebagai transmisi data pada jaringan : kabel koaksial, kabel UTPdan kabel STP. sedangkan yang kedua yaitu Kabel Optik yang terbagi menjadi 2 mode yaitu single mode dan multimode.
b. Wireless (unguide) terbagi menjadi 4 yaitu
1). GSM
2). CDMA
3). Wimax (802.10) => Lingkupnya MAN
4). Wifi (802.11) => Lingkupnya LAN ada kategori a(54 Mbps), b (11Mbps), g(54 Mbps), n(200 Mbps) dan ac (1 gigabit). Frekuensi 2,4 ghz dan 5,8 ghz.
5. NOS
Seperti halnya OS yang bertugas mengendalikan kerja komputer, NOS bertugas mengontrol dan mengendalikan jaringan. Biasanya NOS diinstal pada komputer server, tetapi adakalanya juga diinstal pada komputer client. Jika komputer kita nyalakan, OS masuk kedalam komputer dan menyalakannya, baru kemudian NOS masuk.
Tuesday, February 26, 2013
Operasi File
Operasi dasar file pada prinsipnya terbagi menjadi 3 tahap, yaitu:
- membuka atau mengaktifkan file
- melaksanakan pemrosesan file
- menutup dile
A. Membuka file
Sebelum suatu file dapat diproses, file harus dibuka terlebih dahulu. Sebelum file dibuka, terlebih dahulu obyek file harus didefinisikan. Sintaksnya:
ofstream nama_obyek;
perintah ofstream dapat dijalankan dengan menyertakan file header fstream.h
Setelah itu, suatu file dapat dibuka dengan perintah
nama_obyek.open(“nama file dan path”);
B. Menulis ke File
Salah satu jenis pemrosesan pada file adalah menulis atau merekam data ke file.
Sintaknya:
nama_obyek << ... ;
C. Menutup File
Setelah pemrosesan file selesai, file dapat ditutup menggunakan perintah
nama_obyek.close();
Contoh 1.
Program berikut ini untuk menulis teks ke dalam file
#include<iostream.h>
#include<fstream.h>
void main()
{
ofstream fileteks;
fileteks.open(“C:/algo.txt”);
fileteks << “Untuk mencapai tujuan yg besar, maka tujuan itu”
<< endl;
fileteks << “harus dibagi-bagi menjadi tujuan kecil”<< endl;
fileteks << “sampai tujuan itu merupakan tujuan yg dapat “
<< “dicapai” << endl;
fileteks << “berdasarkan kondisi dan potensi yg dimiliki saat “
<< itu “ << endl;
fileteks.close();
}
perintah fileteks.open(“C:/algo.txt”); akan membuka file algo.txt yang ada di C:\
Apabila file tersebut belum ada maka akan dibuat secara otomatis, dan apabila
sudah ada isi file algo.txt akan terhapus.
D. Menambah Data pada File
Suatu file yang sudah ada sebelumnya dapat ditambah data yang baru (tidak
menghapus data lama). Caranya dengan menambahkan perintah ios::app pada
open().
nama_obyek.open(“nama file”, ios::app);
Contoh 2.
#include<iostream.h>
#include<fstream.h>
void main()
{
ofstream fileteks;
fileteks.open(“C:/algo.txt”, ios::app);
fileteks << endl;
fileteks << “Oleh: Al Khowarizmi << endl;
fileteks.close();
}
E. Memeriksa Keberhasilan Operasi File
Tidak selamanya jalan yang mulus ditemui. Ada kemungkinan terjadi saat file
dibuka, ternyata file tidak ada. Dalam C++ tersedia function untuk memeriksa
kondisi-kondisi pada operasi file, sehingga kesalahan saat eksekusi dapat
dikendalikan.
Function yang dimaksud adalah fail().
Contoh 3:
#include<iostream.h>
#include<fstream.h>
void main()
{
ifstream fileteks; { ifstream digunakan u/ membaca file }
fileteks.open(“C:/algo.txt”);
if (fileteks.fail()) cout << “Maaf file takdapat dibuka/”
<< “tidak ditemukan”;
fileteks.close();
}
F. Operasi Berbasis Karakter
Operasi file dapat dilakukan dalam bentuk karakter. Misalnya proses
penyimpanan data ke file dilakukan setiap karakter, atau membaca data file
karakter per karakter. Operasi ini didukung oleh function put() dan get().
Contoh 4:
Program untuk menyimpan data karakter per karakter ke dalam file.
#include<iostream.h>
#include<fstream.h>
void main()
{
ofstream fileteks;
fileteks.open(“C:/contoh.txt”);
fileteks.put(‘A’);
fileteks.put(‘B’);
fileteks.put(‘C’);
fileteks.close();
}
Contoh 5.
Program untuk membaca file karakter per karakter
#include<iostream.h>
#include<fstream.h>
void main()
{
char karakter;
ifstream fileteks; {}
fileteks.open(“C:/contoh.txt”);
while(!fileteks.eof())
{
fileteks.get(karakter);
cout << karakter;
}
fileteks.close();
}
Contoh soal latihan operasi file.
- Buatlah program C++ untuk menghitung jumlah karakter dalam suatu file. Inputnya adalah nama file dan pathnya.
- Buatlah program C++ untuk menghitung jumlah karakter tertentu, misalnya karakter ‘A’. Input berupa nama file dan karakter yang akan dihitung.
- Misalkan suatu file teks berisi listing program C++. Buatlah program untuk menghitung pasangan kurung kurawal yang ada pada file teks tersebut.
- Buatlah program C++ untuk melakukan enkripsi shift chiper suatu file teks (dengan asumsi semua karakter huruf adalah huruf kapital). Inputnya adalah file teks yang akan dienkripsi dan besar pergeseran (integer). Outputnya adalah file teks hasil enkripsi.
Hint:
Ide dasar shift chiper adalah mengubah setiap karakter huruf ke karakter
huruf lain. Misalkan pergeserannya 2, maka berikut ini karakter hasil enkripsi
awal A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
hasil C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
Sehingga misal diberikan suatu teks C++ IS EASY, maka hasil enkripsinya adalah E++ KU GCUA
Friday, February 22, 2013
Class
Class merupakan struktur data dari obyek. Untuk menjelaskan tentang class, lihat perbandingannya dengan struktur berikut ini:
Perhatikan program di bawah ini:
Contoh 1.
#include <iostream.h>
#include <conio.h>
#include <string.h>
struct mahasiswa
{
char nim[8];
char nama[20];
int umur;
};
void main()
{
mahasiswa mhsd3;
strcpy(mhsd3.nim, “M0197001”);
strcpy(mhsd3.nama, “Burhanudin Harahap”);
mhsd3.umur = 20;
cout << mhsd3.nim << endl;
cout << mhsd3.nama << endl;
cout << mhsd3.umur << endl;
}
Setelah program di atas dicompile, error tidak ada.
Berikutnya struktur di atas kita ganti dengan class, menjadi
Contoh 2.
#include <iostream.h>
#include <conio.h>
#include <string.h>
class mahasiswa
{
char nim[8]; char nama[20];
int umur;
};
void main()
{
mahasiswa mhsd3;
strcpy(mhsd3.nim, “M0197001”);
strcpy(mhsd3.nama, “Burhanudin Harahap”);
mhsd3.umur = 20;
cout << mhsd3.nim << endl;
cout << mhsd3.nama << endl;
cout << mhsd3.umur << endl;
}
setelah program di atas di compile, ternyata error muncul. Error tersebut muncul karena class tidak dikenal dalam main(). Kesalahan ini sekaligus menunjukkan perbedaan dengan struktur.
Penggunaan PUBLIC
Agar program di atas dapat dicompile, ditambahkan perintah public diikuti dengan
tanda titik dua (:), sehingga programnya menjadi
Contoh 3.
#include <iostream.h>
#include <conio.h>
#include <string.h>
class mahasiswa
{
public:
char nim[8];
char nama[20];
int umur;
};
void main()
{
mahasiswa mhsd3;
strcpy(mhsd3.nim, “M0197001”);
strcpy(mhsd3.nama, “Burhanudin Harahap”);
mhsd3.umur = 20;
cout << mhsd3.nim << endl;
cout << mhsd3.nama << endl;
cout << mhsd3.umur << endl;
}
Perintah PUBLIC menyatakan bahwa perintah-perintah yang ada di bawahnya dapat diakses diluar class. Perintah PUBLIC merupakan termasuk access specifier (penentu akses). Selain PUBLIC, terdapat perintah lain yang termasuk access specifier, yaitu PRIVATE.
Contoh 4.
#include <iostream.h>
#include <conio.h>
#include <string.h>
class mahasiswa
{
private:
char nim[8];
char nama[20];
int umur;
};
void main()
{
mahasiswa mhsd3;
strcpy(mhsd3.nim, “M0197001”);
strcpy(mhsd3.nama, “Burhanudin Harahap”);
mhsd3.umur = 20;
cout << mhsd3.nim << endl;
cout << mhsd3.nama << endl;
cout << mhsd3.umur << endl;
}
Setelah dicompile, error yang sama dengan sebelumnya muncul yaitu class tidak dapat diakses di main(). Perintah PRIVATE memberi pengertian bahwa perintah yang ada dibawahnya hanya dapat diakses dalam class tersebut, yang dalam hal ini adalah class mahasiswa. variabel nim, nama, dan umur dalam class mahasiswa disebut data anggota. Selain data anggota, kita juga dapat menambahkan fungsi anggota.
Contoh 5.
#include <iostream.h>
#include <conio.h>
#include <string.h>
class mahasiswa
{
private :
char nim[8];
char nama[20];
int umur;
public :
void inisialisasi(char *NIMMHS, char *NAMAMHS, int UMURMHS)
{
strcpy(nim, NIMMHS);
strcpy(nama, NAMAMHS);
umur = UMURMHS;
}
void tampilkan()
{
cout << nim << endl;
cout << nama << endl;
cout << umur << endl;
}
};
void main()
{
mahasiswa mhsd3;
mhsd3.inisialisasi(“M0197001”, “Burhanudin Harahap”, 20);
mhsd3.tampilkan();
}
Pada program di atas, fungsi inisialisasi() dan tampilkan() merupakan fungsi
anggota dari class mahasiswa. Keduanya dibuat public karena akan diakses dari luar class, sedangkan data anggotanya (nim, nama, umur) dibuat private.
Mungkin Anda berpikir mengapa program terakhir (contoh 5) terlalu panjang,
padahal akan diperoleh hasil yang sama dengan program sebelumnya (contoh 1). Memang benar, tapi contoh 5 ini merupakan cara pemrograman berorientasi obyek (PBO).
Perhatikan program contoh 5, khususnya pada kedua fungsi anggota. Kedua fungsi tidak punya prototype. Kita juga dapat memberikan prototype yang merupakan cara kedua dalam penulisan.
Contoh 6.
#include <iostream.h>
#include <conio.h>
#include <string.h>
class mhs
{
private :
char nim[8];
char nama[20];
int umur;
public :
void inisialisasi(char *NIMMHS, char *NAMAMHS, int UMURMHS);
void tampilkan();
};
void main()
{
mhs mhsd3;
mhsd3.inisialisasi(“M0197001”, “Burhanudin Harahap”, 20);
mhsd3.tampilkan();
}
void mhs::inisialisasi(char *NIMMHS, char *NAMAMHS, int UMURMHS)
{
strcpy(nim, NIMMHS);
strcpy(nama, NAMAMHS);
umur = UMURMHS;
}
void mhs::tampilkan()
{
cout << nim << endl;
cout << nama << endl;
cout << umur << endl;
}
Cara kedua inilah yang sering dipilih oleh para programmer C++.
Berikut ini contoh-contoh program yang memanfaatkan class
Contoh 7.
Program untuk menyimpan data n data mahasiswa kemudian menampilkannya.
#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
class mahasiswa
{
public:
char nim[20];
char nama[50];
int umur;
void tampilkan(char *NIMMHS, char *NAMAMHS, int UMURMHS)
{
cout << "NIM MHS : " << NIMMHS << endl;
cout << "NAMA MHS : " << NAMAMHS << endl;
cout << "UMUR : " << UMURMHS << endl;
}
};
void main()
{
mahasiswa mhsd3[50]; { tipe data array }
char temp[10]; int n, i;
clrscr();
cout << "<< ENTRI DATA MAHASISWA D3 " << endl;
cout << endl;
cout << "Jumlah mahasiswa : ";
cin.getline(temp, sizeof(temp));
n = atoi(temp);
for (i=0;i<=n-1;i++)
{
cout << "DATA - " << i+1 << endl;
cout << "NIM MAHASISWA : " ;
cin.getline(mhsd3[i].nim, sizeof(mhsd3[i].nim));
cout << "NAMA MAHASISWA : " ;
cin.getline(mhsd3[i].nama, sizeof(mhsd3[i].nama));
cout << "UMUR : ";
cin.getline(temp, sizeof(temp));
mhsd3[i].umur = atoi(temp);
cout << endl;
}
// tampilkan semua data
cout << "-------------------------" << endl;
cout << "DATA YANG MASUK" << endl;
cout << "-------------------------" << endl;
for (i=0;i<=n-1;i++)
{
cout << "DATA MAHASISWA " << i+1 << endl;
mhsd3[i].tampilkan(mhsd3[i].nim, mhsd3[i].nama, mhsd3[i].umur);
cout << endl;
}
getch();
}
Contoh 8.
Program untuk menjumlahkan dan mengurangkan 2 buah bilangan kompleks.
#include <iostream.h>
#include <conio.h>
class kompleks
{
private:
float real;
float imajiner;
public:
void tambah(float real1, float imajiner1, float
real2, float imajiner2)
{
real = real1 + real2;
imajiner = imajiner1 + imajiner2;
}
void kurangi(float real1, float imajiner1,
float
real2, float imajiner2)
{
real = real1 - real2;
imajiner = imajiner1 - imajiner2;
}
void tampilkan()
{
cout << "Hasilnya adalah : " << real << "+ "
<< imajiner << 'i' << endl;
}
};
void main()
{
clrscr(); kompleks bilkompleks;
float el_real1, el_real2, el_imaj1, el_imaj2;
cout << "Bilangan Kompleks pertama" << endl;
cout << "Elemen real : ";
cin >> el_real1;
cout << "Elemen imajiner : ";
cin >> el_imaj1;
cout << "Bilangan Kompleks kedua" << endl;
cout << "Elemen real : ";
cin >> el_real2;
cout << "Elemen imajiner : ";
cin >> el_imaj2;
bilkompleks.tambah(el_real1,el_imaj1,el_real2,el_imaj2);
bilkompleks.tampilkan();
bilkompleks.kurangi(el_real1,el_imaj1,el_real2,el_imaj2);
bilkompleks.tampilkan();
getch();
}
Komponen Sistem Komputer
Sistem operasi adalah program yang bertindak sebagai perantara antara user
dengan perangkat keras komputer. Sistem operasi digunakan untuk mengeksekusi program user dan memudahkan menyelesaikan permasalahan user. Selain itu dengan adanya sistem operasi membuat sistem komputer nyaman digunakan. Sistem operasi mempunyai tujuan untuk menggunakan perangkat keras komputer secara efisien.
Komponen sistem komputer terdiri dari :
1. Perangkat Keras, merupakan sumber daya utama untuk proses komputasi.
Perangkat keras komputer terdiri dari : CPU, memory dan perangkat input
output.
2. Sistem Operasi, mempunyai tugas untuk melakukan control dan koordinasi
penggunaan perangkat keras pada berbagai program aplikasi untuk user-user
yang berbeda.
3. Program Aplikasi, menentukan cara sumber daya sistem digunakan untuk
menyelesaikan permasalahan komputasi dari user, contohnya compiler, sistem
basis data, video games, program bisnis dan lain-lain.
4. User yang menggunakan sistem, terdiri dari orang, mesin atau komputer lain.
Hubungan antara komponen-komponen sistem komputer diatas dapat dilihat pada Gambar 1
Gambar 1. komponen – komponen sistem komputer
1. Sistem operasi
Sistem operasi didefinisikan sebagai :
• Resource allocator
Sistem operasi mengatur dan mengalokasikan sumber daya – sumber daya
sistem komputer
• Program control
Sistem operasi melakukan control eksekusi dari program user dan operasi input
output.
• Kernel
Sistem operasi sering disebut kernel, yaitu suatu program yang berjalan
sepanjang waktu (selain program aplikasi).
2. Sistem Mainframe
Sistem komputer pendahulu secara fisik berbentuk mesin besar yang disebut sistem mainframe. Untuk menjalankan sistem ini dilakukan dari suatu console. Perangkat input yang digunakan berupa card reader dan tape drive. Perangkat output yang digunakan berupa line printer, tape drive dan card punch. Kemudian, user menyiapkan job yang terdiri dari program, data dan beberapa informasi kontrol (control card) dan dikirimkan ke operator komputer. Job biasanya dalam bentuk punch card. Beberapa waktu kemudian (dalam hitungan waktu menit, jam atau hari), output ditampilkan. Output berupa hasil program, apabila terjadi error pada program memory dan register akan berisi kosong.
Sistem operasi pada komputer mainframe sangat sederhana. Task utama
mengirim control secara otomatis dari satu job ke job berikutnya. Sistem operasi selalu residen di memory yang disebut dengan resident monitor. Gambar 2 adalah gambaran layout memori pada sistem batch sederhana.
Untuk meningkatkan kecepatan proses, job yang sama perlu dikumpulkan
bersama (batch) dan dijalankan oleh komputer sebagai satu kelompok. Kemudian programmer memberikan program kepada operator. Operator akan mengurut program yang sama dan kemudian komputer akan menjalankan setiap kumpulan program tersebut. Output dari setiap job dikirim kembali kepada programmer.
Untuk menghindari adanya waktu nganggur CPU yang cukup lama maka
dikembangkan suatu teknik mengurutan kerja job secara otomatis. Teknik ini mampu mentransfer kontrol secara otomatis dari suatu job ke job berikutnya. Inilah bentuk sistem operasi pertama kali. Program kecil yang bersifat residen di memori berisi urutan-urutan job yang akan berpindah secara oromatis inilah yang disebut dengan Resident Monitor.
Jika komputer dinyalakan, maka sistem akan menunjuk ke resident monitor, secara otomatis kontrol akan menunjuk ke program tersebut.
Gambar 2. Memory layout pada simple batch system
3. Sistem Batch Multiprogram
Beberapa job dikumpulkan oleh sistem operasi pada memory utama pada waktu yang sama, seperti pada Gambar 1-3. Kumpulan job ini merupakan bagian dari job yang disimpan pada pool (job pool). Job pool berisi job-job yang sudah siap dieksekusi. Jumlah job dapat disimpan bersama-sama pada memory biasanya lebih kecil daripada jumlah job yang dapat berada pada job pool. Sistem operasi mengambil beberapa job yang siap untuk dieksekusi untuk diletakkan di memori utama. Jika job yang sedang dieksekusi menunggu beberapa task (seperti proses mount tape drive atau operasi I/O yang harus diselesaikan), maka job tersebut diganti dengan job berikutnya.
Pada sistem multiprogramming, sistem operasi harus menyediakan mekanisme
untuk manajemen memori, penjadwalan CPU dan manajemen disk. Sistem operasi multiprogram menyediakan supply untuk I/O routine. Sistem harus dapat mengalokasikan memory untuk beberapa job. Beberapa job yang sudah siap dieksekusi akan dipilih oleh sistem job mana yang akan dieksekusi oleh CPU. Perangkat apa saja yang diperlukan oleh setiap job juga harus dialokasikan oleh sistem.
Gambar 3. Memory layout pada sistem batch multiprogram
4. Sistem Time Sharing
Time sharing atau multitasking adalah pengembangan dari sistem multiprogram. Beberapa job yang berada pada memory utama dieksekusi oleh CPU secara bergantian. CPU hanya bisa menjalankan program yang berada pada memory utama. Perpindahan antar job terjadi sangat sering sehingga user dapat berinteraksi dengan setiap program pada saat dijalankan. Suatu job akan dipindahkan dari memori ke disk dan sebaliknya.
Sistem time sharing juga disebut dengan sistem komputasi interaktif, dimana sistem komputer menyediakan komunikasi on-line antara user dengan sistem. User memberikan instruksi pada sistem operasi atau program secara langsung dan menerima respon segera. Perangkat input berupa keyboard dan perangkat output berupa display screen, seperti cathode-ray tube (CRT) atau monitor. Bila sistem operasi selesai mengeksekusi satu perintah, makan sistem akan mencari pernyataan berikutnya dari user melalui keyboard. Sistem menyediakan editor interaktif untuk menulis program dan sistem debug untuk membantu melakukan debugging program.
Agar user dapat mengakses data dan kode program dengan nyaman, sistem menyediakan sistem file online. Suatu file adalah kumpulan informasi yang berhubungan yang didefinisikan oleh pembuatnya. Biasanya, file berupa program (baik Gambar 3: Memory layout pada sistem batch multiprogram
bentuk source dan object) dan data. Data file berupa teks dengan format tertentu. Secara umum, file adalah kumpulan bit, bite, baris atau record. Sistem operasi mengimplementasikan konsep abstrak dari file dengan mengatur perangkat penyimpan seperti tape dan disk. File secara normal diorganisasikan dalam logical cluster atau directory, untuk memudahkan lokasi dan akses file.
5. Sistem Desktop
Semakin turunnya harga perangkat keras, dikembangkan sistem komputer untuk satu user. Jenis sistem komputer ini biasanya disebut dengan personal computer (PC). Perangkat I/O berupa keyboard dan mouse, dan perangkat output berupa display screen atau printer yang berkecepatan tinggi.
Personal komputer dikembangkan tahun 1970-an. Sistem ini disebut dengan mikrokomputer. Sistem operasi masih belum dikembangkan untuk multiuser maupun multitasking. Tujuan sistem operasi adalah untuk memaksimalkan utilitas CPU dan peripheral, serta memaksimalkan kenyamanan dan respon user. Sistem operasi yang dikembangkan adalah Microsoft Windows dan Apple Machintosh. Sistem operasi MSDOS
dari Microsoft yang masih single tasking dikembangkan oleh IBM menjadi OS/2 yang merupakan sistem multitasking.
Berkembangnya sistem komputer dari mainframe menjadi mikrokomputer
menunjukkan bahwa sistem operasi mikrokomputer dapat mengadopsi sistem
mainframe.
Contoh perpindahan sistem operasi adalah perkembangan sistem operasi
MULTICS. MULTICS dikembangkan tahun 1965 sampai 1970 oleh Massachusetts Institute of Technology (MIT) sebagai utilitas komputasi yang berjalan pada komputer mainframe yang besar dan komplek. Kemudian Beel Laboratories mengembangkan MULTICS dengan mendesain UNIX tahun 1970 untuk minikomputer PDP-11. Tahun 1980, dikembangakan sistem operasi UNIX-like untuk sistem mikrokomputer menyusul sistem operasi lain yaitu Microsoft Windows NT, IBM OS/2 dan Machintosh.
Thursday, February 21, 2013
Struktur Pada Pogram C++
Struktur bermanfaat untuk mengelompokkan sejumlah data dengan tipe yang
berlainan. Perhatikan contoh struktur berikut ini:
struct data_tanggal
{
int tahun;
int bulan;
int tanggal;
};
Struktur di atas bernama data_tanggal, yang tersusun atas 3 unit penyusunnya
yaitu tahun, tanggal, dan bulan. Setelah dibuat struktur tanggal, selanjutnya
struktur tersebut dapat digunakan sebagai tipe data suatu variabel, dalam hal ini
disebut tipe data abstrak.
Berikut contoh programnya.
Contoh 1.
#include<iostream.h>
#include<conio.h>
void main()
{
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
data_tanggal tanggal_lahir;
tanggal_lahir.tanggal = 1;
tanggal_lahir.bulan = 9;
tanggal_lahir.tahun = 1979;
cout << tanggal_lahir.tanggal << ‘/’ << tanggal_lahir.bulan << ‘/’
<< tanggal_lahir.tahun;
}
Misalkan terdapat 2 buah variabel tgl1 dan tgl2 sama-sama bertipe data_tanggal. Selanjutnya diinginkan mengcopy isi dari tgl1 ke tgl2, maka dapat dilakukan dengan perintah assignment biasa. Contoh:
Contoh 2.
#include<iostream.h>
#include<conio.h>
void main()
{
struct data_tanggal
{
int tanggal;
int bulan;
int tahun;
};
data_tanggal tgl1, tgl2;
tgl1.tanggal = 1;
tgl1.bulan = 9;
tgl1.tahun = 1979;
tgl2 = tgl1; // atau
tgl2.tanggal = tgl1.tanggal;
tgl2.bulan = tgl1.bulan;
tgl2.tahun = tgl2.tahun;
cout << tgl1.tanggal << ‘/’ << tgl1.bulan << ‘/’ << tgl1.tahun << endl;
cout << tgl2.tanggal << ‘/’ << tgl2.bulan << ‘/’ << tgl2.tahun << endl;
}
Untuk membandingkan 2 buah struktur, masing-masing unit harus dibandingkan
sendiri-sendiri, contoh:
if ((tgl1.tanggal == tgl2.tanggal) && (tgl1.bulan == tgl2.bulan) &&
(tgl1.tahun == tgl2.tahun))
cout << “Isi strukturnya sama”;
else cout << “Isi struktur tak sama”;
Suatu struktur juga dapat digunakan untuk argumen/parameter suatu function.
Contoh 2.
#include<iostream.h>
#include<conio.h>
struct data
{
int x;
int y;
};
void tampilkan(data nilai)
void main()
{
data nilaiku;
nilaiku.x = 10;
nilaiku.y = 16;
tampilkan(nilaiku);
}
void tampilkan(data nilai)
{
cout << “Nilai x = “ << nilai.x << endl;
cout << “Nilai y = “ << nilai.y << endl;
}
Contoh soal latihan:
- Buatlah program menggunakan function untuk menentukan selisih antara dua waktu (jam). Misalkan selisih antara pukul 4.30 dengan 6.00 adalah 90 menit. Terdapat 2 argumen function yaitu jam pertama dan jam kedua (lebih besar dari jam pertama).
hint: buat struktur jam (dengan unit jam, dan menit). - Bilangan kompleks memiliki format a+b i, dengan a dan b adalah bilangan
real. Notasi a disebut juga bagian real, dan b disebut juga bagian imajiner.
Buatlah program menggunakan struktur untuk menjumlahkan,
mengurangkan, dan mengalikan 2 buah bilangan kompleks.
Contoh:
(2+3 i) + (-1 + 3i) = 1+6 i
(2+3 i) - (-1 + 6i) = 3 – 3i
(2+3 i) . (-1 + 3i) = -2 – 3i + 6i + 9 i2 = -2 – 3i + 6i – 9 = -11 + 3i
Wednesday, February 20, 2013
Kode HTML Dasar
HTML (Hypertext Markup Language) adalah bahasa program yang digunakan untuk menulis format dokumen yang dapat digunakan dalam Web. Dengan HTML, teks ASCII (file *.txt) dapat dipoles (di-mark-up) dengan kode-kode tertentu yang disebut tag untuk menjadi dokumen HTML (file *.htm atau *.html). Oleh karena itu, untuk membuat dokumen HTML, anda bisa menggunakan semua program teks editor biasa, mulai dari Notepad hingga MS Word. Untuk mudahnya, kita gunakan program Notepad. Bukalah program Notepad. Bila anda belum tahu caranya, klik Start > Programs > Accessories lalu Notepad. Sekarang ikutilah dengan seksama latihan-latihan berikut satu demi satu.
A. PENGENALAN KODE HTML
Dalam program Notepad anda, tulislah seperti ini:
<HTML>
</HTML>
Masing-masing baris di atas disebut tag. Tag adalah kode yang digunakan untuk me-mark-up (memoles) teks ASCII menjadi file HTML. Setiap tag diapit dengan tanda kurung runcing. Ada tag pembuka yaitu <HTML> dan ada tag penutup yaitu </HTML> yang ditandai dengan tanda slash (garis miring) di depan awal tulisannya. Tag di atas memberikan faidah bahwa yang akan ditulis diantara kedua tag tersebut adalah isi dari dokumen HTML. Perlu anda ketahui bahwa tag-tag html dapat ditulis dengan huruf besar ataupun huruf kecil. Artinya, penulisan <HTML> atau <html> atau <Html> sama saja hasilnya. Namun perlu selalu diingat bahwa penulisan tag yang salah meskipun hanya satu karakter akan berpengaruh terhadap dokumen HTML anda, bahkan bisa berakibat dokumen HTML anda tidak bisa ditampilkan dalam browser.
Isi dari dokumen HTML yang sesungguhnya adalah yang ditulis diantara tag <BODY>. Coba tuliskan:
<HTML>
<BODY>
Tulisan ini akan tampak dalam browser.
</BODY>
</HTML>
Lihatlah hasil karya anda yang pertama!
Tulisan ini akan tampak dalam browser.
Dalam tag BODY ini bisa kita sisipkan bermacam-macam atribut yang akan berpengaruh terhadap format atau tampilan halaman web secara keseluruhan.
Tambahkan atribut BGCOLOR dan TEXT ke dalam tag body sebagai berikut:
<HTML>
<BODY BGCOLOR="yellow" TEXT="red">
Tulisan ini akan tampak dalam browser.
</BODY>
</HTML>
Penentuan warna pada HTML bisa dengan nama warna (dalam bahasa Inggris) dan bisa pula dengan kode warna. Kode warna ditulis dalam format heksa #rrggbb. Contoh :
black | blue | live | white | fuchsia | green | red | gray |
#000000 | #0000FF | #808000 | #FFFFFF | #FF00FF | #008000 | #FF0000 | #808080 |
teal | yellow | silver | navy | lime | maroon | purple | aqua |
#008080 | #FFFF00 | #C0C0C0 | #000080 | #00FF00 | #800000 | #800080 | #00FFFF |
Dengan demikian, kode HTML untuk contoh di atas bisa ditulis sebagai berikut:
Pemrograman WEB hal 2 dari 27
<HTML>
<BODY BGCOLOR="#FFFF00" TEXT="#FF0000">
Tulisan ini akan tampak dalam browser.
</BODY>
</HTML>
Sekarang bukalah kembali source code tambahkanlah tag-tag berikut ini:
<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY BGCOLOR="yellow" TEXT="red">
Tulisan ini akan tampak dalam browser.
</BODY>
</HTML>
B. MENGUTAK-ATIK HURUF
Tag-tag ini berfungsi untuk mengubah tipe huruf yaitu menebalkan (bold), membuat tulisan miring (italic) atau memberi garis bawah (underline). Buka lagi program Notepad kemudian tuliskan seperti berikut ini:
<HTML>
<HEAD>
<TITLE>Tipe-tipe Teks</TILE>
</HEAD>
<BODY>
Ada tiga macam tipe tulisan yang paling sering digunakan dalam penulisan dokumen apa saja. Ketiga tipe tersebut ialah tulisan tebal, tulisan miring dan tulisan bergaris bawah. Bisa pula dua tipe huruf dipadukan misalnya tulisan tebal dan miring, tulisan tebal dan bergaris bawah atau tulisan miring dan bergaris bawah. Bahkan bisa pula ketiga
Pemrograman WEB hal 3 dari 27
tipe tulisan tersebut sekaligus bergabung menjadi satu berupa tulisan tebal, miring dan bergaris bawah.
</BODY>
</HTML>
sehingga menjadi seperti ini:
Ada tiga macam tipe tulisan yang paling sering digunakan dalam penulisan dokumen apa saja. Ketiga tipe tersebut ialah tulisan tebal, tulisan miringdan tulisan bergaris bawah. Bisa pula dua tipe huruf dipadukan misalnya tulisan tebal dan miring, tulisan tebal dan bergaris bawah atau tulisan miring dan bergaris bawah. Bahkan bisa pula ketiga tipe tulisan tersebut sekaligus bergabung menjadi satu berupa tulisan tebal, miring dan bergaris bawah.
C. HEADER ATAU KEPALA TULISAN
Untuk menuliskan judul bab atau sub bab. Ada enam tingkatan header mulai dari H1 hingga H6. H1 adalah header yang paling besar dan H6 adalah header yang paling kecil. Coba tulis dalam Notepad anda sebagai berikut:
<HTML><BODY> <H1>Header level 1</H1> <H2>Header level 2</H2> <H3>Header level 3</H3> <H4>Header level 4</H4> <H5>Header level 5</H5> <H6>Header level 6</H6> <HTML><BODY>
Simpanlah dalam format file HTML kemudian buka dalam browser. Hasilnya akan tampak sebagai berikut:
Pemrograman WEB hal 4 dari 27
Header level 1
Header level 2
Header level 3
Header level 4
Header level 5
Header level 6
D. BARIS DAN PARAGRAF
Cobalah membuat tulisan berikut pada Notepad:
<HTML><BODY> Baris pertama Baris kedua Baris ketiga <HTML><BODY>
Simpanlah sebagai file HTML kemudian bukalah dalam browser. Bagaimana hasilnya? Ternyata hasilnya hanya seperti ini:
Baris pertama Baris kedua Baris ketiga.
Kesimpulannya, penekanan tombol Enter tidak menghasilkan baris dalam tampilan browser. Demikianlah sifat penulisan dokumen HTML. Lantas, bagaimana caranya membuat baris? Gunakanlah tag <BR>. Tag ini tidak mempunyai tag penutup. Bukalah source kode file HTML tadi lalu edit seperti berikut:
<HTML><BODY>
Baris pertama
<BR>Baris kedua
<BR>Baris ketiga
</HTML></BODY>
Simpan kemudian lihat hasilnya dengan me-refresh pada browser. Hasilnya kurang lebih akan seperti ini:
Pemrograman WEB hal 5 dari 27
Baris pertama
Baris kedua
Baris ketiga
Membuat baris kalimat, gampang kan ? Tag <BR> tersebut dapat pula digunakan untuk membuat baris kosong, artinya baris yang tidak mempunyai kalimat apa-apa. Editlah sekali lagi source code latih4.htm menjadi seperti ini:
<HTML><BODY>
Baris pertama<BR><BR>Baris kedua kosong, dan ini baris ketiga<BR><BR><BR>Baris keempat dan kelima kosong, dan ini baris keenam
</BODY></HTML>
Simpan lalu refresh sekali lagi maka hasilnya akan seperti ini:
Baris pertama
Baris kedua kosong, dan ini baris ketiga
Baris keempat dan kelima kosong, dan ini baris keenam
Di sini kita lihat bahwa tag <BR> yang ditulis dua kali akan menghasilkan dua baris, demikian seterusnya. Setelah pandai membuat baris, sekarang kita akan belajar membuat paragraf. Perhatikanlah contoh tulisan di bawah ini:
<HTML><BODY>
Paragraf pertama <P>Paragraf kedua <P>Paragraf ketiga
</BODY></HTML>
Bila dilihat dalam browser, hasilnya akan seperti ini:
Paragraf pertama
Paragraf kedua
Komponen Sistem Operasi
Sistem operasi terdiri dari beberapa komponen, antara lain manajemen
proses, manajemen memori utama, manajemen file, manajemen sistem I/O,
manajemen penyimpan sekunder, system jaringan, system proteksi dan system
command interpreter.
1. Manajemen Proses
Proses adalah program yang sedang dieksekusi. Sebuah proses memerlukan
sumber daya (resource) tertentu seperti waktu CPU, memori, file dan perangkat I/O untuk menyelesaikan tugasnya.
Untuk mengatur proses yang ada, sistem operasi bertanggung jawab pada
aktrifitas-aktifitas yang berhubungan denagn manajemen proses berikut :
- Pembuatan dan penghapusan proses yang dibuat oleh user atau sistem.
- Menghentikan proses sementara dan melanjutkan proses.
- Menyediakan kelengkapan mekanisme untuk sinkronisasi proses dan komunikasi proses.
2. Manajemen Memori Utama
Memori utama atau biasanya disebut dengan memori adalah sebuah array besar berukuran word atau byte, dimana setiap array tersebut mempunyai alamat tertentu. Memori adalah penyimpan yang dapat mengakses data dengan cepat yang digunakan oleh CPU dan perangkat I/O. Memori adalah perangkat penyimpan volatile. Isi memori akan hilang apabila terjadi kegagalan system.
Untuk mengatur memori, sistem operasi bertanggung jawab pada aktifitasaktifitas manajemen memori sebagai berikut :
- Menjaga dan memelihara bagian-bagian memori yang sedang digunakan dan dari yang menggunakan.
- Memutuskan proses-proses mana saja yang harus dipanggil ke memori jika tersedia ruang di memori.
- Mengalokasikan dan mendealokasikan ruang memori jika diperlukan.
3. Manajemen File
File adalah kumpulan informasi yang saling berhubungan yang sudah
didefinisikan oleh pembuatnya (user). Biasanya, file berupa program (baik dalam bentu
source maupun object) dan data.
Untuk mengatur file, sistem operasi bertanggung jawab pada aktifitas-aktifitas
yang berhubungan dengan manajemen file sebagai berikut:
- Pembuatan dan penghapusan file.
- Pembuatan dan penghapusan direktori.
- Primitif-primitif yang mendukung untuk manipulasi file dan direktori.
- Pemetaan file ke memori sekunder.
- Backup file ke media penyimpanan yang stabil (nonvolatile).
4. Manajemen I/O
Sistem operasi bertanggung-jawab pada aktifitas-aktifitas sistem I/O sebagai
berikut:
- Sistem buffer-caching.
- Antarmuka device-driver secara umum.
- Driver untuk device hardware-hardware tertentu.
5. Manajemen Penyimpan Sekunder
Karena memori utama (primary storage) bersifat volatile dan terlalu kecil untuk
mengakomodase semua data dan program secara permanen, sistem komputer harus menyediakan penyimpan sekunder (secondary storage) untuk back up memori utama. Beberapa sistem komputer modern menggunakan disk untuk media penyimpan on-lin, baik program maupun data. Sistem operasi bertanggung jawab pada aktifitas-aktifitas manajemen penyimpan sekunder sebagai berikut:
- Pengaturan ruang bebas.
- Alokasi penyimpanan.
- Penjadwalan disk.
6. Sistem Jaringan (Sistem Terdistribusi)
Sistem terdistribusi adalah kumpulan prosessor yang tidak menggunakan
memori atau clock bersama-sama. Setiap prosessor mempunyai local memori
sendiri. Prosessor-prosessor pada sistem dihubungkan melalui jaringan
komunikasi. Komunikasi dilakukan dengan menggunakan protocol.
Sistem terdistribusi memungkinkan user untuk mengakses sumber daya
(resource) yang beragam. Dengan mengakses sumber daya yang dapat digunakan bersama-sama tersebut akan memberikan keuntungan dalam :
• Meningkatkan kecepatan komputasi
• Meningkatkan ketersediaan data
• Meningkatkan kehandalan sistem
7. Sistem Proteksi
Proteksi adalah suatu mekanisme untuk mengontrol akses oleh program,
proses atau user pada sistem maupun resource dari user.
Mekanisme sistem proteksi yang harus disediakan sistem meliputi :
• Membedakan antara penggunaan yang sah dan yang tidak sah.
• Menentukan kontrol yang terganggu.
• Menetapkan cara pelaksanaan proteksi.
8. Sistem Command Intepreter
Beberapa perintah yang dimasukkan ke sistem operasi menggunakan
pernyataan kontrol yang digunakan untuk
• Manajemen dan pembuatan proses
• Penangananan I/O
• Manajemen penyimpan sekunder
• Manajemen memori utama
• Akses sistem file
• Proteksi
• Jaringan
Program yang membaca dan menterjemakan pernyataan kontrol disebut
dengan command-line intepreter atau shell pada UNIX. Fungsinya adalah untuk mengambil dan mengeksekusi pernyataan perintah berikutnya
Wednesday, February 13, 2013
Penggunaan Array
Array adalah kumpulan data yang bertipe sama yang menggunakan nama yang
sama. Dengan menggunakan array, sejumlah variabel dapat memakai nama yang sama. Antara satu variabel dengan variabel lain di dalam array dibedakan
berdasarkan nomor elemen (subscript).
Contoh 1. Penggunaan array dalam C++:
Program di bawah ini untuk membaca data kemudian menampilkannya.
#include<iostream.h>
#include<conio.h>
void main()
{
int data[10]; // array dengan 10 elemen bertipe integer
int elemen;
clrscr();
// entri 10 data
for (elemen=0;elemen <= 9;elemen++)
{
cout << “Data ke – “ << elemen << “: “;
cin >> data[elemen];
}
// tampilkan data setelah entri
for (elemen=0;elemen <= 9;elemen++)
{
cout << “Data ke – “ << elemen << “: “ << data[elemen];
}
}
NB: Dalam C/C++ elemen array dimulai dari 0.
Contoh 2. Program untuk menampilkan data array dari hasil inisialisasi:
#include<iostream.h>
#include<conio.h>
void main()
{
int data[5] = {4, 1, 0, -9, 8};
int elemen;
clrscr();
// tampilkan data
for (elemen=0;elemen <= 4;elemen++)
{
cout << “Data ke – “ << elemen << “: “ << data[elemen];
}
}
Contoh 3. Program untuk mencari data dari array, dan menampilkan nomor
elemennya.
#include<iostream.h>
#include<conio.h>
void main()
{
int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};
int elemen, ketemu;
cout << “Data yang dicari : “;
cin >> x;
ketemu = 0;
for(elemen=0; elemen<= 9; elemen++)
{
if (data[elemen] == x)
{ ketemu =
!
ketemu;
break;
}
}
if (ketemu == 0) cout << “Data tidak ditemukan “;
else cout << “Data ada di elemen : “ << elemen;
}
Contoh 4. Program untuk menampilkan data terbesar (maks) dari suatu array.
#include<iostream.h>
#include<conio.h>
void main()
{
int data[10] = {4, 1, 0, -9, 8, 5, -1, 2, 3, -7};
int elemen, max;
max = data[0];
for(elemen=0; elemen<= 9; elemen++)
{
if (data[elemen]>max) max = data[elemen];
else max = max;
}
cout << “Nilai maksimum adalah : “ << max;
}
Array di atas adalah array dimensi satu. Bagaimana dengan array dimensi dua?
Berikut ini contoh penggunaan array dua dimensi:
#include<iostream.h>
#include<conio.h>
void main()
{
int j, k;
int data[5][3] =
{
{3, 4, -1},
{2, 3, 0},
{1, 1, 2},
{5, 9, -4},
{6, 6, 2}
};
for (j = 0; j<=4; j++)
{
for (k = 0; k<=2; k++)
cout << “data[“ << j << “][“<< k << “] = “ << data[j][k] << endl;
}
}
Contoh soal latihan array:
- Diberikan suatu array bertipe integer yang berukuran 10 ruang/elemen yangsetiap elemen sudah ada nilainya yang sudah terurut. Buatlah program untukmencari jangkauan (range) dari nilai dalam array tersebut.
Tuesday, February 12, 2013
Statement While dan Do While
Statement WHILE digunakan untuk menyatakan perulangan.Sintaks penggunaan statement while:
while (kondisi)
{..}
contoh:
Dua perintah di bawah ini adalah identik.
for (a = 1; a <= 5; a++)
{
cout << “Hello world \n”;
}
dengan
a = 1;
while (a <= 5)
{
cout << “Hello world \n”;
a++;
}
Jika kita menggunakan WHILE, pastikan bahwa suatu saat bagian kondisi
sampai bernilai FALSE. Apabila tidak, proses perulangan akan terus berjalan.
Contoh program di bawah ini digunakan untuk menjumlahkan sejumlah data
angka. Angka yang akan dijumlahkan diinputkan satu-persatu. Proses pemasukan data angka akan berhenti ketika dimasukkan angka –1. Setelah itu tampil hasil penjumlahannya.
#include <iostream.h>
#include <conio.h>
void main()
{
int data, jumlah,cacah;
jumlah = 0;
data = 0;
cacah = 0;
while (data != -1)
22
{
cout << “Masukkan data angka : “;
cin >> data;
jumlah += data;
cacah++;
}
cout << “Jumlah data adalah : “ << jumlah” << endl;
cout << “Rata-rata : ” << jumlah/cacah;
}
Kondisi dalam WHILE juga dapat menggunakan operator logika. Misalnya
while ((kondisi1) && (kondisi2))
{..}
contoh soal latihan statement while:
Buatlah simulasi menu program dengan tampilan di bawah ini menggunakan
WHILE.
MENU PILIHAN
1. Baca Data
2. Ubah Data
3. Hapus Data
4. Exit
Pilihan Anda (1/2/3/4) ? ...
Apabila dipilih menu no 1, maka akan tampil teks “Anda memilih menu 1”.
Demikian pula untuk menu 2 dan 3. Kemudian setelah itu muncul teks “Tekan
ENTER untuk kembali ke menu utama”. Artinya begitu kita tekan ENTER menu pilihan akan muncul kembali, dst. Akan tetapi bila yang dipilih menu 4 (EXIT), program langsung berhenti.
Statement DO ... WHILE
Perintah DO ... WHILE hampir sama dengan WHILE sebelumnya. Sintaknya:
do
{
.
.
}
while (kondisi);
Perbedaan dengan WHILE sebelumnya yaitu bahwa pada DO WHILE statement perulangannya dilakukan terlebih dahulu baru kemudian di cek kondisinya. Sedangkan WHILE kondisi dicek dulu baru kemudia statement perulangannya dijalankan. Akibat dari hal ini adalah dalam DO WHILE minimal terdapat 1x perulangan. Sedangkan WHILE dimungkinkan perulangan tidak pernah terjadi yaitu ketika kondisinya langsung bernilai FALSE.
Contoh:
a = 1;
do
{
cout << “Hello world \n”;
a++;
}
while(a==0)
Perintah di atas akan muncul satu buah Hello World. Bandingkan dengan yang
berikut ini:
a = 1;
while(a==0)
{
cout << “Hello world \n”;
a++;
}
Perintah di atas sama sekali tidak menampilkan Hello World, karena kondisinya langsung FALSE.
Monday, February 11, 2013
Function Pada Program
Nama ini selanjutnya dapat dipanggil beberapa kali di beberapa tempat dalam
program.
Tujuannya:
- Memudahkan dalam mengembangkan program. Program dibagi menjadi
beberapa subprogram kecil, sehingga hal ini menjadi kunci dalam pembuatan program terstruktur. - menghemat ukuran program, karena beberapa perintah yang sama dan
dijalankan beberapa kali dalam program dapat dijadikan satu kali saja dalam suatu function, kemudian function tersebut dapat dipanggil berulang kali.
Contoh Function I:
#include <iostream.h>
#include <conio.h>
void garis(); // prototype function
void main() // main function
{
clrscr();
garis(); // panggil function
cout << “NIM NAMA MAHASISWA” << endl;
garis(); // panggil function
cout << “M0197001 AMIR HAMZAH “ << endl;
cout << “M0197002 PAIMAN” << endl;
garis(); // panggil function
}
void garis() // detail function
{
int i;
for(i=0;i<=40;i++)
{
cout << “-”;
}
cout << endl;
}
Contoh di atas menggambarkan bagaimana membuat function untuk membuat
garis. Nama functionnya adalah garis. Untuk membuat suatu function, diperlukan suatu prototype dari function tersebut. Prototype function memiliki sintaks sbb:
returned_value_data_type nama_function(argumen);
Seperti halnya dalam Pascal, suatu function dapat mengembalikan (return) suatu nilai (value) yang tergantung tipe datanya. Tipe data value yang dikembalikan inilah yang dimaksud dengan returned_value_data_type.
Sedangkan argumen merupakan parameter-parameter yang akan diolah dalam
function tersebut. Argumen boleh ada boleh tidak, sesuai kebutuhan. Apabila
parameter argumennya lebih dari satu, cara penulisannya sbb:
tipe_data param1, tipe_data param2, ...
Contoh penulisan prototype function:
- double kuadrat(int x);
- float luas_segitiga(float alas, float tinggi);
- int jumlah_bil(int x, int y, int z);
Apabila suatu function tidak mengembalikan nilai, maka
returned_value_data_type nya diisi void.
Setelah prototype function dibuat, selanjutnya membuat function tersebut secara detail. Suatu function disebut juga subprogram, oleh karena itu strukturnya juga sama dengan struktur program utama. Pada contoh function garis() di atas, detail dari function tersebut adalah:
void garis() // detail function
{
int i;
for(i=0;i<=40;i++)
{
cout << “-”;
}
cout << endl;
}
Kalau diperhatikan, strukturnya sama dengan program utama main().
Contoh Function II:
#include <iostream.h>
#include <conio.h>
float luas(float alas, float tinggi);
void main()
{
clrscr();
a = 10.5;
t = 11;
cout << “HITUNG LUAS SEGITIGA” << endl;
cout << “Panjang alas : “ << a << endl;
cout << “Tinggi : “ << t << endl;
cout << “Luasnya : “ << luas(a,t) << endl;
}
float luas(float alas, float tinggi)
{
float luas_segitiga;
luas_segitiga = alas * tinggi * 0.5;
return luas_segitiga;
}
Detail function luas di atas dapat ditulis sbb:
float luas(float alas, float tinggi)
{
return (alas * tinggi * 0.5);
}
Perintah return adalah untuk mengembalikan hasil operasi di sebelah kanannya
ke perintah pemanggilan function.
Variabel Global dan Lokal
Setiap kali kita deklarasikan suatu variabel, belum tentu variabel tersebut dikenal
di setiap function yang kita buat. Contoh:
#include <iostream.h>
#include <conio.h>
void cetak();
void main()
{
int a;
a = 10;
cout << “Nilai a = “ << a << endl;
cetak();
}
void cetak()
{
a++;
cout << “Nilai a = “ << a << endl;
}
Ketika program di atas dicompile, akan terdapat error yaitu variabel a dalam
function cetak() undefined. Artinya bahwa variabel a tidak dikenal dalam cetak(). Variabel a hanya dikenal dalam program utama/ function main() saja. Maka
dalam hal ini variabel a disebut variabel lokal (hanya dikenal dalam function yang di dalamnya didefinisikan a tersebut).
Selanjutnya program di atas diubah sbb:
#include <iostream.h>
#include <conio.h>
int a;
void cetak();
void main()
{
a = 10;
cout << “Nilai a = “ << a << endl;
cetak();
}
void cetak()
{
a++;
cout << “Nilai a = “ << a << endl;
}
Apabila program di atas dijalankan maka akan tampil:
Nilai a = 10
Nilai a = 11
Pada program di atas, variabel a disebut variabel global karena variabel tersebut dapat dikenali di setiap function yang ada.
Bagaimana dengan yang ini???
#include <iostream.h>
#include <conio.h>
void cetak();
void main()
{
int a;
a = 10;
cout << “Nilai a = “ << a << endl;
cetak();
}
void cetak()
{
int a;
cout << “Nilai a = “ << a << endl;
}
Apabila program di atas dijalankan, hasilnya adalah:
Nilai a = 10
Nilai a = 747
Hasil di atas menunjukkan bahwa meskipun nama variabelnya sama-sama a, tapi
kedua variabel a tersebut berbeda. Setiap variabel a tersebut hanya dikenali di
functionnya masing-masing (tidak terkait satu dengan yang lain).
Contoh soal untuk latihan bisa dicoba soal berikut:
- Buatlah function yang akan memberikan nilai 1 jika nilai parameter yang
dimasukkan huruf ‘a’, dan akan memberikan nilai 0 jika nilai parameter yang dimasukkan selain huruf ‘a’. - Buatlah function untuk mencari nilai fungsi f(x) = 2x2 – 3x + 1;
Parameter functionnya adalah nilai x (tipe data float/double). Return valuenya adalah nilai f(x). - Buatlah function untuk membuat tampilan seperti di bawah ini: