Dasar Python Untuk Pengembangan Odoo part 1
Tipe data dasar (integer, float, string, boolean)
1. Integer (Bilangan Bulat)
Integer adalah tipe data untuk angka bulat, baik positif, negatif, maupun nol, tanpa komponen desimal. Dalam pengembangan Odoo, kita akan sering menggunakannya untuk ID catatan, jumlah, atau nilai-nilai lain yang tidak memerlukan presisi desimal.
Contoh :
2. Float (Bilangan Pecahan/Desimal)
Float (floating-point number) adalah tipe data untuk angka yang memiliki komponen desimal. Ini digunakan ketika kita membutuhkan presisi yang lebih tinggi, seperti harga, perhitungan berat, atau nilai-nilai numerik lainnya yang bisa memiliki pecahan.
Contoh :
3. String (Teks)
String adalah tipe data untuk representasi teks. String adalah urutan karakter. Kita bisa mendefinisikannya menggunakan tanda kutip tunggal (‘) atau ganda (“). String sangat sering digunakan dalam Odoo untuk nama, deskripsi, alamat, dan semua data berbasis teks lainnya.
Contoh :
Kita juga bisa melakukan operasi pada string, seperti menggabungkan (concatenation) atau mengambil bagian dari string.
Contoh :
4. Boolean (Benar/Salah)
Boolean adalah tipe data yang paling sederhana, hanya memiliki dua kemungkinan nilai: True (Benar) atau False (Salah). Tipe data ini fundamental untuk logika pemrograman, percabangan (if/else), dan validasi. Dalam Odoo, boolean sering digunakan untuk mengontrol visibilitas bidang, status aktif/nonaktif, atau kondisi lainnya.
Contoh :
Contoh penggunaan dalam kondisi :
Struktur data (list, tuple, dictionary, set)
1. List (Daftar)
List adalah koleksi data yang terurut dan bisa diubah (mutable). Artinya, ktia bisa menambahkan, menghapus, atau memodifikasi elemen setelah list dibuat. List sangat serbaguna dan sering digunakan untuk menyimpan sekumpulan item yang mungkin memiliki tipe data berbeda.
Ciri-ciri Utama:
· Terurut (Ordered): Elemen memiliki indeks, dimulai dari 0.
· Bisa Diubah (Mutable): Anda bisa mengubah isinya.
· Memungkinkan Duplikat: Elemen yang sama bisa muncul lebih dari sekali.
· Didefinisikan menggunakan kurung siku [].
Contoh :
Dalam Odoo, list akan sering digunakan untuk menyimpan hasil query database, daftar ID, atau koleksi catatan yang terkait.
2. Tuple (Rangkaian)
Tuple mirip dengan list, yaitu koleksi data yang terurut. Namun, perbedaan krusialnya adalah tuple tidak bisa diubah (immutable) setelah dibuat. Ini berarti kita tidak bisa menambahkan, menghapus, atau memodifikasi elemen dalam tuple. Tuple sering digunakan untuk data yang bersifat tetap atau ketika kita ingin melindungi integritas data.
Ciri-ciri Utama:
· Terurut (Ordered): Elemen memiliki indeks.
· Tidak Bisa Diubah (Immutable): Tidak bisa dimodifikasi setelah dibuat.
· Memungkinkan Duplikat: Elemen yang sama bisa muncul lebih dari sekali.
· Didefinisikan menggunakan kurung biasa ().
Contoh :
3. Dictionary (Kamus)
Dictionary (sering disebut dict) adalah koleksi data yang tidak terurut (dalam Python versi lama, sekarang terurut mulai Python 3.7+ untuk insertion order) dan bisa diubah. Dictionary menyimpan data dalam pasangan kunci-nilai (key-value pairs). Setiap kunci harus unik, dan digunakan untuk mengakses nilai yang terkait.
Ciri-ciri Utama:
· Tidak Terurut (secara konsep, tapi insertion order dipertahankan mulai Python 3.7+): Elemen diakses berdasarkan kunci, bukan indeks.
· Bisa Diubah (Mutable): Anda bisa menambahkan, menghapus, atau memodifikasi pasangan kunci-nilai.
· Kunci Harus Unik: Setiap kunci dalam dictionary harus berbeda.
· Didefinisikan menggunakan kurung kurawal {} dengan pasangan key: value.
Contoh :
Dictionary adalah struktur data yang paling sering ditemui dan digunakan dalam pengembangan Odoo. Recordset Odoo (objek yang mewakili satu atau lebih catatan database) bertindak mirip dictionary, di mana Anda mengakses nilai bidang menggunakan nama bidang sebagai kunci.
4. Set (Himpunan)
Set adalah koleksi data yang tidak terurut dan tidak memungkinkan elemen duplikat. Set digunakan ketika kita ingin menyimpan koleksi item unik dan melakukan operasi himpunan seperti union, intersection, atau difference.
Ciri-ciri Utama:
· Tidak Terurut (Unordered): Elemen tidak memiliki indeks.
· Tidak Memungkinkan Duplikat: Setiap elemen dalam set harus unik.
· Bisa Diubah (Mutable): Anda bisa menambahkan atau menghapus elemen.
Get Ariev’s stories in your inbox
Join Medium for free to get updates from this writer.
· Didefinisikan menggunakan kurung kurawal {} (tetapi tanpa pasangan kunci-nilai, hanya elemen). Set kosong dibuat dengan set().
Set kurang umum digunakan secara langsung dalam struktur data Odoo dibandingkan list dan dictionary, tetapi sangat berguna untuk operasi logika tertentu, seperti menemukan elemen unik atau membandingkan dua koleksi data.
Control flow (if-else, for, while)
1. Kondisional (if-else, elif)
Pernyataan kondisional digunakan untuk menjalankan blok kode tertentu hanya jika kondisi tertentu terpenuhi.
· if: Mengevaluasi kondisi. Jika kondisi True, blok kode di bawah if akan dieksekusi.
· else: Jika kondisi if adalah False, blok kode di bawah else akan dieksekusi.
· elif (else if): Digunakan untuk memeriksa beberapa kondisi secara berurutan. Jika if pertama False, elif berikutnya akan dievaluasi, dan seterusnya.
Sintaks Penting:
· Setiap kondisi diakhiri dengan titik dua (:).
· Blok kode di bawah if, elif, atau else harus di-indent (memiliki spasi/tab masuk). Ini adalah hal krusial di Python!
Contoh :
Contoh Penggunaan dalam Odoo:
· Validasi data:
if record.amount < 0: raise ValidationError(…):
· Logika bisnis:
if partner.country == ‘US’: calculate_tax_us():
· Mengaktifkan atau menonaktifkan fitur:
if user.has_access_rights(‘my_module.my_group’):
2. Perulangan for
Perulangan for digunakan untuk mengulang suatu blok kode sejumlah kali tertentu, biasanya untuk mengiterasi (melakukan perulangan) melalui elemen-elemen dalam sebuah koleksi (list, tuple, string, dictionary, set, atau objek iterable lainnya).
Sintaks:
Contoh 1: Iterasi melalui List
Contoh 2: Iterasi melalui Dictionary (menggunakan .items(), .keys(), .values())
Contoh 3: Menggunakan range() untuk mengulang sejumlah kali
Fungsi range() sering digunakan dengan for loop untuk menghasilkan urutan angka.
· range(stop): Angka dari 0 hingga stop-1.
· range(start, stop): Angka dari start hingga stop-1.
· range(start, sztop, step): Angka dari start hingga stop-1 dengan step tertentu.
Penggunaan dalam Odoo:
· Memproses banyak catatan dari database:
for record in self.search([]):
record.do_something()
· Mengiterasi baris pesanan:
for line in order.order_line:
total += line.price_unit
· Membuat laporan atau daftar dinamis.
3. Perulangan while
Perulangan while digunakan untuk mengulang suatu blok kode selama kondisi tertentu masih True. Perulangan ini akan terus berjalan sampai kondisi menjadi False.
Sintaks:
Contoh:
Penggunaan dalam Odoo (lebih jarang dibandingkan for dalam operasi CRUD standar, tapi tetap penting):
· Ketika Anda perlu terus melakukan sesuatu sampai kondisi tertentu terpenuhi, misalnya menunggu proses selesai atau melakukan retry operasi.
· Algoritma yang membutuhkan iterasi berulang hingga konvergensi.
break dan continue (dalam for dan while loops)
· break: Segera keluar dari perulangan saat ini.
· continue: Melewati sisa blok kode dalam iterasi saat ini dan langsung melanjut ke iterasi berikutnya.
Contoh break:
Contoh continue:
Penguasaan pengkondisian adalah kunci untuk menulis kode Python yang fungsional dan dinamis. Kita akan sangat sering menggunakan if-else untuk logika bisnis dan for loop untuk memproses data dalam pengembangan Odoo. while loop juga memiliki tempatnya, terutama untuk algoritma tertentu.










