C / C++ / JAVA / C# / Python

advertisement
C / C++ / JAVA / C# / Python ?
C / C++, Python, dan Java merupakan bahasa pemrograman yang umum digunakan sebagai
penunjang mata kuliah pemrograman.
Lalu apa yang membedakan bahasa pemrograman satu
dengan bahasa pemrograman yang lain ?
Perbedaaan yang sangat terlihat adalah syntax dari
kode program yang dituliskan atau kita sebut dengan schemantic.
Ada beberapa pembagian atau klasikasi dari bahasa pemrograman yaitu:
•
High vs Low
High level language adalah bahasa pemrograman yang lebih mirip ke perintah dalam bahasa
manusia dan bisa dianalogi dengan sebua buku resep, sedangkan low level language adalah
bahasa pemrograman yang lebih cenderung ke arah mesin atau biasa disebut dengan bahasa
assembly (bahasa dasar dari mesin/komputer). Contoh high level language adalah C, C++,
Java, dan Python.
•
General vs Targetted
General language adalah bahasa pemrograman yang bisa digunakan untuk semua keperluan
komputasi sedangkan targetted language adalah bahasa pemrograman yang digunakan pada
bidang tertentu saja. Contoh targetted language adalah matlab, maple, dan autocad.
•
Intrepeted vs Compiled
Intrepeted language adalah bahasa pemrograman yang prosesnya dilakukan dengan menerjemahkan dan menjalankan kode program per baris sedangkan compiled language adalah
bahasa pemrograman yang prosesnya dilakukan dengan menerjemahkan kode program secara
keseluruhan baru melakukan eksekusi dari hasil terjemahan yang telah dilakukan. Contoh intrepeted language adalah python, perl, ruby, dsb sedangan contoh compiled language adalah
C, C++, Java, dan C#.
Ada beberapa permasalahan yang harus dijelaskan sebelum anda melakukan perancangan program
dengan bahasa pemrograman, yaitu:
•
Syntax.
Syntax adalah suatu pernyataan dalam suatu bahasa pemrograman yang valid.
Sebagai ilustrasi dalam bahasa Indonesia adalah kucing rusa bertsuang. Ketiga kata tersebut, kata pertama dan kedua terdapat dalam kamus bahasa Indonesia dan kata yang ketiga
tidak terdaftar di kamus bahasa Indonesia. Begitupula dengan syntax yang ada pada bahasa
pemrograman, apakah kata / huruf / angka yang kita ketik pada saat membuat suatu kode
program sudah benar dan terdaftar sebagai keyword pada bahasa pemrograman tersebut.
•
Statik Simantik. Statik simantik adalah suatu pernyatan dalam bahasa pemrograman yang
memiliki arti dan hubungan simantik yang benar. Sebagai contoh dalam bahasa Indonesia
adalah Meja saya adalah Susan. Pada pernyataan tersebut, syntax yang digunakan sudah
benar (memenuhi aturan SPOK), tetapi arti dari pernyataan tersebut yang tidak jelas /
tidak umum. Pada kasus statik simantik, Anda mungkin akan mendapatkan sedikit bantuan
/ help dari literatur dan internet.
•
Simantik Penuh. Simantik penuh adalah bagaimana dan apakah yang dilakukan oleh sebuah
program.
Pada kasus ini, Anda tidak akan mendapatkan bantuan sehingga Anda harus
merancang sendiri program yang Anda buat ini untuk apa dan akan menghasilkan keluaran
seperti apa.
1
2
INSTRUKSI PRIMITIF DAN TIPE DATA
Kuliah yang Anda ikuti ini, yaitu algoritma, pemrograman, dan lab; merupakan mata kuliah
yang mengajarkan sedikit syntax, sedikit statik semantik, dan banyak sekali semantik full. Untuk
itu, diharapkan pada akhirnya Anda akan dapat memetakan permasalahan ke dalam domain komputasi, membuat program untuk penyelesaiannya, dan membaca program sehingga dapat memakai
pustaka yang dibuat oleh orang lain. Dari ketiga permasalahan tersebut, permasalahan simantik
penuh adalah permasalahan yang paling berat untuk pemula karena sedikitnya bantuan yang bisa
didapatkan. Oleh kerena itu, kita harus memikirkan gaya kita untuk menuliskan program. Gaya
yang bagus akan mempermudah kita untuk melakukan debugging pada program yang kita buat.
Permasalahan gaya ini akan dibahas lebih detail pada section selanjutnya.
1
Apa itu komputasi ?
Sebagaian dari Anda mungkin akan bertanya: mengapa kita perlu belajar pemrograman.
Tapi
yakinlah bahwa seluruh bidang studi yang ada di Teknik Elektro ini membutuhkan skill untuk
memrogram, minimal Anda mengerti tentang bagaimana cara membuat suatu algoritma komputasi.
Lalu pertanyaan berikutnya adalah apa itu komputasi.
Untuk dapat mengerti apa itu
komputasi, kita akan membahas sedikit tentang pengetahuan. Pengetahuan dapat dibagi menjadi
dua bagian yaitu deklaratif dan imperatif.
Pengetahuan deklratif merupakan pengetahuan tentang sesuatu berupa hipo-tesis, teori, dan deklarasi
tentang sesuatu. Sebagai contoh, Anda dapat melihat pernyataan berikut:
√
x = y, s.t. y 2 = x, y ≥ 0
Pernyataan diatas merupakan pernyataan pengetahuan deklaratif yang membuat aturan-aturan
untuk teori tertentu. Pada kasus
dapatkan nilai
y
√
x = y,
penyataan diatas tidak menjabarkan bagaimana men-
tetapi menyatakan aturan dan hubungannya.
Pengetahuan yang kedua adalah pengetahuan imperatif, yaitu pengetahuan berupa tahapan-tahapan
yang dilakukan untuk mendapatkan sesuatu. Contoh mudah dari pengetahuan imperatif adalah resep masakan. Pada resep masakan, kita diminta untuk mempersiapkan bahan serta alat yang akan
digunakan dan mengikuti seluruh tahapan yang diberikan secara detil. Pengetahuan imperatif pada
bidang komputer bisa disejajarkan dengan komputasi secara umum. Contoh pada bidang komputer
pada kasus yang sama dengan yang diberikan pada pengetahuan deklaratif, yaitu menghitung akar.
00 start; menebak G
01 jika G^2 = X stop return G
02 else G = (G + (X/G))/2
03 ulangi 00
Pada potongan tahapan diatas dapat dilihat bahwa pengetahuan imperatif mendeskripsikan langkahlangkah yang harus diambil jika ingin mendapatkan sesuatu. Pengetahuan inilah yang akan Anda
dapatkan selama perkuliahan pada mata kuliah ini, yaitu bagaimana tahapan atau langkah-langkah
untuk menyelesaikan suatu permasalahan.
2
Instruksi primitif dan tipe data
Seperti yang telah dideskripsikan sebelumnya, bahwa suatu pengetahuan imperatif, selanjutnya
kita sebut dengan algoritma, merupakan suatu langkah-langkah untuk menyelesaikan sesuatu.
Langkah-langkah tersebut dinamakan sebagai instruksi primitif, dimana suatu primitif bisa dibangun dari suatu kumpulan intruksi primitif sehingga instruksi primitif bersifat subjektif. Sebagai
2
2.1
Variabel
2
INSTRUKSI PRIMITIF DAN TIPE DATA
contoh, pada resep masakan terdapat beberapa primitif seperti menumis, merajang, memixer, memanggang, dsb; tetapi fungsi primitif bisa berupa beberapa kumpulan primitif seperti bumbu yang
dihaluskan yang berarti bumbu tersebut dicampur dan diuleg sampai halus (2 primitif ).
Dalam bahasa pemrograman, primitif bisa bermacam-macam sesuai dengan library dan bahasa
pemrograman yang digunakan.
Sebagai contoh, dalam bahasa python mungkin pencarian akar
merupakan instruksi primitif yang bisa digunakan, tetapi pada bahasa assembly tidak fungsi pencarian akar yang bisa digunakan sehingga Anda harus membuat sendiri fungsi tersebut.
Pada
perkuliahan kali ini, bahasa pemrograman yang digunakan adalah python. Bahasa pemrograman
python mempunyai primtif yang sangat banyak, sebagai contoh: operasi arimatik (+ , -, *, **, /,
%, >>, <<), mencetak di layar (print), dan menerima input (input / raw_input).
Selain intruksi primitif, harus ada data yang diolah. Sebagai contoh dalam resep masakan, bahan
apa saja yang digunakan atau alat apa saja yang digunakan dan sebagainya.
Kesemuanya itu
adalah data/bahan/alat yang akan diolah menjadi sesuatu. Dalam bahasa python (mulai sekarang
kita akan selalu membahas tentang bahasa python), ada beberapa tipe data yang bisa digunakan
dalam menyelesaikan suatu permasalahan. Lalu bagaimana mendeklarasikan atau mengisi suatu
nilai dalam bahasa pemrograman python?
Sebelum mulai memanipulasi data, kita berkenalan
dulu dengan kode program dari bahasa python.
01|
02| print " Helo World !"
03|
Anda dapat menjalankan potongan teks diatas pada interaktif python shell atau Anda dapat
membuat suatu le berekstensi .py dan mengeksekusinya.
Perlu diingat bahwa python adalah
sebuah intrepreter yang menterjemahkan instruksi yang diberikan secara real-time dan dilakukan
per baris dari instruksi.
Konsekuensi yang didapatkan adalah jika terdapat kesalahan simantik
yang terjadi pada tengah-tengah program, maka intrepreter akan menghentikan eksekusi yang
berlangsung dan menampilkan pesan kesalahan sesuai dengan kesalahan yang terjadi.
2.1
Variabel
Variabel merupakan salah satu komponen yang sangat penting dalam komputasi. Variabel merupakan suatu alamat memori yang dapat digunakan untuk menyimpan suatu tipe data tertentu
yang didukung oleh bahasa pemrograman yang digunakan. Variabel dideklarasikan dengan menggunakan suatu nama tertentu dengan aturan: (1) semua karakter yang digunakan adalah a-z, A-Z,
0-9, dan _; (2) selalu diawali dengan karakter huruf; (3) mempunyai tipe data tertentu sesuai
dengan deklarasi yang dilakukan.
Pada python, terdapat tiga tipe data yaitu tipe data numerik, tipe data non-numerik, dan tipe data
khusus. Ketiga tipe data tersebut dapat digunakan bersama variabel untuk melakukan komputasi.
Perlu diingat, pada python semua variabel bersifat dinamik yaitu tipe data yang ada dalam variabel
tersebut dapat berubah langsung sesuai dengan data yang diberikan.
Tipe Data Numerik
Tipe data numerik terdiri dari integer, long integer, dan oat.
yang merepresentasi suatu bilangan bulat bertanda dari
−231 + 1
Integer merupakan tipe data
sampai dengan
231 − 1
dan jika
mendeklarasikan bilangan bulat yang lebih besar dari range tersebut, maka python akan langsung
mengubah bilangan tersebut menjadi bilangan dengan tipe long integer. Tipe data long integer
tidak mempunyai batas maksimal sehingga Anda bisa mendeklarasikan bilangan dengan angka
yang sangat besar sekalipun.
3
2.1
Variabel
2
INSTRUKSI PRIMITIF DAN TIPE DATA
Tipe data oat merupakan tipe data yang dapat merepresentasikan bilangan yang tidak bulat (terdapat koma) dengan presisi tertentu. Tipe data oat merupakan tipe data yang banyak digunakan
untuk perhitungan-perhitungan ilmiah dan mempunyai standar cara merepresentasikannya dalam
memori, operasi yang dapat dilakukan, dan asumsi-asumsi yang diambil.
Ketiga tipe data tersebut dapat dimanipulasi dengan menggunakan seluruh operator logika dan
aritmatik. Operator logika akan dijelaskan lebih lanjut, sedangkan operator aritmatik adalah penjumlahan, pengurangan, perkalian, pembagian, pangkat, modulus, dan shift bit.
Khusus untuk
operasi shift, Anda mungkin belum pernah mendengar dan tidak mengetahui fungsinya. Operator
shift bit (<< dan >>) adalah operator yang memipulasi bit (bilangan basis dua yang digunakan
oleh komputer dalam melakukan operasi) dengan menggeser bit tersebut ke kanan atau ke kiri
sesuai dengan arah dari tanda operator tersebut. Contoh penggunaan dari ketiga tipe data numerilk dapat dilihat pada command berikut.
>>> # Deklarasi integer
>>> a = 10
>>> a
10
>>> type (a)
< type ' int '>
>>> # Deklarasi float
>>> a = 10.5
>>> a
10.5
>>> type (a)
< type ' float ' >
>>> # Deklarasi long integer
>>> a = 2*1024
>>> a
17976931348623159077293051907890247336179769789423065727343008115773267580550096313
27084773224075360211201138798713933576587897688144166224928474306394741243777678934
24865485276302219601246094119453082952085005768838150682342462881473913110540827237
163350510684586298239947245938479716304835356329624224137216 L
>>> type (a)
< type ' long '>
>>> # Manipulasi data
>>> a = (10 + 5) / 3
>>> a
5
>>> a = 10 >> 1
>>> a
5
Tipe Data Non-Numerik
String dan boolean merupakan tipe data yang bersifat non-numerik.
Meskipun bersifat non-
numerik, tetapi kedua tipe data tersebut dalam beberapa hal dapat menggunakan fungsi numerik
dalam melakukan manipulasi datanya.
String merupakan tipe data yang merepresentasikan suatu array dari huruf yang membentuk suatu
kalimat tertentu.
Tipe data string biasa digunakan untuk mengambil data input, menulis data
output, dan proses debugging. Proses debugging adalah proses dimana Anda mencari kesalahan,
terutama kesalahan simantik, pada program dengan mengeksekusi program secara per baris. Tipe
data string dapat dideklarasikan dengan menggunakan tanda petik satu atau petik dua sesuai
dengan selera.
Tipe data yang lain yaitu boolean adalah tipe data yang merepresentasikan suatu nilai logika dan
kemungkinan nilainya hanya dua yaitu True dan False. Boolean dapat digunakan sebagai tanda
pada suatu eksekusi yang membutuhkan banyak state dalam komputasinya.
4
2.1
Variabel
2
INSTRUKSI PRIMITIF DAN TIPE DATA
Operator yang dapat digunakan untuk memanipulasi kedua tipe data tersebut adalah seluruh
operator aritmatik untuk tipe data boolean dan operator +, * untuk tipe data string.
Pada
tipe data boolean, jika dimanipulasi dengan menggunakan operator aritmatik maka python akan
menganggap bahwa True sama dengan 1 dan False itu sama dengan 0. Contoh penggunaan dari
kedua tipe data tersebut adalah sebagai beikut.
>>> # Deklarasi string
>>> a = " Ini string "
>>> a
' Ini string '
>>> # Deklarasi string yang panjang
>>> a = """ Test ini string
yang dapat berpindah baris sendiri " ""
>>> a
' Test ini string \ nyang dapat berpindah baris sendiri '
>>> type (a)
< type ' str '>
>>> # Deklarasi boolean
>>> a = True
>>> a
True
>>> type (a)
< type ' bool '>
>>> # Manipulasi variabel
>>> a = " Ulang " * 3
>>> a
' UlangUlangUlang '
>>> a = " Ulang " + " Terus "
>>> a
' UlangTerus '
>>> a = True * 3
>>> a
3
>>>
Tipe Data Khusus
Tipe data khusus dan merupakan keunggulan dari bahasa pemrograman python adalah list dan
tuple. List merupakan kumpulan data (tipenya dapat berupa apa saja dan dapat dicampur sesuai
dengan kebutuhan) yang berurutan dan direpresentasikan dengan angka index. Dalam beberapa
bahasa pemrograman yang lain, list biasanya disebut dengan array. List khusus yang menyimpan
kumpulan karakter merupakan tipe data string yang telah dijelaskan pada pembahasan sebelumnya. Semua data yang tersimpan dalam list dapat diubah sesuai dengan kebutuhan. Untuk mengakses data yang terdapat dalam list, digunakan sintak
nama variabel list yang digunakan dan
index
nama_list[index]
dengan
nama_list
adalah
merupakan angka index yang merupakan representasi
dari data pada list.
Tuple merupakan tipe data yang sama dengan list tetapi data yang ada pada tipe data tuple tidak
dapat diubah. Meskipun data yang ada dalam tuple tidak dapat diubah tetapi dapat dilakukan
operasi tertentu pada dua buah tuple.
5
A
MENGAMBIL INPUT DARI KEYBOARD
>>> # Deklarasi list
>>> a = [10 , 20 , 30 , 40]
>>> a
[10 , 20 , 30 , 40]
>>> a [0]
10
>>> # List dengan elemen string
>>> a = [" kuda " , " zebra " , " kijang "]
>>> a
[ ' kuda ', ' zebra ', ' kijang ']
>>> a [2]
' kijang '
>>> # List dengan elemen campuran
>>> a = [" hello " , 2.0 , 5, [10 , 20]]
>>> a
[ ' hello ', 2.0 , 5, [10 , 20]]
>>> a [3]
[10 , 20]
>>> # Tuple
>>> a = (10 , 20 , 30 , 40 , 50)
>>> a [4]
50
>>> b , c = a [0:1]
>>> b
10
>>> c
20
>>>
A
Mengambil Input Dari Keyboard
Pada lampiran ini, akan diberikan contoh bagaimana mengambil inputan dari keyboard.
dua perintah yang dapat digunakan adalah
input(...)
but akan menghasilkan data yang berbeda, untuk
Ada
raw_input(...). Kedua perintah terseperintah input(...) hanya digunakan untuk
dan
mengambil inputan numerik saja sedangkan untuk mengambil inputan string dan numerik maka
dapat digunakan perintah
perintah
raw_input(...)
raw_input(...).
Pada dokumentasi python disarankan untuk memakai
daripada menggunakan perintah
input(...) dan untuk meminimalisasi erraw_input(...). Berikut contoh dari
ror yang terjadi, diharapkan Anda juga menggunakan perintah
penggunaan perintah
>>> #
>>> a
Input
>>> a
123
>>> a
Input
raw_input(...)
dan
input(...).
Perintah input
= input (" Input = ")
= 123
= input (" Input = ")
= Test
Traceback ( most recent call last ):
File " < pyshell #18 > " , line 1 , in < module >
a = input (" str = ")
File " < string >" , line 1, in < module >
NameError : name ' Test ' is not defined
>>>
>>> # Perintah raw_input
>>> a = raw_input (" Input = ")
Input = Test 123 dan 456
>>> a
' Test 123 dan 456 '
>>>
6
Download