Upgrade to Pro — share decks privately, control downloads, hide ads and more …

DevCoach 195: Kotlin 101 | Mengenal Special Cla...

Avatar for Zahrina Zahrina
May 20, 2025
4

DevCoach 195: Kotlin 101 | Mengenal Special Classes dan Collection

hrdfjnskjfariugh

Avatar for Zahrina

Zahrina

May 20, 2025
Tweet

Transcript

  1. Data Engineering: ETL Skill Wajib Bagi Seorang Data Engineer Data

    Engineer Ridha Ginanjar Curriculum Developer
  2. Fundamental Data Processing Course Overview • Focus on building single

    ETL Pipeline • Telling the concepts of Extract, Transform, and Load. • Submission focussing on scraping data from website and store it into data repository. https://www.dicoding.com/academies/708/
  3. Our Topics • Introduction to Data Engineering • The Foundation

    of Software Engineering • ETL Pipeline as part of Data Pipeline • Building a very simple ETL Pipeline Data Engineer
  4. Data Engineering dan Data Engineer Ilmu data yang berfokus pada

    desain, pembangunan, dan pemeliharaan infrastruktur yang memungkinkan pengumpulan, penyimpanan, pemrosesan, dan analisis data dalam skala besar. Peran yang bertanggung jawab dalam memastikan semua design, arsitektur, data infrastruktur dapat berjalan dengan baik sesuai yang diharapkan. Data Engineering Data Engineer
  5. Data Maturity Data maturity merujuk pada perkembangan suatu perusahaan terhadap

    pemanfaatan data yang lebih tinggi, kemampuannya, serta integrasi data di seluruh perusahaan.
  6. What is Software Engineering? Serangkaian kebijakan, praktik, dan tools yang

    diperlukan agar kode tetap berguna selama dibutuhkan, serta memungkinkan kolaborasi dalam sebuah tim Source: Software Engineering at Google [Books]
  7. Clean and Modular Code Mengacu pada kode yang tertata rapi

    dan terdiri dari bagian-bagian terpisah yang berdiri sendiri (disebut modul). Jika digabungkan, modul-modul ini membentuk aplikasi atau program yang lengkap dan berfungsi dengan baik. Merujuk pada kode yang mudah dibaca, dirawat, dan diuji. Menggunakan nama yang jelas, dokumentasi seperlunya, satu pendekatan per tugas, serta ketergantungan yang minim dan terdefinisi jelas. Modular Code Clean Code
  8. Kode sulit diubah karena setiap perubahan harus dilakukan di banyak

    bagian lain yang tidak saling terkait. Perubahan kecil dapat menyebabkan kegagalan tak terduga di bagian lain sistem yang jauh. 3 Symptoms of Bad Code Kode terlalu terikat dengan banyak ketergantungan, sehingga lebih mudah untuk menulis ulang daripada menggunakannya kembali. Source: Robert C. Martin (Uncle Bob) 01 Rigidity 02 03 Fragility Immobility Kode yang buruk adalah perangkat lunak yang sulit diubah, digunakan kembali, atau dirawat karena terlalu banyak ketergantungan, struktur yang buruk, dan perilaku yang tidak bisa diprediksi.
  9. Bangun kode Anda dengan lebih terpelihara dan terstruktur. Namun, struktur

    yang baik saja tidak cukup pastikan juga setiap bagian dari kode tersebut bekerja sebagaimana mestinya dengan menambahkan pengujian, seperti unit test.
  10. Testing with Python Unit testing memastikan setiap bagian kecil program

    berjalan sesuai harapan, sedangkan integration testing memeriksa apakah modul-modul bekerja dengan baik saat digabung. Python menyediakan `unittest` sebagai library bawaan untuk ini.
  11. Quiz Apa sebutan untuk kondisi di mana seorang programmer melakukan

    perubahan kecil pada kode, namun justru menyebabkan kegagalan tak terduga hingga aplikasi mengalami crash? a. Immobility b. Fragility c. Rigidity d. Immunity
  12. Quiz Apa sebutan untuk kondisi di mana seorang programmer melakukan

    perubahan kecil pada kode, namun justru menyebabkan kegagalan tak terduga hingga aplikasi mengalami crash? a. Immobility b. Fragility c. Rigidity d. Immunity
  13. Data pipeline adalah sebuah metode untuk mengambil data “mentahˮ dari

    banyak sumber data dan dipindahkan ke penyimpanan data untuk selanjutnya dilakukan analisis. Data Pipeline Data Engineer Data Engineering
  14. Data pipeline adalah sebuah metode untuk mengambil data “mentahˮ dari

    banyak sumber data dan dipindahkan ke penyimpanan data untuk selanjutnya dilakukan analisis. Data Pipeline Data Engineer Data Engineering
  15. ETL (extract, transform, load) adalah pipeline data yang digunakan untuk

    mengumpulkan, memproses, dan memuat data ke sistem tujuan seperti database, alat analitik, atau API. ETL Pipeline Data Engineer Data Engineering
  16. ETL Pipelines: Extract Data Engineering Proses mengambil data mentah dari

    berbagai sumber seperti database, API, atau flat file. Sumber-sumber tersebut dapat dilihat pada daftar di bawah ini. APIs CSVs Website Apps Cloud Storage Databases Log Files 01 02 03 04 05 06 Meminta data dari suatu layanan melalui internet menggunakan URL. Mengambil konten HTML dengan cara melakukan scraping. Menggunakan bahasa kueri (seperti SQL) untuk mengambil data dari database. Membaca data terstruktur dari file CSV menggunakan alat seperti pandas di Python. Terhubung ke platform cloud (seperti AWS S3, Google Cloud Storage) melalui API. Membaca dan menganalisis log berbasis teks menggunakan skrip (Python, Bash) untuk mendapatkan insight.
  17. ETL Pipelines: Extract with Data Scraping Sebelum melakukan scraping data

    dari sebuah halaman web, kamu perlu memahami struktur HTML karena struktur inilah yang menentukan lokasi data berada. HTML Structure Library Python yang digunakan untuk mem-parsing HTML dan XML, sehingga memudahkan dalam mengekstrak elemen tertentu dari halaman web. BeautifulSoup Pagination mengacu pada adanya banyak halaman konten yang harus di-scrape satu per satu. Pagination Rate limiting adalah batasan jumlah permintaan (request) yang dapat kamu kirim ke suatu situs dalam periode waktu tertentu. Rate Limiting
  18. ETL Pipelines: Extract with Data Scraping Ethics & Privacy) Periksa

    Robots.txt (Crawling Guidelines) Ikuti website’s Terms of Service Pada tahun 2010, Pete Warden, seorang data scientist dan mantan engineer Apple, melakukan scraping data dari Facebook dan mengumpulkan informasi dari sekitar 215 juta akun pengguna. Facebook menuduh Warden melanggar aturan situs mereka dan mengancam akan mengambil tindakan hukum. Bagaimana cara menghindarinya? Source News: Pete Warden, Facebook info harvester Pete Warden vs Facebook
  19. ETL Pipelines: Transform Joining multiple datasets. 1 3 2 4

    Handling missing values (fillna, dropna). Converting data types (strings to dates, numbers). Aggregation (sum, average, count). Common Tasks
  20. ETL Pipelines: Load Category Tools/Technologies Tech Stack Spreadsheets Google Sheets,

    .XLSX file Google Sheets API, pandas.to_excel(), openpyxl Flat File .CSV pandas.to_csv() Databases PostgreSQL, MySQL SQLAlchemy, psycopg2, mysql connector Cloud Storage AWS S3, Google Cloud Storage gcsfs, boto3 Data Warehouses BigQuery, Snowflake Google-cloud-bigquery, snowflake-connector-python
  21. Quiz 2 Manakah dari opsi berikut yang TIDAK dapat digunakan

    sebagai sumber data untuk diambil dan diolah? a. Database b. Spreadsheets c. Berkas dengan format .apk d. APIs
  22. Quiz 2 Manakah dari opsi berikut yang TIDAK dapat digunakan

    sebagai sumber data untuk diambil dan diolah? a. Database b. Spreadsheets c. Berkas dengan format .apk d. APIs
  23. Quiz 3 Manakah opsi di bawah ini yang perlu diperhatikan

    agar terhindar dari kesalahan etika dan privasi ketika melakukan scraping data? a. Memperhatikan struktur HTML b. Memeriksa database aplikasi c. Memeriksa Terms and Conditions d. Memahami pagination
  24. Quiz 3 Manakah opsi di bawah ini yang perlu diperhatikan

    agar terhindar dari kesalahan etika dan privasi ketika melakukan scraping data? a. Memperhatikan struktur HTML b. Memeriksa database aplikasi c. Memeriksa Terms and Conditions d. Memahami pagination
  25. Psst! Find the next concepts on our course! • Simpan

    data Anda pada spreadsheets, CSV, dan Database sekaligus. • Automasikan etl pipeline Anda dengan cron job • Buat unit testing pada ETL pipeline Anda. https://www.dicoding.com/academies/708/