Minggu, 22 September 2013

Algoritma dan Pemograman (modul3)


Assalamu'alaikum, 

udah lebih setahun gak ngpost, nih ada sedikit pencerahan bagi yang membutuhkannya :) semoga membantu ;)


Penggunaan Operator dalam program Pascal
Operator digunakan untuk menyatakan suatu perhitungan/operasi. Di dalam suatu operasi dapat terdapat banyak operator. Urutan eksekusi dari operator-operator disebut juga operator precedence. Precedence yang lebih rendah akan dieksekusi belakangan, misalnya:
A = 20 + 5 * 3
Karena precedence operator * lebih tinggi daripada operator + maka nilai A adalah 35, diperoleh dari perkalian 5 dan 3, kemudian dijumlahkan dengan 20. Untuk mendahulukan eksekusi precedence yang lebih rendah dapat digunakan tanda ( dan ) sebagai contoh:
A = (20 + 5) * 3
Variabel A akan memiliki nilai 75, diperoleh dari penjumlahan 20 dan 5, kemudian dikalikan 3.

Dalam bahasa pemrograman, sebuah proses dibagi menjadi:
1.    Operand à berupa variabel atau nilai.
2.    Operator à tanda-tanda yang dipakai untuk mengolah.
Terdapat banyak jenis operator, yaitu:
·           Assignment operator (operator pengerjaan)
Ditandai dengan simbol titik dua diikuti oleh tanda sama dengan (:=), digunakan untuk memberi nilai ke suatu variabel / untuk memberi nilai suatu identifier.
·           Arithmatic operator (Binary Operator)
Digunakan untuk pengolahan nilai matematika / mengoperasikan dua buah operand yang berbentuk konstanta ataupun variabel.  Operator ini digunakan untuk operasi aritmatika yang berhubungan dengan nilai tipe data Integer dan Real.
Operasi yang dilakukan adalah :
a.    Operator  +, digunakan untuk melakukan penjumlahan.
ü  Bila tipe Operandnya real dan real, maka tipe hasilnya real.
ü  Bila tipe Operandnya integer dan integer, maka tipe hasilnya integer.
ü  Bila tipe Operandnya real dan integer, maka tipe hasilnya real.
b.    Operator  –,  digunakan untuk melakukan pengurangan.
ü  Bila tipe Operandnya real dan real, maka tipe hasilnya real.
ü  Bila tipe Operandnya integer dan integer, maka tipe hasilnya integer.
ü  Bila tipe Operandnya real dan integer, maka tipe hasilnya real.
c.    Operator *, digunakan untuk perkalian.
ü  Bila tipe Operandnya real dan real, maka tipe hasilnya real.
ü  Bila tipe Operandnya integer dan integer, maka tipe hasilnya integer.
ü  Bila tipe Operandnya real dan integer, maka tipe hasilnya real.
d.    Operator  /, digunakan untuk pembagian bilangan real.
ü  Bila tipe Operandnya real dan real, maka tipe hasilnya real.
ü  Bila tipe Operandnya integer dan integer, maka tipe hasilnya real.
ü  Bila tipe Operandnya real dan integer, maka tipe hasilnya real.
e.    Operator div, digunakan untuk melakukan pembagian bilangan bulat.
ü  Bila tipe Operandnya integer dan integer, maka tipe hasilnya integer.
f.     Operator mod yang digunakan untuk mendapatkan sisa dari pembagian.
ü  Bila tipe Operandnya integer dan integer, maka tipe hasilnya integer.
·           Comparison / Relational operator
Digunakan untuk perbandingan 2 nilai operand sehingga menghasilkan nilai true dan false. Operand yang dibandingkan harus memiliki tipe data yang sama, kecuali untuk bilangan bulat (bertipe integer) dan bilangan pecahan (bertipe real atau float).
Ditandai dengan:  
=                      sama dengan
<>                    tidak sama dengan
>                      lebih dari
>=                    lebih dari sama dengan
<                      kurang dari
<=                    kurang dari sama dengan
IN                    seleksi dari anggota himpunan
·           Logical operator (Bitwise Operator),
Digunakan untuk perbandingan logika antara dua pernyataan atau lebih / untuk operasi bit per bit pada nilai integer.
Acuan bilangan desimal ke bilangan biner yaitu:
Desimal
Binner
0=0
0
1=20
1
2=21
10
4=22
100
8=23
1000
16=24
10000
32=25
100000
dst
dst
Contohnya: bilangan biner dari 35 yaitu:
35= 32          100000
       2           100
       1               1
                     100101
