Jumat, 05 Januari 2018

Bab3 (Tipe Data, Dan Operator Runtunan)

   Tipe data, operator, dan runtunan merupakan suatu kesatuan konsep yang
paling mendasar didalam pemprograman komputer, karena tipe-tipe data
dasar dan operator dapat membentuk berbagai macam ekspresi yang akan
digunakan dalam program.
Sedangkan runtunan merupakan konsep dasar yang dapat memberikan
gambaran tentang cara kerja sebuah program dalam komputer atau dengan
kata lain adalah urutan peng-eksekusian parintah pada satu argumen.

Tujuan
1. Mengenal dan membedakan tipe-tipe data dasar
2. Memahami penggunaan tipe-tipe data dasar dalam program
3. Memahami operator dan penggunaannya dalam program
4. Memahami konsep runtunan dalam program

   Tipe Data Dasar

Tipe data adalah himpunan nilai yang dapat dimiliki oleh sebuah data.
Tipe data menentukan apakah sebuah nilai dapat dimiliki sebuah data atau tidak,
serta operasi apa yang dapat dilakukan pada data tersebut. Contoh tipe data
dalam dunia nyata adalah bilangan bulat. Jika sebuah data, misalnya umur, harus
berupa bilangan bulat maka dapat dipastikan bahwa 25, 13, 7 dapat menjadi
nilai umur, sedangkan 7.5, 19.655 bukan merupakan contoh dari nilai umur.
 
   Contoh; bilangan bulat ini dapat kita lihat dalam kasus sehari –hari
khususnya dalam hal pencacahan (Ingat kembali bilangan cacah : 1,2,3,4,.....
yang merupakan himpunan bagian dari himpunan bilangan bulat). Misalnya
jumlah siswa dalam kelas ada 20. 20 adalah bilangan bulat. Tidak akan
ditemukan pernyataan : jumlah siswa dalam kelas ada 20,5. Contoh yang lain
adalah jumlah mobil yang diparkir di tempat parkir. Kita akan menggunakan
bilangan bulat dalam kasus ini. Tidak pernah akan kita gunakan angka angka
50,33 atau 3 atau 40/7 sebagai jumlah dari mobil yang sedang parkir.
Selain itu, misalnya data nama seseorang yaitu ‘Bambang Pamungkas’
yang merupakan sebuah deretan hurup dan lain sebagainya.Dalam sebuah
program, setiap variabel dan konstanta memiliki tipe data yang harus
dideklarasikan di awal program. Pendeklarasi tipe data tersebut bertujuan
untuk menentukan besarnya tempat dalam memori yang akan digunakan
untuk menyimpan data pada tersebut saat program dijalankan.
Tipe data dasar adalah tipe data yang dapat langsung digunakan. Secara
umum terdapat 2 tipe data dasar, yaitu:
  1. numerik
  2. kategorik
Tipe data numerik terdiri atas angka/ kumpulan angka serta dapat mengalami operasi
perhitungan, sedangkan tipe data kategorik dapat berupa angka maupun huruf
namun tidak dapat mengalami operasi perhitungan.
Berikut merupakan

⇛   Contoh beberapa tipe data dasar
⇛Integer/ bilangan bulat 
   Integer adalah tipe data dasar berupa bilangan yang tidak mengandung
pecahan desimal. Tipe data ini juga memiliki urutan, sehingga dapat
dibandingkan satu dengan lainnya.
Contoh integer: 2 5 -10 135 2008
Secara teoritis, tipe data integer tidak memiliki batasan, yaitu dari
minus tak hingga hingga plus tak hingga. Namun dalam pemrograman
yang menggunakan bahasa pemprograman C++

⇛Real/ bilangan riil

   Real adalah tipe data dasar berupa bilangan yang memiliki pecahan
desimal. Dalam pemrograman, nilai dengan tipe data ini harus ditulis
dengan sebuah titik sebagai pemisah bilangan utuh dan bilangan
pecahannya. Tipe data ini digunakan untuk perhitungan yang melibatkan
bilangan pecahan, seperti perhitungan kosinus, akar persamaan, dan
sebagainya. Tipe data ini juga memiliki urutan, sehingga dapat
dibandingkan satu dengan lainnya.
Contoh real: .5 0.17 -3.465 92.0 4.3000+E9
Secara teoritis, tipe data real juga tidak memiliki batasan, yaitu dari
minus tak hingga hingga plus tak hingga.

