Pada postingan ini akan saya beri contoh penggunaan stuct jika kita menghadapi sebuah kasus struktur data, sebelumnya saya akan mulai dari definisi struct itu sendiri. Struct merupakan elemen data (bisa dinamakan field/elemen struct) yang digabungkan menjadi satu kesatuan, dimana field data ini dapat memiliki tipe data yang sama ataupun berbeda, sesuatu yang merupakan salah satu perbedaan dengan Array (yg diwajibkan mempunyai tipe data yang sama ), tetapi struct ataupun array masih bersifat statis allocation memory, yang berarti elemennya tidak berubah/ sesuai dengan deklarasi awal... #include <iostream.h>
Mungkin cukup untuk sedikit teori tentang struct, berikut ini saya akan memebrikan contoh script penggunaan stuct, merupakan tugas sih, tapi baru saya postingan sesudah deadline lewat, biar tidak dislah gunakan,,hehehe
Berikut contoh penggunaan Struct dengan fitur input, baca, hapus dan keluar dari program, dengan kasus pengelolaan data VCD, di rental vcd mungkin, tapi program ini hanyalah program yang sederhana,
#include <stdlib.h>
#include <stdio.h>
#define max 30 //menentukan nilai max nya 30
struct vcd {
char nama[20];
char genre[30]; //deklarasi stuct
char tipe[20];
int jml;
char harga[30];
} vcd[max];
void init(void) {
register int i;
for(i = 0; i < max; i++)
vcd[i].nama[0] = '\0';
}
int menu(void) {
int pilih;
cout<<"\n++++[ MENU DATA VCD ]++++\n";
cout<<"1. Input \n";
cout<<"2. Hapus \n";
cout<<"3. Baca \n";
cout<<"4. Keluar\n";
do {
cout<<" Pilih : ";
cin >> pilih;
} while(pilih < 0 || pilih > 4);
cout<<"\n";
return pilih;
}
int array_kosong(void) {
register int i;
for(i = 0; vcd[i].nama[0] && i < max; ++i);
if(i == max)
return -1;
return i;
}
void input(void) {
int t;
// melakukan pencarian terhadap index array yang tidak digunakan
t= array_kosong();
//jika penuh
if(t == -1) {
cout<<"\nDaftar Penuh";
return;
}
cout<<"***** Input Data VCD *****\n";
cout<<" Nama VCD\t : ";
gets(vcd[t].nama);
cout<<" Tipe VCD\t : ";
gets(vcd[t].tipe);
cout<<" Genre VCD\t : ";
gets(vcd[t].genre);
cout<<" Jumlah VCD\t : ";
cin >> vcd[t].jml;
cout<<" Harga VCD\t :Rp ";
gets(vcd[t].harga);
}
void hapus(void) {
register int t;
cout<<"Data yang ingin dihapus data ke: ";
cin >>t;
if(t >= 0 && t < max)
vcd[t].nama[0] = '\0';
}
void list(void) {
register int i;
cout<<"***** Daftar VCD *****\n";
for(i = 0; i < max; ++i) {
if(vcd[i].nama[0]) {
cout<<"\n Data VCD ke-"<< i;
cout<<"\n Nama VCD\t: "<<vcd[i].nama;
cout<<"\n Tipe VCD\t: "<< vcd[i].tipe;
cout<<"\n Genre VCD\t: "<< vcd[i].genre;
cout<<"\n Jumlah VCD\t: "<< vcd[i].jml;
cout<<"\n Harga VCD\t: Rp "<<vcd[i].harga;
cout<<"\n--------------------------\n";
}
}
cout<<"\n";
}
int main(void) {
int pilih;
init();
for( ; ; ) { /*for dikosongkan karena perubahan indeks perulangan ada
dibadan loop, dan looping dihentikan dengan break */
pilih = menu();
switch(pilih) {
case 1:
input();
break;
case 2:
hapus();
break;
case 3:
list();
break;
case 4:
exit(0);
}
}
}
Program tersebut terdiri dari beberapa fungsi, berikut ini masing-masing penjelasan dari fungsinya
# fungsi init()
fungsi ini menyiapkan array struct dengan memberikan karakter null pada byte pertama
di field nama pada setiap struct dalam array. Program berasumsi bahwa elemen array
dianggap tidak terpakai bila field nama kosong.
# fungsi menu ()
Fungsi ini akan menampilkan pilihan menu dan mengembalikan nilai yang dipilih oleh
user.
# fungsi array_kosong()
fungsi ini akan mengembalikan nilai -1 bila semua elemen array
digunakan. Nilai -1 adalah angka aman di mana tidak mungkin terdapat index -1 untuk
elemen array.
# fungsi input ()
fungsi yang digunakan untuk melakukan input dari keyboard untuk memasukkan data yang akan dimasukan dalam array struct, pada fungsi ini juga ada pemanggilan fungsi array_kosong untuk mencari array struct yang tidak tergunakan, jika array penuh maka akan menampilkan ==> Daftar penuh
# fungsi hapus ()
fungsi ini akan meminta user untuk memasukan index array yang akan dihapus, sebenarnya metode penghapusan ini adalah dengan memberikan karakter null pada index array tersebut
# fungsi list ()
fungsi ini digunakan untuk menampilkan apa yang telah diinputkan pada saat proses pemanggilan fungsi input di fungsi main
# fungsi main ()
merupakan fungsi utama dari program ini yang memanggil beberapa fungsi diatas untuk menjalankan satu kesatuan program
semoga bermanfaat : D,,,happy coding..
eNotes
Sharing Notes About the IT World
Minggu, 08 Mei 2011
Implementasi Struct
Studi Kasus Subnetting
Untuk memahami subnetting mungkin perlu dengan terus berlatih dan terus mencoba-coba, misalnya dengan mengerjakan studi kasus beberapa perancangan lab atau sebuah sistem warnet dan kompleksnya ISP, berikut ini ada beberapa contoh studi kasus yang disertai dengan penyelesaian untuk memudahkan memahami konsep subnneting IP,biasanya klo buku disertai CD ato DVD,,,nah klo ini disertai penjelasannya aja,,,hehehe
****kasus 1****
Anda mempunyai subnet dengan network address 193.20.32. dengan subnet mask 255.255.255.224
Tentukan:
a. Tentukan berap jumlah subnet yang tersedia :
b. Berapa jumlah host yang tersedia untuk setiap subnet :
Jawab
# Alamat network 192.20.32 merupakan alamat nerwork kelas C, karena oktet pertama adalah 193 (dimana kelas C dimulai dari 192-223 pada oktet pertama) format keas C N.N.N.H, maka subnetmask 255.255.255.224= 11111111.11111111.11111111.11100000 ( ada 3 bit 1 yang aktif di oktet host). Subnet=2^3-2 = 6 subnet
# Jumlah host per subnet
Dari .11111111.11111111.11100000, ada 5 bit 0 yang aktif di oktet host, Host/subnet=2^5- 2 = 30 host
****kasus 2****
Anda di tugaskan untuk mendesain subnet dan IP untuk suatu WAN yang mempunyai 10 kantor dan setiap kantor mempunyai 255 workstation.network address yang tersedia adalah 164.10.0.0.di dalam tugas ini anda juga diminta untuk membuat subnet dengan jumlah subnet terbanyak
Maka tugas anda adalah menetukan :
a.subnet mask yang akan dipakai
b.subnet address dan jumlah subnet yang tersedia dari subnet yang dibuat
c.kelompok ip address yang tersedia ( IP Valid )
d.Broadcast address yang tersedia untuk setiap kelompok.
Jawab
# Sebelum menentukan subnet, ini kelas B, juga pertimbangkan banyak host yang diperlukan, yang paling mendekati 255 host , yaitu 510 host (2^9-2), karena jika 2^8-2 = 254 host (tidak memenuhi syarat),dari situ kita dapat menentukan bit 1 yang aktif dalam oktet host kelas B, yaitu 7 bit 1 di oktet host kelas B jadi subnet yang dipakai 11111111.11111111.11111110.00000000 atau 255.255.254.0
# Jumlah subnet 2^7-2 = 126 subnet, dengan blok size 256-254=2, maka subnet address yang tersedia
168.10.2.0
168.10.4.0
168.10.6.0
168.10.8.0
168.10.10.0
168.10.12.0
168.10.14.0
168.10.16.0
168.10.18.0
168.10.20.0
..................
Dst, sampai
168.10.252.0
Untuk 168.10.254.0 bukan termasuk subnet yang valid, karena semua bit subnetnya on (1), dan disebut netmask
# Kelompok IP address yang valid
Merupakan range diantara net id dengan id broadcast, secara berurutan dari subnet pertama sampai yang terakhir, berikut ini range nya:
168.10.2.1 sampai 168.10.3.254
168.10.4.1 sampai 168.10.5.254
168.10.6.1 sampai 168.10.7.254
168.10.8.1 sampai 168.10.9.254
168.10.10.1 sampai 168.10.11.254
168.10.12.1 sampai 168.10.13.254
168.10.14.1 sampai 168.10.15.254
168.10.16.1 sampai 168.10.17.254
168.10.18.1 sampai 168.10.19.254
168.10.20.1 sampai 168.10.21.254
……………………………………………….
Dst, sampai
168.10.252.1 sampai 168.10.253.254
# Broadcast address yang tersedia untuk setiap kelompok ( secara berurutan dari subnet pertama ke yang terakhir)
168.10.3.255
168.10.5.255
168.10.7.255
168.10.9.255
168.10.11.255
168.10.13.255
168.10.15.255
168.10.17.255
168.10.19.255
168.10.21.255
…………………….
Dst, sampai
168.10.253.255
****kasus 3*****
Jika anda mempunyai IP address 175.10.64.15/19
a.tentukan IP addressnya
b.tentukan subnet address dan IP address yang diberikan
c.tentukan broadcast addressnya
Jawab
# Ip address nya 175.10.64.15, merupakan IP kelas B
# /19 berarti untuk kelas B berati netmask = 255.255.224.0, blok size 256-224=32 (subnet pertama), 64(subnet kedua), 96,128,160,192, selengkapnya seperti dibawah ini:
subnet Alamat subnet Host awal Host akhir
1 175.10.32.0 175.10.32.1 175.10.63.254
2 175.10.64.0 175.10.64.1 175.10.95.254
3 175.10.96.0 175.10.96.1 175.10.127.254
4 175.10.128.0 175.10.128.1 175.10.159.254
5 175.10.160.0 175.10.160.1 175.10.191.254
6 175.10.192.0 175.10.192.1 175.10.223.254
IP 175.10.64.15 berada di subnet kedua yaitu: 175.10.64.0
# Alamat broadcast dari IP 175.10.64.15 adalah 175.10.95.255 (lihat subnet 2)
****kasus 4*****
sebuah universitas ingin merancang sebuah jaringan dengan menghubungkan 3 ruangan, kondisi :
ruangan 1 : berisi 54 komputer => IP : 202.179.13.8/?
ruangan 2 : berisi 120 komputer => IP : 196.40.30.4/?
ruangan 3 : berisi 5 komputer => IP : 200.59.174.4/?
Jawab
# Ruangan 1 berisi 54 host, dan merupakan IP kelas C, berarti jumlah host yang mendekati adalah 2^6 - 2= 62 (bit 0 yang aktif dioktet terakhir/oktet host ada 6), jadi bit 1 yang aktif (untuk subnet) ada 2, jadi netmasknya 255.255.255.192
IP : 202.179.13.8/26
# Ruangan 2 berisi 120 host, kelas C juga, jumlah host yang mendekati adalah 2^7 – 2 =126, jadi netmask 255.255.255.128
IP : 196.40.30.4/25
# Ruangan 3 berisi 5 host, kelas C juga, jumlah host yang mendekati adalah 2^3 – 2 = 6, jadi netmasknya 255.255.255.248
IP : 200.59.174.4/29
Semoga bermanfaat :D
Kamis, 24 Maret 2011
Menjalankan OS di dalam OS
Postingan ini untuk Anda yang sayang untuk menghapus OS anda yang genuine / ori atau mungkin lagi senang berganti-ganti OS atau cuma ingin sekedar nyoba OS ini dan itu, tanpa perlu takut kehilangan data, harddisk bad sector atau ancur karena terus format dan ubah partisi maka gunakanlah yang namanya “virtual machine”. Mungkin ada sih solusinya yaitu buat multiOS/ banyak OS yang diinstall di satu komputer, tapi saya ingin menunjukan alternatif lain yang mungkin bisa anda gunakan dengan mudah dan berguna, karena kita juga bisa melakukan konfigurasi jaringan walaupun hanya dengan 1 komputer, tapi tentunya dengan virtual mesin sebagai host lain. Apa virtual mesin itu?,,ne penjelasannya yang saya dapat dari http://id.wikipedia.org/wiki/Mesin_virtual,
“Mesin virtual pada mulanya didefinisikan oleh Gerard J. Popek dan Robert P. Goldberg pada tahun 1974 sebagai sebuah duplikat yang efisien dan terisolasi dari suatu mesin asli. Pada masa sekarang ini, mesin-mesin virtual dapat mensimulasikan perangkat keras walaupun tidak ada perangkat keras aslinya sama sekali”
Jadi menurut saya kita bisa nginstall OS dan menjalankan OS(virtual) tersebut didalam OS yang telah terinstall di harddisk, pura-pura nginstall tapi beneran ke install,,nah lho,,tanpa melakukan partisi dan format harddsik, intinya ya itu tadi menjalankan OS didalam OS, misal komputer udah ada windows 7 dan pengen nyoba linux, BSD, solaris,dll,, ya kita gag perlu tu buat partisi semacam /root, /swap,/home, karena kita cuma perlu men-save hasil instalan itu ke harddisk. Banyak sih macam virtual machines, ada virtualBox, virtual PC ada juga VmWare, nah pada kesempatan kali ini saya pengen menggunakan Vmware untuk jadi virtual machine saya, dengan OS guest(virtual) Ubuntu dalam OS windows saya,,,langsung aja,sesudah kita install Vmware, yah Cuma next2 trus ngisi yang perlu diisi, dah lalu jalankan programnya, sampai muncul tampilan berikut ini
Tampilan utama Vmware,pilih New Virtual untuk memulai membuat/menginstall OS virtual, hingga muncul wizardnya
Klik Next aja kalau pengen lanjut, ntar kan muncul tampilan kayak gini, yaitu intinya kita ditanya, kita tu mau ngistall Vmware dengan lengkap atau hanya pilah-pilah sesuai kebutuhan
Biar enak pilih aja typical, trus next, nah muncul lagi tampilan seperti ini
Kita tinggal menentukan Operatyng System apa sih yang mau kita gunakan, banyak sebenarnya pilihan yang disediakan Vmware, mulai dari windows aja, ada 95,98,...xp, trus linux,dari milih distro-distro juga bisa milih dengan opsi kernel, trus solaris,bsd,kalaupun tidak tercantum ya pilih saja other, berhubung saya mau nginstall ubuntu 10.10, maka saya pilih yang linux trus versinya ubuntu, kemudian klik next
Nah pada kesempatan diatas kita beri nama virtual mesinnya trus jangan lupa tempatkan penyimpanan di harddisk yang masih punya free spacenya, gampangkan, gag perlu tuh buat partisi baru, kayak nyimpen dokumen aja nih,hehehe
Setelah kita menentukan lokasi penyimpanan virtual mesin, kita mengisikan alokasi ato kapasitas yang sekiranya akan digunakan untuk linux tersebut, misalnya 8 GB,,wah kok gede amat??, sebenarnya size 8 GB itu juga bohongan, karena setelah instalasi ubuntu selesai di Vmware dan saya liat ukuran file virtual mesin sebenarnya ke pake 2,61 GB,tinggal mau diisi apa dulu sistem tersebut, nah Setelah itu klik finish.
Selain itu kita juga bisa melakukan konfigurasi hardware, misalnya kita mau menambah hardware atau mengurang hardware tinggal pilih aja di tombol add atau remove, nah sisi positif lainnya, yaitu banyak yang ngeluh misalnya kalau nginstall pake optical drive /CD-ROM, ntah bacanya lemot, kadang korup trus gitu kalau buat nginstall berkali-kali lama-lama bisa jebol CD-ROM nya, kalau gag ya DVD master ubuntunya yang cepat tergores dan mungkin bisa gag terbaca, Vmware mengetahui itu dan menyempurnakan fiturnya dengan saat kita mengklik CD-ROM ada dua pilihan disisi kanan yaitu menggunakan physical drive (CD-ROM beneran yang terpasang di komputer) atau menggunakan file ISO, nah maksud saya yang tadi supaya CD-ROM tidak cepat rusak, file master ubuntu di buat .iso, pake ultra iso misalnya trus digunakan, seperti pada gambar berikut
Setelah semua konfigurasi telah selesai, tinggal klik start virtual machine, maka itu seperti kita mulai menekan power dan berjalanlah booting dilanjutkan dengan proses instalasi, karena emang belum saya install, kalau pengen tahu bagaimana menginstall linux, saya postingkan di lain artikel
Selain keunggulan yang telah dibicarakan diatas tadi, sebenarnya masih ada lagi keunggulan Vmware, yaitu buat seksi dokumentasi, jangan lupa mendokumentasikan misalnya langkah menginstall atau membuat karya dengan linux, itulah mengapa kita bisa membuat laporan tentang instalasi tanpa harus jeprat jepret di depan monitor, mengambil gambar secara manual menggunakan kamera, ya mungkin karena proses instalasi memang tidak bisa di print screen atau di snap shot, maka Vmware juga melengkapi fiturnya untuk bisa meng-capture gambar maupun video, gini caranya
Pilih menu VM kemudian pilih mau capture picture atau capture movie, mudah bukan??
Nah itu tadi sedikit mengenai Vmware , semoga bermanfaat.