Anda di halaman 1dari 19

Operator dan PERTEMUAN 2 :

MK ALGORITME DAN

Ekspresi
PEMROGRAMAN
SEKOLAH VOKASI IPB
Buat langkah-langkah untuk melakukan hal-hal berikut:
1. Menjumlahkan 4 bilangan bulat.
2. Menentukan bilangan terbesar dan terkecil dari tiga bilangan bulat.
3. Menentukan sisa pembagian suatu bilangan bulat dengan x (x > 0).

Latihan 4. Menghitung luas:


a) Lingkaran

membuat b) Bujur sangkar


c) Segitiga

algoritma 5. Menentukan suatu bangun bujur sangkar atau bukan berdasarkan


panjang dan lebarnya. Jika bujur sangkar, cetak 0. Selainnya, cetak
selain 0.
6. Menentukan suatu bilangan bulat genap atau ganjil. Jika ganjil, cetak
1. Selainnya, cetak 0.
7. Memeriksa apakah suatu bilangan bulat adalah positif, negatif, atau 0.
Jika positif, cetak kata 'POSITIF‘; jika negatif, cetak 'NEGATIF‘.

9/14/2020 2
Contoh: Menjumlahkan empat bilangan
bulat
Berapa buah nilai yang diperlukan dari pengguna? Empat buah
Apa tipe nilai yang diharapkan? Integer
Berapa buah variabel yang diperlukan?
◦ Secara naif:
◦ 4 buah variabel penampung masukan dari pengguna
◦ 1 buah variabel penampung hasil penjumlahan
◦ Apakah bisa menggunakan variabel yang lebih sedikit?
◦ Ingat bahwa utamakan dulu correctness (keluaran sesuai dengan yang
diharapkan) sebelum melakukan optimasi kode untuk efisiensi
◦ Juga perlu mempertimbangkan keterbacaan kode
◦ Optimasi tidak selalu menghasilkan peningkatan kinerja yang
signifikan

9/14/2020 3
Literal dan Variabel
Literal: 123, 3.14, 2+3j, '123‘
Program juga perlu penampung data yang dapat berubah → variabel
◦ Kita tidak selalu mengetahui nilai yang akan diproses karena perlu masukan dari pengguna
◦ Pemrosesan memerlukan penampungan data sementara (termasuk untuk kemudahan
membaca program)

Setiap data dan instruksi yang diperlukan komputer harus disimpan di memori
Nama simbolis digunakan untuk mempermudah penyebutan
◦ Alamat memori tidak "ramah" bagi manusia
◦ Alamat memori sesungguhnya bersifat dinamis
◦ Format alamat memori beragam antar-sistem operasi

9/14/2020 4
BERARTI nilai di sisi kanan disimpan ke penampung data di sisi kiri
BUKAN nilai di sisi kanan sama dengan nilai di sisi kiri

Variabel sederhana
Nama Variabel Assignment Literal/Nama
Operator Variabel/Ekspresi
x 5678
_variabel 1.25
a12 5.5+2.2j
Y1 "Berikan"
Var-1 = 'abc'
1x _var
X 1 a + 3
elif abc

9/14/2020 5
Beberapa tipe data bawaan di Python:
◦ Integer (int) 123
◦ Floating point number (float) 3.14
◦ Complex number (complex) 2+3j
◦ Teks atau string (str) '123', "a", "abc123", '1.75'

Assignment Integer di Python mendukung Big Number (dapat dikatakan


tidak punya batasan)
dan Tipe Data
Float memiliki keterbatasan karena masalah representasi
Bawaan secara biner
Python Tipe data yang dirujuk oleh suatu variabel di Python dapat
berganti sesuai nilai yang disimpan
◦ Dynamic type
◦ C/C++/Java: Static type, suatu variabel harus dideklarasikan dengan
tipe tertentu dan tidak dapat berganti tipe

Lihat: https://docs.python.org/3.5/library/stdtypes.html

9/14/2020 6
Chained & Multiple Assignment
Chained assignment
a = b = c = 1
Multiple assignment
a, b, c = 1, 2, 3
Mempertukarkan nilai dua variabel
// Mempertukarkan nilai dua
a, b = b, a // variabel dalam Bahasa Pascal
temp := a;
a := b;
b := temp;

9/14/2020 7
Fungsi Mencetak (Output)
Argumen Argumen
"Hello" 5678
1234 "abc"
print( 5678 , 1234 ... )
_var 5678
a + _var _var

