Selasa, 25 November 2008

Bubble Sort

# include iostream.h>

# include conio.h>



void main()

{

float L[50];

int n,i,j;

float temp;

//Input data

cout<<"Masukkan banyak data : ";
cin>>n;

cout<<"\nMasukkan Nilai";
//Membuat tabel

cout<<"\n=============";
cout<<"\n| i | Nilai |";
cout<<"\n|-----------|";
int y = 7;

gotoxy(1,(y+n));

cout<<"=============";
for (i=1;i<=n;i++)
{

gotoxy(3,y);

cout< gotoxy(1,y);

cout<<("|");
gotoxy(5,y);

cout<<"|";
gotoxy(13,y);

cout<<"|";
y++;

}

y=7;

//Input nilai data

for (i=1;i<=n;i++)
{

gotoxy(9,y);

cin>>L[i];

y++;

}

cout<<"\nUrutkan secara : ";
cout<<"\n1. Ascending";
cout<<"\n2. Descending";
int pilih;

do //Validasi pilihan

{

cout<<"\nMasukkan nomor nya saja : ";
cin>>pilih;

if ((pilih!=1)&&(pilih!=2))

cout<<"\nPilihan tidak valid, ulangi!";}
while((pilih != 1) && (pilih!= 2));

//Cek kondisi

if (pilih==1)

{

//Mengurutkan ascending

for (i=1;i<=n;i++)
{

for (j=n;j>=2;j--)

{

if (L[j] < L[j-1])
{

//Menukar nilai

temp=L[j];

L[j]=L[j-1];

L[j-1]=temp;

}

}

}

}

else

{

//Mengurutkan descending

for (i=1;i<=n;i++)
{

for (j=n;j>=2;j--)

{

if (L[j] > L[j-1])

{

//Menukar nilai

temp=L[j];

L[j]=L[j-1];

L[j-1]=temp;

}

}

}

}

//Membuat tabel data yang terurut

y=7;

gotoxy(17,3);

cout<<"Data Setelah di Urut";
gotoxy(20,4);

cout<<"=============";
gotoxy(20,5);

cout<<"| i | Nilai |";
gotoxy(20,6);

cout<<"-------------";
for (i=1;i<=n;i++)
{

gotoxy(20,y);

cout<<"|";
gotoxy(22,y);

cout< gotoxy(24,y);

cout<<"|";
gotoxy(28,y);

cout< gotoxy(32,y);

cout<<"|";
y++;

}

gotoxy(20,(7+n));

cout<<"=============";
getch();

}

Baca selengkapnya...

Insertion Sort

# include iostream.h>

# include conio.h>



void main()

{

float L[50];

int n,i,j;

float p;

int pilih;

do

{

clrscr();

cout<<"==================";
cout<<"\n| Insertion Sort |";
cout<<"\n==================";
cout<<"\n";
//Input Data

cout<<"\nMasukkan banyak data : ";
cin>>n;

//Tampilan berupa tabel

cout<<"\nMasukkan Nilai";
cout<<"\n=============";
cout<<"\n| i | Nilai |";
cout<<"\n|-----------|";
int y = 11;

gotoxy(1,(y+n));

cout<<"=============";
for (i=1;i<=n;i++)
{

gotoxy(3,y);

cout< gotoxy(1,y);

cout<<("|");
gotoxy(5,y);

cout<<"|";
gotoxy(13,y);

cout<<"|";
y++;

}

//Input nilai data

y=11;

for (i=1;i<=n;i++)
{

gotoxy(9,y);

cin>>L[i];

y++;

}

cout<<"\nUrutkan secara : ";
cout<<"\n1. Ascending";
cout<<"\n2. Descending";
do //validasi pilihan

{

cout<<"\nMasukkan nomor nya saja : ";
cin>>pilih;

if ((pilih!=1)&&(pilih!=2))

cout<<"\nPilihan tidak valid, ulangi!";}
while((pilih != 1) && (pilih!= 2));

//cek pilihan

if (pilih==1)

{

for (i=2;i<=(n);i++)
{

p = L[i];

j = i-1;

while ((j>0)&&(L[j] > p))

{

L[j + 1] = L[j];

j = j-1;

}

L[j+1] = p;

}

}

else

{

for (i=2;i<=(n);i++)
{

p = L[i];

j = i-1;

while ((j>0)&&(L[j] < p))
{

L[j + 1] = L[j];

j = j-1;

}

L[j+1] = p;

}

}

//Tampilan data terurut dalam tabel

y=11;

gotoxy(17,7);

cout<<"Data Setelah di Urut";
gotoxy(20,8);

cout<<"=============";
gotoxy(20,9);

cout<<"| i | Nilai |";
gotoxy(20,10);

cout<<"-------------";
for (i=1;i<=n;i++)
{

gotoxy(20,y);

cout<<"|";
gotoxy(22,y);

cout< gotoxy(24,y);

cout<<"|";
gotoxy(28,y);

cout< gotoxy(32,y);

cout<<"|";
y++;

}

gotoxy(20,(11+n));

cout<<"=============";
gotoxy(1,n+16);

do

{

cout<<"\n1. Ulang Program";
cout<<"\n2. Keluar";
cout<<"\nMasukkan pilihan : ";
cin>>pilih;

if (pilih!=1 && pilih!=2)

{

cout<<"Pilihan tidak valid! Ulangi!";
}

}

while(pilih!=1 && pilih!=2);

}

while(pilih!=2);

getch();

}

Baca selengkapnya...

Insertion Sort

# include iostream.h>

# include conio.h>



void main()

{

float L[50];

int n,i,j;

float p;

int pilih;

do

{

clrscr();

cout<<"==================";
cout<<"\n| Insertion Sort |";
cout<<"\n==================";
cout<<"\n";
//Input Data

cout<<"\nMasukkan banyak data : ";
cin>>n;

//Tampilan berupa tabel

cout<<"\nMasukkan Nilai";
cout<<"\n=============";
cout<<"\n| i | Nilai |";
cout<<"\n|-----------|";
int y = 11;

gotoxy(1,(y+n));

cout<<"=============";
for (i=1;i<=n;i++)
{

gotoxy(3,y);

cout< gotoxy(1,y);

cout<<("|");
gotoxy(5,y);

cout<<"|";
gotoxy(13,y);

cout<<"|";
y++;

}

//Input nilai data

y=11;

for (i=1;i<=n;i++)
{

gotoxy(9,y);

cin>>L[i];

y++;

}

cout<<"\nUrutkan secara : ";
cout<<"\n1. Ascending";
cout<<"\n2. Descending";
do //validasi pilihan

{

cout<<"\nMasukkan nomor nya saja : ";
cin>>pilih;

if ((pilih!=1)&&(pilih!=2))

cout<<"\nPilihan tidak valid, ulangi!";}
while((pilih != 1) && (pilih!= 2));

//cek pilihan

if (pilih==1)

{

for (i=2;i<=(n);i++)
{

p = L[i];

j = i-1;

while ((j>0)&&(L[j] > p))

{

L[j + 1] = L[j];

j = j-1;

}

L[j+1] = p;

}

}

else

{

for (i=2;i<=(n);i++)
{

p = L[i];

j = i-1;

while ((j>0)&&(L[j] < p))
{

L[j + 1] = L[j];

j = j-1;

}

L[j+1] = p;

}

}

//Tampilan data terurut dalam tabel

y=11;

gotoxy(17,7);

cout<<"Data Setelah di Urut";
gotoxy(20,8);

cout<<"=============";
gotoxy(20,9);

cout<<"| i | Nilai |";
gotoxy(20,10);

cout<<"-------------";
for (i=1;i<=n;i++)
{

gotoxy(20,y);

cout<<"|";
gotoxy(22,y);

cout< gotoxy(24,y);

cout<<"|";
gotoxy(28,y);

cout< gotoxy(32,y);

cout<<"|";
y++;

}

gotoxy(20,(11+n));

cout<<"=============";
gotoxy(1,n+16);

do

{

cout<<"\n1. Ulang Program";
cout<<"\n2. Keluar";
cout<<"\nMasukkan pilihan : ";
cin>>pilih;

if (pilih!=1 && pilih!=2)

{

cout<<"Pilihan tidak valid! Ulangi!";
}

}

while(pilih!=1 && pilih!=2);

}

while(pilih!=2);

getch();

}

Baca selengkapnya...

Mencari ranking

#include iostream.h>

#include conio.h>



void main()

