borjois

WELCOME TO MY BLOG

Ketik yg Anda Cari

Powered By Blogger

26/06/10

Iterasi Sederhana CPP

ITERASI SEDERHANA
Source code

#include
#include
float i,x0,tol_error;
int iterasi_max;
float f(float x)
{
return x+exp(x);
}
float g(float x)
{
return -exp(x);
}

void main()
{
int i;
float epsilon,xb;

printf(" METODE ITERASI SEDERHANA\n");

printf("\n");
printf(" Input Pendekatan Nilai awal : ");
scanf("%f",&x0);
printf(" Input Toleransi error : ");
scanf("%f",&tol_error);
printf(" Jumlah Iterasi Maksimum : ");
scanf("%d",&iterasi_max);

i=0;
printf("\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf(" i g(x) f(x) |f(x)|\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
do
{
i=i+1;
xb=g(x0);
epsilon=fabs(f(xb));
printf(" %3d %8.5f %8.5f %8.5f\n", i, xb, f(xb), epsilon);
x0=xb;
}

while(i<=iterasi_max && epsilon>tol_error);
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~\n");
if(i<=iterasi_max)
{
printf("\n Nilai Toleransi terpenuhi\n");
printf("\n Maka, Hasil Akhir= %g\n",xb);
printf(" -Azizul Hakim Prabowo-\n");
}
else printf("\n Toleransi tidak terpenuhi\n");

}

Metode Biseksi CPP

METODE BISEKSI
Source code metode Biseksi menggunakan CPP

#include
#include
#include
float b_ats, c, b_bwh, f_a, f_c, f_b,tol_error,massa,wktu,kcptn,g;
int iterasi_max;
char back;
float f(float x)
{
return g*massa/x*(1-exp(-(x/massa)*wktu))-kcptn ;
}
void main()
{
int i;
float e;
printf("\n METODE BISEKSI\n");
do {
printf("\n");
printf(" Input Nilai Batas Bawah = ");
scanf("%f",&b_bwh);
printf(" Input Nilai Batas atas = ");
scanf("%f",&b_ats);
printf(" Input NilaiToleransi error = ");
scanf("%f",&tol_error);
printf(" Jumlah Iterasi Maksimum = ");
scanf("%d",&iterasi_max);

i=0;
massa=68.1;
kcptn=40;
wktu=10;
g=9.8;
f_b=f(b_bwh);
f_a=f(b_ats);

if(f_b*f_a>0)
printf(" <==> Maka, Nilai f(b) x f(a)>0 \n");
else
{
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf(" i a b f(a) f(b) c f(c) Epsilon\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
do
{
for(i=0;i<=iterasi_max;i++) { c=(b_ats+b_bwh)/2; f_c=f(c); e=fabs(b_ats-b_bwh); printf(" %3d %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f\n", i,b_ats,b_bwh,f_a,f_b,c,f_c,e); if(f_b*f_c <=0) {b_ats=c; f_a=f_c;} else {b_bwh=c; f_b=f_c; } } } while(i<=iterasi_max && e>tol_error);
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
printf("\n");
if(i<=iterasi_max)
{
printf(" Nilai Toleransi terpenuhi\n");
printf(" Hasil Akhir = %g\n",c);

}
else printf(" Nilai Toleransi Error tidak terpenuhi\n");

}
printf(" -Azizul Hakim Prabowo-");
printf("\n*******************************************

*************************************");
printf(" Ingin Melakukan Perhitungan kembali (Y/T) ? ");
fflush(stdin);
scanf("%s",&back);
printf("*********************************************

***********************************\n");printf("\n");
}
while(back=='Y'||back=='y');
}

Regulasi Falsi CPP

REGULASI FALSI
berikut adalah Source Code regulasi falsi menggunakan CPP

#include
#include
float b_ats, c, b_bwh, f_a, f_c, f_b,tol_error;
int iterasi_max;
char back;

float f(float x)
{
return (1-0.61*x)/x;
}
void main()
{
int i;
float e;

printf(" METODE REGULAFALSI\n");
do
{
printf("\n Input Nilai Batas bawah : ");
scanf("%f",&b_bwh);
printf(" Input Nilai Batas atas : ");
scanf("%f",&b_ats);
printf(" Input Nilai Toleransi : ");
scanf("%f",&tol_error);
printf(" Jumlah Iterasi Maksimum : ");
scanf("%d",&iterasi_max);

i=0;
f_a=f(b_ats);
f_b=f(b_bwh);
if(f_a*f_b>0)printf(" f(a) x f(b)>0\n");
else
{
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~");
printf(" i a b f(a) f(b) c f(c) epsilon\n");
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n");
do
{
for(i=0;i<=iterasi_max;i++) { c=b_ats-((f_a/(f_b-f_a))*(b_bwh-b_ats)); f_c=f(c); e=fabs(b_ats-b_bwh); printf("%3d %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f %8.5f\n", i,b_ats,b_bwh,f_a,f_b,c,f_c,e); if(f_a*f_c <=0) {b_bwh=c; f_b=f_c;} else {b_ats=c; f_a=f_c; } } } while(i<=iterasi_max && e>tol_error);
printf(" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n");
if(i<=iterasi_max)
{
printf("\n Nilai Toleransi terpenuhi\n");
printf(" Maka, Hasil Akhir=%g\n",c);
}
else printf(" Nilai Toleransi tidak terpenuhi\n");
}

printf(" -Azizul Hakim Prabowo-");
printf("\n*******************************************

*************************************");
printf(" Ingin Melakukan Perhitungan kembali (Y/T) ? ");
fflush(stdin);
scanf("%s",&back);
printf("********************************************

************************************\n");
}
while(back=='Y'||back=='y');
}

Metode Tabel CPP

METODE TABEL
Berikut adalah Source Code untuk membuat aplikasi Metode Tabel menggunakan Bahasa C++

#include
#include
#define maks 100
void main()
{
double b_ats, b_bwh, h, N;
int i;
double x[maks], y[maks];
char back;

printf(" METODE TABEL\n");


do
{
printf("\n Input Nilai Batas Bawah : ");
scanf("%lf",&b_bwh);
printf(" Input Nilai Batas Atas : ");
scanf("%lf",&b_ats);
printf(" Input Jumlah Iterasi : ");
scanf("%lf",&N);

h=(b_ats-b_bwh)/N;
for(i=0;i<=N;i++){

x[i] = b_bwh+i*h;
y[i] = x[i]+exp(x[i]);

printf("\n");
printf(" f(%.2f) = %f\n",x[i],y[i]);
}
printf("\n ........................\n");

for(i=0;i<=N-1;i++)
{
if(y[i]==0)
{

printf("\n Akar Persamaan: %lg",x[i]);
printf("\n Error : %lg\n",fabs(x[i]+exp(x[i])));
}
else if(y[i]*y[i+1]<0)
{
printf("\n Akar Persamaan : %lg",x[i]);
printf("\n Error : %lg\n",fabs(x[i]+exp(x[i])));
}
}

printf(" -Azizul Hakim Prabowo-");
printf("\n**********************************************

**********************************");
printf(" Ingin Melakukan Perhitungan kembali (Y/T) ? ");
fflush(stdin);
scanf("%s",&back);
printf("************************************************

********************************\n");printf("\n");
}
while(back=='Y'||back=='y');
}

16/06/10

Virtual Memori

1.yang dimaksud virtual memori dan keuntungan nya :
Virtual Memory adalah suatu teknik yang memisahkan antara memori logis dan memori fisiknya. Teknik ini menyembunyikan aspek-aspek fisik memori dari pengguna dengan menjadikan memori sebagai lokasi alamat virtual berupa byte yang tidak terbatas dan menaruh beberapa bagian dari memori virtual yang berada di memori logis.
Keuntungan Virtual Memory :
• Berkurangnya proses I/O yang dibutuhkan (lalulintasI/O menjadi rendah). Misalnya untuk program butuh membaca dari disk dan memasukkan dalam memory setiap kali diakses.
• Ruang memori fisik menjadi lebih leluasa karena berkurangnya memori fisik yang digunakan. Contoh, untuk program 10 MB tidak seluruh bagian dimasukkan dalam memori fisik. Pesan-pesan error hanya dimasukkan jika terjadi error.
• Meningkatnya respon, karena menurunnya beban I/O dan memori.
• Bertambahnya jumlah pengguna yang dapat dilayani.
• Ruang memori yang masih tersedia luas memungkinkan computer untuk menerima lebih banyak permintaan dari pengguna.


2.Segmentasi dalam memori managemen :
adalah user atau programmer tidak memikirkan sejumlah rutin program yang dipetakan ke main memori sebagai array linier dalam byte tetapi memori dilihat sebagai kumpulan segmen dengan ukuran berbeda-beda, tidak perlu berurutan diantara segment tersebut. Segmentasi adalah skema manajemen memori yang memungkinkan user untuk melihat memori tersebut. Ruang alamat logika adalah kumpulan segmen. Setiap segmen mempunyai nama dan panjang. Spesifikasi alamat berupa nama segmen dan offset. Segment diberi nomor dan disebut dengan nomor segmen (bukan nama segmen) atau segment number. Segmen dibentuk secara otomatis oleh compiler.


3. Paging merupakan kemungkinan solusi untuk permasalahan fragmentasi eksternal dimana ruang alamat logika tidak berurutan; mengijinkan sebuah proses dialokasikan pada memori fisik yang terakhir tersedia. Memori fisik dibagi ke dalam blok-blok ukuran tetap yang disebut frame. Memori logika juga dibagi ke dalam blokblok dg ukuran yang sama yang disebut page. Semua daftar frameyang bebas disimpan. Untuk menjalankan program dengan ukuran n page, perlu menemukan nframe bebas dan meletakkan program pada frame tersebut. Tabel page (page table) digunakan untuk menterjemahkan alamat logika ke alamat fisik.
Setiap alamat dibangkitkan oleh CPU dengan membagi ke dalam 2 bagian yaitu :
• Page number (p) digunakan sebagai indeks ke dalam table page (page table). Page table berisi alamat basis dari setiap page pada memori fisik.
• Page offset (d) mengkombinasikan alamat basis dengan page offset untuk mendefinisikan alamat memori fisik yang dikirim ke unit memori. dibawah ini contoh gambar paging pada memory

4. solusi yamg ditawarkan management memory, ketiak segmentasi melampaui batas virtual memory :
Segmentasi merupakan skema manajemen memori yang mendukung cara pandang seorang programmer terhadap memori. Ruang alamat lojik merupakan sekumpulan dari segmen-segmen. Masing-masing segmen mempunyai panjang dan nama. Alamat diartikan sebagai nama segmen dan offset dalam suatu segmen. Jadi jika seorang pengguna ingin menunjuk sebuah alamat dapat dilakukan dengan menunjuk nama segmen dan offsetnya. Untuk lebih menyederhanakan implementasi, segmen-segmen diberi nomor yang digunakan sebagai pengganti nama segmen. Sehingga, alamat lojik terdiri dari dua tuple: [segmen-number, offset].
Meskipun seorang pengguna dapat memandang suatu objek dalam suatu program sebagai alamat berdimensi dua, memori fisik yang sebenarnya tentu saja masih satu dimensi barisan byte. Jadi kita harus bisa mendefinisikan pemetaan dari dua dimensi alamat yang didefinisikan oleh pengguna kesatu dimensi alamat fisik. Pemetaan ini disebut sebagai sebuah segmen table. Masing-masing masukan mempunyai segmenbase dan segmen limit. Segmen base merupakan alamat fisik dan segmen limit merupakan panjang dari segmen.
Sebagai contoh, kita mempunyai nomor segmen dari 0 sampai dengan 4. Segmen-segmen ini disimpan dalam suatu memori fisik. Tabel segmen berisi data untuk masing-masing segmen, yang memberikan informasi tentang awal alamat dari segmen di fisik memori (atau base) dan panjang dari segmen (atau limit). Misalkan segmen 2 mempunyai panjang 400 dan dimulai pada lokasi 4300. Jadi, referensi di byte53 dari segmen 2 dipetakan ke lokasi 4300 + 53 = 4353. Suatu referensi ke segmen 3, byte 852, dipetakan ke 3200 + 852 = 4052. referensi ke byte 1222 dari segmen 0 akan menghasilkan suatu trap ke sistem operasi, karena segmen ini hanya mempunyai panjang 1000 byte. Lihat gambar 2. Segmentasi.




12/06/10

Grafika Komputer

GRAFIKA KOMPUTER

1. glload identity
Fungsi untuk memanggil matriks identitas dan dijadikan status matriks (proyeksi). Fungsi untuk memanggil matriks identitas ke matriks agar nilai-nilai awal kembali ke pusat koordinat (0,0,0). Fungsi glloadidentity ini juga berfungsi untuk mereset Project Matrix yang kita buat.

2. glpush matrix
Fungsi yang memiliki kegunaan untuk awal perhitungan matrix. Mekanismenya Matriks paling atas disalin, jadi isinya diduplikasi di antara atas maupun dibawah matriksnya. Jika terlalu banyak matriks yang didorong, kesalahan akan timbul.

3. glpop matrix
Fungsi yang memiliki kegunaan kebalikan dari glpush matrix, yaitu untuk akhir perhitungan matrix. Mekanismenya Melepaskan matriks tertinggi dari tumpukan, menghancurkan isi matriks-popped. matriks kedua dari teratas matriks menjadi matriks tertinggi. Tumpukan sekarang ditentukan oleh glMatrix Mode (). Jika tumpukan mengandung satu matriks, disebut glPop Matrix () menyebabkan timbulnya kesalahan.

4. glview port
untuk menentukan titik awal dan titik akhir (pixel tampilan). Anda menggunakan glViewport () untuk memilih daerah menarik yang lebih kecil; misalnya, anda bisa membagi lagi window untuk membuat efek layar pecah untuk tampilan yang berlipat ganda di window yang sama.

5. Glortho
digunakan untuk membuat kotak tempat obyek yang sedang digambar. Argumen fungsi pada glOrtho adalah sebagai berikut :
void glOrtho(double left, double right, double bottom, double top, double near, double far);
contohnya : glOrtho(-10.0, 10.0, -10.0, 10.0, -10.0, 10.0);
artinya : mendefinisikan besarnya sistem koordinat dengan range sumbu x adalah [-10,10], range untuk sumbu y adalah [-10,10], range untuk sumbu z adalah [-10,10]

traffic