9/14/2020 8
Variabel Prompt string
Penampung
a "Berikan masukan:"

_var = input( X1 )
X1 X1 + " masukan:" *

* Python 3, beda dengan Python 2

Meminta masukan (Input)


9/14/2020 9
Penyesuaian Tipe Data Masukan
Tipe data masukan dari fungsi input() ialah string
Penyimpanan sebagai tipe lain harus melalui proses casting
◦ Tanpa casting
2
a = input()
3
b = input()
23
print(a + b)
◦ Dengan casting (untuk Python 3) Process finished with exit code 0
a = int(input())
b = int(input()) 2
print(a + b) 3
5

Exit code 0 → program berakhir dengan normal Process finished with exit code 0

9/14/2020 10
a, b = input().split()
a = int(a)
b = int(b)

Masukan Menggunakan split yang merupakan salah satu method untuk


String.
Sebaris Dapat disertai argumen:
Dipisahkan ◦ Separator yang digunakan
◦ Pemotongan maksimal
Spasi >>> '1,2,3'.split(',')
['1', '2', '3']
>>> '1,2,3'.split(',', maxsplit=1)
['1', '2,3']
>>> '1,2,,3,'.split(',')
['1', '2', '', '3', '']

9/14/2020 11
Ekspresi
Terdiri atas operand dan operator

Operand bisa berupa: literal, variabel, atau ekspresi

Ekspresi dievaluasi untuk menghasilkan suatu Aritmetika: bilangan


nilai Logika: True atau False

0 = False
Jika bilangan dicek secara logika:
Selain 0 = True

Jika nilai logika digunakan dalam ekspresi False = 0


aritmetika: True = 1

Operasi assignment di Python merupakan Berbeda dengan C/C++


pernyataan, BUKAN ekspresi
9/14/2020 12
https://docs.python.org/3/reference/expressions.html#operator-precedence

Operator Precedence (Rendah ke Tinggi)


if – else Conditional expression
or Boolean OR
and Boolean AND
not x Boolean NOT
in, not in, is, is not, <, <=, >, >=, !=, == Comparisons, including membership tests and identity tests
| Bitwise OR
^ Bitwise XOR
& Bitwise AND
<<, >> Shifts
+, - Addition and subtraction
*, @, /, //, % Multiplication, matrix multiplication, division, remainder
+x, -x, ~x Positive, negative, bitwise NOT
** Exponentiation

9/14/2020 13
Operasi Pembandingan

Operator pembandingan di Python a=2


b=3
dapat dirangkaikan sehingga lebih c=4
intuitif secara matematika print(a < b < c)

Hal ini menghasilkan hal berbeda di C/C++/Pascal

9/14/2020 14
Operator + dan * untuk String
+ operator concatenation (penyambungan string)
* operator perbanyakan string
Jika suatu string ingin disambungkan dengan suatu bilangan, bilangan tersebut HARUS di-cast ke
string
◦ Nilai/variabel di Python bersifat strongly typed (casting harus eksplisit untuk operasi yang tidak kompatibel:
bilangan vs string)
◦ Bahasa seperti PHP bersifat loosely typed

>>> print(2.25 + 'abc')


Traceback (most recent call last):
File "<input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'float' and 'str'
>>> print(str(2.25) + 'abc')
2.25abc
9/14/2020 15
Latihan Buat kode program untuk latihan-latihan di awal
◦ Nomor 5 & 6 tidak perlu if
Menggunakan
Ekspresi

16
Di Antara Karakteristik Program yang Baik
Correct
Efficient
Robust: siap menghadapi berbagai skenario penggunaan termasuk yang tidak diharapkan
◦ Contoh: program mengharapkan masukan integer tetapi pengguna mengisikan data bertipe lain

1.25
Traceback (most recent call last):
File "C:/Users/Ahmad Ridha/PycharmProjects/untitled1/test2.py", line 1, in <module>
a = int(input())
ValueError: invalid literal for int() with base 10: '1.25'

Process finished with exit code 1

9/14/2020 17
Masukan yang Robust
Buat kode yang siap menangkap kegagalan
try:
a = int(input("Isikan nilai a: "))
except ValueError:
print("Harap masukkan angka!")
exit(1)
Perhatikan kode ValueError sesuai pesan kesalahan yang terjadi jika
masukan tidak sesuai
Exit code selain 0 menunjukkan ada masalah

9/14/2020 18
Selesai – Lanjut Praktikum

9/14/2020 19

Anda mungkin juga menyukai