Selasa, 25 Oktober 2011

DIAGRAM ALUR (FLOWCHART)


Flowchart adalah suatu diagram yang menggambarkan susunan logika suatu program.

Simbol simbol yang digunakan adalah sebagai berikut :


Proses/prosessing,      satu      atau     beberapa himpunan penugasan yang akan dilaksanakan secara berurutan.


Input / Output data yg akan dibaca & dimasukan ke  dalam  memori  komputer  dari  suatu  alat input


Terminal, berfungsi sebagai awal (berisi ‘Start’)
&         sebagai  akhir  (berisi  ‘End’)  dari  suatu proses alur.


Decision          (kotak  keputusan)      berfungsi utk memutuskan arah/percabangan yg diambil sesuai               dgn kondisi     yg        dipenuhi,yaitu Benar/Salah. (dibahas dalam struktur branching).


Subroutine digunakan untuk menjalankan proses suatu bagian (sub program) atau prosedur.

Preparation digunakan untuk  pemberian harga awal.



Connector/penghubung,       digunakan            untuk menghubungkan diagram alur yang terputus dimana bagian tersebut masih berada pada halaman yang sama.


On page Connector, Untuk menghubungkan sambungan dari bagian flowchart yang terputus dimana  sambungannya  berada  pada  halaman lain.

Flowline,  menunjukkan  bagian  arah  instruksi dijalankan



Diagram Alur untuk Program Komputer.

Pada dasarnya suatu program komputer umumnya terdiri atas :

1.         Pembacaan / pemasukan data ke dalam komputer
2.         Melakukan komputasi/perhitungan terhadap data tersebut
3.         Mengeluarkan / mencetak/ menampilkan hasilnya.

Flowchart terdiri dari tiga struktur :
1. Stuktur squence / Struktur sederhana
Contoh :
2. Struktur Branching

Contoh :

3. Stuktur Looping

Contoh :

Catatan :
Ketiga struktur            diatas   dapat   digunakan       secara bersamaan pada satu diagram alur.
Memberi harga kepada suatu Variabel (Cara I)
Suatu variabel dapat diartikan sebagai suatu nilai yg dapat
berubah harganya.
Contoh            menggambarkan         pemberian        harga   suatu variabel :




X = 5     variabel X diberi harga sebesar 5


Kotak proses/penugasan dpt berfungsi antara lain untuk :

Variabel C diberi harga sebesar harga var. P dikurangi harga  var.  Q  (dlm  hal  ini,  harga variabel P & Q harus sudah ada)

Harga  yg  terbaru  dari  variabel  N  adalah harga lama dari variabel N ditambah 1 (atau dengan kata lain, harga variabel N bertambah 1)

Harga yg baru dari var. S adalah harga lama S ditambah dengan harga variabel T.


Jenis variabel terbagi atas 2 macam, yaitu :
1.         Variabel Numerik/bil.,
2.         Variabel untai kata/string,







Memberi harga kepada suatu variabel (Cara II)
Dgn menggunakan kotak masukan/baca/input/read,

STRUKTUR SQUENCE / STRUKTUR SEDERHANA
Diagram yang alurnya mengalir secara berurutan  dari atas ke bawah atau dengan kata lain tidak adanya percabangan atau pengulangan .


Keterangan :
1. Masukan Nilai Variable A
mis : 3
2. Proses A dengan A*2
3. Cetak hasil proses diatas
A=A*2 yg menghasilkan A=6



STRUKTUR BRANCHING (Percabangan)
A. Bersyarat
1. IF
2. IF......ELSE
3. NESTED IF atau IF ELSE Majemuk
4. SWITCH.....CASE


B. Tidak Bersyarat
•  Goto


A. Bersyarat
1. IF
Diagram yg alurnya ada/banyak terjadi alih kontrol berupa percabangan & terjadi apabila kita dihadapkan pada suatu Kondisi dengan dua pilihan BENAR/ SALAH.
Bentuk Umum :
if (kondisi)
pernyataan ;

Struktur Branching/percabangan:


2. IF ...... ELSE
Bentuk umum :
if (kondisi)
perintah1;
else
perintah 2;


Diagram alur dr pemakaian IF......ELSE sbb:


3. Nested IF
Pernyataan if yang berada dalam pernyataan if yang lain





IF.....ELSE Majemuk (bertingkat)
If-else majemuk mirip dengan nested if. Keuntungan penggunaan if-else majemuk adalah bentuk penulisan yang lebih sederhana.
Bentuk umum :
if (syarat)
{
... Perintah;
}
else if (syarat)
{
... Perintah;
}
else
{
... Perintah;
}


