Senin, 22 Oktober 2012

logika(indra saputra)


PENGERTIAN DASAR LOGIKA DAN ALGORITMA
PENGERTIAN DASAR

LOGIKA DAN ALGORITMA

Diperkenalkan Oleh Ahli atematika : Abu Ja’far Muhammad Ibnu Musa Al Khawarizmi

DEFINISI ALGORITMA

1. Langkah-langkah yang dilakukan agar solusi masalah dapat diperoleh
2. Suatu prosedur yang merupakan urutan langkah-langkah yang terintegrasi
3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata



Kriteria pemilihan Algoritma
1. Ada output
2. Efektifitas dan Efesiensi
3. Jumlah langkahnya berhingga
4. Berakhir
5. Terstruktur


“Suatu Algoritma yang terbaik yaitu Algoritma yang menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatif sedikit (efisien) dengan langkah yang berhingga dan prosedurnya berakhir baik dalam keadaan diperoleh suatu solusi ataupun tidak adanya solusi “

Tahapan Analisa Algoritma

1. Merencanakan Algoritma

2. Menyatakan Algoritma

a. Bahasa semu/ sehari-hari (pseucode)
b. Diagram Alur / Flowchart
c. Statement/ penggalan program

3. Validitas Algoritma

4. Menganalisa Algoritma

a. Waktu Tempuh/ Running Time

i. Banyaknya langkah
ii. Bear dab jenis input data
iii. Jenis operasi
iv. Komputer dan kompilator

b. Jumlah memori yang digunakan

5. Menguji Algoritma

a. Fase Debugging
b. Fase Profillig

Sifat-sifat Algoritma

1. Banyaknya langkah intruksi harus berhingga
2. Langkah atau intruksi harus jelas
3. Proses harus jelas dan mempunyai batasan
4. Input dan Output harus mempunyai batasan
5. Efektifitas
6. Adanya bataan ruang lingkup.
Logika berasal dari kata Yunani Kuno. Pengertiannya yaitu hasil pertimbangan akal pikiran yang diutarakan lewat kata dan dinyatakan dalam bahasa.
Definisi Algoritma :
1. Langkah-langkah yg dilakukan agar solusi masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-langkah yang berintegrasi
3. Suatu motode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata (Webster dictionary)
Kriteria Pemilihan Algoritma
1. Ada out put
2. Efektifitas dan efesiensi
3. Jumlah langkahnya berhingga
4. Berakhir (semi Algoritma)
5. Terstruktur
1. Ada out put
Mengacu pada definisi algoritma, algoritma harus mempunyai out put yang harus merupakan solusi dari masalah yang sedang diselesaikan.
2. Efektifitas dan efesiensi
Dikatakan efektif jika algoritma tersebut menghasilkan suatu solusi yang sesuai dengan masalah yang diselesaikan, dalam arti algoritma harus tepat guna.
Dikatakan efisien jika waktu proses suatu algoritma relatif lebih singkat dan penggunakan memori komputernya lebih sedikit.
3. Jumlah langkahnya berhingga
Barisan instruksi yang dibuat harus dalam suatu urutan tertentu atau harus berhingga agar masalah yang dihadapi dapat diselesaikan dengan tidak memerlukan waktu relatif lama.
4. Berakhir  (semi Algoritma)
Penyelesaian masalah harus berhenti. Dan bias menimbulkan masalah lain.
5. Terstruktur
Penyelesaian masalah menggunakan langkah-langkah tersusun
Algoritma yang baik
Suatu algoritma harus menghasilkan out put yang tepat guna (efektif) dalam waktu yang relative singkat.
ANALISA ALGORITMA
1. Bagaimana merencakan suatu algoritma
Menentukan beberapa model / desain sebagai penyelesaian masalah sehingga muncul beberapa model yang akan diambil solusi mana yang terbaik.
2. Bagaimana menyatakan suatu algoritma
3. Bagaimana validitas suatu algoritma
4. Bagaimana menganalisis suatu algoritma
5. Bagaimana menguji program dari suatu algoritma
Cara/prosedur algoritma
1. Kata-kata
2. Diagram alur
3. Statemen program
TAHAP PROSES UJI ALGORITMA
1. Fase Debugging
Fase dari suatu proses program eksekusi yang akan melakukan koreksi terhadap kesalahan program/ error. Kesalahan program ini dapat berupa kesalahan dalam penulisan program baik logika atau sintaknya.
2. Fase profiling
Fase yang akan bekerja jika program tersebut sudah benar.
PENGERTIAN DASAR LOGIKA DAN ALGORITMA