{

typedef struct {

char nim[10];

char nama[30];

int tgs, uts, uas;

double na;

}idmhs;

idmhs mhs[50];

int i,n;

cout<<"Masukkan banyak mahasiswa : ";
cin>>n;

cout<<"\n==================================================";
cout<<"\n| NIM | Nama | TGS | UTS | UAS | NA |";
cout<<"\n--------------------------------------------------";
int y=6;

for (i=0;i {

gotoxy(1,y); cout<<"|";
gotoxy(11,y); cout<<"|";
gotoxy(27,y); cout<<"|";
gotoxy(33,y); cout<<"|";
gotoxy(39,y); cout<<"|";
gotoxy(45,y); cout<<"|";
gotoxy(50,y); cout<<"|";
gotoxy(1,(n+6));

cout<<"==================================================\n";
y++;

}

y=6;

for (i=0;i {

gotoxy(2,y);

cin>>mhs[i].nim;

gotoxy(12,y);

cin>>mhs[i].nama;

gotoxy(28,y);

cin>>mhs[i].tgs;

gotoxy(34,y);

cin>>mhs[i].uts;

gotoxy(40,y);

cin>>mhs[i].uas;

mhs[i].na = (mhs[i].tgs + 2*mhs[i].uts + 4*mhs[i].uas)/7;

gotoxy(46,y);

cout< y++;

}

idmhs temp;

int j;

for (i=1;i<=n;i++)
{

for (j=n;j>=1;j--)

{

if (mhs[j].na > mhs[j-1].na)

{

//Menukar nilai

temp=mhs[j];

mhs[j]=mhs[j-1];

mhs[j-1]=temp;

}

}

}

clrscr();

cout<<"\n===========================================================";
cout<<"\n| NIM | Nama | TGS | UTS | UAS | NA |Rangking|";
cout<<"\n-----------------------------------------------------------";
int r =1;

y=5;

for (i=0;i {

gotoxy(1,y); cout<<"|";
gotoxy(11,y); cout<<"|";
gotoxy(27,y); cout<<"|";
gotoxy(33,y); cout<<"|";
gotoxy(39,y); cout<<"|";
gotoxy(45,y); cout<<"|";
gotoxy(50,y); cout<<"|";
gotoxy(59,y); cout<<"|";
gotoxy(2,y);

cout< gotoxy(12,y);

cout< gotoxy(28,y);

cout< gotoxy(34,y);

cout< gotoxy(40,y);

cout< gotoxy(46,y);

cout< gotoxy(55,y);

cout< gotoxy(1,(n+5));

cout<<"===========================================================\n";
y++;

r++;

}



/*for (i=0;i {

cout<<"\nMahasiswa ke-"< cout<<"\nNim : "< cout<<"\nNama : "< cout<<"\nNA : " < }*/

getch();

}

Baca selengkapnya...

Cek palindrom sebuah kata

#include iostream.h>
#include conio.h>

void main()
{
char kata[30];
int p,i;

cout<<"Masukkan kata : "; cin>>kata;
p= strlen(kata)-1;
i=0;
bool sama=false;
while(i<=(p/2)) { if (kata[i]==kata[p]) { sama=true; i++; p--;} else {sama=false; i=p; } } if (sama==true) cout<<"Palindrom"; else cout<<"bukan"; getch(); }

Baca selengkapnya...

Senin, 17 November 2008

Virus paling berbahaya

VIRUS PALING JAHAT DARI YANG PERNAH ADA

Sebuah virus baru sudah ditemukan, dan digolongkan oleh Microsoft
sebagai yang paling merusak! Virus itu baru ditemukan pada hari
Minggu siang yang lalu oleh McAfee, dan belum ditemukan vaksin untuk
mengalahkannya. Virus ini merusak Zero dari Sektor hard disc, yang
menyimpan fungsi informasi-informasi terpenting. Virus ini berjalan
sebagai berikut :

- secara otomatis virus ini akan terkirim ke semua nama dalam daftar
alamat anda dengan judul "Sebuah Kartu Untuk Anda" (Une Carte Pour
Vous, atau A Card For You);
- begitu kartu virtual itu terbuka, virus itu akan membekukan
komputer sehingga penggunanya harus memulainya kembali; kalau anda
menekan CTRL+ALT+SUPPR atau perintah untuk restart, virus itu akan
merusak Zero dari Sektor Boot hard disc, sehingga hard disc akan
rusak secara permanen. Menurut CNN, virus itu dalam beberapa jam
sudah menimbulkan
kepanikan di New York. Peringatan ini telah diterima oleh pegawai
Microsoft sendiri. Jangan membuka e-mail dengan judul "Sebuah kartu
virtual untuk Anda" (Une Carte Virtuelle Pour Vous atau A Virtual
Card For You).
AWAS!!!
Jangan terima kontak "pti_bout_de_chou hotmail.com". Ini virus yang
akan memformat komputer anda.

Baca selengkapnya...

Apa itu virus worm

Suatu saat kita pernah mendengar tentang sepak terjang virus, virus computer jangan dianalogikan seperti layaknya kuman atau bakteri yang hidup, namun virus adalah suatu kode tertentu yagn dibuat dengan suatu metode bahasa pemrograman (umumnya C). kode program ini biasa disebut Kode Jahat/Perusak (Malicious Codes).

Kode jahat/perusak (malicious codes atau disingkat malcodes) didefinisikan sebagai semua macam program, makro atau script yang dapat diesekusi dan dibuat dengan tujuan untuk merusak sistem komputer. Oleh karena itu bug yang dibuat secara tidak sengaja oleh programer, tidak termasuk dalam kategori ini. Tetapi untuk bug yang benar-benar mengganggu, banyak orang mengkategorikannya sebagai malcode. Malcodes ini memang dibuat untuk menjangkiti atau menulari suatu computer dengan mempelajari suatu metode di system computer, tujuannya untuk menggangu system tersebut. Setelah berhasil menulari system virus akan berusaha untuk menempel pada bagian yang terinfeksi saat ini banyak sekali virus yang dapat mengelabui anti virus dan virus dapat seakanakan berpikir sendiri. Menurut informasi dari Symantech sampai saat ini telah ditemukan sebanyak 60.0000 an virus, worm dan code jahat. Makanya dalam perkembangannya sampai pada akhirnya Malcodes ini disebut sebagai virus yang kerjanya membuat hidup orang tidak nyaman…

Varian

Dalam perkembangannya virus sangat cepat sekali, Kode perusak ini dapat digolongkan dalam 3 macam golongan: virus, worm dan Trojan Horses, serta beberapa program yang memiliki bug.

*

Virus, Virus memiliki kemampuan jahat untuk mereproduksi diri mereka sendiri dan terdiri dari kumpulan kode yang dapat memodifikasi target kode yang sedang berjalan, atau dapat pula memodifikasi struktur internal target kode, sehingga target kode sebelum berjalan dipaksa menjalankan virus. Virus sering menampilkan pesan yang tidak disukai, merusak tampilan display, menghapus memory C-MOS, merusak informasi dalam hard disk dll. Efek yang ditimbulkan virus mengalami perkembangan yang cukup serius akhir-akhir ini. Contoh virus: Brain, Ohe half, Die hard, XM/Laroux, Win95/CIH
*

Worm, Worm ditujukan kepada program yang mengkopi dirinya sendiri ke HANYA memory komputer. Perbedaan mendasar dari worm dan virus adalah, apakah menginfeksi target code atau tidak. Virus menginfeksi target code, tetapi worm tidak. Worm hanya tinggal di memory. Worm dapat dengan cepat memperbanyak diri dan biasanya dilakukan pada media LAN atau Internet, resources jaringan yang terinfeksi akan habis bandwidthnya dibanjiri oleh worm yang akan mengakibatkan melambatnya aliran data. Contoh worm: I-Worm/Happy99(Ska), I-Worm/ExploreZIP, Sobig, Nimda, Code Red, Sircam. Worm umumnya berbentuk file executable (berekstensi .EXE atau .SCR), yang terlampir (attach) pada email. Namun demikian, ada beberapa jenis worm yang berbentuk script yang ditulis dalam bahasa Visual Basic (VBScript).
*

Trojan Horse diproduksi dengan tujuan jahat. Konsep yang digunakan seperti pada zaman romawi kuno, Berbeda dengan virus, Trojan Horse tidak dapat memproduksi diri sendiri. Pada umumnya, mereka dibawa oleh utility program lainnya. Utility program tersebut mengandung dirinya, atau Trojan Horse itu sendiri ber”lagak” sebagai utility program. Contoh Trojan Horse: Win-Trojan/Back Orifice, Win-Trojan/SubSeven, Win- Trojan/Ecokys(Korean)

Kasus Virus

Ada banyak sekali cerita dan kasus yang disebabkan oleh virus, worm ataupun Trojan. Contohnya kasus virus macro yang menjangkiti doc Microsoft word. Virus CIH yang dibuat untuk merusak system BIOS, virus ini diperkirakan telah merusak ribuan computer didunia. Virus Mail My Love yang menggegerkan dunia Kasus Worm tercatat yang paling banyak ditemukan, contoh kasus terbesar yaitu Worm Nimda, Sircam dan Code Red dengan variannya yang membuat macem situs dan jaringan LAN perusahaan didunia, dimana worm tersebut melakukan komunikasi palsu yang menyebabkan jaringan tersendat. Nimda merupakan kebalikan dari Admin.

Di awal 2003 ini, virus worm Slammer hanya membutuhkan waktu 10 menit untuk membuat chaos pengguna internet. Dalam menit pertama penyebarannya, jumlah virus Slammer berlipat dua kali setiap 8,5 detik. Kecepatannya jauh di atas worm Code Red - yang menyebar 18 bulan lalu yang berlipat dua setiap 37 menit. Sobig dengan variannya yang telah membuat beberapa ISP dunia macet karena banjirnya

badwidth yang anomaly, dimana worm tersebut melakukan pengiriman code secara simultan lewat email dengan membaca semua alamat email kita yang ada di outlook express. Seperti juga penyakit yang kita kenal, pastilah virus computer ini mempunyai cara untuk menulari computer ?

Yap benar sekali, sebelumnya saya ingin mengambarkan cara kerja Worm. Cerdik karena ia mampu mengelabui scanning heuristic antivirus dan tidak terlalu ganas.Worm biasanya Menyebar melalui Email, Menyebar melaui network, dan Menyebar melalui IIS seperti BlueCode / Code Red.

Ada banyak cara sebuah MalCodes ini menginfeksi computer korban, diantaranya

Disk, media satu ini yang sering menularkan virus, kita memindahkan file-file dari computer lain tanpa kita lakukan scanning dulu. Mungkin saja file dari luar sudah terinfeksi.

Email, dengan metode attachement sebuah virus dapat menulari computer setelah attachment email kita buka, biasanya virus disusupkan dengan file lain layaknya sebuah file biasa atau gambar

Download, biasanya kita mendownload software-software dari internet, apalagi mendownload dari situs yang tidak terkanal, kemungkinan sangat besar kita dapat terkena jenis virus worm atau Trojan

Ciri-ciri terinfeksi Virus

Wah ada banyak sih gejala-gejalanya, biasanya jika virus sudah menginfeksi dampak langsungnya adalah file kita yang rusak atau hilang entah kemana, virus dapat mengatur computer kita atau menggangu system operasi misalnya melakukan restart, sering terjadi crash atau hang, kinerja atau performa pc yang sangat lambat.

Kalau computer kita terkoneksi ke internet lewat jaringan LAN, maka koneksinya akan lambat sekalai bahkan terputus. Jika kita memeriksa bandwidthnya maka akan terlihat anomaly bandwidth yang sedangkan kita tidak menggunakannya.

Tip Aman dari Virus

1. Pasang Anti Virus pada sistem anda Sebagai perlindungan di garis depan, penggunaan anti virus adalah wajib. Ada banyak anti virus yang beredar di pasaran saat ini. Beberapa yang cukup handal diantaranya adalah McAfree VirusScan (www.mcafee.com) dan Norton Anti Virus (www.symantec.com).

2. Update database program anti virus secara teratur, Ratusan virus baru muncul setiap bulannya. Usahakan untuk selalu meng-update database dari program anti virus yang anda gunakan. Database terbaru dapat dilihat pada website perusahaan pembuat program anti virus yang anda gunakan.

3. Pergunakan Firewall Personal, dengan menggunakan firewall maka akses yang akan keluar masuk ke system kita dapat diatur, apakah paket data disetujui atau ditolak.

4. Berhati-hati sebelum menjalankan file baru Lakukan scanning terlebih dahulu dengan anti virus sebelum menjalankan sebuah file yang didapat dari mendownload di internet atau mengkopi dari orang lain. Apabila anda biasa menggunakan sarana e-mail, berhati-hatilah setiap menerima attachment dalam bentuk file executable. Waspadai file-file yang berekstensi: *.COM, *.EXE, *.VBS, *.SCR, *.VB. Jangan terkecoh untuk langsung membukanya sebelum melakukan scanning dengan software anti virus.

5. Curigai apabila terjadi keanehan pada sistem anda, Menurunnya performa sistem secara drastis, khususnya saat melakukan operasi pembacaan/penulisan file di disk, serta munculnya masalah pada software saat dioperasikan bisa jadi merupakan indikasi bahwa sistem telah terinfeksi oleh virus. Berhatihatilah!

6. Backup data anda secara teratur, Tips ini mungkin tidak secara langsung menyelamatkan data anda dari ancaman virus, namun demikian akan sangat berguna apabila suatu saat virus betul-betul menyerang dan merusak data di komputer yang anda gunakan. Setidaknya dalam kondisi tersebut, anda tidak akan kehilangan seluruh data yang telah anda backup sebelumnya.

7. Buat Policy / Kebijakan yang jelas

Sumber myDeden.com

Baca selengkapnya...

Minggu, 16 November 2008

Troubleshoot pada VGA card

Bagaimana jadinya, jika tiba-tiba VGA Anda ngadat?Apalagi bagi para Instania yang suka bermain games atau bekerja sebagai designer, yang sangat membutuhkan VGA Card agar tidak terganggu dengan adanya kasus VGA ngadat. Berikut adalah beberapa hal tentang Torubleshooting VGA Card : Kasus:
Pada waktu menghidupkan komputer, layar monitor gelap dan hitam.
Solusi:

1. Langkah pertama, cek kabel VGA dan pastikan kabel VGA tersebut sudah masuk ke port VGA yang ada di casing komputer.
2. Cek indikator pada monitor, apakah powernya berjalan dengan normal atau tidak.
3. Coba booting ulang.

Kasus:
Gangguan pada VGA Card/Layar Monitor. Masalah seperti tanda-tanda gangguan yang terjadi pada VGA Card di antaranya adalah:

1. Komputer menjadi macet atau hang ketika digunakan untuk bermain game 3D.
2. Tidak dapat digunakan untuk menjalankan permainan tertentu.
3. Windows tidak bisa digunakan dalam mode normal.
4. Ada titik-titik kecil di layar monitor.

Solusi:

1. Cek kabel VGA yang terhubung ke monitor dan ke casing komputer, apakah sudah menancap dengan benar atau belum, kalau belum masukkan kabel tersebut sesuai dengan kaki-kaki yang tersedia.
2. Cek konektor atau pin yang terdapat pada kabel VGA. Kalau ada yang patah atau putus, segera ganti yang baru.
3. Install kembali atau perbaharui driver dari VGA Card yang dipasang. Untuk mendapatkan driver VGA tersebut, bisa dengan men-download dari situs yang menyediakan driver dari VGA itu.
4. Cobalah untuk mendownload versi terbaru versi terakhir software Direct-X dari situs Microsoft.
5. Kunjungi situs-situs yang menangani berbagai permasalahan tentang permainan atau games.
6. Buka casing komputer, cabut VGA card dari slotnya (PC/AGP) dari motherboard, dan pasang kembali. Apabila pada waktu komputer dihidupkan, layar masih hitam dan belum muncul gambarnya, ganti VGA card dengan yang baru, karena dapat dipastikan VGA card ada mengalami kerusakan.

Kasus:
Pesan kesalahan pada layar monitor. Apakah selalu menemui pesan kesalahan ketika memainkan suatu permainan atau games? Apakah VGA atau animasi tidak berjalan dengan normal? Atau layar berkedip secara terus menerus?
Solusi:

1. Klik menu Start >> pilih Help and Support. Di bawah perintah Pick a Help Topic, pilih “Fixing a problem”.
2. Pada kotak sebelah kiri, pilih “Games, sound, and video problems”.
3. Pada kotak sebelah kanan, select “Games and Multimedia Troubleshooter”.
4. Klik pilihan yang menggambarkan permasalahan yang dihadapi kemudian klik Next. Ulangi langkah-langkah tersebut sampai permasalahan bisa terpecahkan. Gunakan tombol Back untuk mengulangi langkah terakhir.

Kasus:
Bagaimana mengetahui tipe dari VGA Card yang dimiliki.
Solusi:

1. Buka MS-DOS prompt. Pada Windows 95/98 dan Windows XP/NT 4.0, Klik menu Start, kemudian pilih Programs, dan klik menu MS-DOS Prompt atau Command Prompt yang tersedia. Pada Windows 3.x atau Windows NT versi sebelum 4.0, klik dua kali Main kemudian klik dua kali icon MS-DOS.
2. Setelah jendela MS-DOS sudah terbuka, ketik: Debug kemudian tekan tombol [Enter].
3. Setelah layar dari perintah debug sudah terbuka dengan indikator kursor yang muncul, maka ketikkan: D C000: 0010 dan kemudian tekan tombol [Enter].
4. Layar yang berisi angka hexadecimal akan muncul dengan format kode ASCII dan informasi yang muncul tersebut juga termasuk dari tipe dari VGA Card yang dimiliki.
5. Ketik: Q kemudian tekan tombol [Enter] untuk keluar dari program Debug.
6. Ketik Exit kemudian tekan tombol [Enter] untuk kembali ke sistem. operasi/Windows.

(Hal lain yang dapat dilakukan membuka casing komputer dan baca nama manufaktur yang tertera pada chipset atau IC yang ada pada VGA Card di motherboard).

Kasus:
Resolusi Layar monitor tidak stabil atau berubah-ubah. Setiap saat login ke Windows XP, resolusi layar monitor kembali ke ukuran besar dan untuk merubafanya ke bentuk normal harus mengubah secara manual. Nah, bagaimana caranya supaya pengaturan terhadap resolusi layar monitor tidak berubah-ubah.
Solusi:
Harus melakukan update terhadap VGA Card yang dimiliki karena kemungkinan besar driver VGA card yang dimiliki banyak file yang hilang atau corrupt. Untuk melakukan update bisa mengunjungi situs dari penyedia driver tersebut dan download versi terbaru. Untuk mengetahui nama manufaktur pembuat VGA card, bisa melakukan cara-vara berikut ini: pada menu Start >> klik Administrative Tools >> kemudian pilih Computer Management. Di bawah kategori System Tools, klik Device Manager. Klik tanda Plus (+) untuk menampilkan pilihan Display Adapter. Dari tampilan ini, Windows akan mencari driver yang sudah ter-update. Adapun cara-caranya adalah sebagai berikut:

1. Ketika Device Manager dan tampilan Display Adapter muncul, klik kanan display adapter.
2. Pada menu kanan tersebut pilih Update Driver.
3. Kotak wizard Hardware Update akan muncul dan memberikan instruksi bagaimana cara untuk melakukan update driver.

Baca selengkapnya...

Jumat, 03 Oktober 2008

Perkalian matrix

uses crt;
var
a,b,c : array [1..50,1..50] of integer;
i,j,k,x,y,z : integer;
begin
clrscr;
writeln('Ukuran matrix A');
write('Baris : '); readln(x);
write('Kolom : '); readln(y);
writeln;
writeln('Ukuran matrix B');
writeln('Baris : ',y);
write('Kolom : '); readln(z);
for i:=1 to x do
for j:=1 to y do
begin

write('Elemen A[',i,',',j,'] : ');
readln(a[i,j]);
end;
writeln;
for i:=1 to y do
for j:=1 to z do
begin


Download source code lengkapnya di sini

Baca selengkapnya...

Unit Adjoin

unit adjoin;

interface
type matrix = array [1..10,1..10] of integer;
mi=record
e : matrix;
end;
min = array [1..10,1..10] of mi;
var
i,j,row,col,x,y,k,l : byte;
A : matrix;
function pangkat(var x,n : integer):integer;
procedure tukar(var a,b : integer);
procedure transpose(var A:matrix);


implementation
function pangkat(var x,n : integer):integer;
var
p,i : integer;
begin
p := 1;
for i := 1 to n do
p := p * x;
pangkat:=p;
end;
procedure tukar(var a,b : integer);
var
temp : integer;
begin
temp := a;
a := b;
b := temp;
end;


procedure transpose(var A : matrix);
begin
for i := 2 to row do
for j := 1 to (i-1) do
tukar(A[i,j],A[j,i]);
end;

procedure minor(var m : min; A : matrix);
begin
for i := 1 to (row-1) do
for j := 1 to (col-1) do
begin
x:= 0;
for k :=1 to row do
begin
x:=x+1;
y := 0;
for l := 1 to col do
begin
y:=y+1;


Download source code unit lengkapnya di sini

Pada unit ini juga terdapat prosedur pencarian determinan dan invers matrik..
Keren kan...

Komen yaw..

Baca selengkapnya...

Mencari Covarian

USES CRT;
var
n,i : integer;

x,sigma,sigmax,sigmay,ratax,ratay,cov : real;
procedure covar;
var
x,y,px,py,k : array [1..100] of real;
begin
write('n = '); readln(n);
sigmax := 0;
sigmay := 0;
for i := 1 to n do

Download program lengkapnya di sini ..

Baca selengkapnya...

Administrasi mahasiswa

Program Administrasi_Mahasiswa;
uses crt;
const
pkkspp = 400000;
infospp = 600000;
elekspp = 500000;
bogaspp = 450000;
ptikspp = 500000;
pkkprak = 100000;
infoprak = 500000;
elekprak = 450000;
bogaprak = 600000;
ptikprak = 350000;
sehat : real = 10000;
var

nm,jur : string;
nojur : byte;
tahun :integer;
spp,prak : real;
tot : real;
begin
clrscr;
writeln('Administrasi Mahasiswa Fakultas Teknik dan Kejuruan');
writeln('===================================================');
write('Nama : '); readln(nm);
writeln('Keterangan Jurusan : ');
writeln('1. PKK');
writeln('2. D3 Informatika');
writeln('3. D3 Elektro');
writeln('4. D3 Boga Perhotelan');
writeln('5. PTIK');
write('Jurusan (tulis no saja) : '); readln(nojur);
write('Tahun Masuk : '); readln(tahun);
if tahun<2004 then
begin

if nojur = 1 then
begin
spp := pkkspp;
jur := 'PKK'
end
else if nojur = 2 then
begin
spp :=infospp;
jur := 'D3 Informatika';
end
else if nojur = 3 then
begin
spp :=elekspp;
jur := 'D3 Elektro'
end
else if nojur = 4 then
begin
spp :=bogaspp;
jur := 'D3 Boga Perhotelan';
end
else if nojur= 5 then
begin
spp :=ptikspp;
jur := 'PTIK'
end
else
writeln('Jurusan salah, tolong ulangi !!');

end
else
begin
if nojur = 1 then
begin
spp := pkkspp;
prak:= pkkprak;
jur := 'PKK'
end

else if nojur= 2 then
begin
spp :=infospp;
prak:= infoprak;
jur := 'D3 Informatika';
end
else if nojur = 3 then
begin
spp :=elekspp;
prak:=elekprak;
jur := 'D3 Elektro';
end
else if nojur = 4 then
begin
spp :=bogaspp;
prak:=bogaprak;
jur := 'D3 Boga Perhotelan';
end
else if nojur= 5 then
begin
spp :=ptikspp;
prak:=ptikprak;
jur := 'PTIK';
end
else
writeln('Jurusan salah, tolong ulangi !!');
end;
tot := spp+prak+sehat;
writeln('Nama : ',nm);
writeln('Jurusan : ',jur);
writeln('Tahun Masuk : ',tahun);
writeln('Uang SPP : Rp. ',spp:7:2);
writeln('Uang Praktikum : Rp. ',prak:7:2);
writeln('Uang Kesehatan : Rp. ',sehat:7:2);
writeln('---------------------------------');
writeln('Total Pembayaran : Rp. ',tot:7:2);
writeln('=================================================');
readln;
end.

Baca selengkapnya...

Mengetahui tahun kabisat

Program kabisat;
uses crt;
var
tahun : longint;
begin
clrscr;
writeln('=================================');
writeln('Mengecek Tahun Kabisat atau Bukan');
write('Masukan tahun : '); readln(tahun);
if tahun mod 400 = 0 then
writeln ('Tahun ',tahun,' merupakan kabisat')
else if tahun mod 100 = 0 then
writeln ('Tahun ',tahun,' bukan merupakan kabisat')
else if tahun mod 4 = 0 then

Download source cide lengkap nya di sini.

Baca selengkapnya...

Unit Sorting

unit sort;
interface
uses crt;
type
larik = array [1..100] of integer;
var
i,j,n,y:byte;
copyL,l : larik;
procedure tukar(var a,b:integer);
procedure bubble_asc(var l:larik; n:byte);
procedure bubble_dsc(var l:larik; n:byte);
procedure select_min_asc(var l:larik; n:byte);
procedure select_min_dsc(var l:larik; n:byte);
procedure select_max_asc(var l:larik; n:byte);
procedure select_max_dsc(var l:larik; n:byte);
procedure insert_asc(var l:larik; n:byte);
procedure insert_dsc(var l:larik; n:byte);
procedure anim(var jml:byte);

implementation
procedure tukar(var a,b:integer);
var temp: integer;
begin
temp:=a;
a:=b;
b:=temp;
end;
procedure bubble_asc(var l:larik; n:byte);
begin
for i:=1 to n do
for j:=n downto i+1 do
if l[j] < l[j-1] then
begin
tukar(l[j],l[j-1])
end;
end;
procedure bubble_dsc(var l:larik; n:byte);
begin
for i:=1 to n do
for j:=n downto i+1 do
if l[j] > l[j-1] then
begin
tukar(l[j],l[j-1])
end;
end;


Pada unit ini akan terdapat prosedur - prosedur pengurutan data (sorting) dari ASC dan DESC. Juga terdapat prosedur untuk membuat animasi menu pada pascal. Keren kan....

Download source code dan *.TPU nya di sini.

Baca selengkapnya...

Pengguaan case

Program tokoPD;
uses crt;
const dancowb = 10000;
dancows = 4250;
dancowk = 2100;
indob = 8500;
indos = 4000;
indok = 2025;
milob = 7750;
milos = 4000;
milok = 2200;
suprib = 9600;
supris = 5100;
suprik = 2600;
sustab = 17000;
sustas = 14500;

sustak = 8300;
ovalb = 11250;
ovals = 6500;
ovalk = 3200;
var
no : byte;
ukuran : char;
banyak : longint;
bayar : real;
begin
clrscr;
writeln('===============================================');
writeln(' P & D Toserba');
writeln('Susu yang tersedia di P & D Toserba : ');
writeln('1. Dancow');
writeln('2. Indomilk');
writeln('3. Milo');
writeln('4. Suprima');
writeln('5. Sustagen');
writeln('6. Ovaltime');
writeln('--------------------------------------');
write('No susu : '); readln(no);
write('Ukuran (b:besar,s:sedang,k:kecil) : '); readln(ukuran);
write('Banyak barang : '); readln(banyak);
case no of
1 : begin
case ukuran of
'b' : bayar:=dancowb*banyak;
's' : bayar:=dancows*banyak;
'k' : bayar:=dancowk*banyak;
else writeln('Ukuran salah !!');
end;

Download source code lengkap nya di sini.

Baca selengkapnya...

Menghitung Jumlah huruf pada sebuah kata / kalimat

uses crt;
var
kata : string;
h : array ['A'..'Z'] of byte;
j : char;
i : byte;
begin
clrscr;
write('Input kata : ');readln(kata);
for i := 1 to length(kata) do
begin

for j := 'A' to 'Z' do
begin
if kata[i]= j then
begin

Download program lengkapnya di sini

Baca selengkapnya...

Gaji Pegawai

Program Gaji;
uses crt;
var
nama,alamat : string;
gaji_pkok,tunjangan,pajak,bersih : real;
begin
clrscr;
write('Nama Pegawai : '); readln(nama);
write('Alamat : '); readln(alamat);

write('Gaji Pokok : ');readln(gaji_pkok);
tunjangan := 15/100*gaji_pkok;
pajak := 7.5/100*gaji_pkok;
bersih :=


Download source code lengkap nya di sini.

Baca selengkapnya...

Metode Bagi dua

uses crt;
const epsilon=0.00001;
var
a,b,c,fa,fb,fc : real;

begin
writeln('Mencari akar dari persamaan f(x)=(x^3 + 1)/3');
writeln(' Dengan Metode Bagi Dua');
writeln('============================================');
write('Masukkan batas awal(a) : '); readln(a);
fa:=(a*a + 1)/3;

writeln('f(a) = ',fa:0:5);
repeat
write('Masukkan batas akhir(b) : '); readln(b);
fb:=(b*b +1)/3;
writeln('f(b) = ',fb:0:5);
if fa*fb < 0 then
begin
writeln('Syarat OK (f(a)*f(b)<0)');
writeln('f(a)*f(b) = ',(fa*fb):0:5);
end
else

Download di sini untuk source code lengkap nya..

Komen yaw..

Baca selengkapnya...

Regula Falsi

program regula_falsi;
uses crt;
label ulang;
var
x1,x2,x3,y1,y2,y3 : real;
i : integer;
Ab :char;
data1 : real;
begin

ulang:
clrscr;
writeln('Tentukan nilai akar dari persamaan f(x)=x^3+x^2-3x-3=0 dengan Regula Falsi');
write('Masukan nilai x1 = ');readln(x1);
y1 := x1 * x1 * x1 + x1 * x1 - 3 * x1 - 3;
writeln(' Nilai f(x1)= ',y1:0:4);
repeat
begin
write( 'Masukan nilai x2 = ' ); readln(x2);
y2 := x2 * x2 * x2 + x2 * x2 - 3 * x2 - 3;
write(' Nilai f(x2)= ',y2:0:4);
end;
if (y1*y2)<0 then
Writeln(' Syarat Nilai Ok')
else
Writeln(' Nilai X2 Belum Sesuai');
until ( y1 * y2 ) <0;
writeln;
writeln('Penyelesaian persamaan karekteristik dengan metoda regula falsi');
writeln('----------------------------------------------------------------------');
writeln(' n x f(x) error ');
writeln('----------------------------------------------------------------------');
repeat
begin
i:= i + 1; x3 := ( x2-( y2 / ( y2 - y1))*(x2-x1));
y3 := x3 * x3 * x3 + x3 * x3 - 3 * x3 - 3;
if i<10 then
writeln(' ',i,' : ',x3,' : ',y3,' : ',abs(y3),' : ')
else
writeln(i,' : ',x3,' : ',y3,' : ',abs(y3),' : ');
if ( y1 * y3 ) <0 then
begin
x2 := x3 ; y2 := y3 ;
end
else
begin
x1 := x3 ; y1 := y3;
end;
end;
until abs( y3 ) < 1E-08;
writeln('----------------------------------------------------------------------');
writeln('Akar persamaannya= ',x3);
writeln('Errornya=' ,abs( y3 ));
writeln('----------------------------------------------------------------------');
writeln('Apakah anda ingin mengulangi (y/t): ');
readln(ab);
if (ab='y') or (ab='Y') then
goto ulang;
end.

Baca selengkapnya...

Faktorial

Program FAKTORIAL;

uses crt;

var Faktor : real;
Cacah,
Bil_Awal,
Bil_Akhir,
Konter,
Baris : integer;

begin
clrscr;
writeln('MEMBUAT TABEL FAKTORIAL');
write('BILANGAN AWAL : ');readln(Bil_Awal);
write('BILANGAN AKHIR : ');readln(Bil_Akhir);writeln;


writeln(' TABEL FAKTORIAL');
writeln;
writeln('--------------------------------');
writeln(' BILANGAN HARGA FAKTORIAL');
writeln('--------------------------------');writeln;
Baris := 11;
for Cacah := Bil_Awal to Bil_Akhir do

Mau tau lanjutannya download aj y..Di sini..

Baca selengkapnya...

Selasa, 23 September 2008

Matematika Diskrit (Relasi)

1. RELASI
1.1 Pengantar
Hubungan(relationship), antara elemen himpunan dengan elemen himpunan lainnya sering dijumpai pada banyak masalah. Misalnya hubungan antara mahasiswa dengan mata kuliah yang diambil, hubungan antara bilangan genap dan bilangan yang habis dibagi 2 dan sebagainya. Di dalam bidang ilmu komputer, dapat dicontohkan hubungan antara program komputer dengan peubah yang digunakan, hubungan antara bahasa pemrograman dengan pernyataan (statement) yang sah, hubungan antara plaintext dan chipertext pada bidang kriptografi dan sebagainya (Munir,2001).
Hubungan antara elemen himpunan dengan elemen himpunan lain dinyatakan dengan struktur yang disebut relasi.

1.2 Relasi&Product Cartesian

Definisi 1.1 : untuk setiap himpunan A,B £, Perkalian kartesian (Cartesian Product) dari himpunan A dan B adalah A x B dimana {(a,b)| a A, b B}
Dapat dikatakan bahwa elemen-elemen dari AxB merupakan himpunan pasangan berurutan (order pairs). Untuk (a,b) dan (c,d) AxB maka (a,b) = (c,d) jika dan hanya jika a = c dan b = d .

Definisi 1.2 : Relasi biner R antara AxB adalah himpunan bagian dari AxB. Dinotasikan sebagai R (AxB).
Jika (a,b) R, digunakan notasi aRb yag artinya a dihubungkan dengan b oleh R, dan jika (a,b) R, maka digunakan notasi a b yang artinya a tidak dihubungkan dengan b oleh relasi R.
Himpunan A disebut daerah asal (domain) dari R dan himpunan b disebut daerah hasil (range) dari R.
Jika A,B adalah himpunan berhingga maka perkalian AxB menghasilkan himpunan pasangan terurut yang jumlah anggotanya adalah |A|.|B| .

Definisi 1.3 : Relasi pada himpunan A adalah relasi dari AxA
Dengan kata lain relasi pada himpunan A adalah himpunan bagian dari AxA
Contoh-contoh :
1. Misalkan A={Amir,Budi,Cecep} adalah himpunan nama mahasiswa dan B={INF0421,INF0422,INF0423,INF0424} adalah himpunan kode matkul di Manajemen Informatika, berapa jumlah anggota yang terbentuk dari AxB?
2. Misalkan P={2,4,8,9,15} dan Q={2,3,4}. Jika didefinisikan relasi R dari P ke Q dengan (p,q) R jika p habis dibagi q , bagaimana bentuk relasinya?
3. Tentukan x,y,z jika (2x,x+y,x-y-2z) = (4,-1,3)
4. Anggap A={1,2}. Tentukan a. A2 dan b. A3
5. Misalkan A={1,2} dan B = {a,b}. Tunjukkan apakah pernyataan dibawah ini sama dengan AxB ?
a. E=[{1,a},{1,b},{2,a},{2,b}] c. G=[(1,a),(1,b),(2,a),(b,2)]
b. F=[{a,1}{a,2}{b,1}{b,2}] d. H=[(1,a), (2,a), (1,b), (2,b)]
6. Diberikan A={1,2},B={x,y,z} dan C={3,4}. Tentukan AxBxC dan n(AxBxC)

1.3 Representasi Relasi
Selain dengan himpunan pasangan terurut, ada banyak cara untuk merepresentasikan relasi biner. Disini hanya disajikan tiga cara yang lazim yaitu, table, matriks dan graf berarah.
Representasi relasi dengan table
Jika relasi direpresentasikan dengan table, maka kolom pertama table menyatakan daerah asal, sedangkan kolom kedua menyatakan daerah hasil
Sebagai contoh :
Table 1.3
A B
Amir INF0422
Amir INF0421
Budi INF0221
Budi INF0422
Cecep INF0421

Representasi relasi dengan matriks
Misalkan R adalah relasi dari A = {a1, a2, . . .,am} dan B = {b1, b2, . . .,bn}, relasi R dapat disajikan dengan matriks M = [mij]

Yang dalam hal ini

Dengan kata lain, elemen matriks pada posisi (i,j) bernilai 1 jika ai dihubungkan dengan bj dan bernilai 0 jika ai tidak dihubungkan dengan bj.
Relasi R pada table 1.3 dapat dinyatakan dengan matriks

yang dalam hal ini, a1 = Amir, a2 = Budi, a3 = Cecep, dan b1 = INF0221

Representasi relasi dengan graf berarah







Sifat-sifat dari relasi biner





1
0
1
0

Sedangkan graf berarah dari relasi yang bersifat setangkup dicirikan oleh: jika ada busur dari a ke b, maka juga ada busur dari b ke a.

3. Menghantar (transitif)
Relasi R pada himpunan A disebut menghantar bilamana (a,b) R dan (b,a) R, maka (a,c) R, untuk a, b, c A.
Contoh 2.8.
Misalkan A = { 1, 2, 3, 4 }, dan relasi R da bawah ini didefinisikan pada himpunan A, maka
a. R = { (2,1), (3,1), (3,2), (4,1), (4,2), (4,3) }bersifat menghantar. Lihat pada table berikut :

Pasangan berbentuk
(a,b) (b,c) (a,c)
(3,2) (2,1) (3,1)
(4,2) (2,1) (4,1)
(4,3) (3,1) (4,1)
(4,3) (3,2) (4,2)

b. R = { (1,1), (2,3), (2,4), (4,2) } maka bersifatmenghantar karena (2,4) dan (4,2) R, tetapi (2,2) R, begitu juga (4,2) dan (2,3) R, tetapi (4,3) R.
c. R = { (4,5) } bersifat menghantar.
Contoh 2.9.
Relasi “habis dibagi” pada himpunan bilangan bulat positif bersifat menghantar. Misalkan bahwa a habis membagi b dan b habis membagi c. maka terdapat bilangan positif m dan n sedemikian sehingga a = mb dan b = nc. Disini a = mnc, sehingga a habis membagi c. jadi, relasi “habis membagi” bersifat menghantar.

Ditinjau dari representasi relasi, relasi yang bersifat menghantar tidak mempunyai ciri khusus pada matriks representasinya. Tetapi sifat menghantar pada graf berarah ditunjukan oleh: jika ada busur dari a ke b dan dari b ke c, maka juga terdapat busur berarah dari a ke c.

2.4 Mengkombinasikan Relasi
Karena relasi biner merupakan himpunan pasangan terurut, maka operasi himpunan seperti irisan, gabungan, selisih dan beda setangkup antara dua relasi atau lebih juga berlaku. Hasil operasi tersebut juga berupa relasi. Dengan kata lain, jika R1 dan R2 masing – masing adalah relasi dari himpunan A ke himpunan B, maka R1 R2 , R1 R2 , R1 - R2, R1 R2 juga adalah relasi dari A ke B.

Contoh 2.10.
Misalkan A = { a, b, c } dan B = { a, b, c, d }. Relasi R1 = { (a,a), (b,b), (c,c), dan relasi R2 = { (a,a), (a,b), (a,c), (a,d) } adalah relasi dari A ke B. kita dapat mengkombinasikan ke dua buah relasi tersebut untuk memperoleh

R1 R2 = { (a,a) }
R1 R2 = { (a,a), (b,b), (c,c), (a,b), (a,c), (a,d) }
R1 - R2 = { (b,b), (c,c) }
R2 – R1 = { (a,b), (a,c), (a,d) }
R1 R2 = { (b,b), (c,c), (a,b), (a,c), (a,d) }

Jika relasi R1 dan R2 masing – masing dinyatakan dengan matriks MR1 dan MR2, maka matriks yang menyatakan gabungan dan irisan dari kedua relasi tersebut adalah

MR1 R2 = MR1 R2 dan MR1 R2 = MR1 R2


Yang dalam hal ini, operator “ ” berarti “atau” dan “ ” berarti “dan”.

Contoh 2.11.
Misalkan bahwa relasi R1¬ dan R2 pada himpunan A dinyatakan oleh matriks

dan
Maka matriks yang menyatakan MR1 R2 dan MR1 R2 adalah





2.5 Komposisi Relasi
Cara lain mengkombinasikan relasi adalah mengkomposisikan dua buah relasi atau lebih. Komposisi relasi analog dengan komposisi fungsi.
Definisi 2.3.
Misalkan R adalah relasi dari himpunan A ke himpunan B, dan S adalah relasi dari himpunan B ke himpunan C. komposisi R dan S, dinotasikan dengan R o S, adalah relasi dari A ke C yang didefinisikan oleh
R o S = { (a,c)}│ a A, c C, dan untuk beberapa b B, (a,b) R dan (b,c) S }

Contoh 2.12.
Misalkan R = { (1,2), (1,6), (2,4), (3,4), (3,6), (3,8) } adalah relasi dari himpunan { 1, 2, 3 } ke himpunan { 2, 4, 6, 8 } dan S = { (2,u), (4,s), (4,t), (6,t), (8,u) } adalah relasi dari { 2, 4, 6 } ke himpunan { s, t, u }. Maka komposisi relasi R dan S adalah R o S = { (1,u), (1,t), (2,s), (2,t), (3,s), (3,t), (3,u) }
Jika relasi R1 dan R2 masing – masing dinyatakan dengan matriks MR1 dan M R2, maka matriks yang menyatakan komposisi dari kedua relasi tersebut adalah
MR1 o R2 = MR1 . MR2

Yang dalam hal ini operator “.” Sama seperti pada perkalian matriks biasa, tetapi dengan mengganti tanda kali dengan “ ” dan tanda tambah dengan “ ”.

Contoh 2.13.
Misalkan bahwa relasi R1 dan R2 pada himpunan A dinyatakan oleh metrics

dan

Maka matriks yang menyatakan R1 o R2 adalah




2.6 Relasi n-ary
Relasi biner hanya menghubungkan antara dua buah himpunan. Relasi yang lebih umum menghubungkan lebih dari dua buah himpunan. Relasi tersebut dinamakan relasi n-ary (baca: ener). Jika n = 2, maka relasinya dinamakan relasi biner (bi = 2). Relasi n-ary mempunyai terapan penting didalam basisdata.
Definisi 2.4.
Misalkan A1, A2, ….An adalah himpunan. Relasi n-ary R pada himpunan – himpunan tersebut adalah himpunan bagian dari A1 x A2 x … x An, atau dengan rotasi R A1 x, A2 x, ….x An. himpunan A1, A2, ….An disebut daerah asal relasi dan n disebut derajat.
Contoh 2.14.
Misalkan
NIM = { 13598011, 13598014, 13598015, 13598019, 13598021, 13598025 }
Nama = { Amir, Santi, Irwan, Ahmad, Cecep, Hamdan }
MatKul = { Matematika Diskrit, Algoritma, Struktur Data, Arsitektur Komputer }
Nilai = { A, B, C, D, E }
Berturut – turut adalh himpunan Nomor Induk Mahasiswa, himpunan nama – nama mahasiswa, himpunan nama – nama mata kuliah, dan himpunan nilai mata kuliah. Relasi MHS yang terdiri dari 5-tupel (NIM, Nama, MatKul, Nilai) mempresentasikan hubungan antara nomor induk mahasiswa, namanya, mata kuliah yang diakbilnya, dan nilai mata kuliah. Satu contoh relasi yang bernam MHS adalah


MHS = { 13598011, Amir, Matematika Diskrit, A },
{ 13598011, Amir, Arsitektur Komputer, B },
{ 13598014, Santi, Arsitektur Komputer, D },
{ 13598015, Irwan, Algoritma, C },
{ 13598015, Irwan, Struktur Data, C },
{ 13598015, Irwan, Arsitektur Komputer, B },
{ 13598019, Ahmad, Algoritma, E },
{ 13598021, Cecep, Algoritma, A },
{ 13598021, Cecep, Arsitektur Komputer, B },
{ 13598025, Hamdan, Matematika Diskrit, B },
{ 13598025, Hamdan, Algoritma, A, B },
{ 13598025, Hamdan, Struktur Data, C },
{ 13598025, Hamdan, Arsitektur Komputer, B }
Relasi MHS di atas juga dapat ditulis dalam bentuk table 2.4.

Table 2.4
NIM Nama MatKul Nilai
13598011
13598011
13598014
13598015
13598015
13598015
13598019
13598021
13598021
13598025
13598025
13598025
13598025 Amir
Amir
Santi
Irwan
Irwan
Irwan
Ahmad
Cecep
Cecep
Hamdan
Hamdan
Hamdan
Hamdan Matematika Diskrit
Arsitektur Komputer
Arsitektur Komputer
Algoritma
Struktur Data
Arsitektur Komputer
Algoritma
Algoritma
Arsitektur Komputer
Matematika Diskrit
Algoritma
Struktur Data
Arsitektur Komputer A
B
D
C
C
B
E
A
B
B
A
C
B

Basisdata (database) adalah kumpulan table. Salah satu model basisdata adalah model basisdata relasional (relation database). Pada basisdata relasional, satu tabel menyatakan satu relasi. Setiap kolom pada tabel disebut atribut. Daerah asal dari atribut adalah himpunan tempat semua anggota atribut tersebut berada. Setiap tabel pada basisdata diimplementasikan secara fisik sebagai sebuah file. Suatu baris data pada tabel menyatakan sebuah record, dan setiap atribut menyatakan sebuah file. Dengan kata lain, secara fisik basisdata adalah kumpulan file, sedangkan file adalah kumpulan record, setiap record terdiri atas sejumlah field.

Teori basisdata didasarkan pada konsep relasi n-ary. Pembahasan teori basisdata harus dilepas pada implementasi fisiknya.

Atribut khusus pada tabel yang mengidentifikasikan secara unik elemen relasi disebut kunci (key). Pada contoh 2.4 di atas, NIM merupakan kunci. Atribut nama bukan atribut kunci karena orang yang berbeda mungkin mempunyai nama yang sama.
Operasi yang dilakukan terhadap basisdata dilakukan dengan perintah pertanyaan yang disebut perintah query. Satu contoh query misalnya,

“tampilkan semua mahasiswa yang mengambil mata kuliah matematika diskrit”
“tampilkan daftar nilai mahasiswa dengan NIM = 13598015”
“tampilkan daftar mahasiswa yang terdiri atas NIM dan mata kuliah yang diambil”

Pada hakekatnya, query terhadap basisdata relasion dapat dinyatakan secara abstrak dengan oprasi pada relasi n-ary. Ada beberapa operasi yang dapat digunakan, diantaranya adalah seleksi, proyeksi, dan join.



Seleksi
Opreasi seleksi memilih baris tertentu dari suatu tabel yang memenuhi persyaratan tertentu.
Operasi:
Contoh 2.15.
Misalkan untuk relasi MHS kita ingin menampilkan daftar mahasiswa yang mengambil mata kuliah matematika diskrit. Operasi seleksinya adalah
MatKul = “matematika diskrit” (MHS)
Yang menghasilkan tupel.

(13598011, Amir Matematika Diskrit, A) (13598025, Hamdan, Matematika Diskrit, B).

Proyeksi
Operasi proyeksi memiliki kolom tertentu dari suatu tabel. Jika ada beberapa baris yang sama nilainya, maka hanya diambil satu kali.
Operator:

Contoh 2.16.
Operasi proyeksi
nama, MatKul, nilai (MHS)
Menghasilkan tabel 2.5. sedangkan operasi proyeksi
NIM, Nama (MHS)
Menghasilkan tabel 2.6.

Tabel 2.5.
Nama MatKul Nilai
Amir
Amir
Santi
Irwan
Irwan
Irwan
Ahmad
Cecep
Cecep
Hamdan
Hamdan
Hamdan
Hamdan Matematika Diskrit
Arsitektur Komputer
Algoritma
Algoritma
Struktur Data
Arsitektur Komputer
Algoritma
Algoritma
Arsitektur Komputer
Matematika Diskrit
Algoritma
Struktur Data
Arsitektur Komputer A
B
D
C
C
B
E
B
B
B
A
C
B


Tabel 2.6.
NIM Nama
13598011
13598014
13598015
13598019
13598021
13598025 Amir
Santi
Irwan
Ahmad
Cecep
Hamdan

Join
Operasi join menggabungkan dua buah tabel menjadi satu bila kedua tabel mempunyai atribut yang sama. Sebagai contoh, suatu tabel mengandung NIM, Nama, Jenis Kelamin, dan tabel ini mengandung NIM, Nama, MatKul, Nilai. Gabungan keduanya menghasilkan tabel baru yang mengandung atribut NIM, Nama, Jenis Kelamin, MatKul, dan Nilai.
Operator:

Contoh 2.17.
Misalkan relasi MHS 1 dinyatakan dengan tabel 2.7 dan relasi MHS 2 dinyatakan dengan tabel 2.8. opersi join
NIM, Nam MHS 1, MHS 2)
Menghasilkan tabel 2.9.

Tabel 2.7
NIM Nama JK
13598001 Hananto L
13598002 Guntur L
13598004 Heidi W
13598006 Harman L
13598007 Karim L

Tabel 2.8
NIM Nama MatKul Nilai
13598001 Hananto Algoritma A
13598001 Hananto Basisdata B
13598004 Heidi Kalkulus I B
13598006 Harman Teori Bahasa C
13598006 Harman Agama A
13598009 Junaidi Statisitik B
13598010 Farizka Otomata C

Tabel 2.9
NIM Nama JK MatKul Nilai
13598001 Hananto L Algoritma A
13598001 Hananto L Basisdata B
13598004 Heidi W Kalkulus I B
13598006 Harman L Teori Bahasa C
13598006 Harman L Agama A



2.7 Fungsi
Fungsi adalah jenis khusus dari relasi. Definisi fungsi adalah sebagai berikut:

Definisi 2.5
Misalkan A dan B himpunan. Relasi biner f dari A ke B merupakan suatu fungsi jika untuk setiap elemen a di dalam A terdapat satu elemen tunggal b di dalam B sedemikian sehingga (a,b) Є f. kita tulis f(a)=b. Jika f adalah fungsi dari A ke B, kita menuliskan f : A  B yang artinya f memetakan A ke B.

Gambar 2.3 merepresentasikan fungsi dari A ke B.

Jika f adalah fungsi dari A ke B, A disebut daerah asal (domain) dari f dan B disebut daerah hasil ( range/codomain) dari f. Jika f(a) = b, maka b dinamakan bayangan (image) dari a dan a dinamakan prabayangan (pre-image) dari b.


Gambar 2.3 fungsi f memetakan A ke B

Contoh 2.18
Relasi
f = { (1,u),(2,v),(3,w) }

dari A = {1,2,3} ke B = {u,v,w} adalah fungsi dari A ke B. Daerah asal dari f adalah A dan daerah hasil adalah B.


Contoh 2.19.
Relasi
f = { (1,u),(2,v),(3,w)}
dari A = {1,2,3,4} ke B = {u,v,w} bukan fungsi dari A ke B, karena daerah asal dari f{1,2,3} tidak sama dengan A.

Contoh 2.20.
Relasi
f = { (1,u),(2,v),(3,w) }
dari A = {1,2,3 }ke B = {u,v,w} bukan fungsi dari A ke B, karena dipetakan ke dua buah elemen B, yaitu u dan v ( ingat definisi fungsi atas ).

Contoh 2.21.
Relasi
f = {(1,u),(2,u),(3,v)}
Dari A = {1,2,3} ke B = {u,v,w}adalah fungsi dari A ke B, meskipun u merupakan bayangan dari dua elemen A.
Fungsi f dikatakan satu-ke-satu (one-to-one) atau injektif (injective) jika tidak ada dua elemen himpunan A yang memiliki bayangan sama. Dengan kata lain, jika a dan b adalah anggota himpunan A, maka f(a) ≠ f(b) bilamana a ≠ b. Gambar 2.4 mengilustrasikan fungsi satu-ke-satu.



Gambar 2.4 fungsi satu-ke-satu

Contoh 2.22.
Relasi
f = {(1,w),(2,u),(3,v)}
dari A = {1,2,3} ke B = {u,v,w,x} adalah fungsi satu-ke-satu,

Relasi
f = {(1,w),(2,u),(3,v)}
dari A = {1,2,3} ke B = {u,v,w} juga fungsi satu-ke-satu, tetapi relasi f = {(1,u),(2,u),(3,v)}

dari A ={1,2,3} ke B = {u,v,w} bukan fungsi satu-ke-satu, karena f(1) = f(2)=u.
Fungsi f dikatakan dipetakan pada (onto) atau surjektif (surjective) jika setiap elemen himpunan B merupakan bayangan dari satu atau lebih elemen himpunan A. Dengan kata lain, fungsi f adalah pada bila semua elemen B merupakan daerah hasil dari f. Fungsi f disebut fungsi pada himpunan B. Gambar 2.5 mengilustrasikan fungsi pada.

Gambar 2.5 fungsi pada

Contoh 2.23.
Relasi
f = {(1,u),(2,u),(3,v)}

dari A = {1,2,3} ke B = {u,v,w} bukan fungsi pada, karena w tidak termasuk ke dalam daerah hasil dari f.

Relasi
f = {(1,w),(2,u),(3,v)}

dari A = {1,2,3} ke B = {u,v,w}merupakan fungsi pada, karena semua elemen B termasuk ke dalam daerah hasil f.

Fungsi f dikatakan berkoreponden satu-ke-satu atau bijektif (bijection) jika ia satu-ke-satu dan juga fungsi pada.

Contoh 2.24.
Relasi
f = {(1,u),(2,w),(3,v)}

dari A = {1,2,3} ke B = {u,v,w} adalah fungsi yang berkorespoden satu-ke-satu, karena f adalah fungsi satu-ke-satu maupun fungsi pada.

Gambar 2.6 memperlihatkan perbedaan antara fungsi satu-ke-satu tetapi bukan pada, fungsi pada tetapi bukan satu-ke-satu, bukan fungsi satu-ke-satu maupun fungsi pada, dan bukan fungsi.




Gambar 2.6 Perbedaan empat tipe korespondensi

Jika f adalah fungsi berkoresponden satu-ke-satu dari A ke B, maka kita dapat menemukan balikan (invers) dan f. Balikan fungsi dilambangkan dendan f -1 . misalkan a adalah anggota himpunan A dan b adalah anggota himpunan B, maka f -1 (b) = a jika f(a) = b.

Contoh 2.25
Relasi
f = {(1,u),(2,w),(3,v)}

dari A = {1,2,3} ke B = {u,v,w} adalah fungsi yang berkoresponden satu-ke-satu. Balikan fungsi f adalah

f -1 = {(u,1),(w,2),(v,3)}

karena fungsi merupakan bentuk khusus dari relasi, kita juga dapat melakukan komposisi dari dua buah fungsi. Misalkan g adalah fungsi dari himpunan A ke himpuna B, dan f adalah fungsi dari himpunan B ke himpuna C. Komposisi f dan g, dinotasikan dengan f o g, adalah fungsi dari A ke C yang didefinisikan oleh

(f o g)(a) = f (g(a))

Contoh 2.26.
Diberikan fungsi

g = {(1,u),(2,u),(3,v)}

yang memetakan A = {1,2,3} ke B {u,v,w}, dan fungsi f = {(u,y),(v,x),(w,z)}
yang memetakan B = {u,v,w} ke C {x,y,z}. Fungsi komposisi dari A ke C adalah

f o g = {(1,y),(2,y),(3,x)}

Soal Latihan

1. A = {2,3,4} ke B = {0,1,2,3} yang dalam hal ini pasangan terurut (a,b) Є R jika dan hanya jika a > b.
2. Tuliskan anggota dari relasi R pada {1,2,3,4} yang didefinisikan oleh (x,y) Є R jika x2 ≥ y.
3. Nyatakan relasi R ={(1,2),(2,1),(3,3),(1,1),(2,2)} pada X = {1,2,3} dalam bentuk tabel, matriks, dan graf berarah.
4. Untuk tiap relasi pada {1,2,3,4} berikut, tentukan apakah ia refleksif, setangkup, tak-setangkup, dan menghantar.
a) {(2,2),(2,3),(2,4),(3,2),(3,3),(3,4)}
b) {(2,4),(4,2),}
c) {(1,1),(2,2),(3,3),(4,4)}
d) {(1,3),(1,4),(2,3),(2,4),(3,1),(3,4)}
5. Tentukan apakah relasi R pada himpunan orang bersifat refleksif, setangkup, tak-setangkup, dan / atau menghantar, yang dalam hal ini (a,b) Є R jika dan hanya jika
a) a lebih tinggi daripada b
b) a dan b lahir pada hari yang sama
c) a mempunyai nama pertama yang sama dengan b
6. Misalkan R adalah relasi {(1,2),(1,3),(2,3),(2,4),(3,1)} dan S adalah relasi {(2,1),(3,1),(3,2),(4,2),(4,2)}. Tentukan S o R dan R o S.
7. Misalkan R = {(1,2),(2,3),(3,4)} dan S = {(1,1),(1,2),(2,1),(2,2),(2,3),(3,1),(3,2),(3,4)} adalah relasi dari {1,2,3} ke {1,2,3,4}. Tentukan
a). R S
b). R S
c). R – S
d). S – R
e). R S
8. Misalkan R adalah relasi pada himpunan orang yang terdiri dari pasangan (a,b) yang dalam hal ini a adalah ayah dari b. Misalkan S adalah relasi pada himpunan orang yang terdiri dari pasangan (a,b) yang dalam hal ini a dan b adalah saudara kandung. Nyatakan R o S.
9. Nyatakan pasangan terurut dari relasi pada {1,2,3} yang berkoresponden dengan matriks berikut:
a). b).
10. Gambarkan graf berarah dari relasi yang dinyatakan oleh matriks pada soal nomor 9.
11. Misalkan bahwa relasi R dan S pada himpuna A dinyatakan oleh matriks

