Selasa, 03 Desember 2013

Flowchart


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.



Nama  : Ruri Nurdian
Kelas   : 11.1A.07
NIM    : 11101171
Mata kuliah : Logika dan Algoritma
Tugas   : Artikel
Tema    : Flowchart


Definisi dan Pengenalan Algoritma

October 08, 2009 By: imadewira Category: Algo dan SD I

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.
1
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 :
2
Contoh lain, misalkan kita ingin mengetahui apakah sebuah bilangan ganjil atau genap. Untuk itu kita harus membuat flowchart seperti ini :
3

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
 
Nama               :Muhammad Nur Amin
Kelas               :11.1A.07
NIM                :11101112
Mata kuliah     :Logika & Algoritma
Tugas               :Artikel
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 <iostream>
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 i pada 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 <iostream>
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 <iostream>
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 bernilai true. 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 <iostream>
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_masuk yang 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 <iostream>
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 <iostream>
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 <iostream>
using namespace std;

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




Nama   : Abimanyu Mangaladewa

NIM    : 11100652

Kelas   : 11.1A.07

Materi  : Konsep Tipe Data

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 atau procedure 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<iostream.h>
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));
}

Sabtu, 30 November 2013

Logika dan algoritma stmik terbaru


  • 1. LOGIKA & ALGORITMABy :Eko Sutrisno
  • 2. DEFINISI LOGIKALogika identik dengan masuk akal dan penalaran.Penalaran  salah satu bentuk pemikiranPemikiran  pengetahuan tak langsung yang didasarkan pada pernyataan langsung pemikiran mungkin benar dan mungkin tidak benarDefinisi Logika  ilmu yang memberikan prinsip- prinsip yang harus diikuti, agar dapat berfikir valid menurut aturan yang berlaku.
  • 3. KEGUNAAN LOGIKA1.Membantu setiap orang yang mempelajari logika untuk berpikir secararasional, kritis, lurus, tetap, tertib, metodis dan koheren.2.Meningkatkan kemampuan berpikir secara abstrak, cermat, dan objektif.3.Menambah kecerdasan dan meningkatkan kemampuan berpikir secaratajam dan mandiri.4.Memaksa dan mendorong orang untuk berpikir sendiri denganmenggunakan asas-asas sistematis.5.Meningkatkan cinta akan kebenaran dan menghindari kesalahan-kesalahan berpkir, kekeliruan serta kesesatan.6.Mampu melakukan analisis terhadap suatu kejadian.7.Terhindar dari klenik , gugon-tuhon ( bahasa Jawa )8.Apabila sudah mampu berpikir rasional,kritis ,lurus,metodis dan analitissebagaimana tersebut pada butir pertama maka akan meningkatkan citradiri seseorang.
  • 4. Mata Kuliah LogikaMenimbulkan KesadaranKita Untuk MenggunakanPrinsip - Prinsip Berfikir Secara Sistematis
  • 5. DEFINISI ALGORITMA• Urutan langkah-langkah logis penyelesaian masalah yang disusun secara sistematis• Kata logis disini berarti sesuai dengan logika manusia• Untuk menjadi sebuah algoritma, urutan langkah yang di tempuh untuk menyelesaikan masalah harus memberikan hasil yang benar.
  • 6. SEJARAH ALGORITMAAbu Ja’far Muhammad Ibnu Musa Al Khuwarizmi adalahseorang penulis buku Arab yang berjudul Kitab Al Jabar WalMuqabala (Buku Pemugaran dan Pengurangan). Kata AlKhuwarizmi di baca orang Barat menjadi Algorism.Kata Algorism berarti proses menghitung dengan angka Arab.Seseorang dikatakan algorist jika orang tersebut menggunakanangka Arab.Kata Algorism lambat laun berubah menjadi algorithmdisebabkan kata algorism sering di kelirukan dengan kataarithmetic sehingga akhiran –sm berubah menjadi –thm. Kataalgorithm diserap kedalam bahasa Indonesia menjadi algoritma
  • 7. DOMAIN ALGORITMAMasalah  motivasi untuk membuat algoritma.Algoritma  prosedur untuk menyelesaikan masalah.Seringkali satu masalah dapat diselesaikan dengan lebihdari satu cara (banyak kemungkinan).Program  representasi formal dari suatu algoritmadengan menggunakan bahasa pemrograman yang bisadimengerti oleh komputer.Proses  aktivitas menjalankan langkah-langkah dalamalgoritma.
  • 8. HAL YANG HARUS DIPENUHI DALAM MEMBUAT ALGORITMA• INPUT  data yang harus diberikan pada komputer.• OUTPUT  Informasi yang akan diperoleh dari komputer• LOGIKA  Merencanakan proses program. Terdiri dari sejumlah instruksi yang mengubah input menjadi output yang diinginkan.
  • 9. CONTOH ALGORITMAAda 2 buah gelas. Satu berisi teh dan satunya berisikopi. Bagaimana caranya menukar isi masing-masing gelas ? TEH KOPI
  • 10. ALGORITMANYASiapkan gelas cadangan X XTuangkan teh kedalamgelas cadangan X X TEHTuangkan kopi kedalamgelas teh (yang telahkosong) KOPI TEHTuangkan the (dari gelascadangan kedalam gelaskopi. X KOPI
  • 11. LOGIKA BINER• Dalam komputer terdapat logika tepatnya pada prosesor yang didalamnya terdapat ALU (Arithmetic Logical Unit).• Logika yang ada yaitu AND, OR, XOR X Y AND OR XOR 1 1 1 1 0 1 0 0 1 1 0 1 0 1 1 0 0 0 0 0
  • 12. LA TIH AN10111 OR 111 11111 XOR 1101 11101 AND 1101
  • 13. FLOWCHARTSebelum membuat suatuprogram sebaiknya dibuatsuatu urutan langkah logika kedalam flowchart ( bagan alur)
  • 14. Flowchart• Bagan-bagan yang mempunyai arus• Menggambarkan langkah-langkah penyelesaian suatu masalah• Merupakan salah satu cara penyajian algoritma 14
  • 15. Tujuan• Menggambarkan suatu tahapan penyelesaian masalah• Secara sederhana, terurai, rapi dan jelas• Menggunakan simbol-simbol standar 15
  • 16. Model / Jenis Flowchart • System Flowchart • Program Flowchart 16
  • 17. System Flowchart• Menggambarkan suatu sistem peralatan komputer yang digunakan dalam proses pengolahan data serta hubungan antar peralatan tersebut• Tidak digunakan untuk menggambarkan urutan langkah untuk memecahkan masalah• Hanya untuk menggambarkan prosedur dalam sistem yang dibentuk 17
  • 18. Program Flowchart• Menggambarkan urutan logika dari suatu prosedur pemecahan masalah• Dua jenis metode penggambaran program flowchart : – Conceptual flowchart, menggambarkan alur pemecahan masalah secara global – Detail flowchart, menggambarkan alur pemecahan masalah secara rinci 18
  • 19. Simbol-simbol Flowchart• Flow direction symbols – Digunakan untuk menghubungkan simbol satu dengan yang lain – Disebut juga connecting line• Processing symbols – Menunjukan jenis operasi pengolahan dalam suatu proses / prosedur• Input / Output symbols – Menunjukkan jenis peralatan yang digunakan sebagai media input atau output 19
  • 20. Flow Direction Symbols • Simbol arus / flow – Menyatakan jalannya arus suatu proses • Simbol communication link – Menyatakan transmisi data dari satu lokasi ke lokasi lain • Simbol connector – Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang sama • Simbol offline connector – Menyatakan sambungan dari proses ke proses lainnya dalam halaman yang berbeda 20
  • 21. Processing Symbols• Simbol process – Menyatakan suatu tindakan (proses) yang dilakukan oleh komputer• Simbol manual – Menyatakan suatu tindakan (proses) yang tidak dilakukan oleh komputer• Simbol decision – Menujukkan suatu kondisi tertentu yang akan menghasilkan dua kemungkinan jawaban : ya / tidak• Simbol predefined process – Menyatakan penyediaan tempat penyimpanan suatu pengolahan untuk memberi harga awal• Simbol terminal – Menyatakan permulaan atau akhir suatu program 21
  • 22. Processing Symbols • Simbol keying operation – Menyatakan segala jenis operasi yang diproses dengan menggunakan suatu mesin yang mempunyai keyboard • Simbol offline-storage – Menunjukkan bahwa data dalam simbol ini akan disimpan ke suatu media tertentu • Simbol manual input – Memasukkan data secara manual dengan menggunakan online keyboard 22
  • 23. Input / Output SymbOlS • Simbol input/output – Menyatakan proses input atau output tanpa tergantung jenis peralatannya • Simbol punched card – Menyatakan input berasal dari kartu atau output ditulis ke kartu • Simbol magnetic tape – Menyatakan input berasal dari pita magnetis atau output disimpan ke pita magnetis • Simbol disk storage – Menyatakan input berasal dari dari disk atau output disimpan ke disk 23
  • 24. Output SymbOlS • Simbol document – Mencetak keluaran dalam bentuk dokumen (melalui printer) • Simbol display – Mencetak keluaran dalam layar monitor 24
  • 25. KaIdah pembuatan FlOwchart Start Input Proses Output End 25
  • 26. pengOlahan data START READ Ya HABIS ? Tidak PROCESS WRITE END 26
  • 27. Contoh 1 Start Input panjang Input lebarLuas  panjang * lebar Print Luas End 27
  • 28. STUDI KASUS 1Buatlah flowchart ( Diagram Alur ) Jika terdapat 2(dua) bilangan desimal, dimana jika salah satu daribilangan tersebut lebih besar maka akan tercetakbilangan yang besar, jika tidak maka cetak bilanganyang terkecil. 28
  • 29. StartRead ARead B Y Cetak AA>B TCetak B End 29
  • 30. STUDI KASUS 2Pensil dapat di beli secara satuan dan lusinanHarga satuan pensil adalah Rp. 1.000, sedangkan harga selusinpensil Rp. 5.000. Buatlah diagram alur untuk harga pembelian Xbuah pensil.Penjelasan :Jika kita beli 15 buah pensil dengan harga satuan maka harusmembayar Rp. 15.000 , sedangkan jika kita membayar dengan 1lusin serta 3 buah buah sisanya maka kita harus membayar Rp.8.000 30
  • 31. Baca X L  INT (X/12) S  X – L * 12P  5000 * L + 1000* S Cetak P End 31
  • 32. STUDI KASUS 3Buatlah flowchart ( diagram alur ) jika kitamempunyai s detik diubah menjadi x jam ymenit dan z detik 32
  • 33. START A BACA S Y  INT (A/60)X  INT (S/3600) Z  A – 60 * Y CETAKA  S – 3600 * X X, Y, Z A END 33
  • 34. STUDI KASUS 4Buatlah flowchart (bagan alur) untuk pembelian buku.Jika kita membeli buku dalam jumlah besar, maka penerbitakan memberikan rabat (discount) dengan ketentuan sebagaiberikut :1.Pembelian kurang dari 10 buku, maka tidak ada rabat.2.Pembelian 10 buku sampai 29 buku, rabat 10 %.3.Pembelian 30 buku ke atas, rabat 20 % 34
  • 35. MULAI BACA X ya X< H  5000*X 10 ? tidak X< ya H  0.9*5000*X 30 ? tidakH  0.8*5000*X CETAK H SELESAI 35
  • 36. LOOPING / PERULANGAN(1) Variabel A diberi harga 1 A1 (1)(2) Variabel A Berubah menjadi AA+1 (2)2(3) Variabel B diberi harga sebesar BA*A (3) harga A DIKALIKAN HARGA A(4) Variabel B di dicetak (jadi tercetak CETAK B (4) 4). Kemudian kembali ke (2) , (3), (4) dan kembali lagi ke (2) begitu seterusnya HASILNYA  4,9,16, …… 36
  • 37. 5BUATLAH DIAGRAM ALUR UNTUKMENCETAK KUADRAT BILANGAN –BILANGAN 1 SAMPAI DENGAN 10 37
  • 38. MULAI A1 Y A> SELESAI 10 ? TBA*ACETAK BA  A+1 38
  • 39. QUIZ1. BUAT FLOWCHART DENGAN OUTPUT 2,4,6,8,102. 110 or 97 207 xor 102 315 and 221 39
  • 40. 6 U S A S D IK UST Buatlah diagram alur untuk mencetak suku barisan. Dengan suku pertama 3 dan beda 4 sampai suku yang harganya tidak melebihi 100. 40
  • 41. startS3B4 YS > 100 end TCetak SS S+B 41
  • 42. 7 US AS Mulai A IK UDST A0 C  A+B Y B 1 C > 50 Selesai T CETAK A CETAK C CETAK B AB A BC 42
  • 43. PSEUDO-CODEKode atau tanda yang menyerupai(pseudo) atau merupakan pejelasancara menyelesaikan suatu masalah.Pseudo-code sering digunakan olehmanusia untuk menuliskan algoritma. 43
  • 44. STUDI KASUS 7Mencari bilangan terbesar daridua bilangan yang diinputkan 44
  • 45. Pseudo-code:1. Masukkan bilangan pertama2. Masukkan bilangan kedua3. Jika bilangan pertama > bilangan kedua maka kerjakan langkah 4, jika tidak, kerjakan langkah 5.4. Tampilkan bilangan pertama5. Tampilkan bilangan kedua 45
  • 46. Algoritma1. Masukkan bilangan pertama (a)2. Masukkan bilangan kedua (b)3. if a > b then kerjakan langkah 44. print a5. print b 46
  • 47. CONTOH LAIN PEUDO-CODE & ALGORITMA Pseudo-code AlgoritmaNilai A ditambah dengan 5 A A+5Cetak nilai A bila lebih besar dari If A > 10 THEN PRINT A10Dari dua bilangan A dan B, cari IF A > B THEN PRINT A ELSEbilanan yang terbesar PRINT B 47
  • 48. LANGKAH MEMBUAT PROGRAM KOMPUTER1. Mendefinisikan masalah Ini merupakan langkah pertama yang sering dilupakan orang. Menurut hukum Murphy (oleh Henry Ledgard): “Semakin cepat menulis program, akan semakin lama kita dapat menyelesaikannya”. Hal tersebut berlaku untuk permasalahan yang kompleks. Tentukan masalahnya, apa saja yang harus dipecahkan dengan menggunakan komputer, dan apa inputan serta outputnya. 48
  • 49. 2. Menemukan solusi Setelah masalah didefinisikan, maka langkah berikutnya adalah menentukan solusi. Jika masalah terlalu kompleks, maka ada baiknya masalah tersebut dipecah menjadi modul-modul kecil agar lebih mudah diselesaikan. 3. Memilih algoritma Pilihlah algoritma yang benar-benar sesuai dan efisien untuk permasalahan tersebut. 4. Menulis program Pilihlah bahasa yang mudah dipelajari, mudah digunakan, dan lebih baik lagi jika sudah dikuasai, memiliki tingkat kompatibilitas tinggi dengan perangkat keras dan platform lainnya.. 5. Menguji program Setelah program jadi, silahkan uji program tersebut dengan segala macam kemungkinan yang ada, termasuk error-handlingnya sehingga program tersebut akan benar-benar handal dan layak digunakan 49
  • 50. 6. Menulis dokumentasi Menulis dokumentasi sangat penting agar pada suatu saat jika kita akan melakukan perubahan atau membaca source code yang sudah kita tulis dapat kita ingat-ingat lagi dan kita akan mudah membacanya. Caranya adalah dengan menuliskan komentar-komentar kecil tentang apa maksud kode tersebut, untuk apa, variabel apa saja yang digunakan, untuk apa, dan parameter-parameter yang ada pada suatu prosedur dan fungsi.7. Merawat program Program yang sudah jadi perlu dirawat untuk mencegah munculnya bug yang sebelumnya tidak terdeteksi. Atau mungkin juga pengguna membutuhkan fasilitas baru yang dulu tidak ada. 50
  • 51. BASIC (BEGINNER’S ALL-PURPOSE SYMBOLIC INSTRUCTION CODE)Bahasa pemrograman BASIC merupakanbahasa pemrograman yang cukup sesuai bagipemula. Namun sungguhpun demikian bahasatersebut cukup baik untuk dipergunakanmemecahkan berbagai masalah mulai dari yangpaling sederhana sampai dengan yang rumit. 51
  • 52. Contoh BASIC ALGORITMA10 LET A = 4 10 A = 420 LET B = 5 20 B = 530 LET C = A + B 30 C = A + B40 PRINT C 40 PRINT C50 ENDRUN 52
  • 53. LATIHAN10 A = 4 10 DATA 3,711 B = 5 11 READ A,B12 C = A + B 12 A = A + 113 D = A – B 13 PRINT A14 PRINT C 14 A = A + 115 PRINT D 15 PRINT A 16 A = A + B 17 PRINT A 53
  • 54. STATEMEN FOR - TO START FOR N = 1 TO 4 K = N*N CETAK K NEXT N END 54
  • 55. 10 READ DATA A, B 10 X = 120 C = (A+B)/2 20 PRINT X30 PRINT C 30 IF X = 5 THEN 6040 PRINT B 40 X= X+1 50 GO TO 20 60 ENDHarga 1 kg jeruk untuk pembelian 5 kg atau lebih rp. 6.000 dankurang dari 5 kg adalah Rp. 7.000. buat diagram alur dan lengkapialgoritma di bawah ini10 Data ……20 Read N30 IF N < 5 THEN 6040 ………..50 GO TO 7060 ……….70 Print B80 end 55
  • 56. LATIHAN1.BUATLAH ALGORITMA DENGAN OUTPUT 4,6,8,10,122.BUATLAH ALGORITMA & FLOWCHART UNTUK MENGHITUNG NILAI RATA2 MAHASISWA, JIKA NILAI RATA2 2 MATAKULIAH LEBIH BESAR DARI 75 MAKA MAHASISWA TERSEBUT “LULUS”, JIKA TIDAK MAHASISWA TERSEBUT “GAGAL” 56

Cara Belajar Logika & Algoritma Pemrograman


Sebelum belajar jauh tentang pemrograman kita harus mengerti tentang yang namanya logika dan algoritma pemrograman. Apa itu yang dimaksud dengan istilah kata logika dan algoritma? Nah disini kita akan mengerti cara belajar logika & Algoritma pemrograman, pertama kita definisikan istilah-istilah tersebut. Logika adalah Suatu pernyatahan yang di situ hanya ada dua nilai kalau tidak benar ya salah. Sedangkan algoritma merupakan urutan langkah-langkah/perintah/sebuah instruksi yang di susun secara sistematis dan logis untuk menyelesaikan masalah.
Cara Belajar Logika & Algoritma Pemprograman
Cara Belajar Logika & Algoritma Pemprograman
Sedikit mengenai sejarah dari kata algoritma, algoritma berasal dari bahasa Arab dengan lafal Al-Khwarizmi, bahasa Inggris Algorizm dan bahasa Indonesia disebut dengan nama Algoritma. Selain kita sudah mengerti tentang pengertian diatas untuk cara belajar logika & algoritma pemrograman kita harus mengenali istilah-istilah dari program, pemrograman, bahasa pemrograman. Kita ulas satu persatu
  1. Program adalah rangkaian kata perintah yang di mengerti oleh komputer untuk menyelesaikan masalah. Kata- kata perintah tersebut membentuk suatu bahasa yang di sebut dengan bahasa pemrograman.
  2. Pemrograman adalah proses mengimplementasikan suatu masalah dengan menggunakan salah satu bahasa pemrograman.
  3. Bahasa pemrograman adalah Prosedur atau tata cara penulisan program.Contoh: Basic, Pascal, Cobol, Visual Basic, Delphi, Java,C++, dan lain sebagainya
Ada dua jenis bahasa pemrograman
  1. Low level Language : berorientasi mesin (Assembly)
  2. High level Language : bahasa yang lebih dekat dengan manusia yang memiliki aturan-aturan yang mudah di pahami manusia. contoh: Basic, Pascal, Cobol, Visual Basic, Delphi, Java,C++
Ada 2 cara dalam penyajian sebuah algoritma pemrograman
  1. Tulisan melitputiGambar
    • Teks algoritma ( model structured English )
    • Pseudo-code (kode/tanda yg menyerupai (pseudo) atau merupakan penjelasan cara menyelesaikan suatu masalah)
  2. Bagan Alir ( Flow Chart) adalah suatu bagan yang menggambarkan arus logika dari data yang akan di proses dalam suatu progam menggunakan symbol-simbol.
Contoh gambar symbol-simbol flow chart
Symbol-symbol Flow chart | Cara Belajar Logika & Algoritma Pemprograman
Symbol-symbol Flow chart | Cara Belajar Logika & Algoritma Pemprograman
Tahap-tahap dari pemrograman
  1. Analisa problem
  2. Perancangan algoritma
    • Pembuatan program
    • Tes
    • Dokumentasi
    • Implementasi
  3. Tes
tahapan program | Cara Belajar Logika & Algoritma Pemrograman
tahapan program | Cara Belajar Logika & Algoritma Pemrograman
Kesimpulannya Alogritma pemrograman menurut GolekIlmu.com adalah sebuah langkah/prosedur awal (desain program) yang disusun secara urut yang meliputi input,proses dan output untuk selanjutnya dirumuskan atau digunakan ke bahasa pemrograman. Demikian cara belajar logika & Algoritma pemrograman yang saya ketahui mungkin jika saudara ingin menambahkan silahkan karena saya tahu bahwa artikel yang saya buat kurang dari sempurna. Terima kasih.