Tuesday, 29 March 2011

Analysis program:

Program ini adalah untuk menentukan atau mengetahui apakah bilangan yang diinputkan itu genap atau ganjil. Disini saya menggunakan fungsi if else untuk memprosesnya. Dimana if(x%2==0) berarti termasuk bilangan genap, lalu else sebaliknya.

Algoritma :
1. Inputkan tahun (x)
2. Proses .. if(x mod 2 =o) maka Bilangan Genap. else.. maka Bilangan Ganjil
3. Output Hasil (Bilangan Genap atau Ganjil)

Program :

[sourcecode language="css"]
#include <iostream.h>

class gg {
friend istream& operator >> (istream&, gg&);

public:
Hitung();
void tahun()
{if(x%2==0)
cout<<"Bilangan Genap "<<endl;
else
cout<<"Bilangan Ganjil "<<endl;
}

private:
int x,hasil;
};

gg::Hitung()
{ cout<<"Menentukan Bilangan Genap atau Ganjil " ;}

istream& operator >> (istream& cin, gg& masuk){
cout<<"Masukan Angka : ";
cin>>masuk.x;
cout<<"Berarti :\n";
return cin;
}

void main(){
gg genapganjil;
cin>>genapganjil;
genapganjil.tahun();
}

[/sourcecode]

Posted on 03:28 by yusufruli

2 comments

Monday, 28 March 2011

Di bawah ini adalah algoritma dan program untuk mencari titik tengah sebuah garis yang ujung titiknya adalah A(x1,y1) dan B(x2,y2).

Algoritma :

1.  Masukkan nilai x1,x2,y1,y2

2. Hitung titik tengah x dan y dengan menggunakan rumus (x1 + x2)/2 dan (y1 + y2)/2

3. Tampilan dari titik tengah x dan y




Program :

#include <iostream.h>