R = dan S =
Tentukan matriks yang menyatakan
a). R S
b). R S
c). R o S

12. jika diberikan
g = {(1,b),(2,c),(3,a)}
adalah fungsi dari A = {1,2,3} ke B = {a,b,c,d} dan
f = {(a,x),(b,x),(c,z),(d,w)}
adalah fungsi dari B ke C = {w,x,y,z}, tuliskan f o g sebagai himpunan pasangan terurut.

13. misalkan f adalah fungsi dari X = {0,1,2,3,4,5} ke X yang didefinisikan oleh
f(x) = 4x mod 6
Tuliskan f sebagai himpunan pasangan terurut. Apakah f satu-ke-satu atau pada?

Download (*.ppt)

Baca selengkapnya...

Unit Search

unit search;

interface

uses crt;
type larik = array [1..100] of integer;
var
i,n, y : byte;
x : integer;
l : larik;
found: boolean;

procedure sequential (var l : larik; x : integer; n:byte);
procedure binary (var l : larik;x: integer; n:byte);

implementation

procedure sequential (var l : larik; x : integer; n:byte);
begin
i:=1;
found := false;
while (not found) and (i<=n) do
begin
if x=l[i] then
found := true
else
i := i +1;
end;
clrscr;
if found then
writeln('Elemen yang bernilai ',x,' berada pada index ke ',i)
else
writeln('Elemen yang bernilai ',x,' tidak ada pada semua index');
writeln('===========================');
writeln(' Index ke- Nilai Data');
writeln('---------------------------');
y := 5;
for i := 1 to n do
begin
gotoxy(6,y);
writeln(i);
gotoxy(21,y);
writeln(l[i]);
inc(y);
end;
writeln('===========================');
end;


