Metode Faktorisasi Numerik (c++)
#include <stdlib.h>
#include <conio.h>
#include <stdio.h>
#include <math.h>
main()
{
FILE *stream;
int j, i;
double A0, A1, A2;
double b01, b0, a1, a0, tempb0;
char jawab, ganda, filedata[20];
do
{
i = 1;
b0 = 0.0;
cout << "\nMetode Faktorisasi P3(x) = P(1,2)\n";
cout << "================================\n\n";
cout << "\nMasukkan nama file penyimpanan Data = ";
cin >> filedata;
stream = fopen(filedata, "w+");
cout << "\nMasukkan Nilai A2 = ";
cin >> A2;
cout << "\nMasukkan Nilai A1 = ";
cin >> A1;
cout << "\nMasukkan Nilai A0 = ";
cin >> A0;
cout <<"\nBerapa kali Iterasi = ";
cin >> j;
printf("\n\n\t---------------------------------\n");
printf("\titerasi\t b0\t a1\t a0\n");
printf("\t---------------------------------\n");
fprintf(stream,"\n\n\t---------------------------------\n");
fprintf(stream,"\titerasi\t b0\t a1\t a0\n");
fprintf(stream,"\t---------------------------------\n");
do
{
if(b0 != 0)
{
a1 = A2 - b0;
a0 = A1 - (a1*b0);
b01 = A0/a0;
if (i != j)
{
printf("\t %d\t%.3f\t%.3f\t%.3f\n", i, b01, a1, a0);
fprintf(stream,"\t %d\t%.3f\t%.3f\t%.3f\t\n", i, b01, a1,
a0);
}
else
{
break;
}
}
else
{
a1 = A2 - b0;
a0 = A1 - (a1*b0);
printf("\t %d\t%.3f\t%.3f\t%.3f\n", i, b0, a1, a0);
fprintf(stream,"\t %d\t%.3f\t%.3f\t%.3f\t\n", i, b0, a1, a0);
if (a0 != 0)
{
b01 = A0/a0;
}
else
{
break;
}
}
tempb0 = b0;
b0 = b01;
b01 = tempb0;
i++;
}while( i <= j);
printf("\t---------------------------------\n");
fprintf(stream,"\t---------------------------------\n");
if (a0 != 0)
{
do
{
} while(ganda != 't');
}
else
{
printf("\n\na0 = %.2f not valid (error floating point)\n\n", a0);
}
} while(jawab != 't');
fclose(stream);
return 0;
}
Tokoh masyarakat mampu menggulingkan rezim Soeharto (1998) yang akhirnya mengundurkan diri sebagai dari kursi kepresidenan. Kampus tempat lahirnya para aktivis, intelektual, dan pempimpin masa depan telah memberikan perannya yang strategis di tengah masyarakat.
20/01/2012
Teknologi komputer berada di berbagai perangkat. Contoh : Mesin ATM, kamera digital, teknologi fuel injection, telephone dll. Pemrograman memberikan perintah kepada mesin
untuk melaksanakan instruksi Perkuliahan ini akan memberikan pemahaman dasar tentang pemrograman komputer, sehingga mahasiswa dapat memahami konsep pemrograman.
processor, harddisk, dll. Hardware = dapat disentuh HardwareSoftware, Software komputer
direpresentasikan sebagai program. Program membuat komputer beroperasi. Contoh : Sistem Operasi, Game, Word processing application. Program adalah seperangkat aturan yang menentukan apa yang harus dilakukan oleh komputer.
Ada beberapa perangkat utama di komputer Keyboard Mouse Hard drive External drive RAM CPU
Digitalisasi informasi berarti menggunakan angka untuk merepresentasikan berbagai hal, tidak hanya angka. Beberapa elemen data digital antara lain : suara,video, warna, teks dan gambar.
Data yang berbentuk digital dapat dikelola oleh mesin. Representasi digital menggunakan dua angka yaitu 1 dan 0.
Komputer mengenal dua digit yang disebut binary digits yaitu 0 dan 1. 8 bit = 1 byte. Bilangan 0 dan 1 digunakan untuk mendeskripsikan data digital, contoh : foto digital, musik digital, password, dll. Komputer : Mesin Elektronik Komputer adalah mesin elektronik. Untuk mengoperasikan diperlukan listrik. Sumber listrik berupa batery atau sumber listrik lainnya
Bit 0 dan 1 dapat digunakan untuk merepresentasikan status stop dan flow. Status 0 dan 1 digunakan pada bahasa mesin. Bahasa mesin merupakan bahasa dasar sebagai perintah terhadap apa yang harus dikerjakan oleh mesin.
Bahasa komputer merupakan hal penting untuk berkomunikasi antara manusia dan mesin tentang apa yang dibutuhkan, diinginkan. Computer languages are similar to spoken languages in that you must use them very precisely so that you are not misunderstood by the computer.
Setiap bahasa mempunyai grammar, atau syntak, yang harus diikuti agar komputer dapat memahami terhadap bahasa yang digunakan. Berikut contoh bahasa pada real world : English: Hello, how are you? French: Bonjour! C¸ a va bien? German: Guten tag. Wie geht’s? Japanese: Konnichi wa. O genki desu ka?
Seorang programmer harus mempelajari “bagaimana berbeicara” dengan komputer. Contoh beberapa bahasa pemrograman Statement di atas arti nya : Apabila nilai pada variabel x
lebih besar dari 5, maka akan dicetak kata “greater.” Level Bahasa Semua bahasa pemrograman harus ditranslate ke bahasa mesin, sebagai bahasa yang dikenal oleh mesin. Terdapat dua level bahasa pemrograman : Bahasa tingkat tinggi dan bahasa tingkat rendah.
A. Bahasa Tingkat Tinggi
Bahasa tingkat tinggi adalah bahasa di atas bahasa mesin. Bahasa tingkat tinggi menggunakan kata-kata dalam bahasa inggris untuk memberikan perintah pada komputer. Programmer bahasa tingkat tinggi tidak perlu tahu apa-apa tentang bagaimana komputer itu menyelesaikan
pekerjaannya. Program ditulis dalam bahasa tingkat tinggi berjalan lebih lambat pada komputer karena bahasa ini perlu diterjemahkan ke dalam bahasa mesin. Contoh : Pascal, Cobol, Fortran, BASIC, C, Cþþ, Perl, and Java.
B. Bahasa Tingkat Rendah
Posisi bahasa tingkat rendah persis di atas bahasa mesin. Dengan demikian, mereka tidak mengalami penterjemahan sebanyak bahasa tingkat tinggi. Namun, relatif lebih sulit dipahami karena mereka bergantung pada pemahaman yang lebih pada pekerjaan internal mesin
Bahasa Assembly adalah bahasa tingkat rendah. Untuk seorang pemrogram BASIC, C mungkin dianggap sebagai bahasa tingkat rendah, karena memungkinkan programmer untuk memiliki kontrol lebih pada tingkat yang lebih rendah daripada programmer BASIC.
Translators memecah tingkat tinggi dan kode bahasa tingkat rendah ke dalam bahasa mesin yang dimengerti oleh prosesor tertentu dalam CPU. Ada dua jenis penerjemah: interpreter dan compiler Interpreter akan menerjemahkan satu baris kode pada satu waktu dan menghasilkan pesan kesalahan pada saat itu juga. Compiler menerjemahkan seluruh file kode sekaligus, tidak hanya baris demi baris. Compiler tidak akan menghasilkan pesan kesalahan hingga semua kode telah diterjemahkan. File asli atau program yang ditulis programmer disebut source code. kode Objek adalah hasil terjemahan dan merupakan bahasa mesin versi dari file asli.
C++ adalah contoh dari sebuah bahasa dikompilasi, sementara BASIC adalah satu ditafsirkan.
E. Algoritma : The basic for all design to solution of programming problems Sebuah algoritma adalah seperangkat langkah-langkah untuk memecahkan masalah. Langkah-langkah ini dapat mengulang dan bisa melibatkan beberapa keputusan, seperti pilihan dari dua atau lebih hal. Setiap langkah algoritma harus mengikuti langkah sebelumnya. Jika perlu, ulangi beberapa langkah dan melewatkan langkah yang lain jika keputusan panggilan untuk tindakan itu.
Berikut contoh algoritma Sholat Tarawih di Masjid.
1. Pergi ke Masjid.
2. Ambil air wudlu.
3. Sholat Isya’.
4. Sholat Tarawih.
5. Pulang.
Suatu algoritma memiliki tiga bagian, yaitu: Langkah yang dibatasi. Langkah yang dapat diulangi Langkah yang memungkinkan pengambilan keputusan. Latihan. Buat algoritma berdasarkan kebiasaan seharihari anda.
Menentukan suatu masalah atau tugas dan merencanakan suatu algoritma untuk menangani tugas tersebut. Menggunakan bahasa pemrograman untuk mengekspresikan algoritma yang sehingga komputer akan dapat mengeksekusi kode tersebut. Kebanyakan orang berpikir tentang pemrograman sebagai hanya tentang baris kode-simbol dan script. Namun pemrogranan lebih dari kode, namun, yang merupakan cara berpikir tentang masalah dan merancang solusi yang kemudian dapat ditulis dalam bahasa pemrograman.
Komputer terdiri dari : Hardware dan Software
Komputer merupakan perangkat elektronik yang dapat mengenali perubahan 0 dan 1 (dasar
digitizing)
Pemrograman bergantung pada kemampuan programmer untuk menulis baris perintah
Ada 2 level bahasa pemrograman : High-Level Language dan Low-Level Language
1. Computer program -> serangkaian instruksi untuk komputer
2. Stored program concept -> instruksi tertulis dalam program yang disimpan dan dijalankan oleh CPU ketika dibutuhkan
3. Programing -> Proses penulisan (coding) program
4. Programer -> Orang yang melakukan programing.
|
V
Coding
|
V
Program komputer
|
V
Stored
int main ()
{
statemen-statemen;
return 0;
}
Misalkan bilangan desimal yang akan dikonversikan adalah 25 basis 10.
Maka langkah penyelesaiannya adalah :
25 : 2 = 12,5 —> jawaban ini memang benar, namun tahapan tersebut bukanlah tahapan yang kita inginkan, tahapan yang tepat adalah sebagai berikut :
12 : 2 = 6 sisa 0 —> walaupun sisa nol jangan lupa tetap ditulis ya
6 : 2 = 3 sisa 0
3 : 2 = 1 sisa 1
1 : 2 = 0 sisa 1
0 : 2 = 0 sisa 0 —> (end)
5 : 8 = 0 sisa 0
0 : 8 = 0 sisa 0 —> (end)
Gimana udah bisa kan?
bilangan desimal yang akan kita konversikan adalah 243 basis 10. Karena heksadesimal berbasis 16 maka kita bagi dengan angka 16 ya
15 : 15 = 0 sisa F —> eits… karena ini bilangan heksadesimal maka bukan 15 yang kita tulis tapi F ya jangan lupa
0 : 16 = 0
jadi hasil konversinya adalah F3 basis 16. Gimana, mudahkan?
Proses konversi bilangan biner ke bilangan desimal adalah proses perkalian setiap bit pada bilangan biner dengan perpangkatan 2, dimana perpangkatan 2 tersebut berurut dari kanan ke kiri bit bernilai (^=untuk pangkat) 2^0 sampai 2^n. Langsung saja ya dol.. Bilangan biner yang akan kita konversikan adalah 11001 basis 2. Misal bilangan tersebut posisinya saya rubah dari kanan ke kiri menjadi seperti ini
1
0
0 —> ini semua disebut bit
1
1
(paham kan dol?)
1 —> 1 x 2^0 = 1
0 —> 0 x 2^1 = 0
0 —> 0 x 2^2 = 0
1 —> 1 x 2^3 = 8
1 —> 1 x 2^4 = 16 —> perhatikan, semakin kebawah nilainya perpangkatannya semakin besar
Jadi hasil dari konversi tersebut adalah 1+0+0+8+16 = 25 basis 10. Kalau 25 basis 10 ini kita konversikan ke biner hasilnya sama gak ya?
Desimal beres. Sekarang masuk ke oktal. Untuk merubah bilangan biner ke bilangan oktal, perlu diperhatikan bahwa setiap bilangan oktal mewakili 3 bit dari bilangan biner. Maka jika kita memiliki bilangan biner 110111 basis 2. Langkah pertama dalam penyelesaiannya adalah, kita pisahkan setiap 3 bit dari kanan ke kiri, maka akan kita dapat 110 dan 111, sekarang kita lakukan proses konversi terpisah dulu ke desimal. 110 dikonversikan menjadi 6 dan 111 dikonversikan menjadi 7. maka hasilnya adalah 67 basis 8. (iya itu mudah karena kebetulan keika kita bagi 3 bit dari kanan ke kiri itu pas, coba kalau hanya ada 5 bit? Jangan bingung.. ketika kita menemukan soal yang hanya mempunyai 5 bit saja, maka kita tambah saja angka 0 didepannya (ingat! di bab sebelumnya kita menghilangkan angka 0 didepannya kan
Lanjut lagi ayo dol, sekarang ke heksadesimal
1110 = 14 dan 0010 = 2. Nah, ingat kalau 14 itu dilambangkan apa di heksadesimal? Ya, 14 dilambangkan dengan E basis 16. Dengan demikian, hasil konversinya adalah E2 basis 16.
Ini tidak begitu susah kok, tinggal temen temen kalikan aja dengan perpangkatan 8. Misal kita punya bilangan Oktal 71 basis 8, bilangan ini akan kita konversikan ke bilangan desimal, gini ni temen temen caranya. susunannya kita ubah dulu ya menjadi
1
7
Setelah kita rubah susunannya, terus kita mulai deh mengkonversikan,
1 x 8^0= 1
7 x 8^1 = 56
Langsung masuk ke contoh aja ya. Aku punya bilangan oktal 57 basis 8, bilangan ini mau aku rubah ke bilangan biner. Cara mengkonversikannya gini dol lakukan proses konversi setiap bilangan tersebut masing2 ke 3 bit bilangan biner. Nah, angka 5 jika dikonversi ke biner menjadi….? sip, bener deh jawabannya 1012. Nah, 7, jika dikonversi ke biner menjadi…? iya bener banget 1112. Maka hasilnya adalah 101111 basis 2. Gimana mudah kan?
Untuk konversi oktal ke heksadesimal, kita akan membutuhkan perantara, yaitu bilangan biner. Maksudnya? Maksudnya adalah kita konversi dulu oktal ke biner, lalu konversikan nilai biner tersebut ke nilai heksadesimalnya. Nah, baik yang konversi oktal ke biner maupun biner ke heksadesimal kan udah dijelaskan. Coba buktikan, bahwa bilangan oktal 72 basis 8 jika dikonversi ke heksadesimal menjadi 3A basis 16. Bisa kan? Bisa dong…
Untuk proses konversi ini, caranya sama saja dengan proses konversi biner ke desimal, hanya saja kali ini perpangkatan yang digunakan adalah perpangkatan 16, bukan perpangkatan 2. Sebagai contoh, aku mau mengkonversikan bilangan heksa C8 basis 16. Maka aku ubah dulu susunan bilangan heksa tersebut, mulai dari kanan ke kiri, sehingga menjadi sebagai berikut :
8
C
terus dilakukan proses perkalian dengan perpangkatan 16, sebagai berikut :
8 x 160 = 8
Maka diperolehlah hasil konversinya bernilai 8 + 192 = 200 basis 10
Dalam proses konversi heksadesimal ke biner, setiap simbol dalam heksadesimal mewakili 4 bit dari biner. Misalnya aku ingin melakukan proses konversi bilangan heksa B7 basis 16 ke bilangan biner Maka setiap simbol di bilangan heksa tersebut aku konversi terpisah ke biner. Ingat, B basis 16 merupakan simbol untuk angka desimal 11 basis 10. Nah, desimal 1110 jika dikonversi ke biner menjadi 1011 basis 2, sedangkan desimal 7 basis 10 jika dikonversi ke biner menjadi 0111 basis 2. Maka bilangan binernya adalah 10110111 basis 2, atau kalau dibuat ilustrasinya seperti berikut ini :
B = 7 —-> bentuk heksa
Nah, sama seperti konversi oktal ke heksadesimal, kita membutuhkan bantuan bilangan biner. Lakukan terlebih dahulu konversi heksadesimal ke biner, lalu konversikan nilai biner tersebut ke oktal. Sebagai latihan, buktikan bahwa nilai heksadesimal E7 basis 16 jika dikonversi ke oktal menjadi 347 basis 8. Hehe…Kamu bisa!!!
#include
{
short int j, hasil, i;
{
hasil=x%2; //mencari nilai sisa pembagian x dengan 2
x=(x-hasil)/2; //nilai x dikurangi dengan variabel ‘hasil’
i–; //decrement nilai i
bin[i]=hasil; //nilai biner dari x (yang merupakan nilai dari variabel ‘hasil’, dimasukkan ke array bin satu per satu
}
{
printf(“%d”, bin[j]); //cetak nilai dari array ‘bin[]‘
if ((j+1) % 4 == 0) //sewaktu mencetak, beri spasi setiap 4 bit
printf(” “);
}
}
{
printf(“Nilai desimal x = “);
scanf(“%d”,&x); //ambil nilai yang diketik dan simpan pada alamat x
}