Uncategorized

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


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 SQL untuk 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
    Pratinjau

  • 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)

Pratinjau

  • Kita dapat menangani kesalahan dengan mencoba, kecuali, akhirnya memblokir
    Pratinjau



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

Leave a Reply

Your email address will not be published. Required fields are marked *