procedure binary (var l : larik; x :integer; n:byte);

var
a,iA,iAk,iT : byte;
kondisi : char;
temp : integer;
j : byte;
begin
{prosedur mengurutkan data}
{---------------------------------------}
for i := 1 to (n-1) do
for j := n downto (i+1) do
if l[j] < l[(j-1)] then
begin
temp := l[j];
l[j] := l[(j-1)];
l[(j-1)] := temp;
end;
{---------------------------------------}
a:=0;
iA :=1;
iAk :=n;
found :=false;
while ( not found) and (iA<=iAk) do
begin
iT:=(iA+iAk) div 2;
inc(a);
writeln('Iterasi ke ',a);
writeln('iA = ',iA);

Unit di atas adalah unit yang berisi prosedur - prosedur searching data. Yaitu prosedur binary dan sequential. Download di sini untuk source code dan file *.TPU nya.



Untuk memanggil Unit tersebut maka diperlukan sebuah program.

Program searching;
uses crt,search;
var
option : char;

begin
clrscr;
write('Masukkan banyak data : ');
readln(n);


Download source code nya di sini.

Komen yaw...

Baca selengkapnya...

Metode Numerik

PENDAHULUAN

Persoalan yang melibatkan model matematika banyak muncul dalam berbagai disiplin ilmu pengetahuan, seperti dalam bidang fisika, kimia, ekonomi, atau pada persoalan rekayasa (engineering), seperti Teknik Sipil, Teknik Mesin, Elektro, dan sebagainya. Seringkali model matematika tersebut muncul dalam bentuk yang tidak ideal alias rumit. Model matematika yang rumit ini adakalanya tidak dapat diselesaikan dengan metode analitik yang sudah umum untuk mendapatkan solusi sejatinya (exact solution). Yang dimaksud dengan metode analitik adalah metode penyelesaian model matematika dengan rumus-rumus aljabar yang sudah baku (lazim). Sebagai contoh ilustrasi, kita bisa lihat sekumpulan persoalan matematika di bawah ini.