#include <conio>
int main (){

float x1,x2,y1,y2;
float a, b;

cout<<"mencari titik tengah sebuah garis" << endl;

cout<<"ujung titik A(x1,y1) dan B(x2,y2)" << endl;

cout<<"masukkan x1 = ";

cin>>x1;

cout<<"masukkan x2 = ";

cin>>x2;cout<<"masukkan y1 = ";

cin>>y1;

Posted on 19:26 by yusufruli

No comments

Thursday, 24 March 2011

Mengenal Algoritma



Dasar-dasar algoritma pertamakali diperkenalkan oleh seorang ahli matematika, astronomi, astrologi dan geografi asal persia yang bernama Abu Ja’far Muhammad Ibnu Musa al-Khwarizmi (algorithm atau algoritma -dalam bahasa indonesia- merupakan serapan dari nama beliau).


sketsa wajah al-Khwarizmi

Apa itu Algoritma? 


    Definisi:

  • Urutan langkah-langkah untuk menyelesaikan masalah. 

  • Dalam kamus besar bahasa indonesia, algoritma adalah urutan logis pengambilan putusan untuk pemecahan masalah.

Algoritma dibutuhkan untuk memerintah komputer mengambil langkah-langkah tertentu dalam menyelesaikan masalah. Berikut adalah bentuk tahapan algoritma dalam penyelesaian suatu masalah.



Aspek penting dari algoritma adalah:

  1. Input dan Output. Sebuah algoritma memiliki input yg diberikan untuk menjalankan prosedur penyelesaian suatu masalah. Sedangkan output adalah hasil yang  merupakan solusi dari masalah yang sedang diselesaikan. Output biasanya bergantung pada input.

  2. Definiteness (kejelasan). Setiap langkah harus didefinisikan secara tepat dan jelas, tidak berbelit-belit dan membingungkan (ambiguous).

  3. Finiteness (terbatas). maksudnya  langkah-langkah penyelesaiannya dibuat dalam suatu urutan tertentu dan harus berhingga agar masalah dapat diselesaikan dengan tidak memakan waktu relatif lama.

  4. Proses di dalam mencari penyelesaian suatu masalah harus berakhir dan berhenti, baik dengan hasil akhir yang merupakan solusinya atau berupa informasi yang tidak diketemukan solusinya. Dalam hal ini ada istilah yang dikenal dengan semi-algoritma, yaitu suatu prosedur yang hanya akan berhenti jika mempunyai atau menghasilkan solusi, sedang jika tidak menghasilkan solusi maka prosedur tersebut akan berjalan terus tanpa henti.

  5. Effectiveness (efektivitas). Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan dalam arti algoritma harus tepat guna.


Singkatnya, suatu algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat dengan langkah yang berhingga & berakhir baik dalam keadan diperoleh suatu solusi ataupun tidak ada solusinya.

Contoh:

A. Algoritma untuk mengirimkan surat
1. Tulis surat pada secarik kertas surat
2. Ambil sampul surat atau amplop
3. Masukkan surat ke dalam amplop
4. Tutup amplop surat dengan lem perekat
5. Tulis alamat surat yang dituju pada amplop surat
6. Tempelkan perangko pada amplop surat
7. Bawa ke kantor pos atau masukkan ke kotak surat utk dikirim

B. Algoritma untuk menentukan bilangan akar kuadrat dari suatu bilangan bulat positif yang diinput.
1. Baca bilangan bulat positif yang diinput, sebut saja A
2. Dinyatakan Nilai B adalah 0
3. Jika Nilai C = A, maka Nilai B adalah akar dari A, lalu stop
4. Jika tidak, maka nilai B akan bertambah 1
5. Kembali ke langkah pada No.3

Tahapan Analisa Algoritma

1. Bagaimana merencakan suatu algoritma
Menentukan beberapa model atau desain sebagai penyelesaian dari suatu masalah untuk mendapat sebuah solusi yang  mungkin. Dengan demikian, akan terdapat banyak variasi desain atau model yang dapat diambil yang terbaik.

2. Bagaimana menyatakan suatu algoritma
Menentukan model suatu algoritma yang digunakan sehingga dapat membuat barisan langkah secara berurutan guna mendapatkan solusi penyelesaian masalah. Ada tiga cara untuk menyetakan suatu algoritma, yaitu:

- Dengan menggunakan bahasa sehari-hari tetapi jelas & terstruktur, yaitu tetapi seperti yang telah disebutkan pada contoh-contoh sebelumnya(Contoh prosedur berikirm surat)

 Contoh lagi:

1. Untuk mengitung Luas Segitiga:
2. Masukan Nilai Alas
3. Masukan Nilai Tinggi
4. Hitung Luas = (Alas * Tinggi)/2
5. Cetak Luas
- Dengan diagram alur atau flowchart, yaitu dengan membuat suatu penulisan atau penyajian   algoritma berupa diagram yang menggambarkan susunan alur logika dari suatu permasalahan.

 Contoh:


 - Dengan Bahasa semu(Pseudocode), yaitu bahasa yang sudah mendekati bahasa program, biasanya dituliskan dengan kombinasi bahasa inggris dan notasi matematika.

  Contoh:

1. Read Alas

2. Read Tinggi

3. Luas=(Alas*Tinggi)/2

4. Write(luas)

3. Bagaimana validitas suatu algoritma
Yakni jika penyelesaian memenuhi solusi yang sebenarnya, artinya solusi yang didapat merupakan penyelesaian suatu masalah dan bukannya membuat masalah baru.

4. Bagaimana menganalisa suatu algoritma

Caranya dengan melihat running time atau waktu tempuh yang digunakan dalam menyelesaikan masalah serta jumlah memori yang digunakan dalam penyelesaian masalah tersebut.

5. Bagaimana menguji program dari suatu algoritma

Yaitu dengan cara menyajikannya dalam salah satu bahasa pemrograman, misalnya BASIC, PASCAL, FORTRAN, dBase, atau yang lainnya. Dalam proses, uji program oleh komputer akan melalui beberapa tahap yaitu:

1. Fase Debugging, yaitu fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program. Yang dimaksud disni adalah error atau salah dalam penulisan program baik logika maupun sintaksnya.

2. Fase Profilling, yaitu fase yang akan bekerja jika program tersebut sudah benar atau telah melalui proses pada fase debugging. Fase ini bekerja untuk melihat dan mengukur waktu tempuh atau running time yang diperlukan serta jumlah memori/storage yang digunakan dalam menyelesaikan suatu algoritma.


Analisis Suatu Algoritma


Untuk melihat faktor efisiensi & efektifitas dari algoritma tersebut, dapat dilakukan terhadap suatu algoritma dengan melihat pada:

- Waktu tempuh (Running Time) dari suatu algoritma: adalah satuan waktu yang ditempuh atau diperlukan oleh suatu algoritma dalam menyelesaikan suatu masalah.

Hal-hal yang dapat mempengaruhi daripada waktu tempuh adalah:

1. Banyaknya langkah: Makin banyak langkah atau instruksi yang digunakan dalam menyelesaikan masalah, maka makin lama waktu tempuh yang dibutuhkan dalam proses tersebut

2. Besar dan jenis input data: Besar dan jenis input data pada suatu algoritma akan sangat berpengaruh pada proses perhitugan yang terjadi. Jika jenis data adalah tingkat ketelitian tunggal(Single precision), maka waktu tempuh akan menjadi relatif lebih cepat dibandingkan dengan tingkat ketelitian ganda(double precesion)

3. Jenis operasi: Waktu tempuh juga dipengaruhi oleh jenis operasi yang digunakan. Jenis operasi tersebut meliputi operasi matematika, nalar atau logika, atau yang lainnya. Sebagai contoh, operasi perkalian atau pembagian akan memakan waktu lebih lama dibandingkan operasi penjumlahan atau pengurangan.

4. Komputer dan kompilator: hal terakhir yang mempengaruhi waktu tempuh suatu proses algoritma adalah komputer dan kompilatornya, walaupun sebenarnya faktor ini diluar tahap rancangan atau tahap pembuatan algoritma yang efisien. Algoritma dibuat untuk mencapai waktu tempuh yang seefektif dan seefisien mungkin, tetapi kesemuanya itu akan sangat bergantung pada kemampuan komputer yang tentunya harus sesuai dengan jumlah program atau langkah yang diperlukan oleh algoritma, begitu juga dengan kompilator tersebut, misalnya PC XT 8086 akan kalah cepat dibandingkan 8088 atau dengan AT 80286 atau 80386 atau 80486 dan seterusnya.

- Jumlah Memori Yang digunakan: banyaknya langkah yang digunakan dan jenis variabel data yang dipakai dalam suatu algoritma akan sangat mempengaruhi penggunaan memori. Dalm hal ini, diharapkan dapat memperkirakan seberapa banyak kebutuhan memori yang diperlukan selama proses berlangsung hingga proses selesai dikerjakan. Dengan demikian, dapat disiapkan storage yang memadai agar proses suatu algoritma berjalan tanpa ada hambatan atau kekurangan memori.

Posted on 02:36 by yusufruli

No comments

Berikut ini adalah algoritma dan program untuk memisahkan bilangan integer yang kurang dari 1000 menjadi komponen- komponennya.




Algoritma:

Inputkan nilai, lalu pisahkan ke dalam komponen-komponennya. Lalu hasil outputnya meliputi ratusan, puluhan, satuan.


Program:

#include <iostream.h>

#include <conio.h>

int main ()

{

int ratusan, puluhan, satuan, x;

cout<< "masukan bilangan kurang dari 1000 = ";

cin >> x;
ratusan = x/100;puluhan =(x-ratusan*100)/10;

Posted on 01:03 by yusufruli

No comments

Saturday, 19 March 2011

Ada seorang pemuda yang mencari seorang guru
agama, pemuka agama atau siapapun yang bisa
menjawab tiga pertanyaannya. Akhirnya sang
pemuda itu menemukan seorang bijaksana.
Pemuda (P) : Anda siapa? Bisakah menjawab pertanyaan-pertanyaan
saya?
Bijaksana (B) : Saya hamba Allah dan dengan izin-Nya saya akan
menjawab pertanyaan anda.

P : Anda yakin? Sedang profesor dan banyak orang pintar saja
tidak mampu menjawab pertanyaan saya.
B : Saya akan mencoba sejauh kemampuan saya.
P : Saya punya tiga buah pertanyaan.
1. Kalau memang Tuhan itu ada, tunjukkan wujud Tuhan kepada
saya.
2. Apakah yang dinamakan takdir?
3. Kalau setan diciptakan dari api kenapa dimasukkan ke neraka
yang terbuat dari api, tentu tidak menyakitkan buat setan,
sebab mereka memiliki unsur yang sama. Apakah Tuhan tidak
pernah berfikir sejauh itu?
Tiba-tiba sang orang bijaksana tersebut menampar pipi si
pemuda dengan keras.

Posted on 05:46 by yusufruli

No comments