Maka bilangan biner dari 35 adalah 100101.
Operator ini ditandai dengan:
a.      Operator Not →           digunakan untuk pembalikan bitwise, yaitu nilai 1 bit menjadi bit 0 dan sebaliknya nilai bit 0 menjadi bit 1
b.      Operator And → digunakan untuk membandingkan dua buah elemen, hasilnya akan benar bila keduanya benar. Bila logika benar diberi simbol 1 dan logika salah diberi simbol 0.
A
B
A and B
1
1
1
1
0
0
0
1
0
0
0
0
Operator And bekerja dengan membandingkan bit demi bit dari elemen-elemen yang dibandingkan, sebagai berikut.
         12 nilai binarinya adalah 01100
         23 nilai binarinya adalah 10111
         12 AND 23 bernilai         00100 adalah 4 (22)
c.      Operator Or → digunakan untuk membandingkan dua buah elemen, hasilnya akan benar bila salah satu atau keduanya benar. Bila logika benar diberi simbol 1 dan logika salah diberi simbol 0.
A
B
A or B
1
1
1
1
0
1
0
1
1
0
0
0
Misalnya ungkapan 12 or 23 akan bernilai 31, dengan cara:
12 nilai binarinya adalah  1100
23 nilai binarinya adalah 10111
12 or 23 bernilai 11111 adalah 31 (24+23+22+21+1)=(16+8+4+2+1)
d.      Shift Xor →  digunakan untuk membandingkan dua buah elemen, hasilnya akan benar bila salah satunya saja yang benar. Bila logika benar diberi simbol 1 dan salah diberi simbol 0.
A
B
A or B
1
1
0
1
0
1
0
1
1
0
0
0
Misalnya ungkapan 12 Xor 23 akan bernilai 27 didapat dari:
         12 nilai binarinya   1100
         23 nilai binarinya 10111
         12 Or 23 bernilai  11011 adalah 27 (24+23+22+1)=(16+8+2+1)
e.      Operator Shl → digunakan untuk menggeser sejumlah bit ke kiri dengan nilai bit 0 atau menambah jumlah nol (0) ke kanan.
Misalnya ungkapan 5 shl 2 akan bernilai 20 didapat dari:
         5 nilai binarinya adalah 101
         Digeser 2 bit ke kiri (ditambah nilai 0 sebanyak 2 buah) menjadi 10100= 20
f.       Operator Shr → digunakan untuk menggeser sejumlah bit ke kanan dengan nilai bit 0 atau membuang angka paling kanan
Misalnya ungkapan20 shr 2 akan bernilai 5 didapat dari:
         20 nilai binarinya adalah 10100
         Digeser 2 bit ke kanan (dibuang 2 bit dari kanan) menjadi 101= 5
·           Unary operator
Operator ini menggunakan sebuah operand saja, dapat berupa unary minus dan unary plus. Unary minus digunakan untuk menunjukkan nilai negatif, baik pada operand numerik, real maupun integer. Unaru plus adalah operator untuk memberi tanda plus.
Contoh : +2.5,  a+(-b) dll
·           Pointer Operator
Operator pointer digunakan untuk melakukan operasi pada operand yang berupa pointer. Pada bahasa Pascal, digunakan tanda ^ sebagai deference pointer.
·           Address operator
·           Set operator
Digunakan untuk operasi himpunan.
·           String operator
Digunakan untuk operasi string. Hanya ada sebuah operator string saja, yaitu operator + yang digunakan untuk menggabungkan dua buah nilai string.
Contoh :
Nama1 := ‘Sistem’;
Nama2 := ‘Komputer’;
Nama3 := ‘Nama1+Nama2’;
Maka, hasil yang didapat adalah Sistem Komputer.

Tipe data numerik integer dan numerik real
1.    Tipe Data Numerik Integer
Tipe data integer adalah bilangan yang tidak mempunyai titik desimal  / bilangan pecahan. Ciri-ciri tipe data integer adalah :
1.    Bilangan atau angka yang tidak memiliki titik desimal atau pecahan, seperti 10, +225, -10,+25.
2.    Tipe dituliskan sebagai integer atau int
3.    Jangkauan nilai bergantung pada implementasi perangkat keras komputer, misalnya dari -11 s/d +12; untuk algoritma tidak kita batasi.
4.    Operasi aritmetik yaitu : tambah(+), kurang(-), kali(*), bagi(/), sisa hasil bagi(%)
5.    Operasi pembanding yaitu : lebih kecil(<), lebih besar(>), sama(=), tidak sama(<>).
Data numerik integer merupakan nilai bilangan bulat baik dalam bentuk desimal maupun hexadesimal. Nilai integer hexadesimal diawali dengan tanda dollar ($). Turbo Pascal menyediakan 5 macam tipe data integer yang masing-masing mempunyai jangkauan nilai yang berbeda, yaitu:
Tipe
Ukuran Memori
Jangkauan Nilai
Byte
1 byte
0..255
Shortint
1 byte
-128..127
Integer
2 byte
-32768..32767
Word
2 byte
0..65535
Longint
4 byte
-2147483648..2147483647
Operator yang dapat digunakan pada data tipe integer :
·         + (penjumlahan)
·         - (pengurangan)
·         * (perkalian)
·         div (pembagian)
·         mod (sisa pembagian)