Bagaimana cara anda menyelesaikannya?

(i) Tentukan akar-akar persamaan polinom:

23.4x7 - 1.25x6 + 120x4 + 15x3 - 120x2- x + 100 = 0

(ii) Tentukan harga x yang memenuhi persamaan:

(iii) Selesaikan sistem persamaaan lanjar (linear):

1.2a - 3b - 12c + 12d + 4.8e - 5.5f + 100g = 18

0.9a + 3b - c + 16d + 8e - 5f - 10g = 17

4.6a + 3b - 6c - 2d + 4e + 6.5f - 13g = 19

3.7a - 3b + 8c - 7d + 14e + 8.4f + 16g = 6

2.2a + 3b + 17c + 6d + 12e - 7.5f + 18g = 9

5.9a + 3b + 11c + 9d - 5e - 25f - 10g = 0

1.6a + 3b + 1.8c + 12d - 7e + 2.5f + g = -5

(iv) Tentukan nilai maksimum fungsi tiga matra (dimension):

(v) Bila diperoleh tabulasi titik-titik (x,y) sebagai berikut (yang dalam hal ini rumus fungsi y = f(x) tidak diketahui secara eksplisit):

Hitung taksiran nilai y untuk x = 3.8!

(vi) Berdasarkan titik-titik data pada tabel persoalan (v) di atas, berapa nilai f '(3.5) dan nilai f "(3.5) ?