Pengertian Dasar

LOGIKA
   Di perkenalkan pertama kali oleh aristoteles (384-322 SM).
Definisi Logika
   Definisi Logika itu sendiri adalah :
·                     Penalaran atau bentuk pemikiran.
·                     Ilmu yang memberikan prinsip-prinsip yang harus di ikuti agar dapat berfikir valid menurut aturan yang berlaku.
ALGORITMA
   Diperkenalkan olehahli matematika :Abu ja’far Muhammad Ibnu Musa Al Khawarizmi.
Seorang ilmuan Persia yang menulis kitab Al jabr w’al muqabala (rules of restoration and reduction) sekitar tahun 825 M.
Definisi Algoritma.
   Definisi Algoritma itu sendiri adalah :
·                     Langkah – langkah yang dilakukan agar solusi masalah dapat diperoleh.
·                     Suatu prosedur yang merupakan urutan langka – langkah yang berintegrasi.
·                     Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata (Webster Dictionary).

Kriteria Pemilihan Algoritma.
·                     Ada Output,
·                     Efektifitas dan Efesiensi,
·                     Jumlah langkahnya berhingga,
·                     Berakhir (SEMI ALGORITMA),
·                     Terstruktur,

   Suatu algoritma yang terbaik (the best) : “suatu Algoritma harus menghasilkan output yang tepat guna (efektif) dalam waktu yang relatif singkat dan penggunaan memori yang relatifsedikit (efesien) dengan langkah yang berhingga dan prosedurnya berakhir baik dalam keadaan diperoleh suatu solusi ataupun tidak ada solusinya. “

TAHAPAN ANALISA ALGORITMA
·                     Bagaimana merencanakan suatu algorima.
·                     Bagaimana menyatakan suatu algoritma :
1.      Dengan bahasa semu (pseudocode).
               2.   Dengan diagram alur atau flowchart,
               3.   Dengan statement program / penggalan program
·                     Bagaiman validitas suatu algoritma.
·                     Bagaimana menganalisa suatu algoritma.
·                     gaimana menguji programdari suatu algoritma.

Tahap Proses  Uji Algoritma :
·                     Fase Debugging
Yaitu fase dari proses program eksekusi yang akan melakukan koreksi terhadap kesalahan.
·                     Fase Profilling
Yaitu fase yang akan bekerja jika program tersebut sudah benar (telah melewati fase debugging).

Analisis suatu algoritma                                                                                           
(untuk melihat faktor efesiensi dan efektifitas dari algoritma tersebut), Dapat dilakukan terhadap suatu algoritma dengan melihat pada :
·                     Waktu tempuh (Running time) dari suatu Algoritma.
Hal – hal yang dapat mempengaruhi dari pada waktu tempuh adalah :
1.      Banyaknya langkah.
    2.   Besar dan jenis input data.
    3.   Jenis operasi.
    4.   Komputer dan kompilator.
·                     Jumlah memori yang di gunakan.

Sifat – sifat Algoritma
·                     Banyaknya langkah instruksi harus berhingga,
·                     Langkah atau instruksi harus jelas,
·                     Proses harus jelas dan mempunyai batasan,
·                     Input dan output harus mempunyai batasan,
·                     Efektifitas,
·                     Adanya batasan ruang lingkup,

Konsep Algoritma
   Konsep Algoritma itu sendiri terbagi menjadi 2 bagian, yaitu :
·                     Algoritma pe-ubah
Algoritma pe-ubah adalah Variabel yang nilainya BUKAN konstanta (selalu berubah – ubah sesuai dengan pariabel terKINI)
Sintaks            :           P = Q
Algoritma        :           P < Q
Arti                 :           Bahwa nilai P diberi harga nilai Q
Nilai P akan sama dengan nilai Q, dan ilai Q tetap
·                     Algoritma Pertukaran
Algoritma pertukaran berfungsi mempertukarkan masing – masing isi Variabel sedemikian sehingga nilai dari tiap Variabel akan berubah / bertukar.





Definisi dan Pengenalan Algoritma

Definisi

Definisi algoritma adalah urutan langkah-langkah logis penyeselaian masalah yang disusun secara sistematis dan logis. Kata logis (logika) merupakan kata kunci dalam algoritma. Langkah-langkah dalam algoritma harus dapat ditentukan bernilai benar atau salah.