2.    Tipe Data Numerik Real
Tipe data real adalah bilangan yang mengandung pecahan, minimal harus ada satu digit sebelum dan sesudah titik desimal. Contoh bilangan real: 34.265 -3.55 0.0 35.997E+11, dimana E merupakan simbol perpangkatan 10. Jadi 452.13 mempunyai nilai sama dengan 4.5213e2. Ciri-ciri tipe data real adalah :
v   Bilangan atau angka yang bisa memiliki titik desimal atau pecahan, dan ditulis seperti 235.45, +13.99, -87.76 atau dalam notasi ilmiah seperti  1.245E+03, 7.45E-02.
v  Tipe dituliskan sebagai  real
v  Jangkauan nilai bergantung pada implementasi perangkat keras komputer, misalnya dari -2.9E-39 s/d +1.7E+38, untuk algoritma tidak dibatasi.
v  Operasi aritmatik dan pembandingan juga berlaku bagi bilangan biasa.
Nilai konstanta numeril real berkisar dari 1E-38 sampai dengan 1E+38 dengan mantisa yang signifikan sampai dengan 11 digit. E menunjukkan nilai 10 pangkat. Nilai konstanta numeril real menempati memori sebesar 6 byte.
Type variabel yang beguna untuk pengolahan data yang tidak bulat, untuk type real ini juga terbagi atas beberapa :
Type
Jangkauan
Ketelitian
Ukuran
Real
2.9e-39..1.7e38
11-12 digit
6 bit
Single
1.5e-45..3.4e38 ³ 7-8
7-8 digit
4 bit
Double
5.0e-324..1.7e308
15-16 digit
8 bit
Extended
3.4e-4932..1.1e4932
19-20 digit
10 bit
Comp
-9.2e18..9.2e18
19-20 digit
8 bit
Untuk pengolahan tipe variabel integer dan real di sediakan berbagai jenis operator antara lain:
Operator
Integer Type
Real Type
+
Penjumlahan
Penjumlahan
-
Pengurangan
Pengurangan
*
Perkalian
Perkalian
/
Pembagian
Pembagian
DIV
Hasil bagi

MOD
Sisa Bagi

Operator yang dapat digunakan pada data tipe real adalah :
·      + (penjumlahan)
·      - (pengurangan)
·      * (perkalian)
·      / (pembagian)

Mendefinisikan Permasalahan
Yang dimaksud mendefinisikan permasalahan yaitu harus mengerti dengan baik mengenai permasalahan apa yang ingin diselesaikan. Contoh:
a)    Permasalahan menghitung luas persegi, dengan data yang diketahui adalah sisi-sisi persegi tersebut.
b)   Permasalahan menampilkan bilangan dengan kelipatan tertentu dari 0 hingga range tertentu.
Setelah mengetahui dengan baik mengenai permasalahan yang ingin diselesaikan, langkah selanjutnya yaitu membuat rumusan algoritma untuk memecahkan masalah. Rumusan tersebut dapat disusun dalam bentuk pseudocode ataupun flowchart.      
Apabila langkah 1 dan 2 belum melibatkan bahasa pemrograman, maka langkah ketiga ini telah mulai melibatkan bahasa pemrograman Pascal. Implementasi tersebut mengacu pada algoritma yang telah disusun pada langkah sebelumnya, baik itu variabel-variabel yang digunakan maupun alur program.
PEMBAHASAN

LATIHAN PRAK 1.

1.        ALGORITMA

1)      Mulai
2)      Deklarasi variabel
A, B : integer
Hasil : real
3)      Const / Inisialisasi (tetapkan A:= 50, B:= 20)
4)      Proses
a.       Operator Pangkat
Hasil := Exp(ln(A)*B)
b.      Operator Kali
Hasil := A * B
c.       Operator Bagi
Hasil := A / B
d.      Operator Modulo
Hasil := A MOD B
e.       Operator Divide
Hasil := A DIV B
f.       Operator Tambah
Hasil := A + B
g.       Operator Kurang
Hasil := A - B
5.    Tampilkan Hasil
6.    Selesai





2.        FLOWCHART



 



3.        BAHASA PROGRAM

(*Program Menggunakan Operator*)

Program Operator;
uses crt;
var A, B : integer;
      hasil: real;