(vii) Hitung nilai integral-tentu berikut:

(viii) Diberikan persamaan differensial biasa (PDB) dengan nilai awal:

Hitung nilai y pada t = 1.8!

Menghadapi soal-soal seperti di atas, kita mungkin menyerah, atau mungkin mengatakan bahwa soal-soal tersebut tidak dapat diselesaikan dengan metode analitik yang biasa kita kenal. Soal (i) misalnya, biasanya untuk polinom derajat 2 orang masih dapat mencari akar-akar polinom dengan rumus abc yang terkenal itu yaitu

namun, untuk polinom derajat > 2, seperti pada soal (i), tidak terdapat rumus aljabar untuk menghitung akar polinom. Yang mungkin kita lakukan adalah dengan memanipulasi polinom, misalnya dengan memfaktorkan (atau menguraikan) polinom tersebut menjadi perkalian beberapa suku. Semakin tinggi derajat polinom, jelas semakin sukar memfaktorkannya. Ada juga beberapa alternatif lain. Yang pertama dengan cara coba-coba seperti metode pembagian sintetis Horner. Dengan metode ini, polinom dibagi dengan sebuah bilangan. Jika sisa pembagiannya nol, maka bilangan tersebut adalah akar polinom. Cara kedua adalah secara grafik, yaitu dengan merajah kurva fungsi di atas kertas grafik, kemudian berdasarkan gambar kurva, kita mengambil tarikan akar secara kasar, yaitu titik poyong kurva dengan sumbu-x. Cara ini, selain kaku dan tidak praktis, ketelitian akar yang diperoleh sangat bergantung pada ketelitian penggambaran kurva.. Lagipula, merajah kurva pada kertas grafik hanya terbatas pada fungsi yang dapat digambarkan pada bidang dua matra atau tiga matra. Untuk fungsi dengan peubah lebih besar dari 3 jelas tidak dapat (malah tidak mungkin) kita gambar kurvanya. Soal nomor (ii) masih sejenis dengan soal (i), yaitu menentukan nilai x yang memenuhi kedua persamaan. Untuk soal nomor (iii), juga tidak ada rumus yang baku untuk menemukan solusi sistem persamaan lanjar. Apabila sistem persamaannya hanya berupa dua garis lurus dengan dua peubah, kita masih dapat menemukan solusinya (dalam hal ini titik potong kedua garis) dengan menggunakan rumus titik potong dua buah garis atau dengan aturan Cramer. Kita juga dapat menemukan titik potong tersebut dengan menggambar kedua garis pada kertas grafik. Untuk sistem yang terdiri dari tiga buah persamaan lanjar dengan tiga peubah, aturan Cramer masih dapat digunakan untuk memecahkan sistem. Tetapi untuk sistem dengan jumlah persamaan dan jumlah peubah lebih besar dari tiga, tidak ada rumus yang dapat dipakai untuk memecahkannya. Pada soal nomor (iv), relatif sukar mencari titik optimum fungsi yang memiliki banyak peubah. Untuk menentukan titik optimum (titik ekstrim fungsi), pertamatama orang harus menentukan turunan fungsi, menjadikan ruas kanannya sama dengan nol, lalu memeriksa jenis titik ekstrimnya. Bila fungsinya cukup rumit dan disusun oleh banyak peubah, menghitung turunan fungsi menjadi pekerjaan yang sukar atau bahkan tidak mungkin dilakukan. Pertanyaan yang agak klasik sering muncul pada soal nomor (v): bagaimana menghitung nilai sebuah fungsi bila rumus fungsinya sendiri tidak diketahui? Kita semua tahu bahwa nilai fungsi diperoleh dengan cara menyulihkan (substitute) harga dari peubahnya ke dalam rumus fungsi. Masalahnya, bagaimana kalau persamaan fungsi tersebut tidak diketahui. Yang tersedia hanyalah beberapa buah data diskrit (discrete) dalam bentuk tabel. Persoalan semacam nomor (v) ini acapkali muncul pada pengamatan fenomena alam, baik berupa eksperimen di laboratorium maupun penelitian di lapangan yang melibatkan beberapa parameter (misalnya suhu, tekanan, waktu, dan sebagainya). Pengamat tidak mengetahui relasi yang menghubungkan parameter-parameter itu. Pengamat hanya dapat mengukur nilai-nilai parameter tersebut dengan menggunakan alat ukur seperti sensor, termometer, barometer, dan sebagainya. Tidak satupun metode analitik yang yang tersedia untuk menyelesaikan persoalan jenis ini. Begitu juga soal nomor (vi) melahirkan pertanyaan yang sama, bagaimana menghitung nilai turunan fungsi bila fungsinya sendiri tidak diketahui?. Pada soal nomor (vii), tidak ada teknik integrasi yang dapat digunakan untuk fungsi yang bentuknya rumit itu. Begitu juga pada soal nomor (viii), tidak terdapat metode persamaan diferensial untuk menyelesaikannya. Dengan kata lain, persoalan (vii) dan (viii) tidak mempunyai solusi analitik.

Untuk menyelesaikan persoalan tersebut bisa digunakan metode numerik. Bagaimana menggunakan metode numerik ?

PEMBAHASAN

2.1 Metode Analitik versus Metode Numerik

Contoh-contoh yang dikemukakan di atas memperlihatkan bahwa kebanyakan persoalan matematika tidak dapat diselesaikan dengan metode analitik. Metode analitik disebut juga metode sejati karena ia memberi kita solusi sejati (exact solution) atau solusi yang sesungguhnya, yaitu solusi yang memiliki galat (error) sama dengan nol! Sayangnya, metode analitik hanya unggul untuk sejumlah persoalan yang terbatas, yaitu persoalan yang memiliki tafsiran geometri sederhana serta bermatra rendah [CHA88]. Padahal persoalan yang muncul dalam dunia nyata seringkali nirlanjar serta melibatkan bentuk dan proses yang rumit. Akibatnya nilai praktis penyelesaian metode analitik menjadi terbatas. Bila metode analitik tidak dapat lagi diterapkan, maka solusi persoalan sebenarnya masih dapat dicari dengan menggunakan metode numerik.

Metode numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematik sehingga dapat dipecahkan dengan operasi perhitungan/aritmetika biasa (tambah, kurang, kali, dan bagi). Metode artinya cara, sedangkan numerik artinya angka. Jadi metode numerik secara harafiah berarti cara berhitung dengan menggunakan angka-angka. Perbedaan utama antara metode numerik dengan metode analitik terletak pada dua hal. Pertama, solusi dengan menggunakan metode numerik selalu berbentuk angka. Bandingkan dengan metode analitik yang biasanya menghasilkan solusi dalam bentuk fungsi matematik yang selanjutnya fungsi mateamtik tersebut dapat dievaluasi untuk menghasilkan nilai dalam bentuk angka. Kedua, dengan metode numerik, kita hanya memperoleh solusi yang menghampiri atau mendekati solusi sejati sehingga solusi numerik dinamakan juga solusi hampiran (approxomation) atau solusi pendekatan, namun solusi hampiran dapat dibuat seteliti yang kita inginkan. Solusi hampiran jelas tidak tepat sama dengan solusi sejati, sehingga ada selisih antara keduanya. Selisih inilah yang disebut dengan galat (error).

Sebagai contoh ilustrasi penyelesaian dengan metode numerik, pandanglah sebuah persoalan integrasi-tentu berikut

Dengan metode analitik, kita dapat menemukan solusi sejatinya dengan mudah. Di dalam alkulus integral tentu kita mengetahui teknik pengintegralan untuk fungsi sederhana:

Maka, berdasarkan rumus diatas, kita dapat melakukan pengintegralan suku-suku dari

fungsi integralnya lalu menghitung nilai integral-tentunya sebagai berikut:

Perhatikanlah bahwa 4x - x3/3 adalah solusi analitik dalam bentuk fungsi matematik, sedangkan 22/3 adalah nilai numerik integral-tentu yang diperoleh dengan cara mengevaluasi fungsi matematik tersebut untuk batas-batas integrasi x = 1 dan x = -1.

Integrasi f(x) = 4 - x2 secara numerik