⇛Char/ Karakter

   Char adalah tipe data dasar yang terdiri atas satu buah angka, huruf,
tanda baca atau karakter khusus. Untuk menyimpan sebuah karakter,
diperlukan 1 byte atau 8 bit tempat didalam memori. Dalam sebuah
program, penulisan tipe data char diawali dan diakhiri dengan tanda kutip
ganda. Selain itu, terdapat sebuah karakter kosong yang disebut dengan
null atau nil dan dituliskan sebagai "".
Contoh char: "5" "A" "?" "+" "$"
Perhatikan bahwa 5 adalah integer sedangkan "5" adalah char.

⇛String

   String adalah tipe data dasar yang berupa kumpulan karakter dengan
panjang tertentu. Meskipun berupa kumpulan karakter, karena tipe
data string sering digunakan dalam pemrograman, string dianggap
sebagai tipe data dasar. Untuk penyimpanan string didalam memori,
dibutuhkan 1 byte untuk tiap karakternya. Serupa dengan penulisan
karakter, penulisan sebuah string juga harus diawali dan diakhiri dengan
tanda petik ganda. String juga mengenal null yang dituliskan dengan “”.
Contoh string:
           - "BANDUNG"
           - "Politeknik Telkom Bandung"
           - "ABC3456"
           - "Lucu"
           - "30202001"
           - "z"
Perhatikan bahwa sebuah karakter tunggal ("z") juga merupakan
string.

⇛Boolean/ bilangan logika
   Sebuah data boolean memiliki tepat dua buah kemungkinan nilai,
direpresentasikan sebagai Benar dan Salah, atau True dan False, atau
dapat juga dilambangkan dengan 1 dan 0. Tipe data ini dapat digunakan
untuk pemilihan dengan kondisi-kondisi tertentu, dimana program
harus memilih aksi apa yang akan dijalankan dengan parameter
tertentu.
Tipe data ini paling sering digunakan untuk range yang memili dua buah
nilai: lulus - tidak lulus, member – bukan member,

⇛Variabel
   Variabel atau peubah adalah obyek yang nilainya dapat berubah-ubah
dalam sebuah program. Pada saat sebuah variabel dideklarasikan, program
‘memesan’ tempat dengan ukuran tertentu (sesuai tipe datanya) pada memori
untuk menyimpan nilai dari variabel tersebut. Pemrogram dapat memberikan
nama pada sebuah variabel untuk mempermudah pemanggilan variabel
tersebut di dalam program. Pada saat mendeklarasikan sebuah variabel,
pemrogram harus menyebutkan nama variabel dan tipe data dari variabel
tersebut.
   Dalam bentuk flowchart, deklarasi variabel digambarkan sebagai sebuah
proses. Misalnya sebagai berikut:
    x : integer
   nama : string
   TB : real

Contoh deklarasi variabel dalam psedeucode :
1. KAMUS DATA {awal deklarasi variabel}
2. x : integer
3. nama: string
4. TB : real
5. jenisKelamin : char
6. status : boolean

   Sebelum kita menuliskan beberapa program dalam bahasa C++, ada baiknya
kita mengenal terlebih dahulu struktur dan format penulisan program dalam
bahasa C++.
1. // Contoh Program C++
2. #include <stdio.h>
3. /* Program Utama */
4. main() {
5. printf("Selamat Datang");
6. return 0;
7. }

   Pada contoh program diatas, pada baris pertama dituliskan diawalannya