Algoritma Dalam Kehidupan

Algoritma adalah jantung ilmu komputer atau informatika. Banyak cabang ilmu komputer yang diacu dalam terminologi algoritma. Namun algoritma juga digunakan dalam kehidupan sehari-hari, contohnya resep makanan. Di dalam resep makanan terdapat langkah-langkah yang merupakan algoritma. Selain itu masih banyak contoh algoritma yang lain.

Bahasa Pemrograman

Untuk melaksanakan suatu algoritma diperlukan suatu bahasa pemrograman, contoh bahasa pemrograman adalah : Pascal, C++, Basic, dll. Notasi algoritma dapat diterjemahkan kedalam bahasa pemrograman apapun, dengan kata lain notasi algoritma bersifat independen.

Flowchart

     Bagan alir (flowchart) adalah bagan (chart) yg menunjukkan alir (flow) di dalam program atau prosedur sistem secara logika. Digunakan terutama untuk alat Bantu komunikasi dan untuk dokumentasi. Pedoman untuk menggambarkannya:
1.             Sebaiknya digambar dari atas ke bawah dan mulai dari bagian kiri suatu halaman.
2.             Kegiatannya harus ditunjukkan dengan jelas
3.             Ditunjukkan dengan jelas dimulai dan berakhirnya suatu kegiatan
4.             Masing-masing kegiatan sebaiknya digunakan suatu kata yg mewakili suatu pekerjaan
5.             Kegiatannya sudah dalam urutan yang benar.
6.             Kegiatan yg terpotong dan akan disambung ditunjukkan dengan jelas oleh simbol penghubung
7.              Digunakan simbol-simbol yang standar
Suatu flowchart adalah suatu representasi secara diagram yang mengilustrasikan urutan dari operasi yang dilakukan untuk mendapatkan suatu hasil. Dengan kata lain, flowchart membantu kita untuk mengerti dan melihat bentuk algoritma dengan menampilkan algoritma dalam simbol-simbol gambar.

Dalam menggambar flowchart, digunakan simbol tertentu seperti diatas. Contoh berikut bisa digunakan untuk lebih mengerti perbedaan kegunaan simbol-simbol tersebut. Misal kita ingin mencari jumlah dari 2 buah bilangan, maka flowchart-nya adalah sebagai berikut :

Contoh lain, misalkan kita ingin mengetahui apakah sebuah bilangan ganjil atau genap. Untuk itu kita harus membuat flowchart seperti ini :

Pseudo Code

Pseudo Code adalah urutan baris algoritma seperti kode pemrograman dan tidak memiliki sintak yang baku. Pseudo Code lebih umum digunakan oleh programmer yang berpengalaman. Akan tetapi, flowchart lebih mudah dimengerti oleh programmer pemula, pseudo code sangat mudah diimplementasikan ke dalam kode program dibandingkan dengan flowchart. Kita bisa bebas menulis pseudo code selama itu mudah dimengerti bagi orang lain. Tetapi disarankan untuk menggunakan keyword yang umum digunakan seperti : if, then, else, while, do, repeat, for, dan lainnya. Dan ikuti gaya penulisan pemrograman seperti Pascal, C++, dll. Perhatikan kode dibawah ini :
1.             Mulai
2.             Masukkan sebuah angka
3.             Masukkan sebuah angka dan tampilkan
4.             Ambil angka yang sebelumnya dan tampilkan
5.             Selesai
Walaupun pseudo code diatas masih bisa dimengerti tetapi ada beberapa statemen yang ambigu. Dari baris kedua, kita tidak tahu kemana angka tersebut disimpan dan kita juga tidak tahu angka yang mana yang dimaksud untuk “angka yang sebelumnya”. Apakah angka yang pertama atau yang kedua. Pseudo Code diatas dapat dimodifikasi menjadi seperti berikut :
1.             Start
2.             Masukkan A
3.             Masukkan B, Tampilkan B
4.             Tampilkan A
5.             End
Pseudo Code diatas lebih baik dibandingkan sebelumnya. Kita bisa dengan jelas melihat dimana angka disimpan dan angka yang mana yang ditampilkan. Sekarang kita akan mengubah flowchart pada gambar 1.2
1.             Start
2.             Masukkan A dan B
3.             C = A + B
4.             Tampilkan C
5.             End
  
