Perhatian
• Tidak disarankancopy-paste kode program dari presentasi ini,
karena ada beberapa symbol yang dianggap sebagai Unicode
oleh editor yang anda gunakan, sehingga akan dianggap
sebagai symbol yang salah oleh compiler, sebaiknya diketik
ulang saja
• Pembahasan C++ dan Pascal pada materi ini bukan materi
utama, hanya sebagai pembanding
1.1 Variabel
• Variabelmerupakan penyimpanan data
• Pada pemrograman, variabel akan disimpan pada alamat
memory pada lokasi yang sesuai dengan panjang datanya
• Karena itu variabel pada pemrograman harus dideklarasikan
terlebih dahulu untuk mengalokasikan alamat memory sebagai
tempat penyimpanan data dari variable tersebut
7.
1.2. Ketentuan penamaanvariabel
• Tidak boleh diawali dengan angka
• Terdiri dari satu kata, tidak boleh dipisahkan dengan spasi
• Tidak menggunakan karakter symbol kecuali underscore
• Tidak Menggunakan keyword
8.
1.3. Alokasi Memori
•Alokasi Memory memerlukan panjang Data dan bagaimana
data tersebut diperlakukan, sehingga tidak terjadi kerancuan
pada pemanggilan maupun penyimpanan
• Panjang data dan perlakuan data tergantung pada jenis data
• Karena itu variabel harus dideklarasikan sesuai dengan jenis
datanya
9.
1.4. Tipe Data
•Tipe data :
– Nilai yang mungkin terisi ke variabel
• Variabel agar dapat digunakan harus dideklarasikan sesuai
dengan tipe data yang akan ditampungnya
• Suatu variabel tidak dapat menampung data yang tidak sesuai
dengan tipe data peruntukannya
• Ada dua macam tipe data
A. Tipe data sederhana/primitif
B. Tipe data bentukan
TMSM - Introduction to Data Structure 9
10.
1.4.1. Tipe DataSederhana
Merupakan tipe data bawaan dari bahasa pemrograman.
Beberapa tipe data primitif (ada yang menyebutnya tipe data sederhana) yang umum
terdapat pada berbagai bahasa pemrograman
• Boolean → Tipe data yang hanya memperbolehkan dua nilai 1/0 atau TRUE/FALSE saja
• Character → menampung 8 bit data yang diterjemahkan menjadi karakter, Character
termasuk tipe data integer
• Integer → bilangan bulat, Terdapat beberapa jenis bilangan integer berdasarkan
panjang bit nya: Byte, short integer, integer, long integer
• Pecahan → bilangan pecahan, umumnya direpresentasikan dalam bentuk floating
point, berdasarkan panjang dan ketelitiannya, floating point dapat dibagi menjadi
single precision (32 bit) dan double precision (64 bit)
TMSM - Introduction to Data Structure 10
11.
1.4.2.
Tipe Data Bentukan
•Tipe Data bentukan adalah tipe data yang dibentuk dari tipe
data lainnya.
• Tipe data ini dibentuk menjadi struktur
• Dapat berisi satu atau lebih field dengan tipe data yang sama
ataupun tipe data yang berbeda
12.
1.4.3 Tipe Data
Pada4th generation Language
• Pada 4th generation language seperti Phyton, deklarasi variable
sudah tidak diperlukan lagi, setiap data ketika diinisialisasi akan
langsung ditentukan tipe datanya oleh compiler
• kemudahan lain dari 4th generation language adalah tipe data
yang dapat berubah-ubah tanpa memberi perintah untuk
melakukan casting data seperti pada 3th generation language
• Sebagai Bahasa pemrograman genereasi 4, tipe data dari suatu
variable pada phyton otomatis di deklarasaikan ketika
menugaskan sebuah nilai pada suatu variable.
1.4.4. Tipe DataPhyton (lanjutan)
Tipe Data Contoh Penjelasan
Boolean True atau False Menyatakan benar True yang bernilai 1, atau salah False yang bernilai 0
String "Ayo belajar Python"
Menyatakan karakter/kalimat bisa berupa huruf angka, dll (diapit
tanda " atau ')
Integer 25 atau 1209 Menyatakan bilangan bulat
Float 3.14 atau 0.99 Menyatakan bilangan yang mempunyai koma
Hexadecimal 9a atau 1d3 Menyatakan bilangan dalam format heksa (bilangan berbasis 16)
Complex 1 + 5j Menyatakan pasangan angka real dan imajiner
List ['xyz', 786, 2.23]
Data untaian yang menyimpan berbagai tipe data dan isinya bisa
diubah-ubah
Tuple ('xyz', 768, 2.23)
Data untaian yang menyimpan berbagai tipe data tapi isinya tidak bisa
diubah
Dictionary {'nama': 'adi','id':2}
Data untaian yang menyimpan berbagai tipe data berupa pasangan
penunjuk dan nilai
15.
1.4.5 Contoh PenugasanTipe data
• x = "Hello World" #Contoh str
• x = 20 #Contoh int
• x = 20.5 #Contoh float
• x = 1j #Contoh complex
• x = ["apple", "banana", "cherry"] #Contoh list
• x = ("apple", "banana", "cherry") #Contoh tuple
• x = range(6) #Contoh range
• x = {"name" : "John", "age" : 36} #Contoh dict
16.
1.4.5 Contoh PenugasanTipe data (lanjut)
• x = {"apple", "banana", "cherry"} #Contoh set
• x = frozenset({"apple", "banana", "cherry"}) #Contoh frozenset
• x = True #Contoh bool
• x = b"Hello" #Contoh bytes
• x = bytearray(5) #Contoh bytearray
• x = memoryview(bytes(5)) #Contoh memoryview
• x = None #Contoh NoneType
17.
1.5. Contoh Variabel
•Misalkan
– X adalah variable
– 25 adalah nilainya
• Maka pernyataan
X = 25
• Akan membuat variable x berisi
nilai 25
18.
1.6 Memeriksa TipeData
• Pada pemrograman seringkali kita sudah berada pada baris
yang sangat jauh, sehingga untuk memeriksa tipe data yang
sudah di deklarasikan akan menyulitkan,
• Hal ini dapat diatasi dengan perintah type()
• Contoh
• x = 5
• print(type(x))
19.
1.7 Tipe DataBilangan
Tipe data bilangan pada phyton
hanya ada 3
• int
• float
• complex
• Contoh
x = 1 # int
y = 2.8 # float
z = 1j # complex
20.
1.8 Casting
• Casting: mengubah tipe data
suatu nilai menjadi suatu tipe
data tertentu
• Perintah casting pada phyton:
– int()
– float()
– str()
• Contoh casting ke integer
x = int(1) # x will be 1
y = int(2.8) # y will be 2
z = int("3") # z will be 3
• Contoh Csting ke float
x = float(1) # x will be 1.0
y = float(2.8) # y will be 2.8
z = float("3") # z will be 3.0
w = float("4.2") # w will be 4.2
• Casting ke String
x = str("s1") # x will be 's1'
y = str(2) # y will be '2'
z = str(3.0) # z will be '3.0'
2.1. Deklarasi
• Padapemrograman, variabel akan disimpan pada alamat memory
pada lokasi yang sesuai dengan panjang datanya
• Karena itu variabel pada pemrograman harus dideklarasikan
terlebih dahulu untuk mengalokasikan alamat memory sebagai
tempat penyimpanan data dari variabel tersebut
• Pada 4th generation language seperti Phyton, ketika dilakukan
inisialisasi terhadap suatu variable, maka secara otomatis compiler
akan langsung melakukan deklarasi sesuai dengan data yang
ditugaskan pada variable tersebut, sehingga programmer tidak
perlu melakukan deklarasi variabel
23.
2.2. Syntax Deklarasi
•Pada Bahasa Pemrograman C, deklarasi variabel dilakukan
dengan menuliskan perintah deklarasi sesuai dengan tipe
datanya diikuti dengan nama variable
• Contoh:
• int a; //Deklarasi variabel a bertipe data integer
• float b; //Deklarasi variabel b bertipe data floating point
• char c; //Deklarasi variabel c bertipe data char
24.
2.3. Keyword Deklarasidalam C
• char → Character
• unsigned char → char tak
bertanda
• signed char → char bertanda
• int → integer
• unsigned int → integer tak
bertanda
• signed int → integer bertanda
• float → Floating Point 32 bit
• double → floating point 64 bit
• bool → Boolean (0/1)
25.
2.4. Deklarasi Charpada C
• Deklarasi char dapat berupa sebuah character tunggal, dapat juga berupa
rangkaian character.
• Deklarasi variable character tunggal dapat dilakukan langsung dengan
perintah char
char c; //deklarasi variable character tunggal
• Deklarasi rangkaian character dapat kita lakukan dengan bantuan array
char (array akan di bahas pada pembahasan Array) dengan susunan:
char nama_variable[panjangrangkaian];
Contoh:
char nama[20]; //deklarasi variable nama bertipe character sepanjang 20 char
26.
2.5. Pointer
• Pointeradalah variabel yang berisi alamat dari suatu memory
yang menyimpan data
• Variabel pointer dimaksudkan menyimpan alamat awal dari
suatu memory yang berisi sel-sel memory yang dialokasikan
untuk menyimpan data sesuai dengan tipe data yang
dialokasikan
• Pada 4th generation language, tidak diperkenankan langsung
mengakses alamat memory, karena itu untuk linked-list nanti
akan disiasati dengan penggunaan tipe data list
TMSM - Linked List 26
27.
2.6. Contoh Pointer
•Variabel Pointer a menunjuk ke
alamat variabel b.
• variabel b menyimpan sebuah
bilangan (17)
• Variabel a dapat menyimpan
alamat dari variabel b pada
memory (1462)
TMSM - Linked List 27
a: variabel
pointer
v: variabel
biasa
28.
2.7. Deklarasi Variabelbertipe Pointer
• Variabel Pointer dapat dideklarasikan dengan mencantumkan
karakter * di depan variabel yang dideklarasikan
• Contoh dalam C:
int *a;
• Deklarasi ini akan mendaftarkan variabel a untuk menyimpan
data bertipe pointer yang ditujukan untuk menunjuk ke alamat
yang berisi data int
3.1. Inisialisasi
• Inisialisasiadalah pengisian nilai awal variabel
• Biasanya diisikan pada saat variabel dideklarasikan
Contoh pada C++:
int a = 100; //deklarasi variable a bertipe integer dan insialisasi dengan nilai 100
• Dapat juga melakukan inisialisasi melalui statement terhadap
suatu variable
Contoh pada C++:
int a;
a = 100;
31.
3.2. Aturan penulisaninisialisasi
• Inisialisasi pada variable tunggal
Nama_variable = nilai inisialisasi #contoh pada Phyton
Tipe_data Nama_variable = nilai inisialisasi; //contoh pada C
• Inisialisasi variable array dapat dilakukan dengan
menggunakan kurung kurawal dengan data set di dalam
kurung kurawal tersebut, tiap item data dipisahkan tanda koma
nama_array[panjangArray] = {data_0, data_1, data_2, …data_n};
32.
3.3. Preparasi
• Inisialisasidan enumerasi pada flowchart dapat diterapkan
menggunakan notasi preparasi
Contoh:
int a=10;
A = 10
Mulai
4.1. Enumerasi
• Enumerasiadalah sekumpulan konstanta bilangan bulat /
integer yang masing-masing konstanta akan memiliki nama dan
nilai yang berbeda.
• Enumerasi lebih ditujukan untuk penanganan kesalahan proses
input, output maupun proses pengolahan data dalam internal
CPU.
• Penggunaan konstanta yang didefinisikan atau pun enumerasi
akan mempermudah penanganan kesalahan daripada saat
hanya menggunakan angka.
35.
4.2. Aturan Penulisan
•Enumerasi menggunakan keyword enum
• Syntax enumerasi:
enum nama_variable{enumerasi1, enumerasi2, enumerasi3,
…enumerasi_n};
Enumerasi pertama akan bernilai 0, dan enumerasi berikutnya akan
melanjutkan nilai setelah 0: 1, 2, 3, dst
Contoh:
enum bilangan{nol, satu, dua, tiga, empat, lima}
36.
4.2. Aturan Penulisan(lanj…)
• Syntax enumerasi:
enum nama_variable{enumerasi1=angkamulai, enumerasi2, enumerasi
3, …enumerasi n};
Enumerasi pertama akan bernilai 1, dan enumerasi berikutnya akan
melanjutkan nilai setelah 1: 2, 3, dst
Contoh:
enum bilangan{satu=1, dua, tiga, empat, lima}
37.
4.3. Keluaran Enumerasi
•Keluaran enumerasi berupa angka yang diwakilinya
Contoh
enum bilangan{satu=1, dua, tiga, empat, lima};
enum kelas{I=1, II, III, IV, V, VI};
cout<<tiga; //akan tercetak 3 di layar
Cout<<IV; //akan tercetak 4 di layar
5.1 Penugasan
• Penugasan/ Statement merupakan pemberian
nilai pada variabel
• Penugasan dapat dilakukan langsung dengan nilai
yang akan diberikan, dapat juga dengan
menuliskan rumus ataupun fungsi mengikuti
variable yang akan diisi
40.
5.1 Penugasan (lanj…)
•Contoh Penugasan langsung:
a = 10;
Print(a) //akan tercetak 10
• Contoh penugasan dengan rumus
a = 10; //penugasan langsung
b = a + 5; //penugasan dengan rumus
Print(b) //akan tercetak 15
41.
5.2. Notasi Penugasan
•Pada flowchart dapat
menggunakan bangun persegi
panjang berisi rumus.
• Contoh:
• Pada pseudo-code dapat berupa
rumus pada baris program
• Contoh:
a = 10;
• Pada kalimat deskriptif dapat
dituliskan dengan pembacaan
rumusnya:
• Contoh:
[step 11] isi variable a dengan 10
6.1 Record /Structure
• Rekaman atau record atau structure adalah sekumpulan data
yang disusun dari tipe data yang sama atau tipe data yang
berbeda.
• Sebuah record berisi beberapa variabel lain yang ‘dipaketkan’.
Konsep struktur data seperti ini sedikit mirip dengan konsep
class dan object dalam object oriented programming
• Dalam Bahasa pemrograman Generasi 3, Record/Structure
harus di definisikan terlebih dahulu,
TMSM - Tipe Data Abstrak 43
44.
6.1 Record /Structure (lanj…)
• Hasil definisi Record/Structure diperlakukan seperti tipe data,
• Ketika akan digunakan, Record/Structure harus dideklarasikan
dahulu pada sebuah variable
• Struct / Record yang sudah didefinisikan dapat di deklarasikan
menjadi sebuah variable tunggal ataupun sebagai Array
sebagaimana layaknya tipe data lainnya
• Tetapi dalam Bahasa pemrograman generasi 4 seperti Phyton,
tidak diijinkan mendefinisikan Record/Struct, karenanya harus
disiasati dengan menggunakan tipe data list dan dictionary
TMSM - Tipe Data Abstrak 44
45.
6.2. Mengakses Record
•Record diakses pada field-fieldnya
• Record dapat diakses dengan menyebutkan terlebih dahulu
nama variable diikuti nama field yang akan diakses setelah
didahului tanda titik
TMSM - Tipe Data Abstrak 45
46.
6.3. Record dalamC++
• Definisi
struct RecordName
{
vartype FieldName1;
vartype FieldName2;
vartype FieldName3;
...
vartype FieldNameN;
};
• Deklarasi
RecordName varRecord;
• Penugasan
varRecord.FieldNameN = data;
• Mengakses Record
VarData = varRecord.FieldNameN;
TMSM - Tipe Data Abstrak 46
47.
• Definisi
struct Bangun
{
intx1;
int y1;
int x2;
int y2;
int x3;
int y3;
};
• Deklarasi
Bangun Segitiga;
• Penugasan
Segitiga.x1 = 10;
Segitiga.y1 = 16;
• Mengakses Record
Temp = Segitiga.x1;
TMSM - Tipe Data Abstrak 47
6.3. Record dalam C++ (Lanj.)
48.
6.4 Record padaPhyton
• Sebagai Bahasa Pemrograman Generasi 4, banyak Batasan
akses memory yang diberikan pada Phyton, sehingga tidak
memiliki perintah untuk membuat structure record
• Untuk mensiasati hal ini, maka kita beberapa opsi yang dapat
digunakan:
– Menggunakan Dictionary
– Menggunakan Class (catatan: materi ini akan dibahas pada mata kuliah struktur data)
49.
6.5. Tipe DataDictionary (Phyton)
• Bagi pemrograman struktur data, diperlukan record yang dapat diakses
berdasarkan nama field.
• Phyton tidak mengiijinkan membuat definisi struct secara langsung
seperti pada Bahasa pemrograman generasi 3
• Tetapi Phyton masih menyediakan sebuah tipe data Dictionary yang
dapat diakses berdasarkan nama fieldnya
• Dictionary adalah kumpulan yang dipesan/didefinisikan, dapat diubah,
dan tidak memungkinkan duplikat.
• Digunakan untuk menyimpan nilai data dalam pasangan kunci:nilai.
50.
6.5.1. Syntax Dictionary
•Dictionary ditulis diantara kurung kurawal, dan memiliki key-key dan
nilainya.
• Nama Kunci diapit tanda petik ganda, nilai menyesuaikan tipe datanya
• Syntax
namaDictionary = {“key1” : nilai1,
“key2” : nilai2,
“key3” : nilai3,
dst}
• Contoh:
mahasiswa = { "nama" : "Emil", “tahun" : 2004}
51.
6.5.2. Perlakuan DictionarySebagai
Struct/Record
• Key dapat dianggap sebagai nama field
• Syntax
namaRecord = {“namaField1” : data,
“namaField2” : data,
“namaField3” : data,
dst}
• Contoh:
mahasiswa = { "nama" : "Emil", “tahun" : 2004}
52.
6.5.3. Perintah-Perintah Dictionary
•clear() : membersihkan semua elemen dari Dictionary
• copy() : mengcopykan dictionary ke variable lain
• fromkeys() : mengambil dictionary beserta nama-nama key dan
nilainya
• get() : mengambil nilai dari key tertentu
• items() : mengambil daftar yang berisi tuple untuk setiap
pasangan nilai kunci
• keys() : mengambil daftar yang berisi key-key dari dictionary
53.
6.5.3. Perintah-Perintah Dictionary(lanjut)
• pop() : menghapus element berdasarkan key yang spesifik
• popitem() : Menghapus key terakhir berikut nilainya
• setdefault() : Mengambil nilai secara spesifik dari suatu key
yang dikehendaki pada parameter pertama. Jika key tidak
ditemukan, maka key tersebut akan disisipkan dengan suatu
nilai yang tercantum pada parameter kedua
• update() : menambahkan key berikut valuenya
• values() : Mengambil daftar value dari dictionary
54.
6.5.4. Mengakses ValueTiap Field
• Mengakses Value dari Field-field Dictionary dapat dilakukan dengan method get,
dapat juga dengan penyebutan langsung nama field/key nya
• Contoh:
car = {
"brand": "Ford",
"model": "Mustang",
"year": 1964
}
a = car.get(“model”)
print(a)
b = car[“year”]
print(b)
6.5.6. Memodifikasi Value
darisuatu item Dictionary
• Memodikasi nilai dari suatu item dapat dilakukan dengan menuliskan penugasan
dari nama dictionary dengan nama field / item di dalam kurung siku nya
• Contoh mengubah nilai field “color” dengan “white”
car[“color”] = “white”
57.
6.5.7. Modifikasi StrukturRecord
• Salah satu keistimewaan Penggunaan Dictionary Phyton
sebagai Record/Struct dibandingkan Record Pada
Pemrograman Generasi 3 adalah kemudahan menambah dan
menghapus Field nya
58.
Ringkasan
• Variabel merupakanpenyimpanan data
• variabel harus dideklarasikan sesuai dengan jenis datanya
• Inisialisasi adalah pengisian nilai awal variabel
• Enumerasi adalah sekumpulan konstanta bilangan bulat /
integer yang masing-masing konstanta akan memiliki nama dan
nilai yang berbeda.
• Penugasan / Statement merupakan pemberian nilai pada
variabel
TMSM - Introduction to Data Structure 58