tanda doubleslash (//). Maksudnya adalah sebagai komentar, artinya baris
tersebut tidak akan dieksekusi oleh program. Kita dapat menuliskan apapun
setelah tanda tersebut dan berlaku hanya satu baris. Sedangkan untuk penulisan
komentar lebih dari satu baris digunakan tanda /* .. */ dimana komentar
dituliskan diantara tanda /* dan */ seperti tampak pada baris ke
3 dan 4. Biasanya tanda tersebut digunakan oleh programmer untuk memberi
penanda atau keterangan pada tiap baris program seperti pada baris 5.
   
   Pada baris kedua terdapat code #include <stdio.h>, yang
diawali dengan tanda crash (#). Ini dapat kita sebut dengan preprocessor
directive. preprocessor directive merupakan perintah-perintah untuk

   memberitahukan kepada compiler untuk melakukan berbagaimacam definisi
seperti menggunakan (include) file librari misalnya stdio.h, karena didalam
file tersebut mengandung beberapa fungsi yang akan digunakan didalam
program.
   
   Sedangkan pada baris ke 5 – 8 merupakan isi dari program. Pada baris
ke 5 terdapat instruksi main() dimana pada baris tersebut merupakan fungsi
utama atau program utama. Maksudnya adalaha pada baris tersebut
merupakan penanda awal dari eksekusi sebuah program. Untuk awal instruksi
ditandai dengan kurung kurawal. Seperti pada program diatas, pada baris ke-5
(tanda {) merupakan awal dari program utama dan berakhir pada baris ke-8.
   
   Pada baris dke-6 (printf("Selamat Datang")) merupakan
instruksi untuk mencetak tulisan “Selamat Datang” kelayar. Sedangkan
pada baris ke-7 (return 0) merupakan nilai kembali dari fungsi utama yaitu
nilainya adalah 0. Perlu diperhatikan bahwa setiap instruksi pada perogram
harus diakhiri dengan tanda semicolon (;).
Untuk menuliskan variabel, kita dapat menuliskannya pada bagian isi
program. Contoh penulisan variabelnya adalah :
   1. #include <stdio.h>
   2.
   3. main () {
   4. int x;
   5. string nama;
   6. float BB;
   7. char jKelamin;
   8. bool status;
   9. ...
   10. }

   Secara teori, pemrogram dapat memberikan nama apapun pada sebuah
variabel karena penamaan variabel bertujuan untuk memudahkan pemanggilan
kembali. Namun, ada beberapa panduan yang biasa diacu pemrogram dalam
penamaan variabel, antara lain:
  •  Huruf pertama pada nama variabel menunjukkan tipe data dari variabel.                          Contoh: diawali dengan ‘c’ untuk variabel char, ‘i’ untuk integer, ‘s’ untuk string dan  s    seterusnya. Panduan penamaan ini disebut dengan Charles Simyoni Hungarion Notation.
  •  Nama variabel harus cukup jelas menunjukkan tujuan penggunaan variabel tersebut.        Contoh: sNama adalah variabel string untuk menyimpan nama,                            cJenisKelamin adalah variabel c har untuk menyimpan jenis kelamin, Status adalah variabel  boolean untuk menyimpan status.
  •  Nama variabel tidak boleh mengandung spasi kosong atau karakter                                    khusus ! @ # $ % ^ & * ( ) { } [ ] ’ ” ; : < > , . / ? | dan \. Beberapapemrogram menggunakan  ‘_’ untuk memisahkan kata di nama variabel Contoh: cJenis_kelamin, sNama_orang_tua,  iNilai_akhir
  •  Cara lain untuk memisahkan kata dalam nama variabel adalah dengan                            memberikan huruf besar di awal tiap kata.Contoh: cJenisKelamin, sNamaOrangTua,  iNilaiAkhir.
   Setelah sebuah variabel dideklarasikan, variabel dapat menyimpan nilai.
Pengisian nilai ke dalam sebuah variabel dalam sebuah program dapat dilakukan
dengan 2 cara, yaitu:

Secara langsung
Contoh:
- cJenisKelamin = ‘P’
- sNamaOrangTua = ‘Jeremy Thomas’
- iNilaiAkhir = 99
Dengan inputan
Contoh:
- Input (cJenisKelamin)
- Input (sNamaOrangTua)
- Input (iNilaiAkhir)

Contoh program untuk memberikan nilai pada sebuah variabel :
1. #include <stdio.h>
2. main() {
3. int lA,lB;
4. String NamaA, NamaB;
5. // Pengisian secara Langsung
6. lA = 20;
7. NamaA = “Joko Handono”;
8. // Pengisian dengan Inputan
9. scanf(“%i”,&lB);
10. scanf(“%s”,&NamaB);
11. // Menampilkan Kelayar
12. printf(“Nilai lA : %i”,lA);
13. printf(“Nilai lB : %i”,lB);
14. printf(“Nilai NamaA : %s”,NamaA);
15. printf(“Nilai NamaB : %s”,NamaB);
16. }

   Pada contoh program diatas, kita melihat ada tanda “%i” dan “%s”.
Funssi tanda tersebut adalah untuk menkonfersi nilai inputan menjadi tipe
yang sesuai dengan yang diterima atau mengubah nilai dari tipe data dasar
menjadi tipe karakter untuk ditampilkan dilayar. Karena pada dasarnya, dalam
   pemprograman bahasa C++ nilai input atau nilai yang dapat ditampilkan
berupa karakter. Sedangkan didalam program, nilai tersebut harus sesuai
dengan tipe data yang dideklarasikan. Sebagai contoh pada baris ke-10,
variabel “lB” tipe datanya adalah integer. Untuk mengubah tipe masukan
menjadi integer, maka digunakan “%i”. Biasanya, string tersebut diawali dengan
huruf pertama tipe datanya, misalnya float -> %f, String ->
%s dan seterusnya. Khusus untuk inputan, nama variabelnya harus diawali
dengan string “&” seperti tampak pada baris ke 10 dan 11.

Konstanta
   Pada variabel, nilai yang disimpan dapat berubah-ubah selama program
dijalankan. Sedangkan pada pada konstanta, nilai yang disimpan tetap dan tidak
dapat diubah sejak dideklarasikan hingga program berakhir..
Setelah sebuah konstanta dideklarasikan, konstanta dapat digunakan
dalam program dan nilainya selalu tetap. Deklarasi konstanta dalam flowchart
digambarkan sebagai sebuah proses. Misalnya:
   iMaks = 100
   fPi = 3.14
   sSapa = ‘Hello’
   Cara penulisan konstanta didalam program, di tulis dengan diawali
dengan tanda crash (#) kemudian diikuti dengan define, selanjutnya nama
konstantanya dan selanjutnya nilainya dan ditulis diluar program utama setelah
pendeklarasian librari namespace. Contoh penulisannya adalah sebagai berikut;
   1. #include <stdio.h>
   2. #define iMaxs 100
   3. #define fPi 3.14159
   4. #define sSapa ‘Hello’
   5. #define newLine ‘\n’
   6. main() {
   7. ...
   8. }

⇛Operator
   Operator adalah pengendali operasi yang akan dilakukan pada
beberapa operan sehingga membentuk sebuah ekspresi. Secara umum, dalam
sebuah ekspresi terdapat sebuah operator yang diapit dua operan. Contohnya
pada ekspresi:
     x + y
     x dan y adalah operan, sedangkan
     ‘+’ adalah operatornya
Terdapat tiga macam operator yang biasa digunakan dalam
pemrograman, yaitu: Operator aritmatik, Operator assignment, Increase & Decrease
    ⇛Operator aritmatik
       Operator ini membentuk perhitungan aritmatik. Kedua operan dari
    operasi aritmatik ini dapat berupa nilai integer atau real.
    operator yang termasuk tipe ini adalah:

    Lambang
    Deskripsi
    Contoh
    +
    Penjumlahan
    X = y + z
    -
    Pengurangan
    X = y - z
    *
    Perkalian
    X = y * z
    /
    Pembagian
    X = y / z
    %
    Modulo (sisa bagi)
    X = % z
                                                 Tabel. Operator aritmatik

       Output dari operasi aritmatik akan memiliki tipe data yang sama
    dengan tipe data kedua operannya. Misalnya, jika sebuah bilangan integer
    dijumlahkan dengan bilangan integer lainnya maka outputnya adalah
    bilangan integer juga. Selain itu perlu diperhatikan pula
    operator aritmatik tidak dapat diterapkan pada dua bilangan dengan tipe
    data yang berbeda. 

    Contoh program dengan operasi aritmatik:
    1 //Program Aritmatik
    2 /* IS:Tersedia dua buah bilangan integer
    FS:Hasil Modulo duabuah bilangan */
    3 #include <stdio.h>
    4
    5 main () {
    6 // Deklarasi Variabel
    7 int iTambah;
    8 int iAngka1, iAngka2;
    9 printf(“Masukan Bilangan Pertama : ”);
    10 scanf(“%i”, iAngka1);
    11 printf(“Masukan Bilangan Kedua : ”);
    12 scanf(“%i”, iAngka2);
    13 // Penjumlahan
    14 iTambah = iAngka1 + iAngka2;
    15 printf(“Hasil Penjumlahan %i + %i = %i”,
    iAngka1, iAngka2, iTambah);
    16 return 0;
    17 }
       Program di atas akan mengembalikan nilai hasil penjumlahan sesuai
    dengan inputan. Misalnya pada inputan pertama kita masukan 10 dan
    yang kedia kita masukan 23 maka hasilnya adalah 33. outputnya adalah:
       Masukan Bilangan Pertama : 10
       Masukan Bilangan Kedua : 23
       Hasil Penjumlahan 10 + 23 = 33

    ⇛Operator Assignment
       Dalam pemprograman bahasa C++, Operator ini digunakan
    memasukan nilai kedalam sebuah variabel, tanpa menghilangkan atau
    mengosongkan nilai variabel sebelumnya. Contoh penggunaan operator
    ini adalah sebagai berikut:

    Lambang
    Deskripsi
    Contoh
    + =
    Menambahkan
    X + = 1
    - =
    Mengurangkan
    X - = 1
    * =
    Mengkalikan
    X * = 2
    / =
    Membagi
    X / = 2
    % =
    Mem-mod
    X % = 2
                                                 Tabel. Operator Assignment

    ⇛Increase and decrease
        Penulisan ini dilambangkan dengan ++ (Increade) dan -- (decrease).
    Operator ini berfungsi untuk menaikan atau menurunkan satu satuan
    nilai pada sebuah variabel. Contoh penggunaannya adalah pada contoh
    dibawah ini :
    1 ...
    2 a++;
    3 a += 1;
    4 a = a + 1;
    5 ...

    ⇛Operator relasional
       Operator ini membandingkan dua operan dan hasilnya berupa nilai
    boolean (BENAR atau SALAH). Operasi relasional dapat dilakukan
    pada dua nilai dengan tipe data yang sama: tipe data integer, riil, char,
    string, maupun boolean. Berikut ini adalah operator relasional:

      Tabel. Operator relasional
    Lambang
    Deskripsi
    Contoh
    = =
    Sama dengan
    X == y
    ! =
    Tidak sama dengan
    X ! = y
    > 
    Lebih dari
    X > y
    < 
    Kurang dari
    X < y
    > =
    Lebih atau sama dengan
    X > = y
    < =
    Kurang dari atau sama dengan
    X < = y








                     
                                        Contoh Penggunaan Operator relasional dalam algoritma:
    1 // Program Operator Relasional
    2 KAMUS DATA {awal deklarasi variabel}
    3 iAngka1, iAngka2 : integer
    4 BEGIN {awal algoritma}
    5 iAngka1 = 6 {pengisian variabel langsung}
    6 Input(iAngka2) {pengisian dgn inputan}
    7 IF (iAngka1 <> iAngka2) THEN
    8 Output (‘Tebakan Anda salah’)
    9 ELSE
    10 Output (‘Horee! Tebakan Anda benar’)
    11 ENDIF
    12 END

    Output dari operasi relasional bertipe boolean (true/ false). Pada
    contoh di atas,
    iAngka1 != iAngka2 bernilai benar/ true jika iAngka1 tidak sama
    dengan iAngka2
    iAngka1 != iAngka2 bernilai salah/ false jika iAngka1 sama
    dengan iAngka2
    Program di atas akan mengeluarkan pesan sesuai inputan pengguna. Jika
    pengguna menginputkan angka selain 6 (‘iAngka1 != iAngka2’ bernilai
    benar), program akan mengeluarkan pesan ‘Tebakan Anda salah’. Jika
    pengguna menginputkan angka 6 (‘iAngka1 != iAngka2’ bernilai salah),
    program akan mengeluarkan pesan ‘Horee! Tebakan Anda benar’.


    ⇛Operator logika

       Operator logika adalah operator yang digunakan untuk

    mengkombinasikan hasil ekspresi yang mengandung operator

    relasional.




    Lambang
    Deskripsi
    Contoh
    &&
    And / Dan
    x > 7 && x = y
    ll
    Or / Atau
    X l = y ll x > 3
    !
    Not / Tidak
    ! ( x > y )
                                        Tabel.Operator logika

    Beberapa contoh penggunaan operator logika:
     ⬅ (x > 7) && (x = y)
    Jika ternyata nilai x adalah 8 dan y adalah 5, maka
    (8 > 7) && (8 = 5)
    True AND False
    False (output operasi)

    ⬅ (x != y) || (x > 3)
    Jika ternyata nilai x adalah 4 dan y adalah 4, maka
    (4 != 4) || (4 > 3)
    False OR True
    True (output operasi)

    ⬅NOT (x > y)
    Jika ternyata nilai x adalah 3 dan y adalah 3, maka
    NOT (3 > 3)
    NOT (False)
    True (output operasi)

    ⇛Urutan Operasi
       Sebuah ekspresi mungkin terdiri atas beberapa operasi sekaligus.
    Misalnya:
    iHasil = x * 2 % 2 > y && (x != 3)
    Untuk menentukan operasi mana yang dilakukan terlebih dahulu
    daripada operasi lainnya, setiap operator memiliki level urutan. Level
    urutan ini terdiri atas lima kelompok, level 1 hingga 5.
       Operator yang memiliki level lebih tinggi (ditunjukkan dengan
    angka yang semakin kecil) akan dioperasikan terlebih dahulu
    dibandingkan operator lain yang levelnya lebih rendah. Sedangkan pada
    operator-operator yang berada pada level yang sama, operasi
    dilakukan secara berurutan dari kiri ke kanan. Hal ini disebut dengan
    asosiativitas.
       Pada beberapa ekspresi diperlukan pengubahan urutan eksekusi
    operasi-operasi. Untuk memungkinkan pemrogram melakukan hal
    tersebut, tersedia sebuah operator tambahan yang memiliki level
    eksekusi paling tinggi, yaitu (). Operasi apapun yang ada dalam tanda
    kurung () akan dieksekusi pertama kali oleh program.

    ⇛Runtunan
       Secara umum, program akan dibaca dan dieksekusi secara berurutan
    baris demi baris. Misalnya pada algoritma berikut ini:

    1. Algoritma Runtunan;
    2. {IS:Tersedia empat bilangan yang akan
    dioperasikan
    FS:Mengoutputkan dua bilangan setelah
    dioperasikan }
    3. Kamus data
    4. a,b,c,d : integer
    5. BEGIN
    6. a ← 3
    7. b ← 2
    8. c ← a * b
    9. a ← 5
    10. d ← a + b
    11. Output (c, d)
    12. END.


        Perhatikan bahwa pada saat membaca baris ke-3, program akan
    mengalikan 3 dan 2 (a dan b). Kemudian, saat membaca baris ke-5, program
    akan menjumlahkan 5 dan 2 (a dan b). Nilai a berubah karena di baris ke-4
    variabel a diisi dengan 5. Ini merupakan akibat dari sifat program yang
    membaca dan mengeksekusi per baris. Setelah baris ke-4 dieksekusi, nilai a
    yang diisikan pada baris pertama sudah tidak berlaku lagi (tertumpuk dengan
    nilai baru yang diisikan).
        Di bab-bab selanjutnya akan ditunjukkan bahwa sifat program membaca
    dan mengeksekusi berurut terus per baris ini dapat diubah, dengan
    memberikannya perintah untuk tidak membaca sesuai urutan. Hal ini dapat
    dilakukan dengan struktur pemilihan, struktur pengulangan, dan lain-lain.
    Jika algoritma runtunan di atas dituliskan dalam bahasa Pascal, maka akan
    tampak sebagai berikut:

    1. // Program Runtunan;
    2. /*IS:Tersedia empat bilangan yang akan
    dioperasikan
    FS:Menampilkan dua bilangan setelah
    dioperasikan */
    3. #include <stdio.h>
    4.
    5. main () {
    6. int a,b,c,d;
    7. a = 3;
    8. b = 2;
    9. c = a * b;
    10. a = 5;
    11. d = a + b;
    12. printf(“Nilai C : %i”,c);
    13. printf(“Nilai D : %i”,d);
    14. }

    Jika Program dijalankan, maka hasil keluaran program adalah seperti
    berikut :
    Nilai C : 6
    Nilai D : 7


    Bab2 (Flowchart Dan Peseudocode)

    Flowchart
       Seperti telah dijelaskan pada bab sebelumnya bahwa flowchart
    digunakan untuk menggambarkan algoritma atau proses. Flowchart disusun
    menggunakan simbol-simbol, maka dapat memberikan gambaran yang efektif
    dan jelas tentang prosedur logika.
    Dalam hal melakukan koreksi atau analisis dari suatu permasalahan,
    flowchart dapat dengan mudah untuk dilihat dan dikomunikasikan. Hal ini
    dikarenakan flowchart disusun atas simbol-simbol yang mengikuti suatu
    standar tertentu.

    Pengambilan Keputusan
       Pengambilan keputusan perlu dilakukan apabila harus menentukan
    satu pilihan dari (minimal) dua pilihan yang ada. Dalam hal mengambil
    keputusan, perlu diketahui kondisi yang sedang dihadapi. Kondisi ini bisa berupa
    pernyataan boolean atau proses perbandingan. Dalam flowchart, simbol yang

    digunakan untuk pengambilan keputusan adalah berbentuk belah ketupat.
    Simbol pengambilan keputusan hanya memiliki satu buah input dan dua buah
    output yang digunakan untuk memfasilitasi hasil dari pengujian kondisi, yaitu
    Ya” atau “Tidak”, “True” atau “False”.
    Dalam melakukan pengujian kondisi, terdapat beberapa notasi yang
    dapat digunakan, misalnya menggunakan notasi relasional berikut :

    Lebih besar dari
    Kurang dari
    Lebih besar atau sama dengan
    Kurang dari atau sama dengan
    < >
    Tidak sama dengan

       Dalam proses pengambilan keputusan, kadang kala terdapat
    beberapa syarat sekaligus. Untuk menangani hal ini dapat digunakan ekspresi
    aljabar boolean. Aljabar boolean merupakan kalkulus logika yang digunakan
    untuk menentukan nilai kebenaran dari suatu ekspresi logika [10]. Teknik
    aljabar ini dikembangkan oleh George Boole pada tahun 1930an, sebagai
    penghargaan atas penemuannya maka aljabar ini diberi nama sesuai dengan
    nama belakang beliau.
    Dalam aljabar boolean terdapat tiga buah operasi dasar, yaitu : AND,
    OR, NOT ketiga-tiganya dapat digunakan secara independen atau dapat
    digunakan sekaligus. Keluaran (output) dari aljabar ini adalah nilai benar
    (TRUE) atau salah (FALSE).
    Berikut ini adalah tabel yang menunjukkan ketiga hasil operasi aljabar
    boolean :

                                        TABEL X AND Y
    X
    Y
    X AND Y
    T
    T
    T
    T
    F
    F
    F
    T
    F
    F
    F
    F


                                        TABEL X AND OR
    X
    Y
    X AND OR
    T
    T
    T
    T
    F
    T
    F
    T
    T
    F
    F
    F


                                        TABEL NOT X
    X
    NOT X
    T
    F
    F
    T


    Pengulangan Proses
       Dalam beberapa kasus, seringkali terdapat proses yang harus dilakukan
    secara berulang-ulang, sebagai contoh yang paling sederhana adalah proses
    berjalan kaki. Untuk bisa mencapai tujuan, kita harus melangkahkan kaki
    secara berulang-ulang supaya dapat menempuh jarak tertentu dan akhirnya
    sampai tujuan.
    Pada kasus yang berhubungan dengan pengolahan informasi
    menggunakan komputer, terdapat proses-proses yang harus dilakukan secara
    berulang, mulai dari input data, proses dan output. Program yang baik adalah
    program yang bisa mengoptimalkan kinerja komputer, dengan cara
    menggunakan kembali program atau sekumpulan program dengan proses
    tertentu. Atau dengan kata lain terdapat bagian program yang dapat
    dipanggil/digunakan secara berulang-ulang. Hal ini akan mempermudah
    pekerjaan programmer dalam menghasilkan solusi. 
      
      Contoh:
       Seorang staff IT diminta untuk menampilkan data dari sebuah tabel dimana di
    dalamnya terdapat seratus baris data. Jika staff tersebut harus menampilkan
    satu per satu, tentunya akan membutuhkan banyak kode program dan program
    akan menjadi tidak efektif.
      
      Solusi:
    Dalam kasus ini yang diminta adalah bagaimana menampilkan data sebanyak
    100 baris tanpa harus menggunakan proses output sebanyak 100 kali. Metode
    yang digunakan adalah pengulangan.
    Dalam proses pengulangan terdapat 3 (tiga) hal penting, yaitu:
          1. Inisialisasi (penentuan kondisi/nilai awal)
          2. Proses
          3. Kondisi berhenti
    Untuk kasus menampilkan data, dapat ditentukan bahwa jumlah baris yang akan
    dibaca adalah 100. Baris akan dibaca mulai dari baris pertama (baris = 1). Proses
    yang dilakukan adalah membaca dan menampilkan isinya ke layar (output).Pembacaan akan berhenti jika baris yang dibaca sudah mencapai baris ke-100 Jika digambarkan menggunakan flowchart maka, akan tampak sebagai berikut:



    Pseudocode
       Pada bab 1 telah dijelaskan sebelumnya mengenai keuntungan dalam
    menuangkan logika dan algoritma menggunakan pseudocode. Dalam
    menyelesaikan kasus yang besar dan kompleks, misalnya membuat aplikasi
    untuk menangani proses bisnis sebuah perusahaan maka, yang paling cocok
    digunakan dalam menuliskan algoritma adalah pseudocode.
    Sesungguhnya tidak ada aturan baku dalam penulisan pseudocode,
    namun karena banyaknya bahasa pemrograman yang beredar saat ini maka,
    aturan penulisan pseudocode diarahkan untuk menyerupai aturan penulisan
    bahasa pemroraman tertentu. Dalam buku ini akan digunakan aturan
    penulisan pseudocode yang mendekati bahasa pemrograman Pascal.
    Struktur algoritma
    Struktur algoritma yang digunakan mengacu pada struktur
    pemrograman bahasa Pascal yang terdiri dari 3 (tiga) bagian, yaitu :
    • Judul
    • Deklarasi/Kamus Data
    • Badan Program

       Pada bagian judul, digunakan sebagai tempat untuk mencantumkan
    nama atau judul program. Terdapat aturan penulisan judul, yakni:
    1. Tidak diawali dengan angka atau karakter selain alphabet
    2. Tidak terdapat karakter spasi atau karakter selain alphabet
    kecuali karakter underscore ‘_’ (sebagai pengganti karakter
    spasi).

    Contoh
    Algoritma menghitung;
    BENAR
    Algoritma konversi bilangan;
    SALAH
    Algoritma perhitungan_pajak;
    BENAR
    Algoritma 2 bilangan;
    SALAH
    Algoritma *kecil;
    SALAH

       Pada bagian deklarasi, digunakan sebagai tempat untuk
    mencantumkan variabel, konstanta, dan record. Mengingat cara eksekusi kode
    program dilakukan berurut dari atas ke bawah maka, deklarasi diletakkan di
    awal program setelah bagian judul. Hal-hal yang dideklarasikan pada bagian ini
    digunakan sebagai ‘reservasi’ alokasi memory untuk penyimpanan data dan
    akan digunakan selama program bekerja.
    Pada bahasa pemrograman Pascal, bagian deklarasi juga berfungsi
    untuk mendeklarasikan nama function dan procedure.
    Contoh:
       Algoritma Coba;
       Kamus data
       x : integer;
       s : string;
       ...

       Pada bagian badan  program, digunakan untuk meletakkan semua
    algoritma atau kode-kode program. Bagian ini diawali dengan ‘BEGIN’ dan
    diakhiri dengan ‘END’. Semua algoritma atau kode program wajib dituliskan
    diantara kedua penanda tersebut.
    Contoh:
       Algoritma Hello
       Kamus data
       s : string
       BEGINTanda awal Algoritma
        s ⇦“Halo!”
       output(s)
       END.Tanda akhir Algoritma

    Input dan Output
       Dalam mengawali suatu proses tertentu, minimal membutuhkan suatu
    masukan berupa data (input), karena data inilah yang nantinya akan diproses
    dan akan menjadi keluaran (output).
    Contoh :
                        Menerima masukan data dari user (pengguna)
    Algoritma Masukkan_data
    Kamus data
    BEGIN
    input(x) /*x adalah variabel penampung nilai*/
    END.

                        Memasukkan nilai tertentu pada variabel
    Algoritma Masukkan_nilai
    Kamus data
    BEGIN
    x ← 5 /*panah ke kiri arah masuknya nilai*/
    END.

                        Menampilkan isi variabel ke layar monitor
    Algoritma Tampilan
    Kamus data
    BEGIN
    output(x) /*x adalah variabel yang berisi nilai*/
    END.