Tema               :Looping
Looping
Looping adalah pengulangan sesuatu atau serangkaian "kerja" dari program. Dalam C++, paling tidak dikenal ada 3 looping.
While
Perintah while adalah pengulangan yang dilakukan oleh program selama (while) dalam keadaan tertentu. Misalnya saja, ada sebuah kondisi yang mengharuskan program agar melakukan "pekerjaan" tertentu selama keadaan itu terpenuhi (true).
Contoh:
Mencetak angka 1 sampai 1000
#include
using namespace std; 
void main() {
    int i = 1;
    //kondisi ditetapkan (bahwa selama i lebih kecil atau sama dengan
    //1000 ada perintah yang diberikan pada program...)
    while (i <= 1000) {
       //perintah untuk mencetak nilai dari i dan kemudian membuat
        //baris baru
        cout << i << "\n";
        //iterasi
        ++i;
        //i = i + 1;
        //i += 1;
    }
}

Nah, dari kode di atas kita lihat bahwa selama i lebih kecil atau sama dengan 1000, nilai dari i akan di cetak ke layar. Jadi, hasilnya adalah:
1
2
1000
Akan tercetak angka dari 1 sampai 1000 di layar. Perhatikan baik – baik ada sepenggal kode yang diberi komentar "iterasi". Apakah iterasi itu? Iterasi dalam looping adalah proses yang berpengaruh dalam nilai dari variabel yang ditetapkan sebagai acuan looping. Atau dapat pula dikatakan bahwa, iterasi adalah bagaimana penambahan nilai atau pengurangan dalam perulangan. Contohnya seperti nilai dari i di atas. Penulisan yang diberikan pada variabel i adalah:
++i; 
Itu sama saja dengan perintah yang berada di dalam komentar:
// i = i + 1;
Dan
//i += i;
Perintah ini berarti bahwa i menambahkan dirinya sendiri dengan 1. Tanda "++" pada ipada bagian depan dari i (prefix), berarti kita langsung menambahkan variabel i dengan 1, tanpa menggunaan terlebih dahulu nilai dari i. Jika kita menggunakan tanda "++" pada bagian akhir dari variabel i (postfix), berarti nilai dari i digunakan terlebih dahulu lalu kemudian ditambahkan dengan 1. Contoh lain dari hal ini adalah dengan menggunakan pengurangan sebagai pengulangan. Contoh: 
#include
using namespace std; 
void main () {
    int i = 1000;
    while (i >= 1) {
        cout << i << "\n";
        //yang digunakan adalah "—-"
        --i;
    }
}
Hasil yang didapat mungkin saja berbeda, tapi persamaan dari keduanya adalah bahwa terjadi perulangan sebanyak 1000 kali, yaitu: 
1000
999
Perlu diketahui bahwa yang terjadi pada perulangan jika sudah mencapai false (dimana kondisinya tidak lagi true melainkan false) adalah perulangan akan segera keluar dan melanjutkan program. Misalnya saja dari program di atas, jika i tidak lagi lebih kecil atau sama dengan 1000 (misalnya 1001), perulangan akan menghasilkan nilai false (kondisi tidak lagi i <= 1000).

 
do...while
Biasanya in adalah perintah untuk tetap melakukan sesuatu dalam program sampai kondisinya terpenuhi (aku memanggilnya "kepala batu" atau "si keras kepala" :DDD). Misalnya perintah untuk tetap menampilan sebuah pesan sampai adanya input yang valid dari user. Contoh:

#include
using namecspace std;
void main () {
    char yes_no;
    //lalu beberapa variabel diletakkan di sini...
    //... (di sini misalnya terdapat kerja dari program)

 
    // disini diletakkan do...while untuk "menunggu" inputan yang
    //valid dari user.
    do {
        cout << "masih mau lanjut? (y / n): ";
        cin >> yes_no;
    } while (yes_no != 'y' || yes_no != 'n');

 
    if (yes_no == 'y')
        //lakukan terserah apa aja yang anda mau lakukan di sini

 
    else
        //di sini juga anda bisa lakukan apa saja yang anda mau
        //lakukan
}
Jika kita perhatikan mungkin ada tanda yang di pergunakan dalam kode tersebut. Akan saya coba jelaskan mengenai beberapa operator logika yang terdapat dalam C++.

 
Operator logika biasanya dipakai dalam perbandingan (kondisi). Mengenai fungsi perbandingan ini akan dibahas dalam bab-bab berikutnya. Operator logika yang biasanya dipakai ada beberapa macam, yaitu:
·                     Tanda "&&" (and), operator ini berfungsi jika kedua nilai pembandingnya bernilaitrue. Contoh: i >= 0 && i <= 1000. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar atau sama dengan 0 dan lebih kecil atau sama dengan 1.000 (0 – 1.000).
·                     Tanda "||" (or), operator ini berfungsi jika salah satu dari kedua nilai pembandingnya bernilai true. Contoh: i >= 1000 || i <= 0. Ini berarti penggunaan kondisi dimana kondisi tersebut adalah i lebih besar atau sama dengan 1.000 atau leih kecil atau sama dengan 0 (-1 ke bawah atau 1.001 ke atas).
·                     Tanda "!" (not), seperti yang kita lihat terdapat di bagian dari kode di atas adalah merupakan tanda negasi, yang berarti semacam pembalik dari sesuatu. Misalnya seperti yang kita lihat pada potongan kode di atas:

 
while (yes_no != 'y' || yes_no != 'n');
Ini kurang lebih dapat dibaca: "ketika yes_no tidak sama dengan 'y' n atau
yes_no tidak tidak sama dengan 'n'.

 
Kembali ke masalah kode di atas, pada bagian "pembuka" kita membuat beberap variabel, salah satunya adalah yes_no yang berfungsi untuk "menampung" nilai atau karakter yang dipilih dari user. Jadi, kita membuat sebuah program yang entah kerjanya baagimana lalu pada bagian akhir dari program tersebut, kita memberikan sebuah pilihan apakah user masih mau lanjut atau tidak. Jika user memasukkan input yang tidak valid misalnya menekan angka 0 atau menekan huruf "t"), maka perintah yang berada dalam blok do…while akan di eksekusi, dan begitu seterusnya jika user masih tidak memasukan input yang valid.


for
Ini adalah (mungkin) perulangan yang paling sering dipakai dalam C++. Sintaknya adalah sebagai berikut:
for (inisialisasi; kondisi; iterasi) {
    //yang ingin dilakukan...
}
Dalam for, anda bisa melakukan inisialisasi, yaitu mendeklarasikan variabel baru dan langsung memasukan nilai di dalamnya, kemudian memberi kondisi dimana perulangan itu akan terus dilakukan, dan pada akhirnya menentukan iterasi. Contoh dari for adalah sebagai berikut:

 
#include
using namespace std;

 
void main () {
    int num_masuk;
    cout << "berapa banyak anda mau melakukan perulangan?: ";
    cin >> num_masuk;

 
    for (int i = 1; i <= num_masuk; ++i) {
        cout << "ini adalah baris ke-" << i << "\n" ;
    }
}

 
Pada kode di atas, yang akan menjadi input dari user untuk menentukan berapa banyak perulangan akan dilakukan adalah num_masuk, dan variabel yang akan dijadikan patokan dalam perulangan adalah i, di mana i di buat di dalam perintah for dan kemudian langsung di assign (inisialisasi). Kondisi yang digunakan adalah kondisi dimana i <= num_masukyang berarti, jika / selama i lebih kecil atau sama dengan num_masuk maka perulangan akan terus dilakukan. Iteasi yang ditentukan di sini adalah nilai dari i akan ditambah 1 (satu) dalam setiap perulangan (++i). Contoh program yang sudah di compile dari kode ini adalah:

 
Namun
for
juga bisa digunakan sebagai berikut:
for (int i = 1; i <= 10; ++i) {
    for (int j = 1; j <= 10; ++j) {
        cout << i * j << "\n";
    }
}
Program seperti ini dapat digunakan dalam perhitungan perkalian, misalnya saja hasilnya dapat menjadi sebagai berikut:
Koding untuk program ini adalah:
#include
using namespace std; 
void main () {
    //untuk berapa banyak baris yang diinginkan...
    for (int i = 1; i <= 10; ++i) {
        //jumlah kolom, mengingat bagian ini yang akan
        //dieksekusi lebih lanjut dan sampe selesai daul baru
//dilanjutkan dengan bagian yang selanjutnya (bagian baris)
        for (int j = 1; j <= 3; ++j) {
            cout << i << " X " << j << " = " << j * i << "\t";
        }
        //baris baru, setelah ketiga kolom selesai "dibuat"
        cout << "\n";
    }
}
Break dan continue
Ketika melakukan perulangan, ketika sampai batas tertentu kita ingin memberhentikan perulangan tersebut. Untuk itulah, dibuat statement break dan continue. 
break
Adalah perintah untuk langsung keluar dari looping (perulangan). Contoh penggunaan statement break adalah:
while (i > 0) {
    cout << i << "\n";
    if (i == 2)
        break;
    --i;
}
Sudah bisa tebak apa kira – kira yang akan dihasilkan oleh program ini? Kalau belum, silahkan baca lebih lanjut.
Program tersebut akan dieksekusi sampai nilai i sama dengan 2. Seharusnya, progrma tersebut akan bejalan sampai dengan nilai i sama dengan 1. Tapi statement break yang diberikan pada kondisi dimana jika nilai i sama dengan 2 maka looping dihentikan, maka ketika nilai i sama dengan 2, nilai i tidak dikurangi lagi (--i;) dan looping keluar. Hasilnya kurang lebih bisa dilihat sama dengan contoh program berikut:

 
Kodenya adalah sebagai berikut:
#include
using namespace std; 
void main () {
    int baris;
    cout << "berapa banyak anda ingin mencetak baris?: ";
    cin >> baris;

 
    for (int i = 1; i <= baris; ++i) {
        cout << "ok, ini adalah baris yang ke-" << i << "\n";

 
        if (i == (baris - 1))
            break;
    }
    cout << "sorry, hanya bisa sampe di situ doang... :D\n";
}
Continue
Nah, ini juga mirip dengan break tadi hanya saja ini kebalikannya. Langsung saja ke contohnya:
    for (int i = 1; i <= 20; ++i) {
        if (i % 7 == 0)
            cout << i << "\n";
        else
            continue;
    }