4. Switch Case
untuk   menangani       pengambilan    keputusan        yang melibatkan sejumlah atau banyak alternatif.
Bentuk Umum :
switch (ekspresi integer atau karakter)
{
case konstanta1:
...perintah;
break;
case konstanta2:
...perintah;
break;

default :

...perintah;
break;
}

B. Tidak Bersyarat
•           Go To

Bentuk umum :
goto label;

Contoh :
Hitung : statement; statement; statement; statement;
Goto hitung;

Latihan :
Tentukan Output dari Flowchart dibawah ini :


TUGAS KELOMPOK (Max 5 orang) dibuat menggunakan Microsoft Office Visio
1. Buatlah Flowchartnya dari pseudocode berikut ini:
   a. Masukan kode barang
   b. Masukan harga barang
   c. Masukan Jumlah barang
   d. Hitung bayar = harga * Jumlah barang
   e. Jika bayar >= 100.000 maka diberikan discount
       10%, selain dari itu tidak mendapat discount
   f.Hitung total bayar = bayar - discount
   g. Cetak total bayar

Jawaban :



2. Buatlah Flowchartnya dari pseudocode berikut ini:
    a. Diketahui phi=3.14
    b. Masukan nilai jari-jari (r)
    c. Hitung Keliling = 2 * phi * r d. Cetak Keliling
    e. Ingin menghitung kembali? Jika Ya maka kembali ke proses awal, jika Tidak maka program berhenti.
    Jawaban :
3. Buatlah Flowchartnya dari pseudocode berikut ini:
    a. Masukan pilihan
    b. Jika pilihan=1 maka menu=“nasi goreng” jika pilihan=2 maka menu=“mie goreng” jika pilihan=3 maka
         menu=“capcay”
    c. Cetak menu
    d. Ingin pilih kembali? Jika Ya maka kembali ke proses awal, jika Tidak maka program berhenti.
    Jawaban :





KONSEP TIPE DATA


KONSEP TIPE DATA C++
Pembagian Tipe Data:
1. Tipe Sederhana (Simple Type)
     * Int, Boll, Chart
     * Tipe Float
2. Tipe String
    * Operasi String
3. Tipe Terstruktur (Structured Type)
    * Array, Struct

VARIABEL & KONSTANTA
Variabel : 
• Untuk menyimpan suatu nilai, dan nilai yang ada  padanya dapat diubah selama eksekusi 
    berlangsung.
• Penamaan variabel bersifat case sensitive (huruf besar & huruf kecil dianggap berbeda).
• Harus dideklarasikan dahulu sebelum digunakan

   Contoh : Int alas, tinggi 
                int = tipe data
                alas = variabel
                tinggi = variabel

Konstanta:
Sebuah variabel dengan tipe data tertentu dan memiliki nilai data yang akan selalu tetap di dalam program.
Contoh : float phi;
              const phi = 3,14 
I. Tipe Data sederhana pada C++
 1. Tipe int :
     tipe data yang nilainya tidak memiliki titik desimal.

















2. Tipe Float :
     tipe data yang nilainya merupakan pecahan (memiliki titik desimal).


























3. Tipe Bool
    : nilai pengambilan suatu keputusan pada program, tipe ini mempunyai 2 nilai 
      yaitu benar(T) atau salah (F).
     Operator yg digunakan AND, OR atau NOT. 





















4. Tipe Char
    digunakan untuk menampung data sebuah karakter. 
    Untuk menuliskan tipe char, karakter perlu ditulis di dalam tanda petik tunggal ( ‘ )
    Contoh :
    ‘A’  karakter berupa huruf A
    ‘1’   karakter berupa angka 1
    ‘*’   karakter simbol *

II. Tipe String
Merupakan sekumpulan dari beberapa karakter, yang banyaknya berubah-ubah sesuai kebutuhan,besarnya 1 s/d 255 karakter. Pemberian nilai String diapit dengan tanda petik ganda (“)
Bentuk umum penulisan tipe data ini adalah :
tipe_data pengenal [panjang] ;
pengenal= nama variabel
panjang= bilangan bulat yg menunjukan jumlah karakter
Contoh : char nama[15] ;

Fungsi pada Operasi STRING
1. Strcpy( )
    Untuk menyalin nilai string.
2. Strcat( )
    Untuk menggabungkan nilai string.
3. Strcmp( )
    Untuk membandingkan 2 nilai string.
4. Strlen( )
    Untuk mengetahui panjang nilai string.
5. Strchr ( )
    Untuk mencari nilai karakter dalam string.

