Konsentrasi : Teknik Informatika
Tingkat : 1
Kelas : TI 6
Nama Mahasiswa : Alfa Adhitya
Mata Kuliah : Teori Struktur Data
Nama Dosen : Dadan Nurdin Bagenda S.T
Suatu pointer (variabel penunjuk) adalah suatu variabel yang berisi dengan alamat lokasi suatu memori tertentu. Jadi suatu pointer bukan berisi suatu nilai data, tetapi berisi suatu alamat. Misalnya X adalah suatu variabel yang berisi dengan nilai ‘J’. X bukan variabel penunjuk. Nilai dari X ini oleh kompiler C akan diletakkan di suatu lokasi memori tertentu yang dapat diakses bila kita mengetahui alamat memorinya. Alamat dari nilai X dapat diketahui dari ungkapan &X.
/*------------------------------------------*/
/* Contoh 8.1: Konsep dasar pointer */
/*------------------------------------------*/
#include
main()
{
char *Alamat_X, X;
X=’J’;
Alamat_X=&X;
printf(“Nilai variabel X, yaitu ‘J’ berada di alamat %p\n”,Alamat_X);
}
Jika program ini dijalankan, akan didapatkan hasil:
Nilai variabel X, yaitu ‘J’ berada di alamat FFDD
Alamat_X sebagai variabel pointer sebelum digunakan harus dideklarasikan terlebih dahulu dengan tipe yang sama dengan variabel yang ditunjuknya. Variabel pointer dideklarasikan dengan diawali tanda asterik (‘*’).
* Mendeklarasikan Variabel pointer
Seperti halnya variabel biasa, variabel pointer harus dideklarasikan terlebih dahulu sebelum digunakan. Variabel pointer dideklarasikan dengan nama variabelnya ditulis dengan diawali karakter asterik (‘*’). Bentuk umum deklarasi variabel pointer adalah sebagai berikut:
tipe *nama_variabel;
Variabel pointer yang dideklarasikan dapat juga langsung diberi nilai awal.
/*--------------------------------------------------------*/
/* Contoh 10.2: Pendeklarasian variabel pointer */
/*--------------------------------------------------------*/
#include
main()
{
float Nilai, *Alamat=&Nilai;
Nilai = 25.55;
printf(“Nilai %7.2f berada di alamat memori %p\n”, Nilai, Alamat);
}
Jika program ini dijalankan, akan didapatkan hasil:
Nilai 25.55 berada di alamat memori FFDA
void main ()
{
clrscr ();
ofstream hasil ();
hasil.open("data.txt")
hasil.close();
getch();
}
ofstream hasil();
hasil.open ("data.txt")
for (x=i; x=50; x++)
if(x % 2;=0)
{
cout hasil<<
}
{
hasil.close();
}
Sorting ialah pengurutan data yang telah di inputkan baik secara ascending (A-Z) maupun descending (Z-A)..
Contoh :
for(a=0;a<9;a++)
{
for(b=9;b>0;b–)
{
if(bil[b] temp=bil[b];
bil[b]=bil[b-1];
bil[b-1]=temp;
}
}
{
for(b=9;b>0;b–)
{
if(bil[b] temp=bil[b];
bil[b]=bil[b-1];
bil[b-1]=temp;
}
}
disini menggunakan looping yaitu for dan kondisi if, dan ini adalah sorting secara ascending,, jika secara descending tinggal ganti "+" menjadi "–" dan "–" menjadi "+" .
dan disitu jg menggunakan 1 variabel (temp) yang berfungsi untuk menyimpan sementara, dan jika kondisi itu benar maka melakukan swap.
struct mahasiswa {
char nama[35];
char nim[25];
int gaji;
}a,b;
void cetak (mahasiswa a);
main()
{
a.gaji=100000;
int jam,gaji1;
cout<<"masukan nama anda : ";
cin.getline(a.nama,35);
cout<
cout<<"masukan nim anda : ";
cin.getline (a.nim,35);
cout<
cout<<"masukan total jam anda : ";
cin>>jam;
gaji1=a.gaji*jam;
a.gaji=gaji1;
cout<
cetak (a);
getch();
}
void cetak (mahasiswa a)
{
cout<<"Nama : "<<
cout<<"Nim : "<<
cout<<"Gaji anda adalah Rp "<<
}
//Struct mahasiswa diumpamakan sebagai "Jalan utama" sedangkan nama[35] dan nim[25],gaji sebagai percabangan jalan tersebut .. jadi mahasiswa memiliki tiga cabang yaitu nama dan nim.
mahasisa:
1. nama (a,b)
2. nim (a,b)
3. gaji. (a,b)
dimana ketiga cabang tersebut di wakili oleh a dan b. kemudian a dan b tidak bisa langsung di isi suatu nilai karena a dan b bisa di artikan sebagai jembatan yang menhubungkan nama,nim dan gaji. untuk mengisi nilai a dan b. harus di tulis sebagai berikut :
a.nama ="Andryas"
a.nim ="070010005" //harus di beri tanda " " karena memakai char.
a.gaji =1000000
begitu pula untuk nilai b.
b.nama ="Citra"
b.nim ="070010076"
b.gaji =2000000
cout<<"masukkan nama anda tanpa ada spasi : ";cin.getline (a.nama,35);
mengapa cin.getline (a.nama,35) digunakan karena cin.getline merupakan masukan untuk nilai char.. (a.nama,35) ini berarti a.nama data yang diisi nilai sedangkan 35 adalah jumlah karakternya yang mampu tertulis, dimana tidak boleh menggunakan spasi.
cout<<"masukan total jam anda : ";cin>>jam;
ini berarti variable jam dapat diisi nilai dengan menggunakan cin saja karena merupakan int.
untuk fungsi void cetak (mahasiswa a);
ini berarti seperti perintah yang sudah dirumuskan didalam void cetak.
seperti tugas di atas contohnya :
void cetak (mahasiswa a)
{
cout<<"Nama : "<<<
cout<<"Nim : "<<<
cout<<"Gaji anda adalah Rp "<<
}
rumus void cetak di atas merupakan rumus yang telah disusun sebelumnya.. dimana
nilai dari (mahasiswa a) bisa di rubah menjadi (a) saja jika a memiliki nilai seperti
a.nama="andryas" ini berarti nilai a. yang menuju ke cabang nama telah memiliki nilai "Andryas".
char nama[35];
char nim[25];
int gaji;
}a,b;
void cetak (mahasiswa a);
main()
{
a.gaji=100000;
int jam,gaji1;
cout<<"masukan nama anda : ";
cin.getline(a.nama,35);
cout<
cout<<"masukan nim anda : ";
cin.getline (a.nim,35);
cout<
cout<<"masukan total jam anda : ";
cin>>jam;
gaji1=a.gaji*jam;
a.gaji=gaji1;
cout<
cetak (a);
getch();
}
void cetak (mahasiswa a)
{
cout<<"Nama : "<<
cout<<"Nim : "<<
cout<<"Gaji anda adalah Rp "<<
}
//Struct mahasiswa diumpamakan sebagai "Jalan utama" sedangkan nama[35] dan nim[25],gaji sebagai percabangan jalan tersebut .. jadi mahasiswa memiliki tiga cabang yaitu nama dan nim.
mahasisa:
1. nama (a,b)
2. nim (a,b)
3. gaji. (a,b)
dimana ketiga cabang tersebut di wakili oleh a dan b. kemudian a dan b tidak bisa langsung di isi suatu nilai karena a dan b bisa di artikan sebagai jembatan yang menhubungkan nama,nim dan gaji. untuk mengisi nilai a dan b. harus di tulis sebagai berikut :
a.nama ="Andryas"
a.nim ="070010005" //harus di beri tanda " " karena memakai char.
a.gaji =1000000
begitu pula untuk nilai b.
b.nama ="Citra"
b.nim ="070010076"
b.gaji =2000000
cout<<"masukkan nama anda tanpa ada spasi : ";cin.getline (a.nama,35);
mengapa cin.getline (a.nama,35) digunakan karena cin.getline merupakan masukan untuk nilai char.. (a.nama,35) ini berarti a.nama data yang diisi nilai sedangkan 35 adalah jumlah karakternya yang mampu tertulis, dimana tidak boleh menggunakan spasi.
cout<<"masukan total jam anda : ";cin>>jam;
ini berarti variable jam dapat diisi nilai dengan menggunakan cin saja karena merupakan int.
untuk fungsi void cetak (mahasiswa a);
ini berarti seperti perintah yang sudah dirumuskan didalam void cetak.
seperti tugas di atas contohnya :
void cetak (mahasiswa a)
{
cout<<"Nama : "<<<
cout<<"Nim : "<<<
cout<<"Gaji anda adalah Rp "<<
}
rumus void cetak di atas merupakan rumus yang telah disusun sebelumnya.. dimana
nilai dari (mahasiswa a) bisa di rubah menjadi (a) saja jika a memiliki nilai seperti
a.nama="andryas" ini berarti nilai a. yang menuju ke cabang nama telah memiliki nilai "Andryas".
class tidak jauh beda dengan struct bedanya kalau class defaultnya berupa private atau tidak bisa di panggil di mana saja sedangkan struct defaultnya berupa public sehingga bisa di panggil dimana saja.
#include"iostream.h"
#include"conio.h"
class data
{
private:
int alas;
int tinggi;
float phi;
int r;
int panjang;
int lebar;
int lsegitiga;
float llingkaran;
int lpersegi;
int vbalok;
float vtabung;
float vkerucut;
public:
void segitiga()
{
cout<<"--Menghitung luas Segitiga--"<
cout<<"Masukan Alas : ";
cin>>alas;
cout<<<"Masukan tinggi : ";
cin>>tinggi;
lsegitiga=(alas*tinggi)/2;
cout<<<"Luas Segitiga adalah :";
cout<
cout<
}
void lingkaran()
{
cout<<"--Menghitung Luas Lingkaran--"<
phi=3.14;
cout<<<"Masukan Jari - Jari : ";
cin>>r;
llingkaran=phi*r*r;
cout<<<"Luas Lingkaran adalah :";
cout<
cout<
}
void persegi()
{
cout<<"--Menghitung Luas Persegi--"<
cout<<<"Masukan Panjang : ";
cin>>panjang;
cout<<<"Masukan Lebar : ";
cin>>lebar;
lpersegi = panjang * lebar;
cout<<<"Luasnya adalah : ";
cout<
cout<
}
void balok()
{
cout<<"--Menghitung Volume Balok--"<
cout<<<"Masukan Panjang : ";
cin>>panjang;
cout<<<"Masukan Lebar : ";
cin>>lebar;
cout<<<"Masukan Tinggi : ";
cin>>tinggi;
vbalok=panjang*lebar*tinggi;
cout<<<"Volume balok Adalah : ";
cout<
cout<
}
void tabung()
{
cout<<"--Menghitung Volume Tabung--"<
cout<<<"Masukan Jari-Jari : ";
cin>>r;
cout<<<"Masukan Tinggi : ";
cin>>tinggi;
phi=3.14;
vtabung=(2*phi*r*r)*tinggi;
cout<<<"Volume Tabung adalah : ";
cout<
cout<
}
void kerucut()
{
cout<<"--Menghitung Volume Kerucut--"<
cout<<<"Masukan Jari-Jari : ";
cin>>r;
cout<<<"Masukan Tinggi : ";
cin>>tinggi;
phi=3.14;
vkerucut=(phi*r*r)*tinggi;
cout<<"Volume Kerucut adalah : ";
cout<
cout<
}
}geometri;
void main()
{
clrscr();
geometri.segitiga();
cout<
geometri.lingkaran();
cout<
geometri.persegi();
cout<
geometri.balok();
cout<
geometri.tabung();
cout<
geometri.kerucut();
getch();
}
#include"iostream.h"
#include"conio.h"
class data
{
private:
int alas;
int tinggi;
float phi;
int r;
int panjang;
int lebar;
int lsegitiga;
float llingkaran;
int lpersegi;
int vbalok;
float vtabung;
float vkerucut;
public:
void segitiga()
{
cout<<"--Menghitung luas Segitiga--"<
cout<<"Masukan Alas : ";
cin>>alas;
cout<<<"Masukan tinggi : ";
cin>>tinggi;
lsegitiga=(alas*tinggi)/2;
cout<<<"Luas Segitiga adalah :";
cout<
cout<
}
void lingkaran()
{
cout<<"--Menghitung Luas Lingkaran--"<
phi=3.14;
cout<<<"Masukan Jari - Jari : ";
cin>>r;
llingkaran=phi*r*r;
cout<<<"Luas Lingkaran adalah :";
cout<
cout<
}
void persegi()
{
cout<<"--Menghitung Luas Persegi--"<
cout<<<"Masukan Panjang : ";
cin>>panjang;
cout<<<"Masukan Lebar : ";
cin>>lebar;
lpersegi = panjang * lebar;
cout<<<"Luasnya adalah : ";
cout<
cout<
}
void balok()
{
cout<<"--Menghitung Volume Balok--"<
cout<<<"Masukan Panjang : ";
cin>>panjang;
cout<<<"Masukan Lebar : ";
cin>>lebar;
cout<<<"Masukan Tinggi : ";
cin>>tinggi;
vbalok=panjang*lebar*tinggi;
cout<<<"Volume balok Adalah : ";
cout<
cout<
}
void tabung()
{
cout<<"--Menghitung Volume Tabung--"<
cout<<<"Masukan Jari-Jari : ";
cin>>r;
cout<<<"Masukan Tinggi : ";
cin>>tinggi;
phi=3.14;
vtabung=(2*phi*r*r)*tinggi;
cout<<<"Volume Tabung adalah : ";
cout<
cout<
}
void kerucut()
{
cout<<"--Menghitung Volume Kerucut--"<
cout<<<"Masukan Jari-Jari : ";
cin>>r;
cout<<<"Masukan Tinggi : ";
cin>>tinggi;
phi=3.14;
vkerucut=(phi*r*r)*tinggi;
cout<<"Volume Kerucut adalah : ";
cout<
cout<
}
}geometri;
void main()
{
clrscr();
geometri.segitiga();
cout<
geometri.lingkaran();
cout<
geometri.persegi();
cout<
geometri.balok();
cout<
geometri.tabung();
cout<
geometri.kerucut();
getch();
}
Struktur kondisi switch....case....default digunakan untuk penyeleksian kondisi
dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan
salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di
dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’.
Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan
diteruskan kepada pernyataan yang ada di bawah ‘default’.
Bentuk umum dari struktur ini:
dengan kemungkinan yang terjadi cukup banyak. Struktur ini akan melaksanakan
salah satu dari beberapa pernyataan ‘case’ tergantung nilai kondisi yang ada di
dalam switch. Selanjutnya proses diteruskan hingga ditemukan pernyataan ‘break’.
Jika tidak ada nilai pada case yang sesuai dengan nilai kondisi, maka proses akan
diteruskan kepada pernyataan yang ada di bawah ‘default’.
Bentuk umum dari struktur ini:
switch(variabel)
{
case 1 : pernyataan-1;
break;
case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
}
{
case 1 : pernyataan-1;
break;
case 2 : pernyataan-2;
break;
.....
.....
case n : pernyataan-n;
break;
default : pernyataan-m
}
Fungsi rekursif adalah suatu fungsi yg di dalamnya terdapat pemanggilan fungsi tersebut , atau dengan kata lain, suatu fungsi yg memanggil dirinya sendiri ..
Contoh paling mudah dari fungsi Rekursif adalah fungsi faktorial. Dalam rumus matematika n! = n(n-1)!
Jika d nyatakan dalam bahasa pemrograman , faktorial(n) = n*faktorial(n-1)
void main()
{
clrscr();
luas();
getch();
}
void luas (void)
{
int p,l,L;
cout<<"Panjang : ";cin>>p;
cout<<"Lebar : ";cin>>lebar;
L=p*l;
cout<<"Luas : " <
}
void main()
{
int p,l;
cout<<"panjang : " ;cin>>p;
cout<<"Lebar : " ;cin>>l;
Luas(p,l);
getch();
}
void luas(int x, int y)
{
int L;
L=x*y;
cout<<"Luas : "<
Contoh paling mudah dari fungsi Rekursif adalah fungsi faktorial. Dalam rumus matematika n! = n(n-1)!
Jika d nyatakan dalam bahasa pemrograman , faktorial(n) = n*faktorial(n-1)
- Fungsi 1
void main()
{
clrscr();
luas();
getch();
}
void luas (void)
{
int p,l,L;
cout<<"Panjang : ";cin>>p;
cout<<"Lebar : ";cin>>lebar;
L=p*l;
cout<<"Luas : " <
}
- Tipe 2
void main()
{
int p,l;
cout<<"panjang : " ;cin>>p;
cout<<"Lebar : " ;cin>>l;
Luas(p,l);
getch();
}
void luas(int x, int y)
{
int L;
L=x*y;
cout<<"Luas : "<
Tidak ada komentar:
Posting Komentar