Yang di atas itu adalah (kurang lebih) contoh yang saya pelajari ketika saya belajar C++ juga :D. Itu adlaah kode untuk mencari bilangan kelipatan 7 dari 1 – 20. Fungs continue diatas adalah, jika bilangan itu tidak habis di bagi 7 (if (i % 7 == 0)), maka lopingnya dilanjutkan terus, tanpa adanya apa – apa yang akan dieksekusi. Contoh tampilannya adalah sebagai berikut (kali ini kita akan mencoba mencari dari 1 sampai 100):

 
Kodenya adalah sebagai berikut:
#include
using namespace std;

 
void main () {
    for (int i = 1; i <= 100; ++i) {
        if (i % 7 == 0)
            cout << i << " adalah kelipatan 7!\n";
        else
            continue;
    }
}





KONSEP TIPE DATA C++

PEMBAGIAN TIPE DATA :
·                     TIPE SEDERHANA
a.int,bool,char.
b.tipe float.
·                     TIPE STRING
·                     TIPE TERSTRUKTUR
a.array dan struct.

VARIABEL DAN KONSTANTA

VARIABEL
·                     Untuk menyimpan suatu nilai ,dan nilai yg ada padanya dpt diubah selama eksekusi berlangsung .
·                     penaman variabel bersifat case sensitive.
·                     Harus dideklarasikan dahulu sebelum digunakan
contoh :int alas ,tinggi;

KONSTANTA
Sebuah variabel dgn tipe data tertentu dan memiliki nilai data yg akan selalu tetap didalam program .
contoh: const phi=3,14;