III. Tipe Terstruktur
      Bermanfaat untuk mengelompokkan sejumlah data dengan tipe data yang berlainan.
      Contoh:
                     struct data_pegawai
                     {
                     int nip;
                     char nama[25];
                     char alamat[40];
                     }

      Contoh program sederhana :
      #include <conio.h>
      #include <iostream.h> 
      #include <math.h>
      void 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 =“ << z;
         getch();
         }

KONSEP ALGORITMA


ALGORITMA PE-UBAH
Adalah Variabel yang nilainya BUKAN konstanta (selalu berubah – sesuai dengan kondisi Variabel terKINI)
Sintaks      : P=Q
Algoritma : PQ
Arti           : Bahwa Nilai P diberi harga Nilai Q
Nilai P akan SAMA DENGAN nilai Q, & Nilai Q TETAP

ALGORITMA PERTUKARAN
Berfungsi mempertukarkan masing-masing isi Variabel sedemikian sehingga Nilai dari tiap Variabel akan berubah/bertukar

PENGERTIAN DASAR LOGIKA DAN ALGORITMA




PENGERTIAN DASAR

LOGIKA

Diperkenalkan pertama kali oleh Aristoteles (384-322 SM)


ALGORITMA

Diperkenalkan Oleh Ahli 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 Logika
1. Penalaran atau bentuk pemikiran.
2. Ilmu yang memberikan prinsip-prinsip yang harus diikuti agar dapat berfikir valid menurut aturan yang berlaku.



Definisi Algoritma

1. Langkah - langkah yang dilakukan agar solusi masalah dapat diperoleh.
2. Suatu prosedur yang merupakan urutan langkah-langkah yg berintegrasi.
3. Suatu metode khusus yang digunakan untuk menyelesaikan suatu masalah yang nyata.(Webster Dictionary)

TAHAP PENYELESAIAN MASALAH




















Kriteria Pemilihan Algoritma.
1.Ada Output,
2.Efektifitas dan Efesiensi,
3.Jumlah Langkahnya Berhingga,
4.Berakhir,( SEMI ALGORITMA )
5.Terstruktur,


Suatu Algoritma yg terbaik (The Best) : “ Suatu algoritma harus menghasilkan output yg tepat guna (efektif) dlm waktu yg relatif singkat & penggunaan memori yg relatif sedikit (efesien) dgn langkah yg berhingga & prosedurnya berakhir baik dlm keadaan dip’oleh suatu solusi ataupun tdk ada solusinya.“


Contoh :
Sebuah prosedur ketika akan mengirimkan surat kepada teman:
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 yg dituju, jika tdk ingat, lebih dahulu ambil buku alamat & cari alamat yg dituju, lalu tulis alamat tsb pd amplop surat.
6. Tempelkan perangko pada amplop surat
7. Bawa surat ke kantor pos utk diserahkan pd pegawai pos atau menuju ke bis surat untuk memasukkan surat ke dlm kotak/bis surat.



Sebuah prosedur untuk masalah menentukan akar kuadrat dari suatu bilangan Bulat Positif yg di Input :
Baca bilangan Bulat Positif yg diinput, sebut saja sebagai A
1. Dinyatakan Nilai B adalah 0
2. Hitung Nilai C yg berisikan Nilai B dikalikan Nilai B
3. Jika Nilai C sama dengan Nilai A, maka Nilai B adalah Akar dari Nilai A, lalu stop.
4. Jika tidak, maka Nilai B akan bertambah 1
5. Kembali ke langkah pada No. 3



TAHAPAN ANALISA ALGORITMA
1. Bagaimana merencanakan suatu algoritma.
2. Bagaimana menyatakan suatu algoritma



a. Dengan bahasa semu (pseudocode).
Contoh :
Untuk menghitung Luas Segi tiga :
1. Masukan Nilai Alas
2. Masukan Nilai Tinggi
3. Hitung Luas =( Alas * Tinggi ) / 2
4. Cetak Luas



b. Dengan diagram alur atau flowchart,
    Contoh :






















c. Dengan Statement program / penggalan Program













3.Bagaimana validitas suatu algoritma.
4.Bagaimana Menganalisa suatu Algoritma.
5.Bagaimana Menguji Program dari suatu Algoritma.



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



Analisis Suatu Algoritma
(Untuk melihat faktor efesiensi & efektifitas dari algoritma tersebut), Dapat dilakukan terhadap suatu algoritma dengan melihat pada :
a. Waktu Tempuh (Running Time) dr suatu Algortima.
Hal-hal yg dpt mempengaruhi drpd waktu tempuh adalah :
1. Banyaknya langkah.
2. Besar dan jenis input data.
3. Jenis Operasi.
4. Komputer dan kompilator 
b. Jumlah Memori Yang Digunakan.



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,