begin
    clrscr;
    writeln('Program Operator Test');
    writeln;
    A:= 50;
    B:= 20;
    (*Operator Pangkat*)
    hasil:=Exp(ln(A)*B);
    writeln('A^B= ',Hasil:4:2);
    writeln;
    (*Operator Kali*)
    hasil:= A*B;
    writeln('A*B = ',Hasil:4:2);
    writeln;
    (*Operator Bagi*)
    hasil:= A/B;
    writeln('A/B = ',hasil:4:2);
    writeln;
    (*Operator Modulo (Mod)*)
    hasil:= A mod B;
    writeln('A mod B = ',hasil:4:2);
    writeln;
    (*Operator Devide (Div)*)
    hasil:= A div B;
    writeln('A div B = ',hasil:4:2);
    writeln;
    (*Operator Tambah*)
    hasil:= A+B;
    writeln('A + B = ',hasil:4:2);
    writeln;
    (*Operator Kurang*)
    hasil:= A-B;
    writeln('A - B = ',hasil:4:2);
    writeln;
    repeat until keypressed;
end.


4.        OUTPUT



LATIHAN PRAK 2.

1.      ALGORITMA

1)      Mulai
2)      Deklarasi variabel
A, B : integer
Hasil : real
3)      Masukkan (input) nilai A dan B
4)      Proses
a.       Operator Pangkat
Hasil := Exp(ln(A)*B)
b.      Operator Kali
Hasil := A * B
c.       Operator Bagi
Hasil := A / B
d.      Operator Modulo
Hasil := A MOD B
e.       Operator Divide
Hasil := A DIV B
f.       Operator Tambah
Hasil := A + B
g.       Operator Kurang
Hasil := A - B
5.    Tampilkan Hasil
6.    Selesai

2.      FLOWCHART


 



3.      BAHASA PROGRAM

(*Program Menggunakan Operator*)

Program Operator;
uses crt;
var A, B : integer;
      hasil: real;
begin
    clrscr;
    writeln('Program Operator Test');
    writeln;
    writeln('Ketikkan nilai A dan B!');
    write('A = ');readln(A);
    write('B = ');readln(B);
    writeln;
    (*Operator Pangkat*)
    hasil:=Exp(ln(A)*B);
    writeln('A^B= ',Hasil:4:2);
    writeln;
    (*Operator Kali*)
    hasil:= A*B;
    writeln('A*B = ',Hasil:4:2);
    writeln;
    (*Operator Bagi*)
    hasil:= A/B;
    writeln('A/B = ',hasil:4:2);
    writeln;
    (*Operator Modulo (Mod)*)
    hasil:= A mod B;
    writeln('A mod B = ',hasil:4:2);
    writeln;
    (*Operator Devide (Div)*)
    hasil:= A div B;
    writeln('A div B = ',hasil:4:2);
    writeln;
    (*Operator Tambah*)
    hasil:= A+B;
    writeln('A + B = ',hasil:4:2);
    writeln;
    (*Operator Kurang*)
    hasil:= A-B;
    writeln('A - B = ',hasil:4:2);
    writeln;
    repeat until keypressed;
end.
4.      OUTPUT



LATIHAN PRAK 3.

1.      ALGORITMA

1)      Mulai
2)      Deklarasi variabel
A, B   : integer
Logik : boolean
3)      Masukkan nilai A dan B
4)      Proses
ü  Operator Lebih Besar
logik:= A > B
ü  Operatr lebih kecil
logik:= A < B
ü  Operator Sama Dengan
logik:= A = B
ü  Operator tidak sama dengan
 logik:= A <> B
Tampilkan hasil
5)      Tampilkan hasil
6)      Selesai

















2.      FLOWCHART






Oval: Mulai


 




























3.      BAHASA PROGRAM

 (*Program Menggunakan Operator*)

Program Operator;
uses crt;
var A, B : integer;
      logik: boolean;
begin
   clrscr;
   writeln('Program Operator Test');
   writeln;
   write('Inputkan Harga A: ');readln(A);
   write('Inputkan Harga B: ');readln(B);
     writeln;
     (*Operator Lebih Kecil*)
     Logik:= A < B;
     writeln('A < B = ',logik);
     writeln;
     (*Operator Lebih Besar*)
     Logik:= A > B;
     writeln('A > B = ',logik);
     writeln;
     (*Operator Sama Dengan*)
     Logik:= A = B;
     writeln('A = B = ',logik);
     writeln;
     (*Operator Tidak Sama Dengan*)
     Logik:= A <>  B;
     writeln('A <>  B = ',logik);
     writeln;
     writeln('Tekan Salah Satu Tombol ....!');
     repeat until keypressed;
end.


















4.      OUTPUT











Tidak ada komentar:

Posting Komentar