Bandingkan penyelesaian di atas bila persoalan integrasi tersebut diselesaikan dengan metode numerik sebagai berikut. Sekali lagi, di dalam kalkulus integral kita tentu masih ingat bahwa interpretasi geometri integral f(x) dari x = a sampai x = b adalah luas daerah yang dibatasi oleh kurva f(x), sumbu-x, dan garis x = a dan x = b. Luas daerah tersebut dapat dihampiri dengan cara sebagai berikut. Bagilah daerah integrasi [-1, 1] atas sejumlah trapesium dengan lebar 0.5. Maka, luas daerah integrasi dihampiri dengan luas kempat buah trapesium, atau

I » p + q + r + s

» {[f(-1) + f(-1/2)] ´ 0.5/2} + {[f(-1/2) + f(0)] ´ 0.5/2} +

{[f(0) + f(1/2)] ´ 0.5/2} + {[f(1/2) + f(1)] ´ 0.5/2}

» 0.5/2 {f(-1) + 2f(-1/2) + 2f(0) + 2f(1/2) + f(1)}

» 0.5/2 {3 + 7.5 + 8 + 7.5 + 3}

» 7.25

yang merupakan solusi hampiran (tanda “»“ artinya “kira-kira”) terhadap solusi sejati (22/3). Galat solusi hampiran terhadap solusi sejati adalah

galat = ÷ 7.25 – 22/3 ÷ = ÷ 7.25 – 7.33…÷ = 0.08333...

Tentu saja kita dapat memperkecil galat ini dengan membuat lebar trapesium yang lebih kecil (yang artinya jumlah trapesium semakin banyak, yang berarti jumlah komputasi semakin banyak). Contoh ini juga memperlihatkan bahwa meskipun solusi dengan metode numerik merupakan hampiran, tetapi hasilnya dapat dibuat seteliti mungkin dengan mengubah parameter komputasi (pada contoh perhitungan integral di atas, lebar trapesium yang dikurangi).

2.2 Metode Numerik dalam Bidang Rekayasa

Dalam bidang rekayasa, kebutuhan untuk menemukan solusi persoalan secara praktis adalah jelas. Dari kacamata rekayasawan, masih tampak banyak cara penyelesaian persoalan matematik yang dirasa terlalu sulit atau dalam bentuk yang kurang kongkrit. Penyelesaian analitik yang sering diberikan oleh kaum matematika kurang berguna bagi rekayasawan, karena ia harus dapat mentransformasikan solusi matematika yang sejati ke dalam bentuk berwudud yang biasanya meninggalkan kaidah kesejatiannya [BES97]. Solusi hampiran biasanya sudah memenuhi persyaratan rekayasa dan dapat diterima sebagai solusi. Lagipula, banyak persoalan matematika dalam bidang rekayasa yang hanya dapat dipecahkan secara hampiran. Kadang-kadang dapat pula terjadi bahwa metode analitik hanya menjamin keberadaan (atau hanya mengkarakteristikkan beberapa properti umum) solusi, tetapi tidak memberikan cara menemukan solusi tersebut[KRE88].

Bagi rekayasawan, solusi yang diperoleh secara analitik kurang kurang berguna untuk tujuan numerik. Persoalan rekayasa dalam prakteknya tidak selalu membutuhkan solusi dalam bentuk fungsi matematika menerus (continuous). Rekayasawan seringkali menginginkan solusi dalam bentuk numerik, misalnya persoalan integral tentu dan persamaan diferensial. Sebuah contoh dalam termodinamika dikemukakan di bawah ini untuk memperjelas pernyataan ini [KRE88].

Sebuah bola logam dipanaskan sampai pada suhu 100°C. Kemudian, pada saat t = 0, bola itu dimasukkan ke dalam air yang bersuhu 30°C. Setelah 3 menit, suhu bola berkurang menjadi 70°C. Tentukan suhu bola setelah 22.78 menit menit. Diketahui tetapan pendinginan bola logam itu adalah 0.1865.

Dengan menggunakan hukum pendinginan Newton, laju pendinginan bola setiap detiknya adalah

dT/dt = -k(T - 30)

yang dalam hal ini k adalah tetapan pendinginan bola logam yang harganya 0.1865. Bagi matematikawan, untuk menentukan suhu bola pada t = 22.78 menit, persamaan diferensial tersebut harus diselesaikan terlebih dahulu agar suhu T sebagai fungsi dari waktu t ditemukan. Persamaan diferensial ini dapat diselesaikan dengan metode kalkulus diferensial. Solusi umumnya adalah

T(t) = ce-kt + 308

Nilai awal yang diberikan adalah T(0)=100. Dengan menggunakan nilai awal ini, solusi khusus persamaan diferensial adalah

T(t) = 70e-0.1865 t + 30

Dengan menyulihkan t = 22.78 ke dalam persamaan T, diperoleh

T(22.78) = 70e-0.1865 ´ 22.78 + 30 = 31°C.

Jadi, suhu bola setelah 22.78 menit adalah 31°C.

Bagi rekayasawan, solusi persamaan diferensial yang berbentuk fungsi menerus ini tidak terlalu penting (bahkan beberapa persamaan diferensial tidak dapat dicari solusi khususnya karena memang tidak ada teknik yang baku untuk menyelesaikannya). Dalam praktek di lapangan, seringkali para rekayasawan hanya ingin mengetahui berapa suhu bola logam setelah t tertentu misalnya setelah 30 menit tanpa perlu mencari solusi khususnya dalam bentuk fungsi terlebih dahulu. Rekayasawan cukup memodelkan sistem ke dalam persamaan diferensial, lalu solusi untuk t tertentu dicari secara numerik.

2.3 Apakah Metode Numerik Hanya untuk Persoalan Matematika yang Rumit Saja?

Tentu saja tidak! Kita jangan berpikiran bahwa metode numerik hanya dapat menyelesaikan persoalan rumit saja. Metode numerik berlaku umum, yakni ia dapat diterapkan untuk menyelesaikan persoalan matematika sederhana (yang juga dapat diselesaikan dengan metode analitik) maupun persoalan matematika yang tergolong rumit (yang metode analitik pun belum tentu dapat menyelesaikannya). Sebagai contoh, dengan metode numerik kita dapat menghitung integral

sama mudahnya menghitung

2.4 Peranan Komputer dalam Metode Numerik

Komputer berperan besar dalam perkembangan bidang metode numerik. Hal ini mudah dimengerti karena perhitungan dengan metode numerik adalah berupa operasi aritmetika seperti penjumlahan, perkalian, pembagian, plus membuat perbandingan. Sayangnya, jumlah operasi aritmetika ini umumnya sangat banyak dan berulang, sehingga perhitungan secara manual sering menjemukan. Manusia (yang melakukan perhitungan manual ini) dapat membuat kesalahan dalam melakukannya. Dalam hal ini, komputer berperanan mempercepat proses perhitungan tanpa membuat kesalahan. Penggunaan komputer dalam metode numerik antara lain untuk memprogram.

Langkah-langkah metode numerik diformulasikan menjadi program komputer. Program ditulis dengan bahasa pemrograman tertentu, seperti FORTRAN, PASCAL, C, C++, BASIC, dan sebagainya. Sebenarnya, menulis program numerik tidak selalu diperlukan. Di pasaran terdapat banyak program aplikasi komersil yang langsung dapat digunakan. Beberapa contoh aplikasi yang ada saat ini adalah MathLab, MathCad, Maple, Mathematica, Eureka, dan sebagainya. Selain itu, terdapat juga library yang berisi rutin-rutin yang siap digabung dengan program utama yang ditulis pengguna, misalnya IMSL (International Mathematical and Statistical Library) Math/Library yang berisi ratusan rutin-rutin metode numerik. Selain mempercepat perhitungan numerik, dengan komputer kita dapat mencoba berbagai kemungkinan solusi yang terjadi akibat perubahan beberapa parameter.

Solusi yang diperoleh juga dapat ditingkatkan ketelitiannya dengan mengubahubah nilai parameter. Kemajuan komputer digital telah membuat bidang metode numerik berkembang secara dramatis. Tidak ada bidang matematika lain yang mengalami kemajuan penting secepat metode numerik. Tentu saja alasan utama penyebab kemajuan ini adalah perkembangan komputer itu sendiri, dari komputer mikro sampai komputer Cray, dan kita melihat perkembangan teknologi komputer tidak pernah berakhir. Tiap generasi baru komputer menghadirkan keunggulan seperti waktu, memori, ketelitian, dan kestabilan perhitungan. Hal ini membuat ruang penelitian semakin terbuka luas.

Tujuan utama penelitian itu adalah pengembangan algoritma numerik yang lebih baik dengan memanfaatkan keunggulan komputer semaksimal mungkin. Banyak algoritma baru lahir atau perbaikan algoritma yang lama didukung oleh komputer. Bagian mendasar dari perhitungan rekayasa yang dilakukan saat ini adalah perhitungan "waktu nyata" (real time computing), yaitu perhitungan keluaran (hasil) dari data yang diberikan dilakukan secara simultan dengan event pembangkitan data tersebut, sebagaimana yang dibutuhkan dalam mengendalikan proses kimia atau reaksi nuklir, memandu pesawat udara atau roket dan sebagainya [KRE88]. Karena itu, kecepatan perhitungan dan kebutuhan memori komputer adalah pertimbangan yang sangat penting. Jelaslah bahwa kecepatan tinggi, keandalan, dan fleksibilitas komputer memberikan akses untuk penyelesaian masalah praktek. Sebagai contoh, solusi sistem persamaan lanjar yang besar menjadi lebih mudah dan lebih cepat diselesaikan dengan komputer. Perkembangan yang cepat dalam metode numerik antara lain ialah penemuan metode baru, modifikasi metode yang sudah ada agar lebih mangkus, analisis teoritis dan praktis algoritma untuk proses perhitungan baku, pengkajian galat, dan penghilangan jebakan yang ada pada metode [KRE88].

2.5 Mengapa Kita Harus Mempelajari Metode Numerik?

Seperti sudah disebutkan di atas, para rekayasawan dan para ahli ilmu alam, dalam pekerjaannya sering berhadapan dengan persamaan matematik. Persoalan yang muncul di lapangan diformulasikan ke dalam model yang berbentuk persamaan matematika. Persamaan tersebut mungkin sangat kompleks atau jumlahnya lebih dari satu. Metode numerik, dengan bantuan komputer, memberkan cara penyelesaian persoalan matematika dengan cepat dan akurat. Terdapat beberapa alasan tambahan mengapa kita harus mempelajari metode numerik [CHA91]:

1. Metode numerik merupakan alat bantu pemecahan masalah matematika yang sangat ampuh. Metode numerik mampu menangani sistem persamaan besar, kenirlanjaran, dan geometri yang rumit yang dalam praktek rekayasa seringkali tidak mungkin dipecahkan secara analitik.

2. Seperti sudah disebutkan diatas, di pasaran banyak tersedia program aplikasi numerik komersil. Penggunaan aplikasi tersebut menjadi lebih berarti bila kita memiliki pengetahuan metode numerik agar kita dapat memahami cara paket tersebut menyelesaikan persoalan.

3. Kita dapat membuat sendiri program komputer tanpa harus membeli paket programnya. Seringkali beberapa persoalan matematika yang tidak selalu dapat diselesaikan oleh program aplikasi. Sebagai contoh, misalkan ada program aplikasi tertentu yang tidak dapat dipakai untuk menghitung integrasi lipat dua, òò, atau lipat tiga, òòò. Mau tidak mau, kita harus menulis sendiri programnya. Untuk itu, kita harus mempelajari cara pemecahan integral lipat dua atau lebih dengan metode numerik.

4. Metode numerik menyediakan sarana untuk memperkuat kembali pemahaman matematika. Karena, metode numerik ditemukan dengan menyederhanakan matematika yang lebih tinggi menjadi operasi matematika yang mendasar.

2.6 Tahap-Tahap Memecahkan Persoalan Secara Numerik

Ada enam tahap yang dilakukan dakam pemecahan persoalan dunia nyata dengan metode numerik, yaitu

1. Pemodelan

Ini adalah tahap pertama. Persoalan dunia nyata dimodelkan ke dalam persamaan matematika .

2. Penyederhanaan model

Model matematika yang dihasilkan dari tahap 1 mungkin saja terlalu kompleks, yaitu memasukkan banyak peubah (variable) atau parameter. Semakin kompleks model matematikanya, semakin rumit penyelesaiannya. Mungkin beberapa andaian dibuat sehingga beberapa parameter dapat diabaikan. Contohnya, faktor gesekan udara diabaikan sehingga koefisian gesekan di dalam model dapat dibuang. Model matematika yang diperoleh dari penyederhanaan menjadi lebih sederhana sehingga solusinya akan lebih mudah diperoleh.

3. Formulasi numerik

Setelah model matematika yang sederhana diperoleh, tahap selanjutnya adalah memformulasikannya secara numerik, antara lain:

a. menentukan metode numerik yang akan dipakai bersama-sama dengan analisis galat awal (yaitu taksiran galat, penentuan ukuran langkah, dan sebagainya).

Pemilihan metode didasari pada pertimbangan :

- apakah metode tersebut teliti?

- apakah metode tersebut mudah diprogram dan waktu pelaksanaannya cepat?

- apakah metode tersebut tidak peka terhadap perubahan data yang cukup kecil?

b. menyusun algoritma dari metode numerik yang dipilih.

4. Pemrograman