I.TIPE SEDEHANA PADA C++
1.Tipe int:tipe data yg nilainya tidak memiliki titik desimal ( 16 -32 bit).
2.Tipe float :tipe data yg merupakan pecahan (32-64bit).
3.Tipe char :digunakan untuk menampung sebuah karakter .
contoh :'A'--> karakter huruf A
'1'-->karakter huruf angka 1
'*'--->karakter simbol *
4.Tipe bool :nilai penagambilan suatu keputusan pd program ,tipe ini mempunyai 2 nilai yaitu benar (T)/salah (F) .operator AND,OR /NOT
·                     AND--->0 (SALAH) dan 1(benar)
·                     NOT---->0(BENAR)dan 1(salah)
·                     OR----->Satu salah lain bnr ( benar )
II .Tipe string(1-255 karakter) nilai string (")
bentuk umum:
tipe _data pengenal [panjang];
pengenal =nama variabel
panjang =bilangan bulat yg menunjukan jmlh karakter
contoh:char nama [15];
III.Tipe terstruktur
Untuk mengelompokan data dgn tipe yg berlainan.
contoh:
struct data_pegawai
{
int nip;
char nama[25];
char alamat[40];
}


CONTOH PROGRAM SEDERHANA
#include
#include
#include
main()
{
int x,y,z;
clrscr();
cout<<"\n input nilai x=";cin>>x;
cout<<"\n input nilai y=";cin>>y;
z=x+y;
cout<<"\n hasil penjumlahan='<
getch();
}


Nama   : Bayu Wibawa
Nim      : 11103119 
Kelas   : 11.1A.07 
Tugas   : Logika dan Algoritma
Materi  : Struktur Rekursif

REKURSIF

      Rekursif merupakan alat/cara untuk memecahkan masalah dalam suatu fungsi atauprocedure yang memanggil dirinya sendiri.

      Definisi menurut Niclaus Wirth :
“ An object is said be recursive if it partially consist or is defines in terms of itself”

      perhitungan matematika ( contoh fungsi factorial dan bilangan Fibonacci)

Faktorial

      Fungsi factorial dari bilangan bulat positif n didefinisikan sebagai berikut:
                        n!= n.(n-1)! , jika n>1
                        n!= 1          , jika n=0, 1

      contoh :
                        3!= 3. 2!
                        3!= 3. 2. 1!
                        3!= 3. 2. 1
                        3!= 6

Kita dapat menuliskan fungsi penghitung factorial seperti dibawah ini
1.             int Faktorial(int n)
2.             {
3.                           if ((n == 0) || (n == 1 ))
4.                                       return (1);
5.                           else
6.                                       return (n * Faktorial(n-1));
7.             }

      Pada baris 3 dari fungsi diatas,
            nilai n dicek sama dengan 0 atau 1,
            jika ya, maka fungsi mengembalikan nilai 1 {baris 4},
            jika tidak, fungsi mengembalikan nilai n * Faktorial (n -1)
               {baris 6}
      disinilah letak proses rekursif itu, perhatikan fungsi factorial ini memanggil dirinya sendiri tetapi dengan parameter (n-1)

Bilangan Fibonacci

      Fungsi lain yang dapat diubah ke bentuk rekursif adalah perhitungan Fibonacci.Bilangan Fibonacci dapat didefinisikan sebagai berikut:
                        fn = fn-1 + fn-2 untuk n > 2
                        f1 = 1
                        f2 = 1
            Berikut ini adalah barisan bilangan Fibonacci mulai dari n=1
                        1   1    2    3    5    8    13    21   34

Algoritma Fibonacci yang dipakai

Function Fibonacci(input n:integer) à integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
            If (n ==1 || n==2) Then
                        return (l)
            Else
                        return (Fibonacci(n-1)+Fibonacci(n-2))
            Endif

Contoh

      Untuk ukuran n= 4, proses perhitungan Fibonacci dapat dilakukan sebagai berikut:
                        f4 = f3+f2
                        f4 = (f2+f1) + f2
                        f4 = (1+1) +1
                        f4 = 3

Kombinasi

Function Kombinasi (input n, r : integer) à real
Deklarasi
 If (n < r) Then
            return (0)
 Else
            return (Faktorial(n)/Faktorial(r)*Faktorial(n-r))
 Endif

Permutasi

            Function Permutasi (input n, r : integer) à real
            Deklarasi
      {tidak ada}
   Deskripsi
            If (n< r) Then
                                    return (0)
            Else
                                    return (Faktorial(n) / Faktorial(n-r))
            Endif

program untuk menghitung deret S = 1+2+3+4+5+...+n menggunakan function rekursi
Function S(input n:integer) à integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
            If (n==1) Then
            return (l)
            Else
            return (n + S(n-1))
            Endif

program untuk menghitung deret S = 2+4+6+8+10+...+2n menggunakan function rekursi

Function S(input n:integer) à integer
Deklarasi Lokal
  {tidak ada}
Deskripsi
            If (n==1) Then
            return (2)
            Else
            return (2*n + S(n-1))
            Endif

program untuk menghitung deret S = 1+2+3+4+5+...+n menggunakan function rekursi

#include
int S(int n);
main()
{
  int n;
  cout << “Masukkan n = “; cin >> n;
  cout << “Deret S=1+2+3+4+5+...+n \n”;
  cout << “Jumlah deret S = “ << S(n);
}
int S(int n)
{
              if (n == 1)
                          return (1);
              else
                          return (n + S(n-1));

Tidak ada komentar:

Posting Komentar