Berurusan dengan file json dan yaml
- Untuk json kami memiliki modul perpustakaan standar <code>json
- Untuk yaml kita perlu menggunakan paket pypi
pyyaml
uv add pyyaml
Basis Data
- Basis data menangani penyimpanan dan pengambilan data.
-
Basis data memiliki tipe yang berbeda-beda, pada skala yang lebih besar
- Basis Data Relasional
- Basis Data NOSQL
-
Basis Data Relasional menggunakan Standar yang disebut sebagai
SQLuntuk mengelola data dan perusahaan yang menggunakan Standar ini dan membangun sistem manajemen basis data- Microsoft SQLServer
- Peramal
- mysql
- postgres
- db2
- sqlite
- Basis data relasional menggunakan Tabel yang dapat memiliki hubungan di antara keduanya
Merancang tabel
-
Masalah: Siswa mengikuti kursus
-
SQL:
- Membuat
- Mengambil
- Memperbarui
- Menghapus
-
Buat Tabel
| Basis data | Sintaks SQL |
|---|---|
| MySQL | sql CREATE TABLE student ( sno INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, phone VARCHAR(15), email VARCHAR(100) UNIQUE ); |
| PostgreSQL | sql CREATE TABLE student ( sno SERIAL PRIMARY KEY, name VARCHAR(100) NOT NULL, phone VARCHAR(15), email VARCHAR(100) UNIQUE ); |
| SQLite | sql CREATE TABLE student ( sno INTEGER PRIMARY KEY AUTOINCREMENT, name TEXT NOT NULL, phone TEXT, email TEXT UNIQUE ); |
| SQLServer | sql CREATE TABLE student ( sno INT IDENTITY(1,1) PRIMARY KEY, name NVARCHAR(100) NOT NULL, phone NVARCHAR(15), email NVARCHAR(100) UNIQUE ); |
| Peramal | sql CREATE TABLE student ( sno NUMBER GENERATED ALWAYS AS IDENTITY PRIMARY KEY, name VARCHAR2(100) NOT NULL, phone VARCHAR2(15), email VARCHAR2(100) UNIQUE ); |
| Basis data | Sintaks SQL |
|---|---|
| MySQL | sql INSERT INTO student (name, phone, email) VALUES ('Tony Stark', '9998887776', 'tony@starkindustries.com'), ('Steve Rogers', '9991112223', 'steve@avengers.com'), ('Natasha Romanoff', '8885554442', 'natasha@shield.org'); |
| PostgreSQL | sql INSERT INTO student (name, phone, email) VALUES ('Tony Stark', '9998887776', 'tony@starkindustries.com'), ('Steve Rogers', '9991112223', 'steve@avengers.com'), ('Natasha Romanoff', '8885554442', 'natasha@shield.org'); |
| SQLite | sql INSERT INTO student (name, phone, email) VALUES ('Tony Stark', '9998887776', 'tony@starkindustries.com'); INSERT INTO student (name, phone, email) VALUES ('Steve Rogers', '9991112223', 'steve@avengers.com'); INSERT INTO student (name, phone, email) VALUES ('Natasha Romanoff', '8885554442', 'natasha@shield.org'); |
| SQLServer | sql INSERT INTO student (name, phone, email) VALUES ('Tony Stark', '9998887776', 'tony@starkindustries.com'), ('Steve Rogers', '9991112223', 'steve@avengers.com'), ('Natasha Romanoff', '8885554442', 'natasha@shield.org'); |
| Peramal | sql INSERT INTO student (name, phone, email) VALUES ('Tony Stark', '9998887776', 'tony@starkindustries.com'); INSERT INTO student (name, phone, email) VALUES ('Steve Rogers', '9991112223', 'steve@avengers.com'); INSERT INTO student (name, phone, email) VALUES ('Natasha Romanoff', '8885554442', 'natasha@shield.org'); COMMIT; |
- Dalam pemrograman modern kami lebih memilih ORM (Pemetaan Relasional Objek) di mana kami berinteraksi dengan Objek daripada tabel & kerangka ORM yang menangani database berbeda dengan kode tertulis yang sama. Kerangka ORM Populer
- Java -> Hibernasi
- C# -> Kerangka Entitas
- Python -> Alkimia SQL, Django-ORM
Penanganan Kesalahan & Pengecualian
- Baik Kesalahan maupun Pengecualian merupakan penyimpangan dari perilaku ideal, sedangkan Kesalahan tidak dapat ditangani oleh program & Pengecualian dapat ditangani
- Di python kami memiliki hierarki Pengecualian
BaseException
├─ SystemExit
├─ KeyboardInterrupt
├─ GeneratorExit
└─ Exception
├─ ArithmeticError
│ ├─ FloatingPointError
│ ├─ OverflowError
│ └─ ZeroDivisionError
├─ AssertionError
├─ AttributeError
├─ BufferError
├─ EOFError
├─ ImportError
│ └─ ModuleNotFoundError
├─ LookupError
│ ├─ IndexError
│ └─ KeyError
├─ MemoryError
├─ NameError
│ └─ UnboundLocalError
├─ OSError
│ ├─ BlockingIOError
│ ├─ ChildProcessError
│ ├─ ConnectionError
│ │ ├─ BrokenPipeError
│ │ ├─ ConnectionAbortedError
│ │ ├─ ConnectionRefusedError
│ │ └─ ConnectionResetError
│ ├─ FileExistsError
│ ├─ FileNotFoundError
│ ├─ InterruptedError
│ ├─ IsADirectoryError
│ ├─ NotADirectoryError
│ ├─ PermissionError
│ ├─ ProcessLookupError
│ └─ TimeoutError
├─ ReferenceError
├─ RuntimeError
│ ├─ NotImplementedError
│ └─ RecursionError
├─ StopAsyncIteration
├─ StopIteration
├─ SyntaxError
│ └─ IndentationError
│ └─ TabError
├─ SystemError
├─ TypeError
├─ ValueError
│ └─ UnicodeError
│ ├─ UnicodeDecodeError
│ ├─ UnicodeEncodeError
│ └─ UnicodeTranslateError
└─ Warning
├─ DeprecationWarning
├─ PendingDeprecationWarning
├─ RuntimeWarning
├─ SyntaxWarning
├─ UserWarning
├─ FutureWarning
├─ ImportWarning
├─ UnicodeWarning
├─ BytesWarning
├─ ResourceWarning
└─ EncodingWarning
- Mari kita tulis fungsi pembagian sederhana
def divide(a:int, b:int) -> float:
return a/b
- Sekarang mari kita panggil fungsi ini dengan b sebagai 0
divide(4,0)

- Kita dapat menangani kesalahan dengan mencoba, kecuali, akhirnya memblokir

Catatan Ruang Kelas DevOps 22/Okt/2025 – DevOps Langsung dari Quality Thought