Tahap selanjutnya adalah menerjemahkan algoritma ke dalam program komputer dengan menggunakan salah satu bahasa pemrograman yang dikuasai.

5. Operasional

Pada tahap ini, program komputer dijalankan dengan data uji coba sebelum data yang sesungguhnya.

6. Evaluasi

Bila program sudah selesai dijalankan dengan data yang sesungguhnya, maka hasil yang diperoleh diinterpretasi. Interpretasi meliputi analisis hasil run dan membandingkannya dengan prinsip dasar dan hasil-hasil empirik untuk menaksir kualitas solusi numerik, dan keputusan untuk menjalankan kembali program dengan untuk memperoleh hasil yang lebih baik.

2.7 Peran Ahli Informatika dalam Metode Numerik

Dari tahap-tahap pemecahan yang dikemukan di atas, tahap 1 dan 2 melibatkan para pakar di bidang persoalan yang bersangkutan. Kalau persoalannya dalam bidang eknik Sipil, maka orang dari bidang Sipil-lah yang menurunkan model matematikanya. Kalau persoalannya menyangkut bidang Teknik Kimia (TK), maka ahli Teknik Kimia-lah yang mempunyai kemmapuan membentuk model matematikanya. Dimanakah peran orang Informatika? Orang Informatika baru berperan pada tahap 3 dan 4, dan 5. Tetapi, agar lebih memahami dan menghayati persoalan, sebaiknya orang Informatika juga ikut dilibatkan dalam memodelkan, namun perannya hanyalah sebagai pendengar. Tahap 6 memerlukan kerjasama informatikawan dengan pakar bidang bersangkutan. Bersama-sama dengan pakar, informatikawan mendiskusikan hasil numerik yang diperoleh, apakah hasil tersebut sudah dapat diterima, apakah perlu dilakukan perubahan parameter, dsb.

2.8 Perbedaan Metode Numerik dengan Analisis Numerik

Untuk persoalan tertentu tidaklah cukup kita hanya menggunakan metode untuk memperoleh hasil yang diinginkan; kita juga perlu mengetahui apakah metode tersebut memang memberikan solusi hampiran, dan seberapa bagus hampiran itu [BUC92]. Hal ini melahirkan kajian baru, yaitu analisis numerik. Metode numerik dan analisis numerik adalah dua hal yang berbeda. Metode adalah algoritma, menyangkut langkah-langkah penyelesaian persoalan secara numerik, sedangkan analisis numerik adalah terapan matematika untuk menganalisis metode [NOB72]. Dalam analisis numerik, hal utama yang ditekankan adalah analisis galat dan kecepatan konvergensi sebuah metode. Teorema-teorema matematika banyak dipakai dalam menganalisis suatu metode. Di dalam buku ini, kita akan memasukkan beberapa materi analisis numerik seperti galat metode dan kekonvergenan metode. Tugas para analis numerik ialah mengembangkan dan menganalisis metode numerik. Termasuk di dalamnya pembuktian apakah suatu metode konvergen, dan menganalisis batas-batas galat solusi numerik.Terdapat banyak sumber galat, diantaranya tingkat ketelitian model matematika, sistem aritmetik komputer, dan kondisi yang digunakan untuk menghentikan proses pencarian solusi. Semua ini harus dipertimbangkan untuk menjamin ketelitian solusi akhir yang dihitung.

2.9 Analisis Galat (error) dan Masalah-masalah Mendasar Dalam Komputasi Numeris (dengan Turbo Pascal dan FORTRAN 77/90/95)

A. Kendala Dalam Sistem Komputasi Numerik

Dalam komputasi numerik, yaitu perhitungan yang menggunakan bahasa-bahasa pemrograman (Pascal, FORTRAN, C, C++, dll.), selalu dijumpai beberapa kendala sistematis yang berhubungan dengan sistem kerja “prosesor” dan atau “koprosesor” dari

komputer yang digunakan. Kendala-kendala yang dijumpai umumnya berupa sesatan (error), pembulatan (round-off) dan stabilitas (stability). Di samping itu, problem-problem íntrinsik’ yang dimiliki oleh setiap compiler bahasa pemrograman juga turut mempengaruhi kendala-kendala tersebut.

B. Solusi Analitis dan Numeris

Secara matematis, semua problem seharusnya dapat diselesaikan, betapapun sulitnya. Pada dasarnya, solusi problem matematis tersebut dapat digolongkan dalam 2 bagian besar berikut:

Ø Solusi EKSAK (exact solution) : hasil penyelesaian suatu problem matematis yang identik dengan hasil penyelesaian yang diperoleh melalui metode analitis

Ø Solusi PENDEKATAN (approximative solution) : hasil penyelesaian suatu problem matematis dengan metode numeric yang umumnya merupakan pendekatan terhadap solusi eksak karena adanya ketidakpastian dan sesatan (uncertainty and errors) dalam proses penyelesaian problem Namun, di dalam dunia teknik umumnya lebih dipilih teknik-teknik solusi yang praktis dan menghemat waktu. Dalam hal ini, solusi pendekatan seringkali digunakan karena dianggap relatif praktis dan dapat menghemat waktu.

C. Teknis dan Proses Penyelesaian Problem

Secara sistematis, pada dasarnya teknis dan proses penyelesaian dapat dilakukan berdasarkan urutan atau sekuens kerja berikut:

1. Formulasi yang tepat dari suatu model matematis dan atau pada model numerik yang sepadan

2. Penyusuanan suatu metode untuk penyelesaian problem numerik

3. Implementasi metode yang dipilih untuk proses komputasi solusi/jawaban.

Sekuens teknik dan proses penyelesaian problem matematis

Ø Problem nyata : fenomena atau proses-proses kehidupan alamiah yang dijumpai sehari-hari (gravitasi, banjir, populasi, gerakan angin, dll.)

Ø Matematika digunakan untuk pembentukan model karena mempunyai bahasa dan kerangka-kerja yang baku.

D. Model Matematis dan Solusi Numeris

Dalam problem-problem teknik, rekayasa ataupun perancangan, pada umumnya dapat diselesaikan atau dicari solusinya secara numerik, karena ‘model matematik’ yang dimiliki diubah terlebih dahulu menjadi ‘model numeris’:

Ø Pendekatan Numerik : dilakukan untuk memudahkan pemahaman persepsi MODEL MATEMATIKA, dengan cara mengalihkannya menjadi MODEL NUMERIK.

Ø Model Numerik : model yang pada prinsipnya dapat diselesaikan menggunakan sejumlah tertentu tahapan-tahapan pendekatan atau perhitungan .

E. Solusi Numeris dan Sesatan

Seperti telah dijelaskan di atas, setiap solusi-solusi numeris yang diaplikasikan pada komputer selalu berkendala, namun demikian pada umumnya masih dapat ditoleris berdasarkan analisis kesalahan (galat) yang dilakukan:

1. Sesatan Pemotongan (truncation error) : sesatan atau kesalahan yang terjadi karena adanya pemotongan atau penyederhanaan proses perhitungan yang berlangsung secara tak berhingga è IINTUIITIIF (matthemattiicalllly unsollvablle probllem !! ))

2. Sesatan Pembulatan (round-off error) : sesatan atau kesalahan yang terjadi karena adanya pembulatan atau penyederhanaan penyimpanan bilangan yang dilakukan dalam “memori” komputer è Notasi ilmiah dalam PERANGKAT KERAS !!

F. Konsep Konvergensi

Konvergensi seringkali digunakan dalam solusi-solusi numeris, sebagai parameter (alat estimasi) untuk memperkirakan bilamana problem yang dihadapi memiliki solusi atau jawab yang “mendekati solusi eksak”, “dapat diterima dengan prosentase galat tertentu”, atau bahkan “tidak memiliki solusi”. Bila suatu problem menemui atau cenderung pada suatu “domain jawab”, maka problem tersebut dapat dikatakan ‘konvergen’, sedangkan bila sebaliknya, maka problem tersebut disebut ‘divergen’.

Pengertian-pengertin lain yang berhubungan dengan konvergensi ini adalah:

v Order Konvergensi (order of convergence) : laju atau kecepatan perubahan sesatan pemotongan menjadi nol sebagai fungsi dari parameter-parameter metode yang dipilih.

1. Metode menuju konvergen setara 1/N

2. Metode menuju konvergen setara 1/k3,5

3. Metode menuju konvergen setara h2

4. Metode menuju konvergen secara eksponensial

5. Sesatan pemotongan berorder 1/N5

6. Order sesatan sebesar h4

7. Laju konvergensi setara (log N)/N

v Notasi Ilmiah (scientific notation) : representasi angka atau penulisan bilangan dalam memori komputer berdasarkan kaidahbaku perangkat keras, yaitu : Pernyataan “berorder 1/N2 ” berarti juga “berkelakuan sebagai 1/N2 ”, yang umumnya ditulis sebagai :

Simbol 0-besar didefinisikan sebagai berikut : Suatu fungsi f(x) dikatakan sebagai O( g (x))pada saat x menuju L bila :

Coba pikirkan !

1. 5/N2,10/N 2 + 1/N 3 dan -6,2/N 2 + e –N /N semuanya adalah O (1/N 2) pada saat N menuju l = ¥

2. 4h, 3h + h 2 / log h dan –h+h 2 – h 3 semuanya dalah adalah O (h) pada saat h menuju L = 0.

Coba buat programnya dan analisis order konvergensinya !

1. Estimasi atau solusi pendekatan untuk turunan dari persamaan : F (x) = sin X 2 pada x = 5, dengan metode :

2. Analisislah propagasi harga-harga dari deret Taylor untuk e (bilangan natural)dan e -12, yaitu :

3.

,N = jumlah bilangan berhingga

Berikut ini diberikan contoh-contoh program, dalam bahasa Turbo Pascal dan FORTRAN.

Program pertama merupakan program untuk mengestimasi alat sistematis yang dimiliki suatu komputer dan programnya (disebut epsilon mesin). Diagram aliran (organigram) dari proses penghitungan ‘epsilon mesin’ tersebut adalah sebagai berikut:

Diagram alir proses penghitungan epsilon mesin (epsm).

Listing program (source code) dari proses penghitungan di atas, dalam bahsa Turbo Pascal, adalah sebagai berikut:

Sedangkan, dalam bahsa FORTRAN (77, 90, atau 95), adalah sebagai berikut:

Program kedua merupakan program untuk mengestimasi secara numeris ungkapan exp(x). Diagram aliran (organigram) dari proses penghitungan tersebut adalah sebagai berikut:

Diagram alir proses penghitungan eps(x).

BAB III

PENUTUP

3.1 Kesimpulan

Berdasarkan pembahasan diatas bisa ditarik kesimpulan bahwa :

1. Metode numerik adalah teknik yang digunakan untuk memformulasikan persoalan matematik sehingga dapat dipecahkan dengan operasi perhitungan/aritmetika biasa (tambah, kurang, kali, dan bagi).

2. Metode numerik berlaku umum, yakni ia dapat diterapkan untuk menyelesaikan persoalan matematika sederhana (yang juga dapat diselesaikan dengan metode analitik) maupun persoalan matematika yang tergolong rumit (yang metode analitik pun belum tentu dapat menyelesaikannya).

3. Komputer berperan besar dalam perkembangan bidang metode numerik. Hal ini mudah dimengerti karena perhitungan dengan metode numerik adalah berupa operasi aritmetika seperti penjumlahan, perkalian, pembagian, plus membuat perbandingan.

4. Metode numerik dan analisis numerik adalah dua hal yang berbeda. Metode adalah algoritma, menyangkut langkah-langkah penyelesaian persoalan secara numerik, sedangkan analisis numerik adalah terapan matematika untuk menganalisis metode.

5. Dalam komputasi numerik, yaitu perhitungan yang menggunakan bahasa-bahasa pemrograman (Pascal, FORTRAN, C, C++, dll.), selalu dijumpai beberapa kendala sistematis yang berhubungan dengan sistem kerja “prosesor” dan atau “koprosesor” dari komputer yang digunakan. Kendala-kendala yang dijumpai umumnya berupa sesatan (error), pembulatan (round-off) dan stabilitas (stability).

6. Kendala – kendala dalam komputasi numerik bisa selesaikan dengan :

a. Solusi Analitis dan Numeris

b. Teknis dan Proses Penyelesaian Problem

c. Model Matematis dan Solusi Numeris

d. Solusi Numeris dan Sesatan

e. Konsep Konvergensi

3.2 Saran-saran

1. Dalam penyelesaian metode numerik harus di sertai dengan alat-alat bantu elektronik seperti Kalkulator dan juga komputer yang ada Microsoft Office terutama Ms. Ofice Exel.

2. Di dalam hal ini anda harus menguasai sedikit tidaknya rumus-rumus matematika dasar supanya anda bisa membandingkan hasilnya dengan penyelesaian metode numerik yang anda gunakan.

3. Saat pengerjaan soal-soal anda harus benar-benar teliti dan konsentrasi penuh supaya soal yang anda kerjakan tidak mendapat hasil yang salah atau galat yang melebihi angka 1.

DAFTAR PUSTAKA

Bismo, Setijo, “Kumpulan Bahan Kuliah Metode Numerik”, Jurusan TGPFTUI, 1999.

http:\\www.ensiklopedi\metode_numerik_secara_umum\

http:\\www.met_num\galat\

http:\\www.met_num\iterasi\

Baca selengkapnya...

Template by : kendhin x-template.blogspot.com