Python adalah bahasa pemrograman yang ditujukan untuk general- Penamaan suatu variabel pada Python dapat dikatan
thon dapat dikatan valid selama
purpose programming dengan kata lain Python bisa digunakan untuk memenuhi aturan-aturan berikut: berbagai permasalahan seperti pengembangan aplikasi web ataupun mobile, 1. Nama dari sebuah variabel harus dimulai dengan huruf (a-z, A-Z) atau data science, dll. Dan Python termasuk dalam kategori high-level karakter garis bawah underscore (_) dan tidak dapat dimulai dengan angka (0- programming language dikarenakan bahasa pemrograman Python yang 9) mudah untuk dibaca dan dituliskan. 2. Variabel hanya boleh mengandung karakter alfabet, bilangan dan Fungsi Python yang pertama dipelajari adalah print(). Dengan fungsi underscore (a-z, A-Z, 0-9, _) print() kita bisa menampilkan atau mencetak teks ke layer pengguna. Syntax 3. Variabel bersifat case-sensitive yang mengartikan bahwa variabel atau struktur penggunaan dari fungsi print() adalah sebagai berikut TINGGI, tinggi dan Tinggi merujuk pada tiga variabel berbeda print(argument) TIPE DATA DASAR Perlu diingat, untuk argumen berupa teks maka harus berada didalam tanda 1. Null Type: Tipe data null dalam Python digunakan untuk menyimpan kutip ‘’ atau “”, sedangkan untuk argumen lainnya tidak perlu menggunakan nilai kosong atau tidak ada yang dinyatakan dengan None. tanda kutip. 2. Boolean Type: Tipe data Boolean atau bool digunakan untuk Sebuah program Python pada umumnya terdiri dari menyimpan nilai kebenaran (True, False) dari suatu ekspresi logika 1. Statements: Instruksi yang diberikan secara baris per baris untuk 3. Numeric Type: Tipe data yang digunakan untuk menyimpan data dijalankan. berupa angka. Terdapat dua macam tipe data numeric, yaitu int untuk #Statement menyimpan bilangan bulat (cth.: 0, 1, 2, 404, -500, -1000) dan float Print(‘Belajar Python menyenangkan’) untuk menyimpan bilangan rill (cth.: 0.5, 1.01, 2.05, 4.04) 2. Variables: Lokasi penyimpanan yang dapat digunakan untuk 4. Text Type: Pada Python, tipe data string (str) digunakan untuk menampung sebuah informasi. menyimpan data teks. Tipe data string dimulai dengan tanda kutip 3. Literals: Simbol-simbol yang dapat kita gunakan untuk mengisi suatu (baik kutip satu/dua) dan diakhir dengan tanda kutip. Contoh: “Teks”, variabel “Contoh teks menggunakan Python”, dan ‘Teks pada Python’. Untuk #Variables & Literals mendeklarasikan tipe data string ke dalam beberapa baris, dapat dilakukan dengan menggunakan tanda kutip satu ataupun tanda kutip bilangan1 = 5 dua sebanyak 6 kali. Sebagai contoh: bilangan2 = 10 ‘‘‘Sepatu Niko merupakan sepatu kasual. 4. Operators: Simbol-simbol yang dapat digunakan untuk mengubah Sepatu ini tersedia dalam berbagai macam nilai dari suatu variabel dengan melibatkan satu atau lebih variabel dan literal. ukuran.’’’ #Operators print(bilangan1 + bilangan2) SEQUENCE TYPE Tipe data ini digunakan untuk menampung sekumpulan data secara teroganisir. Bentuk tipe data sequence ini adalah List dan Tuple. ATURAN PENAMAAN PYTHON VARIABLES Tipe data list diawali dengan tanda kurung siku buka ( [ ) memisahkan print(contoh_set) setiap elemen di dalamnya dengan tanda koma dan ditutup dengan kurung #Hasil siku tutup ( ] ). Sebagai contoh: {'Linda', 'Cici', 'Budi', 'Dewi'} Setiap elemen dari list memiliki indeks yang dimulai dari angka 0 dan Untuk tipe data frozenset sebenarnya hanya merupakan set yang terus bertambah satu nilainya hingga elemen terakhir dari list. Tipe data list bersifat immutable, yang artinya setiap elemen di dalam frozenset tidak dapat bersifat mutable yang berarti setiap elemen di dalam list dapat dirubah diubah setelah proses deklarasinya. nilainya setelah proses pendeklarasian list. #Contoh List MAPPING TYPE contoh_list = [1, ‘dua’, 3, 4.0, 5] Tipe data mapping dapat digunakan untuk memetakan sebuah nilai ke Selanjutnya adalah tipe data tuple. Tipe data tuple juga berfungsi untuk nilai lainnya. Tipe data mapping disebut dengan istilah dictionary. Tipe menampung sekumpulan data. Tipe data ini diawali dengan tanda kurung buka data dictionary dapat dideklarasikan dengan diawali oleh tanda kurung buka ( ( ) memisahkan setiap elemen di dalamnya dengan tanda koma dan ditutup kurawal ( { ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dengan tanda kurung tutup ( ) ). Sebagai contoh: dan ditutup dengan tanda kurung kurawal ( } ). Setiap elemen pada tipe #Contoh Tuple data dictionary dideklarasikan dengan format: contoh_tuple = (‘Januari’, ‘Februari’, ‘Maret’, “kunci” : “nilai” ‘April’) Untuk mengakses elemen dari sebuah dictionary, maka hanya perlu Aturan indeks dan cara mengakses elemen pada sebuah tuple serupa menspesifikasikan kata kunci yang terdapat dalam dictionary tersebut. dengan list. Berbeda dengan tipe data list, tipe data tuple bersifat immutable #Contoh Dictionary yang berarti elemen pada tipe data tuple tidak dapat diubah setelah proses person = {‘nama’: ‘John Doe’, ‘pekerjaan’: pendeklarasiannya. ‘Programmmer’} #Mengakses elemen dictionary SET TYPE print(person[‘nama’]) Serupa dengan tipe data sequence, tipe data set digunakan untuk menampung sekumpulan data dengan tipe lainnya. Terdapat dua jenis dari tipe #Hasil data set yaitu, set dan frozenset. Tipe data set diawali dengan tanda kurung John Doe buka kurawal ( { ), memisahkan setiap elemen di dalamnya dengan tanda koma ( , ) dan ditutup dengan tanda kurung tutup ( } ). Namun berbeda ARITHMETIC OPERATORS dengan tipe data sequence, seperti list, tipe data objek tidak mengizinkan Arithmetic operator digunakan pada tipe data numerik, untuk melakukan adanya elemen dengan nilai yang sama dan tidak memperdulikan urutan dari operasi matematika sederhana yang terdiri atas: elemen. Simbol Keterangan Contoh #Contoh Set Operator contoh_set = {‘Dewi', 'Budi', 'Cici', 'Linda', + Penambahan 3+2=5 - Pengurangan 4–2=2 'Cici'} Simbol Comparison Operators dapat digunakan untuk membandingkan dua buah Keterangan Contoh Operator nilai, berikut merupakan contoh-contoh operator komparasi. * Perkalian 3*2=6 Simbol / Pembagian 3 / 2 = 1.5 Keterangan Contoh Operator % Modulo/Sisa bagi 3%2=1 == Persamaan 33 == 33 (True) Dikarenakan 3 tidak habis 34 == 33 (False) dibagi 2 dan menyisakan 1 != Pertidaksamaan 33 != 33 (False) ** Pangkat 3 ** 2 = 9 34 != 33 (True) // Pembagian dengan 3 // 2 = 1 > Lebih besar dari 33 > 34 (False) pembulatan ke bawah Dikarenakan 1.5 akan 34 > 33 (True) menjadi 1 saat dibulatkan ke < Lebih kecil dari 33 < 34 (True) bawah 34 < 33 (False) >= Lebih besar atau 33 >= 34 (False) ASSIGNMENT OPERATORS sama dengan 34 >= 33 (True) Assignment Operator digunakan untuk mendeklarasikan nilai secara 33 >= 33 (True) langsung ke suatu variabel. <= Lebih kecil atau 33 <= 34 (True) Simbol sama dengan 34 <= 33 (False) Keterangan Contoh 33 <= 33 (True) Operator += Penambahan x += 2 ekivalen dengan x = x+2 LOGICAL OPERATORS -= Pengurangan x -= 2 ekivalen dengan x = x Logical Operator digunakan untuk menggabungkan beberapa nilai -2 kebenaran atas suatu statemen logika. *= Perkalian x *= 2 ekivalen dengan x = Simbol x*2 Keterangan Contoh Operator /= Pembagian x /= 2 ekivalen dengan x = x and Menerima dua nilai kebenaran x = 5 /2 dan mengembalikan nilai benar x >= 1 and x <= 10 (True) %= Modulo/Sisa bagi x %= 2 ekivalen dengan x = jika keduanya benar x >= 1 and x <= 4 (False) x%2 or Menerima dua nilai kebenaran x = 3 **= Pangkat x **= 2 ekivalen dengan x = dan mengembalikan nilai benar x >= 1 or x <= 2 (True) x ** 2 jika salah satu benar x >= 5 or x <= 0 (False) //= Pembagian dengan x //= 2 ekivalen dengan x = not Negasi – menerima sebuah nilai x = 7 pembulatan ke bawah x // 2 kebenaran dan mengembalikan not(x == 7) (False) komplemennya not(x >= 10) (True) COMPARISON OPERATORS IDENTITY OPERATORS Identity Operator dapat digunakan untuk membandingkan identitas dari CONDITIONING FOR DECISION (IF STATEMENT) dua buah variabel. Python menyediakan flow control statement untuk berinteraksi dengan Simbol variabel bertipe Boolean dan operator logika. Flow control statement dalam Keterangan Contoh Operator Python dapat dituliskan dengan menggunakan format berikut is Menerima dua buah objek dan x = ["Ani", "Budi"] #if statement mengembalikan nilai True y = ["Ani", "Budi"] if conditions: Ketika keduanya merujuk pada a = x do_action_1 objek yang sama dan False print(a is x) (True) dalam kondisi lainnya print(a is y) (False) …… do_action_n is not Menerima dua buah objek dan x = ["Ani", "Budi"] Dengan conditions berikan operator-operator yang mengembalikan nilai mengembalikan nilai True ketika y = ["Ani", "Budi"] kebenaran yang digabungkan dengan operator logika. Dalam if statement, keduanya merujuk pada objek a=x do_action_1 sampai dengan do_action_n harus ada didalam blok dengan yang berbeda dan False jika sama print(a is not x) (False) menambahkan indentsi (jorokan) dan akan dijalankan saat conditions bernilai print(a is not y) (True) True. Pada umumnya, operator identitas sering digunakan bersamaan dengan Dalam if statement kita bisa menambahkan satu ataupun lebih flow control fungsi type(), yang mana fungsi type() akan menerima sebuah objek dan statement elif untuk melakukan pengecekan kondisi lainnya, saat kondisi mengembalikan tipe data dari objek tersebut. dalam sebuah if statement atau elif di atasnya tidak terpenuhi. #if statement with elif MEMBERSHIP OPERATORS if conditions: Membership Operator (keanggotaan) dapat digunakan untuk memeriksa do_action_1 anggota dari sebuah tipe data sequence/set. Operator keanggotaan meliputi: …… Simbol do_action_n Keterangan Contoh Operator in Menerima sebuah sequence/set x = ["Ani", "Budi", "Cici"] elif conditions: dan objek, mengembalikan True y = "Cici" do_action_1 ketika objek merupakan anggota z = "Dodi" …… dari sequence/set, dan False print(y in x) (True) do_action_n ketika bukan. print(z in x) (False) not in Menerima sebuah sequence/set x = ["Ani", "Budi", "Cici"] PYTHON PRIMITIVE LOOP CONTROL dan objek, mengembalikan True y = "Cici" Loop Control merupakan salah satu fitur yang mengizinkan penggunanya ketika objek bukan merupakan z = "Dodi" untuk melakukan serangkain aksi, selama suatu kondisi yang telah ditetapkan anggota dari sequence/set, dan print(y not in x) (False) bernilai benar. Terdapat dua bentuk dari loop control, yaitu False ketika merupakan. print(z not in x) (True) while loops Statement while akan terus menjalankan aksi di dalamnya, selama .clear() Menghapus seluruh elemen dalam sebuah list kondisi yang dituliskan di samping kanan statemen while terus .copy() Mengembalikan copy dari setiap elemen dalam list terpenuhi. Perintah break dapat digunakan untuk keluar dari .count() Mengembalikan jumlah kemunculan suatu elemen pada list struktur pengulangan dan perintah continue untuk melanjutkan .extend() Menggabungkan dua buah list seperti penggunaan operator + proses pengulangan berikutnya. untuk list #while loops .index() Mengembalikan indeks dari elemen pertama yang ditemukan dari awal sebuah list while ……: .insert() Menyisipkan elemen pada indeks yang dispesifikasikan action_1 .pop() Menghilangkan elemen pada posisi tertentu .remove() Menghilangkan elemen dengan nilai tertentu .reverse() Membalik urutan elemen dari sebuah list for loops .sort() Mengurutkan elemen pada sebuah list, secara default dengan Cara kerja for loops hampir sama dengan while loops. For loops urutan dari kecil ke besar (ascending) (reverse=True untuk akan terus menjalankan pengulangan selama kondisi terpenuhi. descending) #for loops for …… in ……: TUPLE MANIPULATION action_1 Berikut beberapa fitur untuk memanipulasi tipe data tuple Fitur Keterangan COLLECTION MANIPULATION .count() Mengembalikan jumlah kemunculan suatu elemen pada tuple Collection Manipulation adalah salah satu teknik yang penting untuk .index() Mengembalikan indeks dari elemen pertama yang ditemukan dikuasai setiap programmer. Untuk mengakses elemen pada suatu list atau dari awal sebuah tuple tuple adalah dengan menggunakan indeks dari list ataupun tuple tersebut yang semuanya dimulai dari 0. Dan untuk mengakses elemen dari belakang maka SET MANIPULATION dapat menggunakan indeks negative yang dimulai dari -1. Sedikit berbeda dengan list atau tuple, pada set terdapat cukup banyak fitur Cara collection manipulations yang pertama adalah slicing dengan yang disediakan untuk memanipulasi set. menggunakan rentangan nilai indeks. Selain dapat melakukan pemotongan Fitur Keterangan terhadap list atau tuple, penggabungan isi dari suatu list atau tuple bisa dapat .add() Menambahkan data ke dalam set. Penting untuk kita ingat bahwa pada tipe data set dilakukan dengan menggunakan operator penambahan. tidak mengizinkan adanya duplikasi. .clear() Menghapus seluruh elemen dalam sebuah LIST MANIPULATION set Untuk memanipulasi list ada beberapa fitur yang tersedia yang lebih .copy() Mengembalikan copy dari setiap elemen jelasnya ada dalam table dalam set Fitur Keterangan .update() Menambahkan elemen dari suatu set .append() Menambahkan data sebagai elemen akhir di list. dengan set lainnya Fitur Keterangan .pop() Menghilangkan elemen dari sebuah set DICTIONARY MANIPULATION secara acak Fitur Keterangan .remove() Menghilangkan elemen dengan nilai .clear() Menghapus seluruh elemen dalam tertentu sebuah dictionary .union() Mengembalikan hasil penggabungan dari .copy() Mengembalikan copy dari setiap dua buah set elemen dalam set. Serupa dengan .isdisjoint() Mengembalikan nilai kebenaran apakah fitur copy() pada tipe data suatu set disjoint (saling lepas/tidak collections lainnya, fitur copy() mengandung elemen yang sama) dengan tidak akan mengubah nilai dari set lainnya elemen asal seperti fungsi .issubset() Mengembalikan nilai kebenaran apakah assignment sebuah set merupakan subset dari set .keys() Mengembalikan list dari seluruh lainnya. Sebuah set A merupakan subset kunci akses (‘keys’) dari setiap dari set B jika seluruh elemen dari set A elemen dalam sebuah dictionary merupakan bagian dari set B .values() Mengembalikan list dari seluruh .issuperset() Mengembalikan nilai kebenaran apakah nilai (‘value’) dari setiap elemen sebuah set merupakan superset dari set dalam sebuah dictionary lainnya. Sebuah set A merupakan superset .update() Menambahkan kunci akses (‘keys’) dari set B jika seluruh elemen dari set B dan nilai (‘value’) ke dalam sebuah terkandung dalam set A dictionary .intersection() Mengembalikan sebuah set yang merupakan intersection dari dua set Menghilangkan spasi yang ada di awal/di akhir variabel string. lainnya Fitur Keterangan .difference() Mengembalikan sebuah set yang berisikan .strip() Menghilangkan kelebihan spasi pada awal dan akhir string difference dari dua set lainnya. Difference .lstrip() Menghilangkan kelebihan spasi pada awal string dari sebuah set A berdasarkan set B adalah .rstrip() Menghilangkan kelebihan spasi pada akhir string setiap elemen yang terdapat di set A tetapi tidak terdapat di set B Merubah penggunaan huruf besar dan kecil pada sebuah string. .symmetric_difference() Mengembalikan sebuah set yang berisikan symmetric difference dari dua set lainnya. Fitur Keterangan Symmetric difference dari sebuah set A .capitalize() Mengubah elemen pertama dari string menjadi huruf dan B adalah setiap elemen dari set A yang kapital tidak terdapat di set B digabungkan .lower() Mengubah seluruh huruf dalam teks (string) menjadi dengan (union) setiap elemen dari set B huruf kecil yang tidak terdapat di set A .upper() Mengubah seluruh huruf dalam teks (string) menjadi huruf besar Statement_n Memecah suatu string dengan kondisi tertentu sehingga menghasilkan list return returned_value of string, menggabungkan beberapa list of string dan mengganti sub-string catatan: tertentu dengan sub-string lainnya. nama_fungsi adalah nama untuk fungsi yang didefinisikan, Fitur Keterangan memilikia aturan seperti penamaan variabel .split() Memecah sebuah string berdasarkan string lainnya ke dalam argument adalah variabel masukan ke fungsi, bisa tanpa variabel, sebuah list satu variabel atau lebih. Untuk variabel optional (default) .join() Menggabungkan sebuah list yang berisikan string berdasarkan sebuah string yang telah didefinisikan argument diset dengan memberikan string kosong (argument_1, .replace() Menggantikan kemunculan suatu string tertentu dengan argument_2 = ‘ ‘) string lainnya dalam sebuah string statement_1 … statement_n adalah algoritma yang telah ditransfer dalam bahasa Python. Ini merupakan inti dari fungsi Menentukan posisi awal suatu sub-string dan jumlah kemunculan sub- yang didefinisikan. Seluruh statement indent ke dalam seperti string tersebut pada suatu string. pada conditioning dan looping Fitur Keterangan return_value adalah variabel output dari fungsi. Bisa tanpa .find() Mengembalikan posisi dari sebuah teks (sub-string) lainnya variabel, satu variabel atau lebih dalam sebuah string .count() Menghitung jumlah kemunculan sebuah teks (string) lainnya dalam suatu string (string yang dicari bersifat case sensitive) MANIPULASI BERKAS TEKS Menentukan apakah suatu string diawali atau diakhiri dengan suatu sub- MEMBACA FILE DI LOCAL COMPUTER string Untuk memanipulasi berkas teks pada Python yang pertama harus Fitur Keterangan membuka/membuat berkas teks yang diinginkan dengan menggunakan fungsi .startswith() Mengembalikan nilai kebenaran True ketika sebuah teks open(). Fungsi open() menerima dua parameter, nama dari file yang akan (string) diawali dengan sebuah teks lainnya dibuka/dibuat dan mode yang berkaitan dengan aksi yang ingin dilakukan .endswith() Mengembalikan nilai kebenaran True ketika sebuah teks terhadap file yang telah terbuka. (string) diakhiri dengan sebuah teks lainnya file = open(“hello.txt”, “r”) argument/parameter “r” mengartikan file yang dibuka berada dalam mode FUNCTIONS “read” sehingga tidak dapat menambahkan/menuliskan ulang isi dari file Function adalah sebuah blok statemen yang hanya akan dijalankan saat ia “hello.txt”. dipanggil. Python mengizinkan user defined function. file.close() digunakan untuk menutup file yang telah dibuka. def nama_fungsi(argument): Selain mode “r” terdapat juga mode lainnya seperti: statement_1 1. w: write, mode ini dapat digunakan untuk menulis ke dalam sebuah … teks. Jika berkas tidak tersedia maka Python akan secara otomatis membuat sebuah berkas baru dengan nama yang telah 1. Encapsulation: Menyembunyikan Sebagian detail yang dimiliki dispesifikasikan. Jika file semula tidak kosong, maka isi yang oleh sebuah objek terhadap objek-objek lainnya. sebelumnya terdapat di dalam berkas akan terhapus. 2. Inheritance: Menurunkan serangkaian fungsi-fungsi yang 2. a: append, mode ini dapat digunakan untuk menambahkan isi dari dimiliki oleh sebuah objek ke sebuah objek baru tanpa mengubah sebuah berkas teks. Mode ini juga akan membuat sebuah berkas teks makan dari objek acuan yang digunakan. baru dengan nama yang telah dispesifikasikan jika berkas teks tidak 3. Polymorphism: Konsep untuk menggunakan fungsi-fungsi tersedia. dengan nama/tujuan yang sama dengan cara yang berbeda. 3. w+: write+, mode ini dapat aku gunakan untuk membaca ataupun menuliskan isi dari sebuah berkas teks CLASS AND OBJEK 4. a+: append+, mode ini dapat digunakan untuk membaca ataupun Setiap objek yang direpresentasikan dalam program berbasis OOP menambahkan isi dari sebuah berkas teks merupakan instansi/bentuk nyata dari sebuah konsep yang disebut dengan class. Oleh karena itu, class dapat juga disebut sebagai kerangka utama MEMBACA FILE DARI URL (blueprint) dari objek. Unruk membuah sebuah class menggunakan syntax Berkas teks yang berada di suatu alamat di internet dapat dibaca berikut berdasarkan url-nya. Untuk membacanya perlu menggunakan library requests. class Karyawan: import requests pass url = Kemudian, dari class yang telah didefinisikan dapat menciptakan objek https://storage.googleapis.com/dqlab-dataset/hello.txt dari sebuah class dengan menggunakan syntax berikut response = requests.get(url) aksara = Karyawan() senja = Karyawan() Selain menggunakan fungsi read(), fungsi readlines() ataupun readline() Pada contoh diatas, aksara dan senja merupakan realisasi (objek) dari class dapat digunakan untuk membaca isi dari suatu berkas teks. Dengan Karyawan yang sebelumnya telah aku buat. Dari potongan kode ini, aksara menggunakan fungsi readline() Python akan membaca konten dari sebuah dan senja adalah dua objek yang berbeda. berkas secara baris per baris. Agar dapat membuat class Karyawan dengan baik, pertama, aku akan mempelajari cara merepresentasikan atribut/property dalam sebuah class. OBJECT ORIENTED PROGRAMMING – OOP Dalam sebuah class, dapat mendefinisikan dua jenis atribut yaitu OOP merupakan salah satu paradigma pemrograman yang cukup popular 1. Class Attribute adalah property/atribut yang bernilai sama untuk di antara paradigma-paradigma lainnya. Pada paradigma OOP, struktur dari oleh seluruh objek sebuah program dikemas ke dalam sebuah objek yang memiliki serangkaian 2. Instance Attribute adalah property/atribut yang nilainya berbeda- properties dan behaviours. Konsep Object Oriented pada Python memiliki beda untuk seiap objek dari sebuah class. tujuan untuk menciptakan potongan-potongan kode yang bersifat reusable dan # Definisikan class Karyawan tidak redundan. Konsep ini disebut dengan istilah DRY – Don’t Repeat class Karyawan: Yourself. Dalam bahasa pemrograman Python, terdapat 3 konsep utama nama_perusahaan = 'ABC' Object Oriented yaitu # Inisiasi object yang dinyatakan dalam variabel aksara # Hasil dan senja Aksara, Usia: 25, Pendapatan 8500000 aksara = Karyawan() Senja, Usia: 28, Pendapatan 12500000 senja = Karyawan() Dari kode diatas atribut nama, usia dan pendapatan merupakan contoh dari # Cetak nama perusahaan melalui penggunaan keyword instance variabel. Sebagai tambahan fungsi __init__() di dalam class __class__ Karyawan secara khusus disebut sebagai constructor. Melalui constructor # pada class attribute nama_perusahaan dapat menginisialisasikan atribut-atribut milik sebuah objek. print(aksara.__class__.nama_perusahaan) Setiap fungsi (termasuk constructor) akan menerima dirinya sendiri (self) # Ubah nama_perusahaan menjadi 'DEF' sebagai parameter pertama dari fungsi. Kemudian dapat menambahkan aksara.__class__.nama_perusahaan = 'DEF' parameter-parameter lain setelah parameter self sesuai dengan kebutuhan. # Cetak nama_perusahaan objek aksara dan senja Untuk mengakses instance attribute dalam sebuah class, perlu menuliskan print(aksara.__class__.nama_perusahaan) syntax self diikuti dengan tanda titik (.) sebelum nama atribut. print(senja.__class__.nama_perusahaan) BEHAVIOR PADA CLASS #Hasil Selain mendefinisikan atribut dalam sebuah class, diperbolehkan untuk ABC mendefinisikan fungsi-fungsi (behavior) dari sebuah class. DEF class Karyawan: DEF nama_perusahaan = "ABCDE" insentif_lembur = 250000 # Definisikan class Karyawan def __init__(self, nama, usia, pendapatan): class Karyawan: self.nama = nama nama_perusahaan = 'ABC' def __init__(self, nama, usia, pendapatan): self.usia = usia self.nama = nama self.pendapatan = pendapatan self.usia = usia self.pendapatan_tambahan = 0 self.pendapatan = pendapatan def lembur(self): # Buat object bernama aksara dan senja self.pendapatan_tambahan += aksara = Karyawan('Aksara', 25, 8500000) self.insentif_lembur senja = Karyawan('Senja', 28, 12500000) def tambahan_proyek(self, insentif_proyek): # Cetak objek bernama aksara print(aksara.nama + ', Usia: ' + str(aksara.usia) + self.pendapatan_tambahan += insentif_proyek ', Pendapatan ' + str(aksara.pendapatan)) def total_pendapatan(self): # Cetak objek bernama senja return self.pendapatan + print(senja.nama + ', Usia: ' + str(senja.usia) + ', self.pendapatan_tambahan Pendapatan ' + str(senja.pendapatan)) aksara = Karyawan('Aksara', '25', 8000000) baru dapat memiliki atribut dan fungsi pada class yang sebelumnya telah print(aksara.total_pendapatan()) didefinisikan. Pada konsep inheritance, atribut/fungsi yang akan diwariskan aksara.lembur() hanyalah atribut/fungsi dengan access modifier public, atribut/fungsi dengan print(aksara.total_pendapatan()) access modifier private tidak akan diturunkan. aksara.tambahan_proyek(500000) Pada konsep inheritance class yang menerima turunan dari class utama print(aksara.total_pendapatan()) (parent) disebut dengan child class. Suatu child class dapat mengakses atribut ataupun fungsi yang dimiliki oleh parent class dengan menggunakan fungsi # Hasil super(). 8000000 class Karyawan: 8250000 def __init__(self, nama, usia, pendapatan): 8750000 self.nama = nama self.usia = usia ENCAPSULATION self.pendapatan = pendapatan Encapsulation adalah sebuah Teknik dalam OOP yang mengizinkan untuk class AnalisData(Karyawan): menyembunyikan detil dari sebuah atribut dalam sebuah class. Agar suatu def __init__(self, nama, usia, pendapatan): property ataupun fungsi dari sebuah class tidak dapat diakses secara bebas di super().__init__(nama, usia, pendapatan) luar scope milik suatu class maka dapat mendefinisikan acces modifier (level akses) saat sebuah atribut/fungsi didefinisikan. OVERLOADING Terdapat 2 macam access modifier dalam Python, yakni Metode Overloading mengizinkan sebuah class untuk memiliki 1. Public Access: dapat didefinisikan dengan secara langsung sekumpulan fungsi dengan nama yang sama dan parameter yang berbeda. menuliskan nama dari atribut/fungsi. Dalam sebuah objek, Berkaitan dengan hal ini, Python tidak mengizinkan pendeklarasian fungsi atribut/fungsi yang bersifat public access dapat diakses di luar (baik pada class ataupun tidak) dengan nama yang sama. Untuk scope sebuah class. mengimplementasikan method overloading pada Python, dapat menggunakan 2. Private Access: dapat didefinisikan dengan menambahkan double sebuah Teknik yang dikenal dengan function default parameters. underscore (__) sebelum menuliskan nama dari atribut/fungsi. Dalam sebuah objek, atribut/fungsi yang bersifat private access STRUCTURED QUERY LANGUAGE (SQL) hanya dapat diakses di dalam scope sebuah class. SQL adalah bahasa computer standar yang digunakan untuk berinteraksi dengan suatu system database, atau lebih tepatnya system manajemen database relasional. Jadi, user dapat menambahkan, mengubah, mengupdate, mencari dan menghapus data dari suatu system database dengan menggunakan INHERITANCE SQL. Inheritance adalah salah satu mekanisme di konsep Object Oriented yang Terdapat dua kategori dari interaksi SQL: mengizinkan untuk mendefinisikan sebuah class baru berdasarkan class yang Data Definition Language (DDL), yaitu berbagai perintah yang sebelumnya telah dideklarasikan. Melalui konsep inheritance, sebuah class berfungsi lebih kepada memanipulasi struktur database, seperti membuat (create), meubah (alter), dan menghapus (drop) struktur WHERE digunakan untuk melakukan filter data dengan kondisi teks penyimpanan data, yaitu database, table, kolom dan tipe data. tertentu, nilai angka tertentu, atau dengan dua kondisi menggunakan operator Data Manipulation Language (DML), yaitu berbagai perintah AND dan OR. yang digunakan untuk menyisipkan data (insert), mengambil data atau query (select), meubah data (update) dan menghapus data FUNGSI PADA SQL (delete). Fungsi adalah metode yang digunakan untuk melakukan operasi data di Relational Database Management System yang biasa disingkat RDBMS database, bisa berupa kalkulasi numerik seperti sum, count, avg, etc; atau adalah suatu program yang memungkinkan untuk membuat, memperbarui, dan operasi non numerik seperti string concatenations dan sub-string. SQL mengelola suatu basis data relasional. Basis data relasional sendiri merupakan Function dapat dibagi ke dalam 2 kategori, yaitu fungi scalar dan fungsi suatu jenis database dimana data-data umumnya disimpan dalam bentuk yang aggregate. terstruktur berupa table dan setiap table/data yang terdapat dalam database Fungsi scalar dalam SQL digunakan untuk mengembalikan nilai tunggal memiliki relasi satu sama lain. (single value) dari suatu nilai input yang diberikan, sedangkan agregat dalam Setiap database bisa berisi beberapa table, dan setiap table bis terdiri dari SQL digunakan untuk melakukan perhitungan pada sekelompok nilai dan beberapa kolom. Di setiap database, table dan kolo, memiliki nama sendiri kemudian mengembalikan nilai tunggal. sebagai identitas mereka. Table dan kolom inilah yang akan diisi data yang Fungsi scalar matematika untuk numerik value, umumnya digunakan jika kemudian membentuk row. ingin melakukan operasi matematika di SQL secara cepat dan efektif. Beberapa fungsi yang umum digunakan pada fungsi scalar MENGAMBIL SELURUH KOLOM DALAM SUATU TABEL Untuk mengakses data di database, dapat menggunakan SELECT statement. SELECT digunakan untuk menyatakan kolom-kolom mana saja Fungsi Deskripsi Contoh Hasil yang ingin ditampilkan dari suatu table di database. SELECT statement tidak abs() Mengembalikan nilai abs(-17.4) 17.4 bisa berdiri sendiri, setelah menyatakan kolom-kolom yang ingin ditampilkan absolute dari nilai input dilanjutkan dengan FROM. Di FROM inilah dari table mana data yang ingin ceiling() Mengembalikan nilai ceiling(-95.3) -95 ditampilkan berada. integer terbesar yang SELECT…FROM… adalah statement paling sederhana di SQL dan terdekat dengan nilai merupakan bagian utama dari query. Tanda Bintang (*) adalah symbol untuk input floor() Mengembalikan nilai floor(-42.8) -43 mengambil seluruh kolom dari table. LIMIT digunakan untuk membatasi integer terkecil yang jumlah baris yang diambil. terdekat dengan nilai SELECT DISTINCT…FROM… digunakan untuk menghilangkan data input duplikasi dan menampilkan data yang unik saja. round() Mengembalikan nilai round(42.4382, 2) 42.44 SELECT…AS…FROM… adalah bentuk lain untuk melakukan pembulatan dari suatu pengambilan data pada SQL. Prefix dimana kita menambahkan nama table di nilai decimal depan nama kolom. Alias dimana kita memberikan alias atau nama lain untuk sqrt() Mengembalikan nilai sqrt(2.0) 1.41421356 table maupun kolom. akar kuadrat dari nilai input dalam suatu string ‘xTomxx’); Tomxx; mod() Mengembalikan nilai sisa mod(9, 4) 1 trim(leading ‘x’ xTom; hasil pembagian dari nilai from ‘xTomxx’); input trim(trailing ‘x’ exp() Mengembalikan nilai exp(1.0) 2.71828183 from ‘xTomxx’); eksponensial dari nilai upper() Mengubah huruf upper(‘tom’) TOM input kecil ke huruf besar lower() Mengubah huruf lower(‘TOM’) tom Fungsi text digunakan jika ingin melakukan operasi pada text atau karakter besar ke huruf kecil SQL, misalnya mengubah huruf kecil ke huruf besar, menghitung jumlah karakter dari text, dll. Beberapa fungsi yang sering digunakan Fungsi aggregate yang umum digunakan Fungsi Deskripsi Contoh Hasil Fungsi Deskripsi concat() Menggabungkan concat(‘abcde’,2,N abcde222 Sum() Digunakan untuk menjumlahkan sekelompok nilai (baris) semua ULL,22) dalam satu kolom argument/input, Count() Digunakan untuk menghitung jumlah baris NULL value akan Avg() Digunakan untuk menghitung nilai rata-rata dari suatu kolom diabaikan Min() Digunakan untuk menghitung nilai minimum dari suatu kolom split_part() Membagi string/text split_part(‘abc@def def Max() Digunakan untuk menghitung nilai maximum dari suatu kolom berdasarkan pemisah @ghi’, ‘@’, 2) First() Mengembalikan nilai pada baris pertama dari suatu kolom yang ditentukan Last() Mengembalikan nilai pada baris terakhir dari suatu kolom kemudian mengembalikan value berdasarkan posisi string yang diinginkan (hitungan posisi mulai dari 1) substr() Mengekstrak substr(‘alphabet’, 3, ph karakter/string yang 2) diinginkan length() Menghitung jumlah length(‘Jose’) 4 karakter dalam string/text replace() Mengganti karakter replace(‘abcdefabcd abXXefab dalam suatu ef’, ‘cd’, ‘XX’) XXef string/text trim() Menghapus karakter trim(both ‘x’ from Tom;