├── 2019 ├── LATIHAN_PYTHON │ ├── __init.py__.py │ ├── latihan_package │ │ ├── beta.py │ │ ├── alpha.py │ │ └── __pycache__ │ │ │ ├── beta.cpython-36.pyc │ │ │ ├── beta.cpython-37.pyc │ │ │ ├── alpha.cpython-36.pyc │ │ │ └── alpha.cpython-37.pyc │ └── main.py ├── tzop.txt ├── halo.txt ├── main.py ├── images │ ├── main.PNG │ ├── rook.JPG │ ├── xor.png │ ├── xor2.JPG │ ├── import.PNG │ ├── module.PNG │ ├── random.PNG │ ├── stack.PNG │ ├── string.PNG │ ├── kuadran.jpg │ ├── namespace.PNG │ ├── pacakge.PNG │ ├── prioritas.JPG │ ├── exceptions.PNG │ ├── module name.PNG │ ├── pacakgetree.PNG │ ├── making module.PNG │ ├── moduleupdate.PNG │ ├── modul2_pembagian.PNG │ ├── mindmad aritmatika.JPG │ ├── operand geser kiri.png │ ├── operator aritmatika.JPG │ ├── operator relasional.png │ ├── operator geser kanan.png │ ├── akar persamaan kuadrat.JPG │ └── operator c c++ bitwise.png ├── latihan_package │ ├── beta.py │ ├── alpha.py │ └── __pycache__ │ │ ├── beta.cpython-36.pyc │ │ ├── beta.cpython-37.pyc │ │ ├── alpha.cpython-36.pyc │ │ └── alpha.cpython-37.pyc ├── bangun_tidur.txt ├── .ipynb_checkpoints │ ├── Untitled-checkpoint.ipynb │ ├── Untitled1-checkpoint.ipynb │ ├── Untitled2-checkpoint.ipynb │ ├── Untitled3-checkpoint.ipynb │ ├── Untitled4-checkpoint.ipynb │ ├── Untitled5-checkpoint.ipynb │ ├── Untitled6-checkpoint.ipynb │ ├── Modul 1 - Pengenalan Python dan Bahasa Pemrograman-checkpoint.ipynb │ ├── Skill Base Exam-checkpoint.ipynb │ ├── Solusi SBA-checkpoint.ipynb │ └── Modul 6-checkpoint.ipynb ├── __pycache__ │ ├── aritmatika.cpython-36.pyc │ └── aritmatika.cpython-37.pyc ├── Instruktur ├── aritmatika.py ├── sinonim.txt ├── Daftar_Nilai_Random.txt ├── Modul 1 - Pengenalan Python dan Bahasa Pemrograman.ipynb ├── transaksi.txt └── Modul 6 - Materi Online Academy.ipynb ├── 2021 ├── README.md └── Python PCAP │ ├── images │ ├── main.PNG │ ├── rook.JPG │ ├── xor.png │ ├── xor2.JPG │ ├── import.PNG │ ├── kuadran.jpg │ ├── module.PNG │ ├── pacakge.PNG │ ├── random.PNG │ ├── stack.PNG │ ├── string.PNG │ ├── namespace.PNG │ ├── prioritas.JPG │ ├── exceptions.PNG │ ├── module name.PNG │ ├── moduleupdate.PNG │ ├── pacakgetree.PNG │ ├── making module.PNG │ ├── modul2_pembagian.PNG │ ├── mindmad aritmatika.JPG │ ├── operand geser kiri.png │ ├── operator aritmatika.JPG │ ├── operator relasional.png │ ├── akar persamaan kuadrat.JPG │ ├── operator c c++ bitwise.png │ └── operator geser kanan.png │ ├── latihan_package │ ├── beta.py │ ├── alpha.py │ └── __pycache__ │ │ ├── alpha.cpython-36.pyc │ │ ├── alpha.cpython-37.pyc │ │ ├── beta.cpython-36.pyc │ │ └── beta.cpython-37.pyc │ └── Modul 1 - Pengenalan Python dan Bahasa Pemrograman.ipynb ├── annisa.txt ├── latihan.txt ├── ratnananananana.txt ├── tirto.xlsx ├── data_proses.txt ├── data.txt ├── data-bencana-kekeringan-2012-2013.csv ├── .ipynb_checkpoints ├── Pertemuan 1-checkpoint.ipynb ├── Tugas BMI-checkpoint.ipynb ├── Untitled-checkpoint.ipynb ├── Pertemuan Satu-checkpoint.ipynb ├── Modul 5 - Module, Package-checkpoint.ipynb ├── RETRIEVE GDELT DATA-checkpoint.ipynb ├── 05 - Data Preparation and Preprocessing-checkpoint.ipynb ├── 07 - SQL #2-checkpoint.ipynb ├── 01. Pengenalan Python - Variabel, Tipe Data, Operator, dan Statement Kondisi-checkpoint.ipynb ├── 06 - SQL-checkpoint.ipynb └── 02 - Pengenalan Python - List, Tuple, Dictionary, String, Perulangan-checkpoint.ipynb ├── files └── data-bencana-kekeringan-2012-2013.csv ├── Data.csv ├── README.md ├── Modul 5 - Module, Package.ipynb ├── Scrap Tirto.id.ipynb ├── tirto_links.csv ├── Untitled.ipynb ├── 08-SubQuery ├── RETRIEVE GDELT DATA.ipynb ├── jumlah-usaha-pertanian-per-provinsi-per-usaha-2003-2013.csv ├── 02 - Pengenalan Python - List, Tuple, Dictionary, String, Perulangan.ipynb └── 01. Pengenalan Python - Variabel, Tipe Data, Operator, dan Statement Kondisi.ipynb /annisa.txt: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /latihan.txt: -------------------------------------------------------------------------------- 1 | hello world -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/__init.py__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /2019/tzop.txt: -------------------------------------------------------------------------------- 1 | Hello this is a text file -------------------------------------------------------------------------------- /2021/README.md: -------------------------------------------------------------------------------- 1 | Digital Talent FGA 2021 2 | -------------------------------------------------------------------------------- /ratnananananana.txt: -------------------------------------------------------------------------------- 1 | apapapapapapapappa aja -------------------------------------------------------------------------------- /2019/halo.txt: -------------------------------------------------------------------------------- 1 | Halo ini adalah sebuah teks 2 | Ini baris lainnya -------------------------------------------------------------------------------- /2019/main.py: -------------------------------------------------------------------------------- 1 | import aritmatika 2 | 3 | a= aritmatika.tambah(3,4) 4 | print(a) 5 | -------------------------------------------------------------------------------- /tirto.xlsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/tirto.xlsx -------------------------------------------------------------------------------- /2019/images/main.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/main.PNG -------------------------------------------------------------------------------- /2019/images/rook.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/rook.JPG -------------------------------------------------------------------------------- /2019/images/xor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/xor.png -------------------------------------------------------------------------------- /2019/images/xor2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/xor2.JPG -------------------------------------------------------------------------------- /2019/images/import.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/import.PNG -------------------------------------------------------------------------------- /2019/images/module.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/module.PNG -------------------------------------------------------------------------------- /2019/images/random.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/random.PNG -------------------------------------------------------------------------------- /2019/images/stack.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/stack.PNG -------------------------------------------------------------------------------- /2019/images/string.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/string.PNG -------------------------------------------------------------------------------- /2019/images/kuadran.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/kuadran.jpg -------------------------------------------------------------------------------- /2019/images/namespace.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/namespace.PNG -------------------------------------------------------------------------------- /2019/images/pacakge.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/pacakge.PNG -------------------------------------------------------------------------------- /2019/images/prioritas.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/prioritas.JPG -------------------------------------------------------------------------------- /2019/latihan_package/beta.py: -------------------------------------------------------------------------------- 1 | def betaSatu(): 2 | print("betaSatu") 3 | 4 | def betaDua(): 5 | print("betaDua") -------------------------------------------------------------------------------- /data_proses.txt: -------------------------------------------------------------------------------- 1 | hello world! 2 | this is our new text file 3 | and this is another line 4 | why? because we can -------------------------------------------------------------------------------- /2019/images/exceptions.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/exceptions.PNG -------------------------------------------------------------------------------- /2019/images/module name.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/module name.PNG -------------------------------------------------------------------------------- /2019/images/pacakgetree.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/pacakgetree.PNG -------------------------------------------------------------------------------- /2019/images/making module.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/making module.PNG -------------------------------------------------------------------------------- /2019/images/moduleupdate.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/moduleupdate.PNG -------------------------------------------------------------------------------- /2019/latihan_package/alpha.py: -------------------------------------------------------------------------------- 1 | def alphaSatu(): 2 | print("alpha Satu") 3 | 4 | def alphaDua(): 5 | print("alphaDua") -------------------------------------------------------------------------------- /data.txt: -------------------------------------------------------------------------------- 1 | Hello World! 2 | Hello Again 3 | This is our new text file 4 | and this is another line 5 | Why? Because we can -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/latihan_package/beta.py: -------------------------------------------------------------------------------- 1 | def betaSatu(): 2 | print("betaSatu") 3 | 4 | def betaDua(): 5 | print("betaDua") -------------------------------------------------------------------------------- /2019/images/modul2_pembagian.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/modul2_pembagian.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/main.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/main.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/rook.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/rook.JPG -------------------------------------------------------------------------------- /2021/Python PCAP/images/xor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/xor.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/xor2.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/xor2.JPG -------------------------------------------------------------------------------- /2021/Python PCAP/latihan_package/beta.py: -------------------------------------------------------------------------------- 1 | def betaSatu(): 2 | print("betaSatu") 3 | 4 | def betaDua(): 5 | print("betaDua") -------------------------------------------------------------------------------- /2019/images/mindmad aritmatika.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/mindmad aritmatika.JPG -------------------------------------------------------------------------------- /2019/images/operand geser kiri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/operand geser kiri.png -------------------------------------------------------------------------------- /2019/images/operator aritmatika.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/operator aritmatika.JPG -------------------------------------------------------------------------------- /2019/images/operator relasional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/operator relasional.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/import.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/import.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/kuadran.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/kuadran.jpg -------------------------------------------------------------------------------- /2021/Python PCAP/images/module.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/module.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/pacakge.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/pacakge.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/random.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/random.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/stack.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/stack.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/string.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/string.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/latihan_package/alpha.py: -------------------------------------------------------------------------------- 1 | def alphaSatu(): 2 | print("alpha Satu") 3 | 4 | def alphaDua(): 5 | print("alphaDua") -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/latihan_package/alpha.py: -------------------------------------------------------------------------------- 1 | def alphaSatu(): 2 | print("alpha Satu") 3 | 4 | def alphaDua(): 5 | print("alphaDua") -------------------------------------------------------------------------------- /2019/bangun_tidur.txt: -------------------------------------------------------------------------------- 1 | Bangun tidur kuterus mandi 2 | Tidak lupa menggosok gigi 3 | Habis Mandi kutolong ibu 4 | Membersihkan tempat tidurku -------------------------------------------------------------------------------- /2019/images/operator geser kanan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/operator geser kanan.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/namespace.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/namespace.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/prioritas.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/prioritas.JPG -------------------------------------------------------------------------------- /data-bencana-kekeringan-2012-2013.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/data-bencana-kekeringan-2012-2013.csv -------------------------------------------------------------------------------- /.ipynb_checkpoints/Pertemuan 1-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/Tugas BMI-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/Untitled-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/images/akar persamaan kuadrat.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/akar persamaan kuadrat.JPG -------------------------------------------------------------------------------- /2019/images/operator c c++ bitwise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/images/operator c c++ bitwise.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/exceptions.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/exceptions.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/module name.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/module name.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/moduleupdate.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/moduleupdate.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/pacakgetree.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/pacakgetree.PNG -------------------------------------------------------------------------------- /.ipynb_checkpoints/Pertemuan Satu-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled1-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled2-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled3-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled4-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled5-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Untitled6-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [], 3 | "metadata": {}, 4 | "nbformat": 4, 5 | "nbformat_minor": 2 6 | } 7 | -------------------------------------------------------------------------------- /2019/__pycache__/aritmatika.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/__pycache__/aritmatika.cpython-36.pyc -------------------------------------------------------------------------------- /2019/__pycache__/aritmatika.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/__pycache__/aritmatika.cpython-37.pyc -------------------------------------------------------------------------------- /2021/Python PCAP/images/making module.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/making module.PNG -------------------------------------------------------------------------------- /2021/Python PCAP/images/modul2_pembagian.PNG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/modul2_pembagian.PNG -------------------------------------------------------------------------------- /files/data-bencana-kekeringan-2012-2013.csv: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/files/data-bencana-kekeringan-2012-2013.csv -------------------------------------------------------------------------------- /2021/Python PCAP/images/mindmad aritmatika.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/mindmad aritmatika.JPG -------------------------------------------------------------------------------- /2021/Python PCAP/images/operand geser kiri.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/operand geser kiri.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/operator aritmatika.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/operator aritmatika.JPG -------------------------------------------------------------------------------- /2021/Python PCAP/images/operator relasional.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/operator relasional.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/akar persamaan kuadrat.JPG: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/akar persamaan kuadrat.JPG -------------------------------------------------------------------------------- /2021/Python PCAP/images/operator c c++ bitwise.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/operator c c++ bitwise.png -------------------------------------------------------------------------------- /2021/Python PCAP/images/operator geser kanan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/images/operator geser kanan.png -------------------------------------------------------------------------------- /2019/latihan_package/__pycache__/beta.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/latihan_package/__pycache__/beta.cpython-36.pyc -------------------------------------------------------------------------------- /2019/latihan_package/__pycache__/beta.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/latihan_package/__pycache__/beta.cpython-37.pyc -------------------------------------------------------------------------------- /2019/latihan_package/__pycache__/alpha.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/latihan_package/__pycache__/alpha.cpython-36.pyc -------------------------------------------------------------------------------- /2019/latihan_package/__pycache__/alpha.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/latihan_package/__pycache__/alpha.cpython-37.pyc -------------------------------------------------------------------------------- /2021/Python PCAP/latihan_package/__pycache__/alpha.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/latihan_package/__pycache__/alpha.cpython-36.pyc -------------------------------------------------------------------------------- /2021/Python PCAP/latihan_package/__pycache__/alpha.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/latihan_package/__pycache__/alpha.cpython-37.pyc -------------------------------------------------------------------------------- /2021/Python PCAP/latihan_package/__pycache__/beta.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/latihan_package/__pycache__/beta.cpython-36.pyc -------------------------------------------------------------------------------- /2021/Python PCAP/latihan_package/__pycache__/beta.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2021/Python PCAP/latihan_package/__pycache__/beta.cpython-37.pyc -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/latihan_package/__pycache__/beta.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/LATIHAN_PYTHON/latihan_package/__pycache__/beta.cpython-36.pyc -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/latihan_package/__pycache__/beta.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/LATIHAN_PYTHON/latihan_package/__pycache__/beta.cpython-37.pyc -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/latihan_package/__pycache__/alpha.cpython-36.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/LATIHAN_PYTHON/latihan_package/__pycache__/alpha.cpython-36.pyc -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/latihan_package/__pycache__/alpha.cpython-37.pyc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/gunturbudi/digital-talent/master/2019/LATIHAN_PYTHON/latihan_package/__pycache__/alpha.cpython-37.pyc -------------------------------------------------------------------------------- /2019/Instruktur: -------------------------------------------------------------------------------- 1 | Daftar instruktur pembuat modul pelatihan CTA : 2 | 3 | Guntur Budi Herwanto 4 | Ratna Lestari Budiani Buana 5 | Annisa Maulida Ningtyas 6 | Miftahurrahma Rosyda 7 | Tuti Purwaningsih 8 | -------------------------------------------------------------------------------- /2019/aritmatika.py: -------------------------------------------------------------------------------- 1 | def tambah(a,b): 2 | return a+b 3 | 4 | def kurang(a,b): 5 | return a-b 6 | 7 | def kali(a,b): 8 | return a*b 9 | 10 | def bagi(a,b): 11 | return a/b 12 | 13 | print(__name__) 14 | -------------------------------------------------------------------------------- /Data.csv: -------------------------------------------------------------------------------- 1 | Country,Age,Salary,Purchased 2 | France,44,72000,No 3 | Spain,27,48000,Yes 4 | Germany,30,54000,No 5 | Spain,38,61000,No 6 | Germany,40,,Yes 7 | France,35,58000,Yes 8 | Spain,,52000,No 9 | France,48,79000,Yes 10 | Germany,50,83000,No 11 | France,37,67000,Yes -------------------------------------------------------------------------------- /2019/sinonim.txt: -------------------------------------------------------------------------------- 1 | hadiah:anugerah, baksis, bingkisan, bonus, cendera mata, suvenir, tanda mata, tip, uang lelah, uang rokok, upah 2 | ambigu:enigmatis, problematis, samar, taksa 3 | bangkrut:ambruk, bapet, benjut, berantakan, boyak, gulung tikar, jeblok, kantong kering, melarat, miskin, pailit, remuk, seman, terpuruk, -------------------------------------------------------------------------------- /2019/Daftar_Nilai_Random.txt: -------------------------------------------------------------------------------- 1 | 85 20 7 97 32 32 36 0 90 43 100 69 76 45 50 29 5 89 10 22 20 87 3 46 84 8 85 67 91 7 17 58 32 49 53 75 13 70 30 41 18 11 100 62 2 37 31 29 90 26 62 18 95 63 34 40 40 26 49 94 10 11 32 10 44 60 45 91 76 28 98 86 36 85 33 53 37 35 52 100 48 70 3 1 14 59 82 76 54 14 18 66 82 39 55 21 18 25 38 38 -------------------------------------------------------------------------------- /2019/LATIHAN_PYTHON/main.py: -------------------------------------------------------------------------------- 1 | import latihan_package.alpha as a 2 | import latihan_package.beta as b 3 | 4 | a.alphaSatu() 5 | a=5 6 | b=0 7 | 8 | ''' 9 | try: 10 | print(a/b) 11 | except : 12 | print("Pembagi tidak boleh nol") 13 | ''' 14 | 15 | try: 16 | c=a/b #variable scope 17 | print(a) 18 | except : 19 | pass 20 | 21 | #print(c**2) 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # DIGITAL TALENT 2018 2 | Berikut adalah materi Pengenalan Python 3 | 4 | Pertemuan 1: 5 | - SINTAKS DASAR 6 | - VARIABEL 7 | - TIPE DATA 8 | - OPERATOR 9 | - PERCABANGAN 10 | 11 | Pertemuan 2: 12 | - LIST & TUPLE 13 | - DICTIONARY 14 | - PERULANGAN 15 | - STRING OPERATIONS 16 | 17 | Pertemuan 3: 18 | - FUNGSI 19 | - FILE I/O 20 | - IMPORT 21 | - NUMPY 22 | - PANDA 23 | 24 | Pertemuan 4: 25 | - DATA Gathering 26 | - Web Scraping 27 | 28 | Pertemuan 5: 29 | - Data Preparation Preprocessing 30 | 31 | Pertemuan 6: 32 | - Relational Database dan SQL -------------------------------------------------------------------------------- /Modul 5 - Module, Package.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "print(\"annisa maulida ningtyas\")" 10 | ] 11 | } 12 | ], 13 | "metadata": { 14 | "kernelspec": { 15 | "display_name": "Python 3", 16 | "language": "python", 17 | "name": "python3" 18 | }, 19 | "language_info": { 20 | "codemirror_mode": { 21 | "name": "ipython", 22 | "version": 3 23 | }, 24 | "file_extension": ".py", 25 | "mimetype": "text/x-python", 26 | "name": "python", 27 | "nbconvert_exporter": "python", 28 | "pygments_lexer": "ipython3", 29 | "version": "3.6.4" 30 | } 31 | }, 32 | "nbformat": 4, 33 | "nbformat_minor": 2 34 | } 35 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/Modul 5 - Module, Package-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "print(\"annisa maulida ningtyas\")" 10 | ] 11 | } 12 | ], 13 | "metadata": { 14 | "kernelspec": { 15 | "display_name": "Python 3", 16 | "language": "python", 17 | "name": "python3" 18 | }, 19 | "language_info": { 20 | "codemirror_mode": { 21 | "name": "ipython", 22 | "version": 3 23 | }, 24 | "file_extension": ".py", 25 | "mimetype": "text/x-python", 26 | "name": "python", 27 | "nbconvert_exporter": "python", 28 | "pygments_lexer": "ipython3", 29 | "version": "3.6.4" 30 | } 31 | }, 32 | "nbformat": 4, 33 | "nbformat_minor": 2 34 | } 35 | -------------------------------------------------------------------------------- /2019/Modul 1 - Pengenalan Python dan Bahasa Pemrograman.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Luaran Pembelajaran\n", 8 | "- dasar-dasar pemrograman komputer;\n", 9 | "- mengatur lingkungan pemrograman;\n", 10 | "- compilation vs interpretation;\n", 11 | "- pengantar bahasa pemrograman Python.\n", 12 | "\n", 13 | "#### Masuk ke Slide Power Point" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": {}, 20 | "outputs": [ 21 | { 22 | "name": "stdout", 23 | "output_type": "stream", 24 | "text": [ 25 | "Hello World\n" 26 | ] 27 | } 28 | ], 29 | "source": [ 30 | "# Your First Program\n", 31 | "\n", 32 | "print(\"Hello World\")" 33 | ] 34 | } 35 | ], 36 | "metadata": { 37 | "kernelspec": { 38 | "display_name": "Python 3", 39 | "language": "python", 40 | "name": "python3" 41 | }, 42 | "language_info": { 43 | "codemirror_mode": { 44 | "name": "ipython", 45 | "version": 3 46 | }, 47 | "file_extension": ".py", 48 | "mimetype": "text/x-python", 49 | "name": "python", 50 | "nbconvert_exporter": "python", 51 | "pygments_lexer": "ipython3", 52 | "version": "3.6.7" 53 | } 54 | }, 55 | "nbformat": 4, 56 | "nbformat_minor": 2 57 | } 58 | -------------------------------------------------------------------------------- /2021/Python PCAP/Modul 1 - Pengenalan Python dan Bahasa Pemrograman.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Luaran Pembelajaran\n", 8 | "- dasar-dasar pemrograman komputer;\n", 9 | "- mengatur lingkungan pemrograman;\n", 10 | "- compilation vs interpretation;\n", 11 | "- pengantar bahasa pemrograman Python.\n", 12 | "\n", 13 | "#### Masuk ke Slide Power Point" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": {}, 20 | "outputs": [ 21 | { 22 | "name": "stdout", 23 | "output_type": "stream", 24 | "text": [ 25 | "Hello World\n" 26 | ] 27 | } 28 | ], 29 | "source": [ 30 | "# Your First Program\n", 31 | "\n", 32 | "print(\"Hello World\")" 33 | ] 34 | } 35 | ], 36 | "metadata": { 37 | "kernelspec": { 38 | "display_name": "Python 3", 39 | "language": "python", 40 | "name": "python3" 41 | }, 42 | "language_info": { 43 | "codemirror_mode": { 44 | "name": "ipython", 45 | "version": 3 46 | }, 47 | "file_extension": ".py", 48 | "mimetype": "text/x-python", 49 | "name": "python", 50 | "nbconvert_exporter": "python", 51 | "pygments_lexer": "ipython3", 52 | "version": "3.6.7" 53 | } 54 | }, 55 | "nbformat": 4, 56 | "nbformat_minor": 2 57 | } 58 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Modul 1 - Pengenalan Python dan Bahasa Pemrograman-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Luaran Pembelajaran\n", 8 | "- dasar-dasar pemrograman komputer;\n", 9 | "- mengatur lingkungan pemrograman;\n", 10 | "- compilation vs interpretation;\n", 11 | "- pengantar bahasa pemrograman Python.\n", 12 | "\n", 13 | "#### Masuk ke Slide Power Point" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": 2, 19 | "metadata": {}, 20 | "outputs": [ 21 | { 22 | "name": "stdout", 23 | "output_type": "stream", 24 | "text": [ 25 | "Hello World\n" 26 | ] 27 | } 28 | ], 29 | "source": [ 30 | "# Your First Program\n", 31 | "\n", 32 | "print(\"Hello World\")" 33 | ] 34 | } 35 | ], 36 | "metadata": { 37 | "kernelspec": { 38 | "display_name": "Python 3", 39 | "language": "python", 40 | "name": "python3" 41 | }, 42 | "language_info": { 43 | "codemirror_mode": { 44 | "name": "ipython", 45 | "version": 3 46 | }, 47 | "file_extension": ".py", 48 | "mimetype": "text/x-python", 49 | "name": "python", 50 | "nbconvert_exporter": "python", 51 | "pygments_lexer": "ipython3", 52 | "version": "3.6.7" 53 | } 54 | }, 55 | "nbformat": 4, 56 | "nbformat_minor": 2 57 | } 58 | -------------------------------------------------------------------------------- /2019/transaksi.txt: -------------------------------------------------------------------------------- 1 | K 10000 2 | D 900 3 | D 700 4 | D 600 5 | K 100 6 | D 1000 7 | K 3000 8 | D 1000 9 | A 900 10 | K 3000 11 | K 1187 12 | D 1901 13 | K 1507 14 | D 4258 15 | K 1491 16 | D 2668 17 | K 2553 18 | D 1421 19 | K 2146 20 | D 4928 21 | K 3627 22 | D 4192 23 | K 1260 24 | D 2270 25 | K 2802 26 | D 4246 27 | K 2112 28 | D 3739 29 | K 2637 30 | D 1203 31 | K 3136 32 | D 1041 33 | K 1935 34 | D 4949 35 | K 1103 36 | D 1025 37 | K 2340 38 | D 3676 39 | K 1668 40 | D 4870 41 | K 1310 42 | D 4985 43 | K 2091 44 | D 1962 45 | K 2969 46 | D 1747 47 | K 4962 48 | D 1040 49 | K 2395 50 | D 2139 51 | K 2451 52 | D 1647 53 | K 1398 54 | D 1650 55 | K 4873 56 | D 2236 57 | K 4760 58 | D 3965 59 | K 3378 60 | D 4043 61 | K 2964 62 | D 3298 63 | K 1231 64 | D 2058 65 | K 4063 66 | D 3861 67 | K 3519 68 | D 4619 69 | K 2239 70 | D 1452 71 | K 4715 72 | D 3483 73 | K 2431 74 | D 2437 75 | K 4843 76 | D 2401 77 | K 1688 78 | D 2639 79 | K 4213 80 | D 3138 81 | K 3961 82 | D 3645 83 | K 3582 84 | D 1457 85 | K 1149 86 | D 1051 87 | K 3162 88 | D 2851 89 | K 1132 90 | D 2714 91 | K 4877 92 | D 4222 93 | K 2224 94 | D 3754 95 | K 3375 96 | D 3014 97 | K 2794 98 | D 1922 99 | K 2215 100 | D 1668 101 | K 2800 102 | D 1925 103 | K 4727 104 | D 4199 105 | K 2730 106 | D 4150 107 | K 3396 108 | D 2792 109 | K 1427 110 | D 1362 111 | K 2766 112 | D 3804 113 | K 2909 114 | D 3413 115 | K 1169 116 | D 4445 117 | K 4118 118 | D 3553 119 | K 3467 120 | D 1847 121 | K 2596 122 | D 2654 123 | K 1478 124 | D 1923 125 | K 2276 126 | D 3978 127 | K 3005 128 | D 3259 129 | K 1263 130 | D 2611 131 | K 2818 132 | D 3295 133 | K 1506 134 | D 3052 135 | K 1360 136 | D 3295 137 | K 3783 138 | D 4098 139 | K 3246 140 | D 1787 141 | K 1952 142 | D 4160 143 | K 1136 144 | D 4507 145 | K 1792 146 | D 2437 147 | K 1907 148 | D 2832 149 | K 3734 150 | D 2322 151 | K 3766 152 | D 1596 153 | K 4974 154 | D 2242 155 | K 1977 156 | D 1191 157 | K 1193 158 | D 2386 159 | K 3499 160 | D 1575 161 | K 3097 162 | D 4561 163 | K 4745 164 | D 3225 165 | K 3601 166 | D 1550 167 | K 3449 168 | D 2927 169 | K 1340 170 | D 2365 171 | K 3322 172 | D 4651 173 | K 1073 174 | D 4381 175 | K 4847 176 | D 1078 177 | K 3115 178 | D 4137 179 | K 3406 180 | D 1998 181 | K 1238 182 | D 1089 183 | K 2683 184 | D 3749 185 | K 4024 186 | D 4098 187 | K 1353 188 | D 1894 189 | K 3782 190 | D 4795 191 | K 2242 192 | D 5000 193 | K 3835 194 | D 1438 195 | K 3590 196 | D 1058 197 | K 4252 198 | D 3663 199 | K 2440 200 | D 2009 201 | K 3255 202 | D 1394 203 | K 4059 204 | D 3316 205 | K 1404 206 | D 3657 207 | K 1830 208 | D 2622 209 | K 3691 210 | D 4433 -------------------------------------------------------------------------------- /Scrap Tirto.id.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 61, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import requests\n", 10 | "from bs4 import BeautifulSoup\n", 11 | "import json\n", 12 | "from openpyxl import Workbook\n", 13 | "import time\n", 14 | "\n", 15 | "wb = Workbook()\n", 16 | "ws = wb.active" 17 | ] 18 | }, 19 | { 20 | "cell_type": "code", 21 | "execution_count": 62, 22 | "metadata": {}, 23 | "outputs": [], 24 | "source": [ 25 | "def crawl_link(i):\n", 26 | " print(\"Crawling Page \"+str(i))\n", 27 | " page = requests.get(\"https://tirto.id/indeks/\"+str(i))\n", 28 | " html_page = page.content\n", 29 | " soup = BeautifulSoup(html_page, \"lxml\")\n", 30 | " links = soup.find_all('script')\n", 31 | " isi_script = links[4].text.replace('window.__NUXT__=','')[:-1]\n", 32 | " article = json.loads(isi_script)\n", 33 | " for a in article['data'][0]['listarticle']:\n", 34 | " ws.append([a['articleUrl'],a['date_news']])\n", 35 | " time.sleep(2)" 36 | ] 37 | }, 38 | { 39 | "cell_type": "code", 40 | "execution_count": 63, 41 | "metadata": {}, 42 | "outputs": [ 43 | { 44 | "name": "stdout", 45 | "output_type": "stream", 46 | "text": [ 47 | "Crawling Page 1\n", 48 | "Crawling Page 2\n", 49 | "Crawling Page 3\n", 50 | "Crawling Page 4\n", 51 | "Crawling Page 5\n", 52 | "Crawling Page 6\n", 53 | "Crawling Page 7\n", 54 | "Crawling Page 8\n", 55 | "Crawling Page 9\n", 56 | "Crawling Page 10\n", 57 | "Crawling Page 11\n", 58 | "Crawling Page 12\n", 59 | "Crawling Page 13\n", 60 | "Crawling Page 14\n" 61 | ] 62 | } 63 | ], 64 | "source": [ 65 | "for i in range(1,15):\n", 66 | " crawl_link(i)\n", 67 | " \n", 68 | "wb.save(\"tirto.xlsx\")" 69 | ] 70 | }, 71 | { 72 | "cell_type": "code", 73 | "execution_count": null, 74 | "metadata": {}, 75 | "outputs": [], 76 | "source": [] 77 | } 78 | ], 79 | "metadata": { 80 | "kernelspec": { 81 | "display_name": "Python 3", 82 | "language": "python", 83 | "name": "python3" 84 | }, 85 | "language_info": { 86 | "codemirror_mode": { 87 | "name": "ipython", 88 | "version": 3 89 | }, 90 | "file_extension": ".py", 91 | "mimetype": "text/x-python", 92 | "name": "python", 93 | "nbconvert_exporter": "python", 94 | "pygments_lexer": "ipython3", 95 | "version": "3.6.0" 96 | } 97 | }, 98 | "nbformat": 4, 99 | "nbformat_minor": 2 100 | } 101 | -------------------------------------------------------------------------------- /tirto_links.csv: -------------------------------------------------------------------------------- 1 | /,w,a,k,t,u,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,a,b,-,m,a,n,o,k,w,a,r,i,-,h,a,r,i,-,i,n,i,-,c,8,y,e 2 | /,c,e,k,-,w,a,k,t,u,-,s,h,o,l,a,t,-,d,i,-,k,a,b,-,r,a,j,a,-,a,m,p,a,t,-,c,8,y,i 3 | /,i,n,f,o,-,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,h,a,r,i,-,i,n,i,-,d,i,-,k,a,b,-,s,o,r,o,n,g,-,s,e,l,a,t,a,n,-,c,8,y,j 4 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,a,b,-,t,e,l,u,k,-,b,i,n,t,u,n,i,-,o,k,t,o,b,e,r,-,2,0,1,8,-,h,a,r,i,-,i,n,i,-,c,8,y,l 5 | /,w,a,k,t,u,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,o,t,a,-,s,o,r,o,n,g,-,h,a,r,i,-,i,n,i,-,c,8,y,n 6 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,d,a,n,-,m,a,s,j,i,d,-,t,e,r,d,e,k,a,t,-,d,i,-,k,a,b,-,b,i,a,k,-,n,u,m,f,o,r,-,c,8,y,p 7 | /,j,a,m,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,a,b,-,d,e,i,y,a,i,-,c,8,y,r 8 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,d,a,n,-,i,n,f,o,-,m,a,s,j,i,d,-,d,i,-,k,a,b,-,d,o,g,i,y,a,i,-,h,a,r,i,-,i,n,i,-,c,8,y,s 9 | /,c,e,k,-,w,a,k,t,u,-,s,h,o,l,a,t,-,d,i,-,k,a,b,-,j,a,y,a,p,u,r,a,-,c,8,y,u 10 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,o,k,t,o,b,e,r,-,2,0,1,8,-,d,i,-,k,a,b,-,j,a,y,a,w,i,j,a,y,a,-,c,8,y,v 11 | /,i,n,f,o,-,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,h,a,r,i,-,i,n,i,-,d,i,-,k,a,b,-,k,e,e,r,o,m,-,c,8,y,w 12 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,2,0,1,8,-,k,a,b,-,k,e,p,u,l,a,u,a,n,-,y,a,p,e,n,-,d,a,n,-,s,e,k,i,t,a,r,n,y,a,-,c,8,y,x 13 | /,c,e,k,-,w,a,k,t,u,-,s,h,o,l,a,t,-,d,i,-,k,a,b,-,m,a,p,p,i,-,c,8,y,B 14 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,o,k,t,o,b,e,r,-,2,0,1,8,-,d,i,-,k,a,b,-,m,e,r,a,u,k,e,-,c,8,y,C 15 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,2,0,1,8,-,k,a,b,-,n,a,b,i,r,e,-,d,a,n,-,s,e,k,i,t,a,r,n,y,a,-,c,8,y,E 16 | /,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,d,i,-,k,a,b,-,s,a,r,m,i,-,d,a,n,-,i,n,f,o,-,m,a,s,j,i,d,-,c,8,y,L 17 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,d,a,n,-,m,a,s,j,i,d,-,t,e,r,d,e,k,a,t,-,d,i,-,k,o,t,a,-,j,a,y,a,p,u,r,a,-,c,8,y,S 18 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,d,a,n,-,i,n,f,o,-,m,a,s,j,i,d,-,d,i,-,k,a,b,-,k,e,p,u,l,a,u,a,n,-,s,u,l,a,-,h,a,r,i,-,i,n,i,-,c,8,y,T 19 | /,c,e,k,-,w,a,k,t,u,-,s,h,o,l,a,t,-,d,i,-,k,a,b,-,p,u,l,a,u,-,m,o,r,o,t,a,i,-,c,8,y,U 20 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,o,k,t,o,b,e,r,-,2,0,1,8,-,d,i,-,k,a,b,-,p,u,l,a,u,-,t,a,l,i,a,b,u,-,c,8,y,V 21 | /,i,n,f,o,-,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,h,a,r,i,-,i,n,i,-,d,i,-,k,o,t,a,-,t,e,r,n,a,t,e,-,c,8,y,W 22 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,2,0,1,8,-,k,o,t,a,-,t,i,d,o,r,e,-,k,e,p,u,l,a,u,a,n,-,d,a,n,-,s,e,k,i,t,a,r,n,y,a,-,c,8,y,X 23 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,a,b,-,b,u,r,u,-,o,k,t,o,b,e,r,-,2,0,1,8,-,h,a,r,i,-,i,n,i,-,c,8,y,Y 24 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,d,a,n,-,m,a,s,j,i,d,-,t,e,r,d,e,k,a,t,-,d,i,-,k,a,b,-,b,u,r,u,-,s,e,l,a,t,a,n,-,c,8,y,Z 25 | /,w,a,k,t,u,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,a,b,-,k,e,p,u,l,a,u,a,n,-,a,r,u,-,h,a,r,i,-,i,n,i,-,c,8,y,1 26 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,d,a,n,-,i,n,f,o,-,m,a,s,j,i,d,-,d,i,-,k,a,b,-,m,a,l,u,k,u,-,t,e,n,g,a,h,-,h,a,r,i,-,i,n,i,-,c,8,y,3 27 | /,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,d,i,-,k,a,b,-,m,a,l,u,k,u,-,t,e,n,g,g,a,r,a,-,d,a,n,-,i,n,f,o,-,m,a,s,j,i,d,-,c,8,y,4 28 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,o,k,t,o,b,e,r,-,2,0,1,8,-,d,i,-,k,a,b,-,s,e,r,a,m,-,b,a,g,i,a,n,-,b,a,r,a,t,-,c,8,y,6 29 | /,i,n,f,o,-,j,a,d,w,a,l,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,h,a,r,i,-,i,n,i,-,d,i,-,k,a,b,-,s,e,r,a,m,-,b,a,g,i,a,n,-,t,i,m,u,r,-,c,8,y,7 30 | /,j,a,d,w,a,l,-,s,h,o,l,a,t,-,2,0,1,8,-,k,o,t,a,-,a,m,b,o,n,-,d,a,n,-,s,e,k,i,t,a,r,n,y,a,-,c,8,y,8 31 | /,j,a,m,-,s,h,o,l,a,t,-,m,a,g,h,r,i,b,-,k,o,t,a,-,t,u,a,l,-,c,8,y,9 32 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Skill Base Exam-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Soal 1\n", 8 | "Buatlah sebuah program untuk melakukan konversi mata uang. Input adalah angka dalam rupiah, dan keluaran adalah angka dalam dolar, jika diketahui `1 dolar adalah 14.591 rupiah`.\n", 9 | "\n", 10 | "## Soal 2\n", 11 | "Buatlah sebuah program untuk menentukan berat badan ideal melalui formula `BMI = berat (kg) / tinggi (m) * tinggi(m)`. Jika BMI yang dihasilkan antara 18,5 sampai 22,9 maka berat badan dinyatakan ideal. Jika lebih dari 22,9 maka overweight, dan jika kurang dari 18,5 maka underweight. Input program berupa `berat_badan` dan `tinggi_badan`, dan output berupa `normal` atau `underweight` atau `overweight`.\n", 12 | "\n", 13 | "## Soal 3\n", 14 | "Buatlah sebuah list kosong bernama `sheila`. Kemudian buatlah kode untuk:\n", 15 | "- Memasukkan `eros` dan `duta` ke dalam list dengan sintaks append\n", 16 | "- Meminta user untuk memasukkan `adam`, `anton` dan `sakti` (dengan sintaks `input`) ke dalam list dengan sintaks perulangan `for`\n", 17 | "- Menghapus `sakti` dan `anton` dari list\n", 18 | "- Menambahkan `brian` dengan sintaks `insert` pada posisi terakhir dari list\n", 19 | "- Menampilkan seluruh elemen list dengan sintaks perulangan `while`\n", 20 | "\n", 21 | "## Soal 4\n", 22 | "Buatlah sebuah fungsi bernama `hapusVokal(kalimat)`. Fungsi tersebut menerima parameter sebuah variabel bernama `kalimat` yang bertipe `string`, dan akan mengembalikan kalimat yang sudah hilang huruf vokal nya (A,I,U,E,O). \n", 23 | "\n", 24 | "## Soal 5\n", 25 | "Rancanglah sebuah dictionary untuk menampung biodata seorang peserta coding teacher academy, Kemudian lakukan hal berikut:\n", 26 | "-\tbuatlah kode untuk menampilkan `key` dari dictionary tersebut\n", 27 | "-\tBuatlah kode untuk menambahkan `key` berupa `nilai_kuis`\n", 28 | "-\tIsi `nilai_kuis` tersebut dengan 5 buah nilai yang tersimpan dalam `list`\n", 29 | "-\tBuatlah kode untuk menghitung rata-rata `nilai_kuis`\n", 30 | "\n", 31 | "\n", 32 | "\n", 33 | "## Soal 6\n", 34 | "Buatlah sebuah kelas bernama rekening yang mempunyai atribut berupa `saldo` dan `limit`. Saldo bersifat private, dan limit bersifat public. Kemudian buatlah method berikut:\n", 35 | "- debit : yang akan mengurangi jumlah saldo. Syarat dari debit adalah tidak boleh mengurangi lebih dari jumlah saldonya, serta tidak boleh mengambil lebih dari limit.\n", 36 | "- kredit: yang akan menambah jumlah saldo. Syarat dari kredit adalah tidak boleh mengisi lebih dari 4 kali limitnya\n", 37 | "- getSaldo : yang akan mengembalikan jumlah saldo saat ini\n", 38 | "\n", 39 | "Buatlah sebuah `instance` yang akan membuat saldo pertama kali adalah 500 dan limit 1000. Kemudian tunjukkan dalam kode peran method `kredit`, `debit`, dalam merubah saldo. Tampilkan saldo akhir di fungsi `getSaldo`\n", 40 | "\n" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": null, 46 | "metadata": {}, 47 | "outputs": [], 48 | "source": [] 49 | } 50 | ], 51 | "metadata": { 52 | "kernelspec": { 53 | "display_name": "Python 3", 54 | "language": "python", 55 | "name": "python3" 56 | }, 57 | "language_info": { 58 | "codemirror_mode": { 59 | "name": "ipython", 60 | "version": 3 61 | }, 62 | "file_extension": ".py", 63 | "mimetype": "text/x-python", 64 | "name": "python", 65 | "nbconvert_exporter": "python", 66 | "pygments_lexer": "ipython3", 67 | "version": "3.6.7" 68 | } 69 | }, 70 | "nbformat": 4, 71 | "nbformat_minor": 2 72 | } 73 | -------------------------------------------------------------------------------- /Untitled.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": 6, 6 | "metadata": {}, 7 | "outputs": [ 8 | { 9 | "ename": "error", 10 | "evalue": "OpenCV(3.4.1) C:\\Miniconda3\\conda-bld\\opencv-suite_1533128839831\\work\\modules\\imgproc\\src\\color.cpp:11147: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor\n", 11 | "output_type": "error", 12 | "traceback": [ 13 | "\u001b[1;31m---------------------------------------------------------------------------\u001b[0m", 14 | "\u001b[1;31merror\u001b[0m Traceback (most recent call last)", 15 | "\u001b[1;32m\u001b[0m in \u001b[0;36m\u001b[1;34m\u001b[0m\n\u001b[0;32m 11\u001b[0m \u001b[0mret\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mframe\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mvideo_capture\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mread\u001b[0m\u001b[1;33m(\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 12\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[1;32m---> 13\u001b[1;33m \u001b[0mgray\u001b[0m \u001b[1;33m=\u001b[0m \u001b[0mcv2\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mcvtColor\u001b[0m\u001b[1;33m(\u001b[0m\u001b[0mframe\u001b[0m\u001b[1;33m,\u001b[0m \u001b[0mcv2\u001b[0m\u001b[1;33m.\u001b[0m\u001b[0mCOLOR_BGR2GRAY\u001b[0m\u001b[1;33m)\u001b[0m\u001b[1;33m\u001b[0m\u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0m\u001b[0;32m 14\u001b[0m \u001b[1;33m\u001b[0m\u001b[0m\n\u001b[0;32m 15\u001b[0m faces = faceCascade.detectMultiScale(\n", 16 | "\u001b[1;31merror\u001b[0m: OpenCV(3.4.1) C:\\Miniconda3\\conda-bld\\opencv-suite_1533128839831\\work\\modules\\imgproc\\src\\color.cpp:11147: error: (-215) scn == 3 || scn == 4 in function cv::cvtColor\n" 17 | ] 18 | } 19 | ], 20 | "source": [ 21 | "import cv2\n", 22 | "import sys\n", 23 | "\n", 24 | "cascPath = sys.argv[1]\n", 25 | "faceCascade = cv2.CascadeClassifier(cascPath)\n", 26 | "\n", 27 | "video_capture = cv2.VideoCapture(0)\n", 28 | "\n", 29 | "while True:\n", 30 | " # Capture frame-by-frame\n", 31 | " ret, frame = video_capture.read()\n", 32 | "\n", 33 | " gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY)\n", 34 | "\n", 35 | " faces = faceCascade.detectMultiScale(\n", 36 | " gray,\n", 37 | " scaleFactor=1.1,\n", 38 | " minNeighbors=5,\n", 39 | " minSize=(30, 30),\n", 40 | " flags=cv2.CASCADE_SCALE_IMAGE\n", 41 | " )\n", 42 | "\n", 43 | " # Draw a rectangle around the faces\n", 44 | " for (x, y, w, h) in faces:\n", 45 | " cv2.rectangle(frame, (x, y), (x+w, y+h), (0, 255, 0), 2)\n", 46 | "\n", 47 | " # Display the resulting frame\n", 48 | " cv2.imshow('Video', frame)\n", 49 | "\n", 50 | " if cv2.waitKey(1) & 0xFF == ord('q'):\n", 51 | " break\n", 52 | "\n", 53 | "# When everything is done, release the capture\n", 54 | "video_capture.release()\n", 55 | "cv2.destroyAllWindows()" 56 | ] 57 | }, 58 | { 59 | "cell_type": "code", 60 | "execution_count": null, 61 | "metadata": {}, 62 | "outputs": [], 63 | "source": [] 64 | } 65 | ], 66 | "metadata": { 67 | "kernelspec": { 68 | "display_name": "Python 3", 69 | "language": "python", 70 | "name": "python3" 71 | }, 72 | "language_info": { 73 | "codemirror_mode": { 74 | "name": "ipython", 75 | "version": 3 76 | }, 77 | "file_extension": ".py", 78 | "mimetype": "text/x-python", 79 | "name": "python", 80 | "nbconvert_exporter": "python", 81 | "pygments_lexer": "ipython3", 82 | "version": "3.7.1" 83 | } 84 | }, 85 | "nbformat": 4, 86 | "nbformat_minor": 2 87 | } 88 | -------------------------------------------------------------------------------- /08-SubQuery: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pymysql\n", 10 | "import pandas as pd\n", 11 | "\n", 12 | "host = '127.0.0.1'\n", 13 | "port = \"3306\"\n", 14 | "user = 'root'\n", 15 | "password = ''\n", 16 | "database = 'classicmodels'\n", 17 | "\n", 18 | "conn = pymysql.connect(\n", 19 | " host=host,\n", 20 | " port=int(port),\n", 21 | " user=user,\n", 22 | " passwd=password,\n", 23 | " db=database,\n", 24 | " charset='utf8mb4')\n", 25 | "\n", 26 | "def run(sql):\n", 27 | " df = pd.read_sql_query(sql,conn)\n", 28 | " return df" 29 | ] 30 | }, 31 | { 32 | "cell_type": "raw", 33 | "metadata": {}, 34 | "source": [ 35 | "# Subquery\n", 36 | "\n", 37 | "Kita bisa membuat sebuah query yang berada di dalam query yang lain.\n", 38 | "Hal ini disebut dengan **subquery**\n" 39 | ] 40 | }, 41 | { 42 | "cell_type": "code", 43 | "execution_count": null, 44 | "metadata": {}, 45 | "outputs": [], 46 | "source": [ 47 | "run(\"\"\"\n", 48 | "SELECT \n", 49 | " lastName, firstName\n", 50 | "FROM\n", 51 | " employees\n", 52 | "WHERE\n", 53 | " officeCode IN (SELECT \n", 54 | " officeCode\n", 55 | " FROM\n", 56 | " offices\n", 57 | " WHERE\n", 58 | " country = 'USA')\n", 59 | "\"\"\")" 60 | ] 61 | }, 62 | { 63 | "cell_type": "raw", 64 | "metadata": {}, 65 | "source": [ 66 | "![subquery](https://www.mysqltutorial.org/wp-content/uploads/2013/02/mysql-subquery.gif" 67 | ] 68 | }, 69 | { 70 | "cell_type": "raw", 71 | "metadata": {}, 72 | "source": [ 73 | "#Subquery di dalam Where Clause\n", 74 | "![subquery](http://www.mysqltutorial.org/wp-content/uploads/2013/05/payments_table.png)" 75 | ] 76 | }, 77 | { 78 | "cell_type": "raw", 79 | "metadata": {}, 80 | "source": [ 81 | "##Menggunakan operator comparison" 82 | ] 83 | }, 84 | { 85 | "cell_type": "code", 86 | "execution_count": null, 87 | "metadata": {}, 88 | "outputs": [], 89 | "source": [ 90 | "run(\"\"\"\n", 91 | "SELECT \n", 92 | " customerNumber, checkNumber, amount\n", 93 | "FROM\n", 94 | " payments\n", 95 | "WHERE\n", 96 | " amount = (SELECT \n", 97 | " MAX(amount)\n", 98 | " FROM\n", 99 | " payments);\n", 100 | "\"\"\")" 101 | ] 102 | }, 103 | { 104 | "cell_type": "code", 105 | "execution_count": null, 106 | "metadata": {}, 107 | "outputs": [], 108 | "source": [ 109 | "run(\"\"\"\n", 110 | "SELECT \n", 111 | " customerNumber, checkNumber, amount\n", 112 | "FROM\n", 113 | " payments\n", 114 | "WHERE\n", 115 | " amount > (SELECT \n", 116 | " AVG(amount)\n", 117 | " FROM\n", 118 | " payments);\n", 119 | "\n", 120 | "\"\"\")" 121 | ] 122 | }, 123 | { 124 | "cell_type": "raw", 125 | "metadata": {}, 126 | "source": [ 127 | "##Menggunakan Operator IN dan NOT IN\n", 128 | "![subquery](http://www.mysqltutorial.org/wp-content/uploads/2009/12/customers_orders_tables.png)" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": null, 134 | "metadata": {}, 135 | "outputs": [], 136 | "source": [ 137 | "run(\"\"\"\n", 138 | "SELECT \n", 139 | " customerName\n", 140 | "FROM\n", 141 | " customers\n", 142 | "WHERE\n", 143 | " customerNumber NOT IN (SELECT DISTINCT\n", 144 | " customerNumber\n", 145 | " FROM\n", 146 | " orders);\n", 147 | "\n", 148 | "\n", 149 | "\"\"\")" 150 | ] 151 | }, 152 | { 153 | "cell_type": "raw", 154 | "metadata": {}, 155 | "source": [ 156 | "#Subquery di dalam FROM\n", 157 | "Tujuannya ialah membuat tabel sementara yang tidak terdapat tabel dalam database tersebut" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": null, 163 | "metadata": {}, 164 | "outputs": [], 165 | "source": [ 166 | "run(\"\"\"\n", 167 | "SELECT \n", 168 | " MAX(items), MIN(items), FLOOR(AVG(items))\n", 169 | "FROM\n", 170 | " (SELECT \n", 171 | " orderNumber, COUNT(orderNumber) AS items\n", 172 | " FROM\n", 173 | " orderdetails\n", 174 | " GROUP BY orderNumber) AS lineitems;\n", 175 | "\n", 176 | "\"\"\")" 177 | ] 178 | }, 179 | { 180 | "cell_type": "raw", 181 | "metadata": {}, 182 | "source": [ 183 | "#Exist dan NonExists\n", 184 | "![subquery](http://www.mysqltutorial.org/wp-content/uploads/2011/05/orders_order_details_tables.png)" 185 | ] 186 | }, 187 | { 188 | "cell_type": "code", 189 | "execution_count": null, 190 | "metadata": {}, 191 | "outputs": [], 192 | "source": [ 193 | "run(\"\"\"\n", 194 | "SELECT \n", 195 | " customerNumber, \n", 196 | " customerName\n", 197 | "FROM\n", 198 | " customers\n", 199 | "WHERE\n", 200 | " EXISTS( SELECT \n", 201 | " orderNumber, SUM(priceEach * quantityOrdered)\n", 202 | " FROM\n", 203 | " orderdetails\n", 204 | " INNER JOIN\n", 205 | " orders USING (orderNumber)\n", 206 | " WHERE\n", 207 | " customerNumber = customers.customerNumber\n", 208 | " GROUP BY orderNumber\n", 209 | " HAVING SUM(priceEach * quantityOrdered) > 60000);\n", 210 | "\n", 211 | "\"\"\")" 212 | ] 213 | } 214 | ], 215 | "metadata": { 216 | "kernelspec": { 217 | "display_name": "Python 3", 218 | "language": "python", 219 | "name": "python3" 220 | }, 221 | "language_info": { 222 | "codemirror_mode": { 223 | "name": "ipython", 224 | "version": 3 225 | }, 226 | "file_extension": ".py", 227 | "mimetype": "text/x-python", 228 | "name": "python", 229 | "nbconvert_exporter": "python", 230 | "pygments_lexer": "ipython3", 231 | "version": "3.6.5" 232 | } 233 | }, 234 | "nbformat": 4, 235 | "nbformat_minor": 2 236 | } 237 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Solusi SBA-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Soal 1 " 8 | ] 9 | }, 10 | { 11 | "cell_type": "code", 12 | "execution_count": 3, 13 | "metadata": {}, 14 | "outputs": [ 15 | { 16 | "name": "stdout", 17 | "output_type": "stream", 18 | "text": [ 19 | "3\n", 20 | "86\n" 21 | ] 22 | } 23 | ], 24 | "source": [ 25 | "x = int(input())\n", 26 | "y = 3 * (x ** 3) - 2 * (x ** 2) + 9 * x - 4\n", 27 | "print(y)" 28 | ] 29 | }, 30 | { 31 | "cell_type": "markdown", 32 | "metadata": {}, 33 | "source": [ 34 | "# Soal 3" 35 | ] 36 | }, 37 | { 38 | "cell_type": "code", 39 | "execution_count": 7, 40 | "metadata": {}, 41 | "outputs": [ 42 | { 43 | "name": "stdout", 44 | "output_type": "stream", 45 | "text": [ 46 | "5000\n", 47 | "1000\n", 48 | "0.2\n", 49 | "0.4\n", 50 | "Pada Tahun 2020 Populasi Talent 1400.0 Populasi Digital 6000.0\n", 51 | "Pada Tahun 2021 Populasi Talent 1960.0 Populasi Digital 7200.0\n", 52 | "Pada Tahun 2022 Populasi Talent 2744.0 Populasi Digital 8640.0\n", 53 | "Pada Tahun 2023 Populasi Talent 3841.6000000000004 Populasi Digital 10368.0\n", 54 | "Pada Tahun 2024 Populasi Talent 5378.240000000001 Populasi Digital 12441.6\n", 55 | "Pada Tahun 2025 Populasi Talent 7529.536000000001 Populasi Digital 14929.92\n", 56 | "Pada Tahun 2026 Populasi Talent 10541.350400000001 Populasi Digital 17915.904000000002\n", 57 | "Pada Tahun 2027 Populasi Talent 14757.890560000002 Populasi Digital 21499.084800000004\n", 58 | "Pada Tahun 2028 Populasi Talent 20661.046784000002 Populasi Digital 25798.901760000004\n", 59 | "Pada Tahun 2029 Populasi Talent 28925.465497600002 Populasi Digital 30958.682112000006\n", 60 | "Pada Tahun 2030 Populasi Talent 40495.65169664 Populasi Digital 37150.41853440001\n" 61 | ] 62 | } 63 | ], 64 | "source": [ 65 | "populasi_digital = int(input())\n", 66 | "populasi_talent = int(input())\n", 67 | "rate_digital = float(input())\n", 68 | "rate_talent = float(input())\n", 69 | "\n", 70 | "tahun = 2019\n", 71 | "\n", 72 | "while populasi_talent < populasi_digital:\n", 73 | " populasi_talent += populasi_talent * rate_talent\n", 74 | " populasi_digital += + populasi_digital * rate_digital\n", 75 | " tahun += 1\n", 76 | " \n", 77 | " print(\"Pada Tahun \",tahun,\" Populasi Talent \",populasi_talent,\n", 78 | " \" Populasi Digital \",populasi_digital)\n", 79 | "\n" 80 | ] 81 | }, 82 | { 83 | "cell_type": "markdown", 84 | "metadata": {}, 85 | "source": [ 86 | "# Soal 4" 87 | ] 88 | }, 89 | { 90 | "cell_type": "code", 91 | "execution_count": 8, 92 | "metadata": {}, 93 | "outputs": [ 94 | { 95 | "name": "stdout", 96 | "output_type": "stream", 97 | "text": [ 98 | "40\n", 99 | "50000\n", 100 | "Pendapatan Budi selama libur musim panas sebelum melakukan pembayaran pajak 10000000\n", 101 | "Pendapatan Budi selama libur musim panas setelah melakukan pembayaran pajak 8600000.0\n", 102 | "Jumlah uang yang akan Budi habiskan untuk membeli pakaian dan aksesoris 860000.0\n", 103 | "Jumlah uang yang akan Budi habiskan untuk membeli alat tulis 86000.0\n", 104 | "Jumlah uang yang akan Budi sedekahkan 1913500.0\n", 105 | "Jumlah uang yang akan diterima anak yatim 573900.0\n", 106 | "Jumlah uang yang akan diterima kaum dhuafa 1339600.0\n" 107 | ] 108 | } 109 | ], 110 | "source": [ 111 | "jam_per_minggu = int(input())\n", 112 | "gaji_per_jam = int(input())\n", 113 | "\n", 114 | "# 5 minggu\n", 115 | "total_jam = jam_per_minggu * 5 \n", 116 | "\n", 117 | "# total pendapatan\n", 118 | "total_pendapatan = total_jam * gaji_per_jam\n", 119 | "\n", 120 | "print(\"Pendapatan Budi selama libur musim panas sebelum melakukan pembayaran pajak \", total_pendapatan)\n", 121 | "\n", 122 | "pajak = 0.14 * total_pendapatan\n", 123 | "total_pendapatan_setelah_pajak = total_pendapatan - pajak\n", 124 | "print(\"Pendapatan Budi selama libur musim panas setelah melakukan pembayaran pajak \", total_pendapatan_setelah_pajak)\n", 125 | "\n", 126 | "pakaian_acc = 0.1 * total_pendapatan_setelah_pajak\n", 127 | "alat_tulis = 0.01 * total_pendapatan_setelah_pajak\n", 128 | "\n", 129 | "print(\"Jumlah uang yang akan Budi habiskan untuk membeli pakaian dan aksesoris \", pakaian_acc)\n", 130 | "print(\"Jumlah uang yang akan Budi habiskan untuk membeli alat tulis \", alat_tulis)\n", 131 | "\n", 132 | "total_pendapatan_setelah_beli = total_pendapatan_setelah_pajak - pakaian_acc - alat_tulis\n", 133 | "sedekah = 0.25 * total_pendapatan_setelah_beli\n", 134 | "\n", 135 | "print(\"Jumlah uang yang akan Budi sedekahkan \", sedekah)\n", 136 | "\n", 137 | "yatim = sedekah // 1000 * 300\n", 138 | "dhuafa = sedekah - yatim\n", 139 | "\n", 140 | "print(\"Jumlah uang yang akan diterima anak yatim \",yatim)\n", 141 | "print(\"Jumlah uang yang akan diterima kaum dhuafa \",dhuafa)" 142 | ] 143 | }, 144 | { 145 | "cell_type": "markdown", 146 | "metadata": {}, 147 | "source": [ 148 | "# Soal 5" 149 | ] 150 | }, 151 | { 152 | "cell_type": "code", 153 | "execution_count": 17, 154 | "metadata": {}, 155 | "outputs": [ 156 | { 157 | "name": "stdout", 158 | "output_type": "stream", 159 | "text": [ 160 | "Jenis Kendaraan = motor\n", 161 | "Lama Parkir = 25\n", 162 | "Biaya Parkir = 149000\n" 163 | ] 164 | } 165 | ], 166 | "source": [ 167 | "jenis_kendaraan = input(\"Jenis Kendaraan = \")\n", 168 | "jam_parkir = int(input(\"Lama Parkir = \"))\n", 169 | "biaya_tiap_jam = 2000 if jenis_kendaraan == 'motor' else 4000\n", 170 | "over_jam = jam_parkir // 24\n", 171 | "\n", 172 | "biaya = 3000\n", 173 | "if jam_parkir>=2: \n", 174 | " biaya_normal = (jam_parkir - 2) * biaya_tiap_jam + 3000\n", 175 | " biaya_denda = over_jam * 100000\n", 176 | "\n", 177 | " biaya = biaya_normal + biaya_denda\n", 178 | "\n", 179 | "print(\"Biaya Parkir = \", biaya)\n", 180 | " " 181 | ] 182 | }, 183 | { 184 | "cell_type": "code", 185 | "execution_count": null, 186 | "metadata": {}, 187 | "outputs": [], 188 | "source": [] 189 | } 190 | ], 191 | "metadata": { 192 | "kernelspec": { 193 | "display_name": "Python 3", 194 | "language": "python", 195 | "name": "python3" 196 | }, 197 | "language_info": { 198 | "codemirror_mode": { 199 | "name": "ipython", 200 | "version": 3 201 | }, 202 | "file_extension": ".py", 203 | "mimetype": "text/x-python", 204 | "name": "python", 205 | "nbconvert_exporter": "python", 206 | "pygments_lexer": "ipython3", 207 | "version": "3.6.9" 208 | } 209 | }, 210 | "nbformat": 4, 211 | "nbformat_minor": 2 212 | } 213 | -------------------------------------------------------------------------------- /RETRIEVE GDELT DATA.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Download\n", 8 | "\n", 9 | "Berikut adalah contoh script untuk mengunduh data GDELT dengan country code ID. Selanjutnya dari csv bisa dipindah ke mysql" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": null, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "import requests\n", 19 | "import lxml.html as lh\n", 20 | "\n", 21 | "gdelt_base_url = 'http://data.gdeltproject.org/events/'\n", 22 | "\n", 23 | "# get the list of all the links on the gdelt file page\n", 24 | "page = requests.get(gdelt_base_url+'index.html')\n", 25 | "doc = lh.fromstring(page.content)\n", 26 | "link_list = doc.xpath(\"//*/ul/li/a/@href\")\n", 27 | "\n", 28 | "# separate out those links that begin with four digits\n", 29 | "file_list = [x for x in link_list if str.isdigit(x[0:4])]\n", 30 | "print(file_list)\n", 31 | "\n", 32 | "infilecounter = 0\n", 33 | "outfilecounter = 0\n", 34 | "\n", 35 | "import os.path\n", 36 | "import urllib\n", 37 | "import zipfile\n", 38 | "import glob\n", 39 | "import operator\n", 40 | "\n", 41 | "local_path = 'E:/GDELT/'\n", 42 | "\n", 43 | "fips_country_code = 'ID'\n", 44 | "\n", 45 | "for compressed_file in file_list[infilecounter:]:\n", 46 | " print(compressed_file)\n", 47 | "\n", 48 | " # if we dont have the compressed file stored locally, go get it. Keep trying if necessary.\n", 49 | " while not os.path.isfile(local_path + compressed_file):\n", 50 | " print('downloading, '),\n", 51 | " urllib.urlretrieve(url=gdelt_base_url + compressed_file,\n", 52 | " filename=local_path + compressed_file)\n", 53 | "\n", 54 | " # extract the contents of the compressed file to a temporary directory\n", 55 | " print('extracting,'),\n", 56 | " z = zipfile.ZipFile(file=local_path + compressed_file, mode='r')\n", 57 | " z.extractall(path=local_path + 'tmp/')\n", 58 | "\n", 59 | " # parse each of the csv files in the working directory,\n", 60 | " print('parsing,'),\n", 61 | " for infile_name in glob.glob(local_path + 'tmp/*'):\n", 62 | " outfile_name = local_path + 'country/' + fips_country_code + '%04i.tsv' % outfilecounter\n", 63 | "\n", 64 | " # open the infile and outfile\n", 65 | " with open(infile_name, mode='r') as infile, open(outfile_name, mode='w') as outfile:\n", 66 | " for line in infile:\n", 67 | " # extract lines with our interest country code\n", 68 | " if fips_country_code in operator.itemgetter(51, 37, 44)(line.split('\\t')):\n", 69 | " outfile.write(line)\n", 70 | " outfilecounter += 1\n", 71 | "\n", 72 | " # delete the temporary file\n", 73 | " os.remove(infile_name)\n", 74 | " infilecounter += 1\n", 75 | " print('done')" 76 | ] 77 | }, 78 | { 79 | "cell_type": "markdown", 80 | "metadata": {}, 81 | "source": [ 82 | "# Scraping GDELT\n", 83 | "Berikut adalah kode contoh untuk melakukan scraping dengan library newspaper. Skrip ini akan berjalan jika data dari GDELT telah tersimpan ke MySQL" 84 | ] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "execution_count": null, 89 | "metadata": {}, 90 | "outputs": [], 91 | "source": [ 92 | "from newspaper import Article\n", 93 | "import pymysql.cursors\n", 94 | "import sys\n", 95 | "\n", 96 | "offset = sys.argv[1]\n", 97 | "limit = sys.argv[2]\n", 98 | "# year = sys.argv[3]\n", 99 | "\n", 100 | "# Connect to the database\n", 101 | "connection = pymysql.connect(host='localhost',\n", 102 | " user='root',\n", 103 | " password='',\n", 104 | " db='news',\n", 105 | " charset='utf8mb4',\n", 106 | " cursorclass=pymysql.cursors.DictCursor)\n", 107 | "\n", 108 | "hdr = {'User-Agent': 'Mozilla/5.0'}\n", 109 | "\n", 110 | "with connection.cursor() as cursor:\n", 111 | " sql = \"SELECT * FROM `gdelt_content` WHERE (TITLE IS NULL OR TRIM(TITLE) = '') LIMIT \"+str(offset)+\",\"+str(limit)\n", 112 | " cursor.execute(sql)\n", 113 | " print(sql)\n", 114 | " result = cursor.fetchall()\n", 115 | " for r in result:\n", 116 | " try:\n", 117 | " r[\"URL\"] = r[\"URL\"].split('')\n", 118 | " print(r[\"URL\"][0])\n", 119 | " article = Article(r[\"URL\"][0])\n", 120 | " article.download()\n", 121 | " article.parse()\n", 122 | " with connection.cursor() as cursor:\n", 123 | " sql = \"UPDATE `gdelt_content` SET title=%s,content=%s WHERE GLOBALEVENTID=%s\"\n", 124 | " cursor.execute(sql, (article.title.encode('utf-8'), article.text.encode('utf-8'),r[\"GLOBALEVENTID\"]))\n", 125 | " connection.commit()\n", 126 | " except:\n", 127 | " pass" 128 | ] 129 | }, 130 | { 131 | "cell_type": "markdown", 132 | "metadata": {}, 133 | "source": [ 134 | "Berikut adalah contoh untuk melakukan pickling data GDELT" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": null, 140 | "metadata": {}, 141 | "outputs": [], 142 | "source": [ 143 | "import glob\n", 144 | "import pandas as pd\n", 145 | "\n", 146 | "local_path = 'E:/GDELT/'\n", 147 | "fips_country_code = 'ID'\n", 148 | "# Get the GDELT field names from a helper file\n", 149 | "colnames = pd.read_excel('CSV.header.fieldids.xlsx', sheetname='Sheet1',\n", 150 | " index_col='Column ID', parse_cols=1)['Field Name']\n", 151 | "\n", 152 | "# Build DataFrames from each of the intermediary files\n", 153 | "files = glob.glob(local_path + 'country/' + fips_country_code + '*')\n", 154 | "DFlist = []\n", 155 | "for active_file in files:\n", 156 | " print active_file\n", 157 | " DFlist.append(pd.read_csv(active_file, sep='\\t', header=None, dtype=str,\n", 158 | " names=colnames, index_col=['GLOBALEVENTID']))\n", 159 | " break\n", 160 | "\n", 161 | "# Merge the file-based dataframes and save a pickle\n", 162 | "DF = pd.concat(DFlist)\n", 163 | "DF.to_pickle(local_path + 'backupsmall' + fips_country_code + '.pickle')\n", 164 | "\n", 165 | "# once everythin is safely stored away, remove the temporary files\n", 166 | "# for active_file in files:\n", 167 | "# os.remove(active_file)" 168 | ] 169 | } 170 | ], 171 | "metadata": { 172 | "kernelspec": { 173 | "display_name": "Python 3", 174 | "language": "python", 175 | "name": "python3" 176 | }, 177 | "language_info": { 178 | "codemirror_mode": { 179 | "name": "ipython", 180 | "version": 3 181 | }, 182 | "file_extension": ".py", 183 | "mimetype": "text/x-python", 184 | "name": "python", 185 | "nbconvert_exporter": "python", 186 | "pygments_lexer": "ipython3", 187 | "version": "3.6.0" 188 | } 189 | }, 190 | "nbformat": 4, 191 | "nbformat_minor": 2 192 | } 193 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/RETRIEVE GDELT DATA-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# Download\n", 8 | "\n", 9 | "Berikut adalah contoh script untuk mengunduh data GDELT dengan country code ID. Selanjutnya dari csv bisa dipindah ke mysql" 10 | ] 11 | }, 12 | { 13 | "cell_type": "code", 14 | "execution_count": null, 15 | "metadata": {}, 16 | "outputs": [], 17 | "source": [ 18 | "import requests\n", 19 | "import lxml.html as lh\n", 20 | "\n", 21 | "gdelt_base_url = 'http://data.gdeltproject.org/events/'\n", 22 | "\n", 23 | "# get the list of all the links on the gdelt file page\n", 24 | "page = requests.get(gdelt_base_url+'index.html')\n", 25 | "doc = lh.fromstring(page.content)\n", 26 | "link_list = doc.xpath(\"//*/ul/li/a/@href\")\n", 27 | "\n", 28 | "# separate out those links that begin with four digits\n", 29 | "file_list = [x for x in link_list if str.isdigit(x[0:4])]\n", 30 | "print(file_list)\n", 31 | "\n", 32 | "infilecounter = 0\n", 33 | "outfilecounter = 0\n", 34 | "\n", 35 | "import os.path\n", 36 | "import urllib\n", 37 | "import zipfile\n", 38 | "import glob\n", 39 | "import operator\n", 40 | "\n", 41 | "local_path = 'E:/GDELT/'\n", 42 | "\n", 43 | "fips_country_code = 'ID'\n", 44 | "\n", 45 | "for compressed_file in file_list[infilecounter:]:\n", 46 | " print(compressed_file)\n", 47 | "\n", 48 | " # if we dont have the compressed file stored locally, go get it. Keep trying if necessary.\n", 49 | " while not os.path.isfile(local_path + compressed_file):\n", 50 | " print('downloading, '),\n", 51 | " urllib.urlretrieve(url=gdelt_base_url + compressed_file,\n", 52 | " filename=local_path + compressed_file)\n", 53 | "\n", 54 | " # extract the contents of the compressed file to a temporary directory\n", 55 | " print('extracting,'),\n", 56 | " z = zipfile.ZipFile(file=local_path + compressed_file, mode='r')\n", 57 | " z.extractall(path=local_path + 'tmp/')\n", 58 | "\n", 59 | " # parse each of the csv files in the working directory,\n", 60 | " print('parsing,'),\n", 61 | " for infile_name in glob.glob(local_path + 'tmp/*'):\n", 62 | " outfile_name = local_path + 'country/' + fips_country_code + '%04i.tsv' % outfilecounter\n", 63 | "\n", 64 | " # open the infile and outfile\n", 65 | " with open(infile_name, mode='r') as infile, open(outfile_name, mode='w') as outfile:\n", 66 | " for line in infile:\n", 67 | " # extract lines with our interest country code\n", 68 | " if fips_country_code in operator.itemgetter(51, 37, 44)(line.split('\\t')):\n", 69 | " outfile.write(line)\n", 70 | " outfilecounter += 1\n", 71 | "\n", 72 | " # delete the temporary file\n", 73 | " os.remove(infile_name)\n", 74 | " infilecounter += 1\n", 75 | " print('done')" 76 | ] 77 | }, 78 | { 79 | "cell_type": "markdown", 80 | "metadata": {}, 81 | "source": [ 82 | "# Scraping GDELT\n", 83 | "Berikut adalah kode contoh untuk melakukan scraping dengan library newspaper. Skrip ini akan berjalan jika data dari GDELT telah tersimpan ke MySQL" 84 | ] 85 | }, 86 | { 87 | "cell_type": "code", 88 | "execution_count": null, 89 | "metadata": {}, 90 | "outputs": [], 91 | "source": [ 92 | "from newspaper import Article\n", 93 | "import pymysql.cursors\n", 94 | "import sys\n", 95 | "\n", 96 | "offset = sys.argv[1]\n", 97 | "limit = sys.argv[2]\n", 98 | "# year = sys.argv[3]\n", 99 | "\n", 100 | "# Connect to the database\n", 101 | "connection = pymysql.connect(host='localhost',\n", 102 | " user='root',\n", 103 | " password='',\n", 104 | " db='news',\n", 105 | " charset='utf8mb4',\n", 106 | " cursorclass=pymysql.cursors.DictCursor)\n", 107 | "\n", 108 | "hdr = {'User-Agent': 'Mozilla/5.0'}\n", 109 | "\n", 110 | "with connection.cursor() as cursor:\n", 111 | " sql = \"SELECT * FROM `gdelt_content` WHERE (TITLE IS NULL OR TRIM(TITLE) = '') LIMIT \"+str(offset)+\",\"+str(limit)\n", 112 | " cursor.execute(sql)\n", 113 | " print(sql)\n", 114 | " result = cursor.fetchall()\n", 115 | " for r in result:\n", 116 | " try:\n", 117 | " r[\"URL\"] = r[\"URL\"].split('')\n", 118 | " print(r[\"URL\"][0])\n", 119 | " article = Article(r[\"URL\"][0])\n", 120 | " article.download()\n", 121 | " article.parse()\n", 122 | " with connection.cursor() as cursor:\n", 123 | " sql = \"UPDATE `gdelt_content` SET title=%s,content=%s WHERE GLOBALEVENTID=%s\"\n", 124 | " cursor.execute(sql, (article.title.encode('utf-8'), article.text.encode('utf-8'),r[\"GLOBALEVENTID\"]))\n", 125 | " connection.commit()\n", 126 | " except:\n", 127 | " pass" 128 | ] 129 | }, 130 | { 131 | "cell_type": "markdown", 132 | "metadata": {}, 133 | "source": [ 134 | "Berikut adalah contoh untuk melakukan pickling data GDELT" 135 | ] 136 | }, 137 | { 138 | "cell_type": "code", 139 | "execution_count": null, 140 | "metadata": {}, 141 | "outputs": [], 142 | "source": [ 143 | "import glob\n", 144 | "import pandas as pd\n", 145 | "\n", 146 | "local_path = 'E:/GDELT/'\n", 147 | "fips_country_code = 'ID'\n", 148 | "# Get the GDELT field names from a helper file\n", 149 | "colnames = pd.read_excel('CSV.header.fieldids.xlsx', sheetname='Sheet1',\n", 150 | " index_col='Column ID', parse_cols=1)['Field Name']\n", 151 | "\n", 152 | "# Build DataFrames from each of the intermediary files\n", 153 | "files = glob.glob(local_path + 'country/' + fips_country_code + '*')\n", 154 | "DFlist = []\n", 155 | "for active_file in files:\n", 156 | " print active_file\n", 157 | " DFlist.append(pd.read_csv(active_file, sep='\\t', header=None, dtype=str,\n", 158 | " names=colnames, index_col=['GLOBALEVENTID']))\n", 159 | " break\n", 160 | "\n", 161 | "# Merge the file-based dataframes and save a pickle\n", 162 | "DF = pd.concat(DFlist)\n", 163 | "DF.to_pickle(local_path + 'backupsmall' + fips_country_code + '.pickle')\n", 164 | "\n", 165 | "# once everythin is safely stored away, remove the temporary files\n", 166 | "# for active_file in files:\n", 167 | "# os.remove(active_file)" 168 | ] 169 | } 170 | ], 171 | "metadata": { 172 | "kernelspec": { 173 | "display_name": "Python 3", 174 | "language": "python", 175 | "name": "python3" 176 | }, 177 | "language_info": { 178 | "codemirror_mode": { 179 | "name": "ipython", 180 | "version": 3 181 | }, 182 | "file_extension": ".py", 183 | "mimetype": "text/x-python", 184 | "name": "python", 185 | "nbconvert_exporter": "python", 186 | "pygments_lexer": "ipython3", 187 | "version": "3.6.0" 188 | } 189 | }, 190 | "nbformat": 4, 191 | "nbformat_minor": 2 192 | } 193 | -------------------------------------------------------------------------------- /jumlah-usaha-pertanian-per-provinsi-per-usaha-2003-2013.csv: -------------------------------------------------------------------------------- 1 | kode_provinsi,nama_provinsi,bentuk_usaha,tahun,jumlah 2 | 11,"Prov. Nanggroe Aceh Darussalam","Rumah Tangga",2003,699370 3 | 11,"Prov. Nanggroe Aceh Darussalam","Badan Hukum",2003,131 4 | 11,"Prov. Nanggroe Aceh Darussalam","Rumah Tangga",2013,644851 5 | 11,"Prov. Nanggroe Aceh Darussalam","Badan Hukum",2013,100 6 | 11,"Prov. Nanggroe Aceh Darussalam","Lainnya",2013,111 7 | 12,"Prov. Sumatera Utara","Rumah Tangga",2003,1492104 8 | 12,"Prov. Sumatera Utara","Badan Hukum",2003,455 9 | 12,"Prov. Sumatera Utara","Rumah Tangga",2013,1327759 10 | 12,"Prov. Sumatera Utara","Badan Hukum",2013,420 11 | 12,"Prov. Sumatera Utara","Lainnya",2013,352 12 | 13,"Prov. Sumatera Barat","Rumah Tangga",2003,709351 13 | 13,"Prov. Sumatera Barat","Badan Hukum",2003,99 14 | 13,"Prov. Sumatera Barat","Rumah Tangga",2013,644610 15 | 13,"Prov. Sumatera Barat","Badan Hukum",2013,71 16 | 13,"Prov. Sumatera Barat","Lainnya",2013,293 17 | 14,"Prov. Riau","Rumah Tangga",2003,541050 18 | 14,"Prov. Riau","Badan Hukum",2003,177 19 | 14,"Prov. Riau","Rumah Tangga",2013,581517 20 | 14,"Prov. Riau","Badan Hukum",2013,258 21 | 14,"Prov. Riau","Lainnya",2013,102 22 | 15,"Prov. Jambi","Rumah Tangga",2003,414986 23 | 15,"Prov. Jambi","Badan Hukum",2003,77 24 | 15,"Prov. Jambi","Rumah Tangga",2013,431589 25 | 15,"Prov. Jambi","Badan Hukum",2013,123 26 | 15,"Prov. Jambi","Lainnya",2013,120 27 | 16,"Prov. Sumatera Selatan","Rumah Tangga",2003,971458 28 | 16,"Prov. Sumatera Selatan","Badan Hukum",2003,118 29 | 16,"Prov. Sumatera Selatan","Rumah Tangga",2013,958724 30 | 16,"Prov. Sumatera Selatan","Badan Hukum",2013,178 31 | 16,"Prov. Sumatera Selatan","Lainnya",2013,46 32 | 17,"Prov. Bengkulu","Rumah Tangga",2003,280964 33 | 17,"Prov. Bengkulu","Badan Hukum",2003,41 34 | 17,"Prov. Bengkulu","Rumah Tangga",2013,277136 35 | 17,"Prov. Bengkulu","Badan Hukum",2013,77 36 | 17,"Prov. Bengkulu","Lainnya",2013,128 37 | 18,"Prov. Lampung","Rumah Tangga",2003,1293192 38 | 18,"Prov. Lampung","Badan Hukum",2003,92 39 | 18,"Prov. Lampung","Rumah Tangga",2013,1226455 40 | 18,"Prov. Lampung","Badan Hukum",2013,123 41 | 18,"Prov. Lampung","Lainnya",2013,127 42 | 19,"Prov. Kepulauan Bangka Belitung","Rumah Tangga",2003,139315 43 | 19,"Prov. Kepulauan Bangka Belitung","Badan Hukum",2003,43 44 | 19,"Prov. Kepulauan Bangka Belitung","Rumah Tangga",2013,124970 45 | 19,"Prov. Kepulauan Bangka Belitung","Badan Hukum",2013,55 46 | 19,"Prov. Kepulauan Bangka Belitung","Lainnya",2013,66 47 | 21,"Prov. Kepulauan Riau","Rumah Tangga",2003,74195 48 | 21,"Prov. Kepulauan Riau","Badan Hukum",2003,6 49 | 21,"Prov. Kepulauan Riau","Rumah Tangga",2013,69991 50 | 21,"Prov. Kepulauan Riau","Badan Hukum",2013,35 51 | 21,"Prov. Kepulauan Riau","Lainnya",2013,10 52 | 31,"Prov. DKI Jakarta","Rumah Tangga",2003,52583 53 | 31,"Prov. DKI Jakarta","Badan Hukum",2003,48 54 | 31,"Prov. DKI Jakarta","Rumah Tangga",2013,12287 55 | 31,"Prov. DKI Jakarta","Badan Hukum",2013,31 56 | 31,"Prov. DKI Jakarta","Lainnya",2013,28 57 | 32,"Prov. Jawa Barat","Rumah Tangga",2003,4345148 58 | 32,"Prov. Jawa Barat","Badan Hukum",2003,480 59 | 32,"Prov. Jawa Barat","Rumah Tangga",2013,3058612 60 | 32,"Prov. Jawa Barat","Badan Hukum",2013,479 61 | 32,"Prov. Jawa Barat","Lainnya",2013,397 62 | 33,"Prov. Jawa Tengah","Rumah Tangga",2003,5770801 63 | 33,"Prov. Jawa Tengah","Badan Hukum",2003,242 64 | 33,"Prov. Jawa Tengah","Rumah Tangga",2013,4290619 65 | 33,"Prov. Jawa Tengah","Badan Hukum",2013,225 66 | 33,"Prov. Jawa Tengah","Lainnya",2013,579 67 | 34,"Prov. D I Yogyakarta","Rumah Tangga",2003,574920 68 | 34,"Prov. D I Yogyakarta","Badan Hukum",2003,44 69 | 34,"Prov. D I Yogyakarta","Rumah Tangga",2013,495781 70 | 34,"Prov. D I Yogyakarta","Badan Hukum",2013,20 71 | 34,"Prov. D I Yogyakarta","Lainnya",2013,90 72 | 35,"Prov. Jawa Timur","Rumah Tangga",2003,6314370 73 | 35,"Prov. Jawa Timur","Badan Hukum",2003,653 74 | 35,"Prov. Jawa Timur","Rumah Tangga",2013,4978358 75 | 35,"Prov. Jawa Timur","Badan Hukum",2013,410 76 | 35,"Prov. Jawa Timur","Lainnya",2013,1083 77 | 36,"Prov. Banten","Rumah Tangga",2003,898021 78 | 36,"Prov. Banten","Badan Hukum",2003,78 79 | 36,"Prov. Banten","Rumah Tangga",2013,592841 80 | 36,"Prov. Banten","Badan Hukum",2013,98 81 | 36,"Prov. Banten","Lainnya",2013,58 82 | 51,"Prov. Bali","Rumah Tangga",2003,492394 83 | 51,"Prov. Bali","Badan Hukum",2003,63 84 | 51,"Prov. Bali","Rumah Tangga",2013,408233 85 | 51,"Prov. Bali","Badan Hukum",2013,84 86 | 51,"Prov. Bali","Lainnya",2013,406 87 | 52,"Prov. Nusa Tenggara Barat","Rumah Tangga",2003,719875 88 | 52,"Prov. Nusa Tenggara Barat","Badan Hukum",2003,65 89 | 52,"Prov. Nusa Tenggara Barat","Rumah Tangga",2013,600613 90 | 52,"Prov. Nusa Tenggara Barat","Badan Hukum",2013,53 91 | 52,"Prov. Nusa Tenggara Barat","Lainnya",2013,98 92 | 53,"Prov. Nusa Tenggara Timur","Rumah Tangga",2003,729483 93 | 53,"Prov. Nusa Tenggara Timur","Badan Hukum",2003,35 94 | 53,"Prov. Nusa Tenggara Timur","Rumah Tangga",2013,778854 95 | 53,"Prov. Nusa Tenggara Timur","Badan Hukum",2013,37 96 | 53,"Prov. Nusa Tenggara Timur","Lainnya",2013,500 97 | 61,"Prov. Kalimantan Barat","Rumah Tangga",2003,614738 98 | 61,"Prov. Kalimantan Barat","Badan Hukum",2003,168 99 | 61,"Prov. Kalimantan Barat","Rumah Tangga",2013,627638 100 | 61,"Prov. Kalimantan Barat","Badan Hukum",2013,275 101 | 61,"Prov. Kalimantan Barat","Lainnya",2013,72 102 | 62,"Prov. Kalimantan Tengah","Rumah Tangga",2003,302414 103 | 62,"Prov. Kalimantan Tengah","Badan Hukum",2003,97 104 | 62,"Prov. Kalimantan Tengah","Rumah Tangga",2013,270914 105 | 62,"Prov. Kalimantan Tengah","Badan Hukum",2013,228 106 | 62,"Prov. Kalimantan Tengah","Lainnya",2013,164 107 | 63,"Prov. Kalimantan Selatan","Rumah Tangga",2003,471972 108 | 63,"Prov. Kalimantan Selatan","Badan Hukum",2003,122 109 | 63,"Prov. Kalimantan Selatan","Rumah Tangga",2013,432328 110 | 63,"Prov. Kalimantan Selatan","Badan Hukum",2013,125 111 | 63,"Prov. Kalimantan Selatan","Lainnya",2013,112 112 | 64,"Prov. Kalimantan Timur","Rumah Tangga",2003,203179 113 | 64,"Prov. Kalimantan Timur","Badan Hukum",2003,118 114 | 64,"Prov. Kalimantan Timur","Rumah Tangga",2013,180614 115 | 64,"Prov. Kalimantan Timur","Badan Hukum",2013,214 116 | 64,"Prov. Kalimantan Timur","Lainnya",2013,38 117 | 71,"Prov. Sulawesi Utara","Rumah Tangga",2003,324374 118 | 71,"Prov. Sulawesi Utara","Badan Hukum",2003,91 119 | 71,"Prov. Sulawesi Utara","Rumah Tangga",2013,253503 120 | 71,"Prov. Sulawesi Utara","Badan Hukum",2013,50 121 | 71,"Prov. Sulawesi Utara","Lainnya",2013,267 122 | 72,"Prov. Sulawesi Tengah","Rumah Tangga",2003,396622 123 | 72,"Prov. Sulawesi Tengah","Badan Hukum",2003,60 124 | 72,"Prov. Sulawesi Tengah","Rumah Tangga",2013,401891 125 | 72,"Prov. Sulawesi Tengah","Badan Hukum",2013,49 126 | 72,"Prov. Sulawesi Tengah","Lainnya",2013,131 127 | 73,"Prov. Sulawesi Selatan","Rumah Tangga",2003,1082251 128 | 73,"Prov. Sulawesi Selatan","Badan Hukum",2003,135 129 | 73,"Prov. Sulawesi Selatan","Rumah Tangga",2013,980946 130 | 73,"Prov. Sulawesi Selatan","Badan Hukum",2013,80 131 | 73,"Prov. Sulawesi Selatan","Lainnya",2013,129 132 | 74,"Prov. Sulawesi Tenggara","Rumah Tangga",2003,314011 133 | 74,"Prov. Sulawesi Tenggara","Badan Hukum",2003,18 134 | 74,"Prov. Sulawesi Tenggara","Rumah Tangga",2013,316262 135 | 74,"Prov. Sulawesi Tenggara","Badan Hukum",2013,32 136 | 74,"Prov. Sulawesi Tenggara","Lainnya",2013,20 137 | 75,"Prov. Gorontalo","Rumah Tangga",2003,133083 138 | 75,"Prov. Gorontalo","Badan Hukum",2003,42 139 | 75,"Prov. Gorontalo","Rumah Tangga",2013,122515 140 | 75,"Prov. Gorontalo","Badan Hukum",2013,26 141 | 75,"Prov. Gorontalo","Lainnya",2013,23 142 | 76,"Prov. Sulawesi Barat","Rumah Tangga",2003,167098 143 | 76,"Prov. Sulawesi Barat","Badan Hukum",2003,18 144 | 76,"Prov. Sulawesi Barat","Rumah Tangga",2013,185847 145 | 76,"Prov. Sulawesi Barat","Badan Hukum",2013,14 146 | 76,"Prov. Sulawesi Barat","Lainnya",2013,23 147 | 81,"Prov. Maluku","Rumah Tangga",2003,184376 148 | 81,"Prov. Maluku","Badan Hukum",2003,57 149 | 81,"Prov. Maluku","Rumah Tangga",2013,175362 150 | 81,"Prov. Maluku","Badan Hukum",2013,52 151 | 81,"Prov. Maluku","Lainnya",2013,235 152 | 82,"Prov. Maluku Utara","Rumah Tangga",2003,129246 153 | 82,"Prov. Maluku Utara","Badan Hukum",2003,21 154 | 82,"Prov. Maluku Utara","Rumah Tangga",2013,130233 155 | 82,"Prov. Maluku Utara","Badan Hukum",2013,20 156 | 82,"Prov. Maluku Utara","Lainnya",2013,69 157 | 91,"Prov. Papua Barat","Rumah Tangga",2003,75790 158 | 91,"Prov. Papua Barat","Badan Hukum",2003,32 159 | 91,"Prov. Papua Barat","Rumah Tangga",2013,70223 160 | 91,"Prov. Papua Barat","Badan Hukum",2013,41 161 | 91,"Prov. Papua Barat","Lainnya",2013,30 162 | 94,"Prov. Papua","Rumah Tangga",2003,280502 163 | 94,"Prov. Papua","Badan Hukum",2003,46 164 | 94,"Prov. Papua","Rumah Tangga",2013,438658 165 | 94,"Prov. Papua","Badan Hukum",2013,54 166 | 94,"Prov. Papua","Lainnya",2013,15 167 | ,"Prov. Kalimantan Utara","Rumah Tangga",2003,38948 168 | ,"Prov. Kalimantan Utara","Badan Hukum",2003,38 169 | ,"Prov. Kalimantan Utara","Rumah Tangga",2013,44735 170 | ,"Prov. Kalimantan Utara","Badan Hukum",2013,28 171 | ,"Prov. Kalimantan Utara","Lainnya",2013, 172 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/05 - Data Preparation and Preprocessing-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 1. Missing Value\n", 8 | "\n", 9 | "Sering kali, data rusak, atau hilang, kita perlu mengurusnya terlebih dahulu karena kedepannya data ini tidak berfungsi saat data hilang atau tidak lengkap." 10 | ] 11 | }, 12 | { 13 | "cell_type": "markdown", 14 | "metadata": {}, 15 | "source": [ 16 | "## Imputing missing values dengan Imputer" 17 | ] 18 | }, 19 | { 20 | "cell_type": "code", 21 | "execution_count": null, 22 | "metadata": {}, 23 | "outputs": [], 24 | "source": [ 25 | "import pandas as pd\n", 26 | "from sklearn.preprocessing import Imputer" 27 | ] 28 | }, 29 | { 30 | "cell_type": "code", 31 | "execution_count": null, 32 | "metadata": {}, 33 | "outputs": [], 34 | "source": [ 35 | "df = pd.read_csv('Data.csv')\n", 36 | "df" 37 | ] 38 | }, 39 | { 40 | "cell_type": "code", 41 | "execution_count": null, 42 | "metadata": {}, 43 | "outputs": [], 44 | "source": [ 45 | "df.isnull().sum()" 46 | ] 47 | }, 48 | { 49 | "cell_type": "code", 50 | "execution_count": null, 51 | "metadata": {}, 52 | "outputs": [], 53 | "source": [ 54 | "df.dropna()" 55 | ] 56 | }, 57 | { 58 | "cell_type": "code", 59 | "execution_count": null, 60 | "metadata": {}, 61 | "outputs": [], 62 | "source": [ 63 | "# drop kolom spesifik yang mengandung NaN \n", 64 | "df.dropna(subset=['Age'])" 65 | ] 66 | }, 67 | { 68 | "cell_type": "code", 69 | "execution_count": null, 70 | "metadata": {}, 71 | "outputs": [], 72 | "source": [ 73 | "df.iloc[:, 1:3]" 74 | ] 75 | }, 76 | { 77 | "cell_type": "code", 78 | "execution_count": null, 79 | "metadata": {}, 80 | "outputs": [], 81 | "source": [ 82 | "# replace every occurrence of missing_values to one defined by strategy\n", 83 | "# which can be mean, median, mode. Axis = 0 means rows, 1 means column\n", 84 | "\n", 85 | "imputer = Imputer(missing_values='NaN', strategy='mean', axis = 0)\n", 86 | "df.iloc[:, 1:3] = imputer.fit_transform(df.iloc[:, 1:3])\n", 87 | "df" 88 | ] 89 | }, 90 | { 91 | "cell_type": "markdown", 92 | "metadata": {}, 93 | "source": [ 94 | "## 2. Encoding Data Kategori" 95 | ] 96 | }, 97 | { 98 | "cell_type": "code", 99 | "execution_count": null, 100 | "metadata": {}, 101 | "outputs": [], 102 | "source": [ 103 | "# Label Encoder will replace every categorical variable with number. Useful for replacing yes by 1, no by 0.\n", 104 | "# One Hot Encoder will create a separate column for every variable and give a value of 1 where the variable is present\n", 105 | "from sklearn.preprocessing import LabelEncoder, OneHotEncoder" 106 | ] 107 | }, 108 | { 109 | "cell_type": "code", 110 | "execution_count": null, 111 | "metadata": {}, 112 | "outputs": [], 113 | "source": [ 114 | "lable_encoder = LabelEncoder()\n", 115 | "temp = df.copy()\n", 116 | "temp.iloc[:, 0] = lable_encoder.fit_transform(df.iloc[:, 0])\n", 117 | "print(lable_encoder.classes_)\n", 118 | "temp.iloc[:, 3] = lable_encoder.fit_transform(df.iloc[:, 3])\n", 119 | "print(lable_encoder.classes_)\n", 120 | "print(temp)" 121 | ] 122 | }, 123 | { 124 | "cell_type": "code", 125 | "execution_count": null, 126 | "metadata": {}, 127 | "outputs": [], 128 | "source": [ 129 | "# you can pass an array of indices of categorical features\n", 130 | "# one_hot_encoder = OneHotEncoder(categorical_features=[0])\n", 131 | "# temp = df.copy()\n", 132 | "# temp.iloc[:, 0] = one_hot_encoder.fit_transform(df.iloc[:, :0])\n", 133 | "# temp\n", 134 | "# you can achieve the same thing using get_dummies\n", 135 | "pd.get_dummies(df.iloc[:, :-1])" 136 | ] 137 | }, 138 | { 139 | "cell_type": "markdown", 140 | "metadata": {}, 141 | "source": [ 142 | "# 3. Binarizing" 143 | ] 144 | }, 145 | { 146 | "cell_type": "markdown", 147 | "metadata": {}, 148 | "source": [ 149 | "Mengubah Data menjadi 0 dan 1.\n", 150 | "Kita akan mencoba dataset lain, yaitu dataset iris yang ada pada library scikit-learn. (https://archive.ics.uci.edu/ml/datasets/iris)" 151 | ] 152 | }, 153 | { 154 | "cell_type": "code", 155 | "execution_count": null, 156 | "metadata": {}, 157 | "outputs": [], 158 | "source": [ 159 | "from sklearn.datasets import load_iris\n", 160 | "\n", 161 | "iris_dataset = load_iris()\n", 162 | "X = iris_dataset.data\n", 163 | "y = iris_dataset.target\n", 164 | "feature_names = iris_dataset.feature_names\n", 165 | "print(feature_names)" 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": null, 171 | "metadata": {}, 172 | "outputs": [], 173 | "source": [ 174 | "X[:, 1]" 175 | ] 176 | }, 177 | { 178 | "cell_type": "markdown", 179 | "metadata": {}, 180 | "source": [ 181 | "Kita akan mengubah 0 jika dibawah rata-rata, dan 1 jika diatas rata-rata" 182 | ] 183 | }, 184 | { 185 | "cell_type": "code", 186 | "execution_count": null, 187 | "metadata": {}, 188 | "outputs": [], 189 | "source": [ 190 | "from sklearn.preprocessing import Binarizer\n", 191 | "binarizer_obj = Binarizer(threshold=X[:, 1].mean())\n", 192 | "X[:, 1:2] = binarizer_obj.fit_transform(X[:, 1].reshape(-1, 1))\n", 193 | "X[:, 1]" 194 | ] 195 | }, 196 | { 197 | "cell_type": "markdown", 198 | "metadata": {}, 199 | "source": [ 200 | "# 4. Fitur Scaling" 201 | ] 202 | }, 203 | { 204 | "cell_type": "code", 205 | "execution_count": null, 206 | "metadata": {}, 207 | "outputs": [], 208 | "source": [ 209 | "import pandas as pd\n", 210 | "import numpy as np\n", 211 | "\n", 212 | "from sklearn.preprocessing import StandardScaler, Normalizer, MinMaxScaler\n", 213 | "\n", 214 | "df = pd.read_csv('Data.csv').dropna()\n", 215 | "print(df)\n", 216 | "X = df[[\"Age\", \"Salary\"]].values.astype(np.float64)\n", 217 | "print(X)" 218 | ] 219 | }, 220 | { 221 | "cell_type": "code", 222 | "execution_count": null, 223 | "metadata": {}, 224 | "outputs": [], 225 | "source": [ 226 | "standard_scaler = StandardScaler()\n", 227 | "normalizer = Normalizer()\n", 228 | "min_max_scaler = MinMaxScaler()\n", 229 | "\n", 230 | "print(\"Standardization\")\n", 231 | "print(standard_scaler.fit_transform(X))\n", 232 | "\n", 233 | "print(\"Normalizing\")\n", 234 | "print(normalizer.fit_transform(X))\n", 235 | "\n", 236 | "print(\"MinMax Scaling\")\n", 237 | "print(min_max_scaler.fit_transform(X))" 238 | ] 239 | }, 240 | { 241 | "cell_type": "markdown", 242 | "metadata": {}, 243 | "source": [ 244 | "# 5. Ekstraksi Fitur\n", 245 | "Pada pertemuan sebelumnya kalian telah mencoba membuat program WordCount. WordCount merupakan sebuah teknik dalam melakukan ekstraksi Fitur. Namun, kalian tidak perlu membuat sendiri. Scikit-Learn telah menyediakan librarynya. Ekstraksi Fitur ini nantinya akan berguna dalam pemrosesan klasifikasi, clustering, maupun teknik pembelajaran mesin lainnya.\n", 246 | "## 5.1 Count Vectorizer" 247 | ] 248 | }, 249 | { 250 | "cell_type": "code", 251 | "execution_count": null, 252 | "metadata": {}, 253 | "outputs": [], 254 | "source": [ 255 | "from sklearn.feature_extraction.text import CountVectorizer\n", 256 | "\n", 257 | "docs = [\"Mayur mayur is a nice boy.\", \"Mayur rock! wohooo!\", \"My name is Mayur, and I am a Pythonista!\"]\n", 258 | "cv = CountVectorizer()\n", 259 | "X = cv.fit_transform(docs)\n", 260 | "print(X)\n", 261 | "print(cv.vocabulary_)\n", 262 | "print(X.todense())" 263 | ] 264 | }, 265 | { 266 | "cell_type": "markdown", 267 | "metadata": {}, 268 | "source": [ 269 | "## Dict Vectorizer\n", 270 | "\n", 271 | "DictVectorizer melakukan mapping dari dictionry wordcount ke Vektor" 272 | ] 273 | }, 274 | { 275 | "cell_type": "code", 276 | "execution_count": null, 277 | "metadata": {}, 278 | "outputs": [], 279 | "source": [ 280 | "from sklearn.feature_extraction import DictVectorizer\n", 281 | "\n", 282 | "docs = [{\"Aku\": 1, \"suka\": 1, \"makan\": 2}, {\"Aku\": 1, \"tidak\": 1, \"suka\": 2, \"makan\": 3, \"kambing\": 1, \"bakar\": 2, \"madu\": 3}]\n", 283 | "dv = DictVectorizer()\n", 284 | "X = dv.fit_transform(docs)\n", 285 | "print(X)\n", 286 | "print(dv.vocabulary_)\n", 287 | "print(X.todense())" 288 | ] 289 | }, 290 | { 291 | "cell_type": "markdown", 292 | "metadata": {}, 293 | "source": [ 294 | "## TfIdf Vectorizer:\n", 295 | "Word Count (Term Frekuensi dikali dengan Inverse Dokumen Frekuensi),\n", 296 | "\n", 297 | "Tutorial dapat dilihat pada link berikut:\n", 298 | "https://datascience.mipa.ugm.ac.id/id/representasi-teks-dalam-vektor-part-1/\n", 299 | "https://datascience.mipa.ugm.ac.id/id/representasi-teks-dalam-vektor-part-2/" 300 | ] 301 | }, 302 | { 303 | "cell_type": "code", 304 | "execution_count": null, 305 | "metadata": {}, 306 | "outputs": [], 307 | "source": [ 308 | "from sklearn.feature_extraction.text import TfidfVectorizer, CountVectorizer\n", 309 | "\n", 310 | "tfidf_vectorizer = TfidfVectorizer()\n", 311 | "cv_vectorizer = CountVectorizer()\n", 312 | "docs = [\"Mayur is a Guitarist Guitarist\", \"Mayur is Cooker\", \"Mayur is Musician\", \"Mayur is also a programmer\"]\n", 313 | "X_idf = tfidf_vectorizer.fit_transform(docs)\n", 314 | "X_cv = cv_vectorizer.fit_transform(docs)\n", 315 | "print(X_idf.todense())\n", 316 | "print(tfidf_vectorizer.vocabulary_)\n", 317 | "print(X_cv.todense())" 318 | ] 319 | }, 320 | { 321 | "cell_type": "markdown", 322 | "metadata": {}, 323 | "source": [ 324 | "# GROUP PROJECT\n", 325 | "\n", 326 | "Tujuan dari Project ini adalah mengaplikasikan hal-hal yang telah dipelajari dari setiap pertemuan pada Digital Talent pada sebuah \"big dataset\" yang dipilih hingga akhirnya menemukan \"insight\" dari data tersebut.\n", 327 | "\n", 328 | "Grup Terdiri dari 4-5 orang, dan akan dipilihkan oleh pengajar secara acak.\n", 329 | "\n", 330 | "Dataset yang digunakan adalah GDELT Dataset (Tentatif) https://www.gdeltproject.org\n", 331 | "\n", 332 | "\n", 333 | "Terdapat milestone yang harus dilaporkan setiap minggunya dalam bentuk Pdf:\n", 334 | "\n", 335 | "Milestone 1 : \n", 336 | "- Deskripsi Project & Dataset. \n", 337 | "- Eksplorasi Data\n", 338 | "\n", 339 | "Milestone 2 : \n", 340 | "- Eksplorasi dengan Statistik Deskriptif\n", 341 | "- Research Question\n", 342 | "\n", 343 | "Milestone 3 :\n", 344 | "- Model Pembelajaran Mesin yang mungkin diterapkan\n", 345 | "- Dasar Pemilihan Metode\n", 346 | "\n", 347 | "Milestone 4 :\n", 348 | "- Pembahasan Mengenai Hasil dari riset yang telah dilakukan\n", 349 | "- Visualisasi Data dengan Tools yang diajarkan\n", 350 | "\n", 351 | "\n", 352 | "Milestone 5 :\n", 353 | "- Menjawab Research Question beserta kesimpulan dan pembahasan\n", 354 | "\n", 355 | "Milestone 6 : \n", 356 | "- Laporan Final \n", 357 | "- Pembuatan Presentasi dan Poster\n", 358 | "- Publikasi dalam paper (opsional) \n" 359 | ] 360 | }, 361 | { 362 | "cell_type": "code", 363 | "execution_count": null, 364 | "metadata": {}, 365 | "outputs": [], 366 | "source": [] 367 | } 368 | ], 369 | "metadata": { 370 | "kernelspec": { 371 | "display_name": "Python 3", 372 | "language": "python", 373 | "name": "python3" 374 | }, 375 | "language_info": { 376 | "codemirror_mode": { 377 | "name": "ipython", 378 | "version": 3 379 | }, 380 | "file_extension": ".py", 381 | "mimetype": "text/x-python", 382 | "name": "python", 383 | "nbconvert_exporter": "python", 384 | "pygments_lexer": "ipython3", 385 | "version": "3.6.0" 386 | } 387 | }, 388 | "nbformat": 4, 389 | "nbformat_minor": 2 390 | } 391 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/07 - SQL #2-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "code", 5 | "execution_count": null, 6 | "metadata": {}, 7 | "outputs": [], 8 | "source": [ 9 | "import pymysql\n", 10 | "import pandas as pd\n", 11 | "\n", 12 | "host = '127.0.0.1'\n", 13 | "port = \"3306\"\n", 14 | "user = 'root'\n", 15 | "password = ''\n", 16 | "database = 'classicmodels'\n", 17 | "\n", 18 | "conn = pymysql.connect(\n", 19 | " host=host,\n", 20 | " port=int(port),\n", 21 | " user=user,\n", 22 | " passwd=password,\n", 23 | " db=database,\n", 24 | " charset='utf8mb4')\n", 25 | "\n", 26 | "def run(sql):\n", 27 | " df = pd.read_sql_query(sql,conn)\n", 28 | " return df" 29 | ] 30 | }, 31 | { 32 | "cell_type": "markdown", 33 | "metadata": {}, 34 | "source": [ 35 | "# Join ada 4 Jenis:\n", 36 | "\n", 37 | "- Inner Join\n", 38 | "- Left Join\n", 39 | "- Right Join\n", 40 | "- Cross Join\n", 41 | "\n", 42 | "Terdapat Join ke diri Sendiri yang disebut Self Join\n", 43 | "\n", 44 | "## 1. INNER JOIN\n", 45 | "\n", 46 | "\n", 47 | "\n", 48 | "\n", 49 | "\n", 50 | "" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": null, 56 | "metadata": {}, 57 | "outputs": [], 58 | "source": [ 59 | "run(\"\"\"\n", 60 | "SELECT \n", 61 | " productCode, \n", 62 | " productName, \n", 63 | " textDescription\n", 64 | "FROM\n", 65 | " products t1\n", 66 | " INNER JOIN\n", 67 | " productlines t2 ON t1.productline = t2.productline\n", 68 | "\"\"\")" 69 | ] 70 | }, 71 | { 72 | "cell_type": "markdown", 73 | "metadata": {}, 74 | "source": [ 75 | "## USING" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": null, 81 | "metadata": {}, 82 | "outputs": [], 83 | "source": [ 84 | "run(\"\"\"\n", 85 | "SELECT \n", 86 | " productCode, \n", 87 | " productName, \n", 88 | " textDescription\n", 89 | "FROM\n", 90 | " products\n", 91 | " INNER JOIN\n", 92 | " productlines USING (productline)\n", 93 | "\"\"\")" 94 | ] 95 | }, 96 | { 97 | "cell_type": "markdown", 98 | "metadata": {}, 99 | "source": [ 100 | "## Kombinasi dengan GROUP BY\n", 101 | "\n", 102 | "" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": null, 108 | "metadata": {}, 109 | "outputs": [], 110 | "source": [ 111 | "run(\"\"\"\n", 112 | "SELECT \n", 113 | " T1.orderNumber,\n", 114 | " status,\n", 115 | " SUM(quantityOrdered * priceEach) total\n", 116 | "FROM\n", 117 | " orders AS T1\n", 118 | " INNER JOIN\n", 119 | " orderdetails AS T2 ON T1.orderNumber = T2.orderNumber\n", 120 | "GROUP BY orderNumber\n", 121 | "\"\"\")" 122 | ] 123 | }, 124 | { 125 | "cell_type": "markdown", 126 | "metadata": {}, 127 | "source": [ 128 | "## Join dengan Operasi Perbandingan Lain" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": null, 134 | "metadata": {}, 135 | "outputs": [], 136 | "source": [ 137 | "run(\"\"\"\n", 138 | "SELECT \n", 139 | " orderNumber, \n", 140 | " productName, \n", 141 | " msrp, \n", 142 | " priceEach\n", 143 | "FROM\n", 144 | " products p\n", 145 | " INNER JOIN\n", 146 | " orderdetails o ON p.productcode = o.productcode\n", 147 | " AND p.msrp > o.priceEach\n", 148 | "WHERE\n", 149 | " p.productcode = 'S10_1678'\n", 150 | "\"\"\")" 151 | ] 152 | }, 153 | { 154 | "attachments": {}, 155 | "cell_type": "markdown", 156 | "metadata": {}, 157 | "source": [ 158 | "# 2. LEFT JOIN\n", 159 | "\n", 160 | "\n", 161 | "\n", 162 | "\n", 163 | "" 164 | ] 165 | }, 166 | { 167 | "cell_type": "code", 168 | "execution_count": null, 169 | "metadata": {}, 170 | "outputs": [], 171 | "source": [ 172 | "run(\"\"\"\n", 173 | "SELECT\n", 174 | " c.customerNumber,\n", 175 | " c.customerName,\n", 176 | " orderNumber,\n", 177 | " o.status\n", 178 | "FROM\n", 179 | " customers c\n", 180 | "LEFT JOIN orders o ON c.customerNumber = o.customerNumber\n", 181 | "\"\"\")" 182 | ] 183 | }, 184 | { 185 | "cell_type": "code", 186 | "execution_count": null, 187 | "metadata": {}, 188 | "outputs": [], 189 | "source": [ 190 | "run(\"\"\"\n", 191 | "SELECT \n", 192 | " c.customerNumber, \n", 193 | " c.customerName, \n", 194 | " orderNumber, \n", 195 | " o.status\n", 196 | "FROM\n", 197 | " customers c\n", 198 | " LEFT JOIN\n", 199 | " orders o ON c.customerNumber = o.customerNumber\n", 200 | "WHERE\n", 201 | " orderNumber IS NULL\n", 202 | "\"\"\")" 203 | ] 204 | }, 205 | { 206 | "cell_type": "markdown", 207 | "metadata": {}, 208 | "source": [ 209 | "## WHERE vs ON" 210 | ] 211 | }, 212 | { 213 | "cell_type": "code", 214 | "execution_count": null, 215 | "metadata": {}, 216 | "outputs": [], 217 | "source": [ 218 | "run(\"\"\"\n", 219 | "SELECT \n", 220 | " o.orderNumber, \n", 221 | " customerNumber, \n", 222 | " productCode\n", 223 | "FROM\n", 224 | " orders o\n", 225 | " LEFT JOIN\n", 226 | " orderDetails USING (orderNumber)\n", 227 | "WHERE\n", 228 | " orderNumber = 10123\n", 229 | "\"\"\")" 230 | ] 231 | }, 232 | { 233 | "cell_type": "code", 234 | "execution_count": null, 235 | "metadata": {}, 236 | "outputs": [], 237 | "source": [ 238 | "run(\"\"\"\n", 239 | "SELECT \n", 240 | " o.orderNumber, \n", 241 | " customerNumber, \n", 242 | " productCode\n", 243 | "FROM\n", 244 | " orders o\n", 245 | " LEFT JOIN\n", 246 | " orderDetails d ON o.orderNumber = d.orderNumber\n", 247 | " AND o.orderNumber = 10123\n", 248 | "\"\"\")" 249 | ] 250 | }, 251 | { 252 | "cell_type": "markdown", 253 | "metadata": {}, 254 | "source": [ 255 | "# 3. RIGHT JOIN\n", 256 | "\n", 257 | "" 258 | ] 259 | }, 260 | { 261 | "cell_type": "code", 262 | "execution_count": null, 263 | "metadata": {}, 264 | "outputs": [], 265 | "source": [ 266 | "run(\"\"\"\n", 267 | "SELECT \n", 268 | " concat(e.firstName,' ', e.lastName) salesman, \n", 269 | " e.jobTitle, \n", 270 | " customerName\n", 271 | "FROM\n", 272 | " employees e\n", 273 | " RIGHT JOIN\n", 274 | " customers c ON e.employeeNumber = c.salesRepEmployeeNumber\n", 275 | " AND e.jobTitle = 'Sales Rep'\n", 276 | "ORDER BY customerName\n", 277 | "\"\"\")" 278 | ] 279 | }, 280 | { 281 | "cell_type": "markdown", 282 | "metadata": {}, 283 | "source": [ 284 | "# 4. CROSS JOIN" 285 | ] 286 | }, 287 | { 288 | "cell_type": "markdown", 289 | "metadata": {}, 290 | "source": [ 291 | "" 292 | ] 293 | }, 294 | { 295 | "cell_type": "markdown", 296 | "metadata": {}, 297 | "source": [ 298 | "# 5. Self Join\n", 299 | "" 300 | ] 301 | }, 302 | { 303 | "cell_type": "code", 304 | "execution_count": null, 305 | "metadata": {}, 306 | "outputs": [], 307 | "source": [ 308 | "run(\"\"\"\n", 309 | "SELECT \n", 310 | " CONCAT(m.lastname, ', ', m.firstname) AS 'Manager',\n", 311 | " CONCAT(e.lastname, ', ', e.firstname) AS 'Direct report'\n", 312 | "FROM\n", 313 | " employees e\n", 314 | " INNER JOIN\n", 315 | " employees m ON m.employeeNumber = e.reportsto\n", 316 | "ORDER BY manager\n", 317 | "\"\"\")" 318 | ] 319 | }, 320 | { 321 | "cell_type": "code", 322 | "execution_count": null, 323 | "metadata": {}, 324 | "outputs": [], 325 | "source": [ 326 | "run(\"\"\"\n", 327 | "SELECT \n", 328 | " IFNULL(CONCAT(m.lastname, ', ', m.firstname),\n", 329 | " 'Top Manager') AS 'Manager',\n", 330 | " CONCAT(e.lastname, ', ', e.firstname) AS 'Direct report'\n", 331 | "FROM\n", 332 | " employees e\n", 333 | " LEFT JOIN\n", 334 | " employees m ON m.employeeNumber = e.reportsto\n", 335 | "ORDER BY manager DESC\n", 336 | "\"\"\")" 337 | ] 338 | }, 339 | { 340 | "cell_type": "code", 341 | "execution_count": null, 342 | "metadata": {}, 343 | "outputs": [], 344 | "source": [ 345 | "run(\"\"\"\n", 346 | "SELECT \n", 347 | " c1.city, c1.customerName, c2.customerName\n", 348 | "FROM\n", 349 | " customers c1\n", 350 | " INNER JOIN\n", 351 | " customers c2 ON c1.city = c2.city\n", 352 | " AND c1.customername > c2.customerName\n", 353 | "ORDER BY c1.city\n", 354 | "\"\"\")" 355 | ] 356 | }, 357 | { 358 | "cell_type": "markdown", 359 | "metadata": {}, 360 | "source": [ 361 | "# Latihan:\n", 362 | "\n", 363 | "### One to many relationship\n", 364 | "1. Report the account representative for each customer.\n", 365 | "2. Report total payments for Atelier graphique.\n", 366 | "3. Report the total payments by date\n", 367 | "4. Report the products that have not been sold.\n", 368 | "5. List the amount paid by each customer.\n", 369 | "6. How many orders have been placed by Herkku Gifts?\n", 370 | "7. Who are the employees in Boston?\n", 371 | "8. Report those payments greater than \\$100,000. Sort the report so the customer who made the highest payment appears first.\n", 372 | "9. List the value of 'On Hold' orders.\n", 373 | "10. Report the number of orders 'On Hold' for each customer.\n", 374 | "\n", 375 | "### Many to many relationship\n", 376 | "1. List products sold by order date.\n", 377 | "2. List the order dates in descending order for orders for the 1940 Ford Pickup Truck.\n", 378 | "3. List the names of customers and their corresponding order number where a particular order from that customer has a value greater than $25,000?\n", 379 | "4. Are there any products that appear on all orders?\n", 380 | "5. List the names of products sold at less than 80% of the MSRP.\n", 381 | "6. Reports those products that have been sold with a markup of 100% or more (i.e., the priceEach is at least twice the buyPrice)\n", 382 | "7. List the products ordered on a Monday.\n", 383 | "8. What is the quantity on hand for products listed on 'On Hold' orders?" 384 | ] 385 | }, 386 | { 387 | "cell_type": "code", 388 | "execution_count": null, 389 | "metadata": {}, 390 | "outputs": [], 391 | "source": [] 392 | } 393 | ], 394 | "metadata": { 395 | "kernelspec": { 396 | "display_name": "Python 3", 397 | "language": "python", 398 | "name": "python3" 399 | }, 400 | "language_info": { 401 | "codemirror_mode": { 402 | "name": "ipython", 403 | "version": 3 404 | }, 405 | "file_extension": ".py", 406 | "mimetype": "text/x-python", 407 | "name": "python", 408 | "nbconvert_exporter": "python", 409 | "pygments_lexer": "ipython3", 410 | "version": "3.6.0" 411 | } 412 | }, 413 | "nbformat": 4, 414 | "nbformat_minor": 2 415 | } 416 | -------------------------------------------------------------------------------- /2019/Modul 6 - Materi Online Academy.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Objek Rekening\n", 8 | "\n", 9 | "### Atribut\n", 10 | "- Saldo\n", 11 | "\n", 12 | "### Behavior\n", 13 | "- Kredit\n", 14 | "- Debit\n", 15 | "- Cetak Saldo" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "execution_count": 1, 21 | "metadata": {}, 22 | "outputs": [ 23 | { 24 | "name": "stdout", 25 | "output_type": "stream", 26 | "text": [ 27 | "9000\n", 28 | "8000\n", 29 | "11000\n" 30 | ] 31 | } 32 | ], 33 | "source": [ 34 | "saldo = 9000\n", 35 | "\n", 36 | "def kredit(saldo,jumlah):\n", 37 | " saldo += jumlah\n", 38 | " return saldo\n", 39 | " \n", 40 | "def debit(saldo,jumlah):\n", 41 | " saldo -= jumlah\n", 42 | " return saldo\n", 43 | " \n", 44 | "def cetak():\n", 45 | " print(saldo)\n", 46 | " \n", 47 | "cetak()\n", 48 | "saldo = debit(saldo,1000)\n", 49 | "cetak()\n", 50 | "saldo = kredit(saldo,3000)\n", 51 | "cetak()\n" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 25, 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [ 60 | "class Rekening:\n", 61 | " def __init__(self):\n", 62 | " self.__saldo = 0 \n", 63 | " \n", 64 | " def kredit(self, jumlah):\n", 65 | " self.__saldo += jumlah\n", 66 | " \n", 67 | " def debit(self, jumlah):\n", 68 | " if jumlah > self.__saldo:\n", 69 | " print(\"Gagal Debit, Jumlah melebihi Saldo\")\n", 70 | " return\n", 71 | " self.__saldo -= jumlah\n", 72 | " \n", 73 | " def cetak(self):\n", 74 | " print(\"Saldo saat ini adalah\",self.__saldo)" 75 | ] 76 | }, 77 | { 78 | "cell_type": "code", 79 | "execution_count": 26, 80 | "metadata": {}, 81 | "outputs": [ 82 | { 83 | "name": "stdout", 84 | "output_type": "stream", 85 | "text": [ 86 | "Saldo saat ini adalah 0\n", 87 | "Saldo saat ini adalah 8000\n", 88 | "Gagal Debit, Jumlah melebihi Saldo\n", 89 | "Saldo saat ini adalah 8000\n" 90 | ] 91 | } 92 | ], 93 | "source": [ 94 | "briCakra = Rekening()\n", 95 | "briCakra.cetak()\n", 96 | "briCakra.kredit(8000)\n", 97 | "briCakra.cetak()\n", 98 | "briCakra.debit(80000)\n", 99 | "briCakra.cetak()" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": 4, 105 | "metadata": {}, 106 | "outputs": [ 107 | { 108 | "name": "stdout", 109 | "output_type": "stream", 110 | "text": [ 111 | "Saldo saat ini adalah 0\n", 112 | "Saldo saat ini adalah 9000\n", 113 | "Gagal Debit, Jumlah melebihi Saldo\n", 114 | "Saldo saat ini adalah 9000\n", 115 | "Saldo saat ini adalah 9000\n" 116 | ] 117 | } 118 | ], 119 | "source": [ 120 | "biAni = Rekening()\n", 121 | "biAni.cetak()\n", 122 | "biAni.kredit(9000)\n", 123 | "biAni.cetak()\n", 124 | "biAni.debit(90000)\n", 125 | "biAni.cetak()\n" 126 | ] 127 | }, 128 | { 129 | "cell_type": "code", 130 | "execution_count": 6, 131 | "metadata": {}, 132 | "outputs": [ 133 | { 134 | "name": "stdout", 135 | "output_type": "stream", 136 | "text": [ 137 | "Saldo saat ini adalah 0\n", 138 | "Saldo saat ini adalah 8000\n", 139 | "Saldo saat ini adalah 9000\n" 140 | ] 141 | } 142 | ], 143 | "source": [ 144 | "bniBudi = Rekening()\n", 145 | "bniBudi.cetak()\n", 146 | "bniBudi.kredit(8000)\n", 147 | "bniBudi.cetak()\n", 148 | "\n", 149 | "biAni.cetak()" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": null, 155 | "metadata": {}, 156 | "outputs": [], 157 | "source": [ 158 | "nama = \"Guntur Budi Herwanto\"\n", 159 | "nama.split(\" \")" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": null, 165 | "metadata": {}, 166 | "outputs": [], 167 | "source": [ 168 | "class Siswa:\n", 169 | " def __init__(self,nis,nama,alamat):\n", 170 | " self.__nis = nis\n", 171 | " self.__nama = nama\n", 172 | " self.__alamat = alamat\n", 173 | " self.__mata_pelajaran = []\n", 174 | " self.__nilai = []\n", 175 | " \n", 176 | " def tampilkan(self):\n", 177 | " print(\"=\"*20)\n", 178 | " print(self.__nis,self.__nama,self.__alamat)\n", 179 | " for i,j in enumerate(self.__mata_pelajaran):\n", 180 | " print(self.__mata_pelajaran[i],self.__nilai[i])\n", 181 | " \n", 182 | " \n", 183 | " def tambahNilai(self,mapel,nilai):\n", 184 | " self.__mata_pelajaran.append(mapel)\n", 185 | " self.__nilai.append(nilai)\n", 186 | " \n", 187 | "class SiswaSMK(Siswa):\n", 188 | " def __init__(self,nis,nama,alamat,jurusan):\n", 189 | " self.__jurusan = jurusan\n", 190 | " super().__init__(nis,nama,alamat)\n", 191 | " \n", 192 | " def kerjaIndustri(self):\n", 193 | " print(\"Melaksanakan Kerja Industri\")\n", 194 | " \n", 195 | " # override\n", 196 | " def tampilkan(self):\n", 197 | " super().tampilkan()\n", 198 | " print(self.__jurusan)" 199 | ] 200 | }, 201 | { 202 | "cell_type": "code", 203 | "execution_count": null, 204 | "metadata": {}, 205 | "outputs": [], 206 | "source": [ 207 | "siswa1 = Siswa(\"12345\",\"Ani\",\"Sleman\")\n", 208 | "siswa1.tambahNilai(\"Matematika\",90)\n", 209 | "siswa1.tambahNilai(\"Bahasa Indonesia\",80)\n", 210 | "siswa1.tambahNilai(\"Bahasa Inggris\",85)\n", 211 | "siswa1.tampilkan()" 212 | ] 213 | }, 214 | { 215 | "cell_type": "code", 216 | "execution_count": null, 217 | "metadata": {}, 218 | "outputs": [], 219 | "source": [ 220 | "siswaSmk1 = SiswaSMK(\"67612\",\"Budi\",\"Bantul\",\"Otomotif\")\n", 221 | "siswaSmk1.tambahNilai(\"Matematika\",95)\n", 222 | "siswaSmk1.tambahNilai(\"Bahasa Indonesia\",70)\n", 223 | "siswaSmk1.tambahNilai(\"Bahasa Inggris\",95)\n", 224 | "siswaSmk1.tampilkan()" 225 | ] 226 | }, 227 | { 228 | "cell_type": "code", 229 | "execution_count": null, 230 | "metadata": {}, 231 | "outputs": [], 232 | "source": [ 233 | "def pembagian(n):\n", 234 | " try:\n", 235 | " n = 1 / n\n", 236 | " except ZeroDivisionError:\n", 237 | " print(\"Pembagian Gagal, Penyebut tidak boleh nol\")\n", 238 | " return None\n", 239 | " else:\n", 240 | " print(\"Pembagian berjalan dengan baik\")\n", 241 | " finally:\n", 242 | " print(\"Selesai....\")\n", 243 | " return n\n", 244 | "\n", 245 | "\n", 246 | "a = pembagian(0)\n", 247 | "print(a)" 248 | ] 249 | }, 250 | { 251 | "cell_type": "code", 252 | "execution_count": null, 253 | "metadata": {}, 254 | "outputs": [], 255 | "source": [ 256 | "try:\n", 257 | " n = int(\"Hello\")\n", 258 | "except Exception as e:\n", 259 | " print(e)\n", 260 | " " 261 | ] 262 | }, 263 | { 264 | "cell_type": "code", 265 | "execution_count": null, 266 | "metadata": {}, 267 | "outputs": [], 268 | "source": [ 269 | "for i in range(5,10,2):\n", 270 | " print(i)" 271 | ] 272 | }, 273 | { 274 | "cell_type": "code", 275 | "execution_count": null, 276 | "metadata": {}, 277 | "outputs": [], 278 | "source": [ 279 | "class Fib:\n", 280 | " def __init__(self, nn):\n", 281 | " print(\"Init\")\n", 282 | " self.__n = nn\n", 283 | " self.__i = 0\n", 284 | " self.__p1 = self.__p2 = 1\n", 285 | " \n", 286 | " def __iter__(self):\n", 287 | " print(\"Iter\")\n", 288 | " return self\n", 289 | " \n", 290 | " def __next__(self):\n", 291 | " print(\"Next\")\n", 292 | " self.__i += 1\n", 293 | " if self.__i > self.__n:\n", 294 | " raise StopIteration\n", 295 | " if self.__i in [1,2]:\n", 296 | " return 1\n", 297 | " \n", 298 | " ret = self.__p1 + self.__p2\n", 299 | " self.__p1 , self.__p2 = self.__p2, ret\n", 300 | " \n", 301 | " return ret\n", 302 | " \n", 303 | "for i in Fib(19):\n", 304 | " print(i, end=\" \")" 305 | ] 306 | }, 307 | { 308 | "cell_type": "markdown", 309 | "metadata": {}, 310 | "source": [ 311 | "# Processing Files" 312 | ] 313 | }, 314 | { 315 | "cell_type": "code", 316 | "execution_count": null, 317 | "metadata": {}, 318 | "outputs": [], 319 | "source": [ 320 | "s = open('halo.txt','r')\n", 321 | "ch = s.read(1)\n", 322 | "while ch != '':\n", 323 | " if ch not in ['a','i','u','e','o']:\n", 324 | " print(ch,end=\"\")\n", 325 | " ch = s.read(1)\n", 326 | " \n", 327 | "s.close()" 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": null, 333 | "metadata": {}, 334 | "outputs": [], 335 | "source": [ 336 | "t = open('transaksi.txt','r')\n", 337 | "baris = t.readline()\n", 338 | "while baris != '':\n", 339 | " print(baris,end=\"\")\n", 340 | " baris = t.readline()" 341 | ] 342 | }, 343 | { 344 | "cell_type": "code", 345 | "execution_count": null, 346 | "metadata": {}, 347 | "outputs": [], 348 | "source": [ 349 | "transaksi = open('transaksi.txt','r')\n", 350 | "\n", 351 | "bankBudi = Rekening()\n", 352 | "\n", 353 | "for baris in transaksi:\n", 354 | " jns_transaksi = baris.split()[0]\n", 355 | " jumlah = int(baris.split()[1])\n", 356 | " if(jns_transaksi=='K'):\n", 357 | " bankBudi.kredit(jumlah)\n", 358 | " elif(jns_transaksi=='D'):\n", 359 | " bankBudi.debit(jumlah)\n", 360 | " else:\n", 361 | " print(\"Jenis Transaksi Tidak Valid\")\n", 362 | " \n", 363 | " bankBudi.cetak()" 364 | ] 365 | }, 366 | { 367 | "cell_type": "code", 368 | "execution_count": null, 369 | "metadata": {}, 370 | "outputs": [], 371 | "source": [ 372 | "import random\n", 373 | "transaksi = open('transaksi.txt','a+')\n", 374 | "\n", 375 | "for i in range(100):\n", 376 | " print(i)\n", 377 | " if i%2==0: \n", 378 | " transaksi.write(\"\\nK \"+str(random.randint(1000,5000)))\n", 379 | " else:\n", 380 | " transaksi.write(\"\\nD \"+str(random.randint(1000,5000)))\n", 381 | " \n", 382 | "transaksi.close()" 383 | ] 384 | }, 385 | { 386 | "cell_type": "code", 387 | "execution_count": 134, 388 | "metadata": {}, 389 | "outputs": [ 390 | { 391 | "name": "stdout", 392 | "output_type": "stream", 393 | "text": [ 394 | "1\n", 395 | "2\n", 396 | "4\n", 397 | "8\n", 398 | "16\n", 399 | "32\n", 400 | "64\n", 401 | "128\n", 402 | "256\n", 403 | "512\n", 404 | "1024\n", 405 | "2048\n", 406 | "4096\n", 407 | "8192\n", 408 | "16384\n", 409 | "32768\n", 410 | "65536\n", 411 | "131072\n", 412 | "262144\n", 413 | "524288\n", 414 | "1048576\n", 415 | "2097152\n", 416 | "4194304\n", 417 | "8388608\n", 418 | "16777216\n", 419 | "33554432\n", 420 | "67108864\n", 421 | "134217728\n", 422 | "268435456\n", 423 | "536870912\n", 424 | "1073741824\n", 425 | "2147483648\n", 426 | "4294967296\n", 427 | "8589934592\n", 428 | "17179869184\n", 429 | "34359738368\n", 430 | "68719476736\n", 431 | "137438953472\n", 432 | "274877906944\n", 433 | "549755813888\n", 434 | "1099511627776\n", 435 | "2199023255552\n", 436 | "4398046511104\n", 437 | "8796093022208\n", 438 | "17592186044416\n", 439 | "35184372088832\n", 440 | "70368744177664\n", 441 | "140737488355328\n", 442 | "281474976710656\n", 443 | "562949953421312\n", 444 | "1125899906842624\n", 445 | "2251799813685248\n", 446 | "4503599627370496\n", 447 | "9007199254740992\n", 448 | "18014398509481984\n", 449 | "36028797018963968\n", 450 | "72057594037927936\n", 451 | "144115188075855872\n", 452 | "288230376151711744\n", 453 | "576460752303423488\n", 454 | "1152921504606846976\n", 455 | "2305843009213693952\n", 456 | "4611686018427387904\n", 457 | "9223372036854775808\n", 458 | "18446744073709551616\n", 459 | "36893488147419103232\n", 460 | "73786976294838206464\n", 461 | "147573952589676412928\n", 462 | "295147905179352825856\n", 463 | "590295810358705651712\n", 464 | "1180591620717411303424\n", 465 | "2361183241434822606848\n", 466 | "4722366482869645213696\n", 467 | "9444732965739290427392\n", 468 | "18889465931478580854784\n", 469 | "37778931862957161709568\n", 470 | "75557863725914323419136\n", 471 | "151115727451828646838272\n", 472 | "302231454903657293676544\n", 473 | "604462909807314587353088\n" 474 | ] 475 | } 476 | ], 477 | "source": [ 478 | "def perkalianDua(n):\n", 479 | " pow = 1\n", 480 | " for i in range(n):\n", 481 | " yield pow\n", 482 | " pow *= 2\n", 483 | " \n", 484 | "for v in perkalianDua(80):\n", 485 | " print(v)" 486 | ] 487 | }, 488 | { 489 | "cell_type": "code", 490 | "execution_count": null, 491 | "metadata": {}, 492 | "outputs": [], 493 | "source": [] 494 | } 495 | ], 496 | "metadata": { 497 | "kernelspec": { 498 | "display_name": "Python 3", 499 | "language": "python", 500 | "name": "python3" 501 | }, 502 | "language_info": { 503 | "codemirror_mode": { 504 | "name": "ipython", 505 | "version": 3 506 | }, 507 | "file_extension": ".py", 508 | "mimetype": "text/x-python", 509 | "name": "python", 510 | "nbconvert_exporter": "python", 511 | "pygments_lexer": "ipython3", 512 | "version": "3.6.9" 513 | } 514 | }, 515 | "nbformat": 4, 516 | "nbformat_minor": 2 517 | } 518 | -------------------------------------------------------------------------------- /2019/.ipynb_checkpoints/Modul 6-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "## Objek Rekening\n", 8 | "\n", 9 | "### Atribut\n", 10 | "- Saldo\n", 11 | "\n", 12 | "### Behavior\n", 13 | "- Kredit\n", 14 | "- Debit\n", 15 | "- Cetak Saldo" 16 | ] 17 | }, 18 | { 19 | "cell_type": "code", 20 | "execution_count": 1, 21 | "metadata": {}, 22 | "outputs": [ 23 | { 24 | "name": "stdout", 25 | "output_type": "stream", 26 | "text": [ 27 | "9000\n", 28 | "8000\n", 29 | "11000\n" 30 | ] 31 | } 32 | ], 33 | "source": [ 34 | "saldo = 9000\n", 35 | "\n", 36 | "def kredit(saldo,jumlah):\n", 37 | " saldo += jumlah\n", 38 | " return saldo\n", 39 | " \n", 40 | "def debit(saldo,jumlah):\n", 41 | " saldo -= jumlah\n", 42 | " return saldo\n", 43 | " \n", 44 | "def cetak():\n", 45 | " print(saldo)\n", 46 | " \n", 47 | "cetak()\n", 48 | "saldo = debit(saldo,1000)\n", 49 | "cetak()\n", 50 | "saldo = kredit(saldo,3000)\n", 51 | "cetak()\n" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 25, 57 | "metadata": {}, 58 | "outputs": [], 59 | "source": [ 60 | "class Rekening:\n", 61 | " def __init__(self):\n", 62 | " self.__saldo = 0 \n", 63 | " \n", 64 | " def kredit(self, jumlah):\n", 65 | " self.__saldo += jumlah\n", 66 | " \n", 67 | " def debit(self, jumlah):\n", 68 | " if jumlah > self.__saldo:\n", 69 | " print(\"Gagal Debit, Jumlah melebihi Saldo\")\n", 70 | " return\n", 71 | " self.__saldo -= jumlah\n", 72 | " \n", 73 | " def cetak(self):\n", 74 | " print(\"Saldo saat ini adalah\",self.__saldo)" 75 | ] 76 | }, 77 | { 78 | "cell_type": "code", 79 | "execution_count": 26, 80 | "metadata": {}, 81 | "outputs": [ 82 | { 83 | "name": "stdout", 84 | "output_type": "stream", 85 | "text": [ 86 | "Saldo saat ini adalah 0\n", 87 | "Saldo saat ini adalah 8000\n", 88 | "Gagal Debit, Jumlah melebihi Saldo\n", 89 | "Saldo saat ini adalah 8000\n" 90 | ] 91 | } 92 | ], 93 | "source": [ 94 | "briCakra = Rekening()\n", 95 | "briCakra.cetak()\n", 96 | "briCakra.kredit(8000)\n", 97 | "briCakra.cetak()\n", 98 | "briCakra.debit(80000)\n", 99 | "briCakra.cetak()" 100 | ] 101 | }, 102 | { 103 | "cell_type": "code", 104 | "execution_count": 4, 105 | "metadata": {}, 106 | "outputs": [ 107 | { 108 | "name": "stdout", 109 | "output_type": "stream", 110 | "text": [ 111 | "Saldo saat ini adalah 0\n", 112 | "Saldo saat ini adalah 9000\n", 113 | "Gagal Debit, Jumlah melebihi Saldo\n", 114 | "Saldo saat ini adalah 9000\n", 115 | "Saldo saat ini adalah 9000\n" 116 | ] 117 | } 118 | ], 119 | "source": [ 120 | "biAni = Rekening()\n", 121 | "biAni.cetak()\n", 122 | "biAni.kredit(9000)\n", 123 | "biAni.cetak()\n", 124 | "biAni.debit(90000)\n", 125 | "biAni.cetak()\n" 126 | ] 127 | }, 128 | { 129 | "cell_type": "code", 130 | "execution_count": 6, 131 | "metadata": {}, 132 | "outputs": [ 133 | { 134 | "name": "stdout", 135 | "output_type": "stream", 136 | "text": [ 137 | "Saldo saat ini adalah 0\n", 138 | "Saldo saat ini adalah 8000\n", 139 | "Saldo saat ini adalah 9000\n" 140 | ] 141 | } 142 | ], 143 | "source": [ 144 | "bniBudi = Rekening()\n", 145 | "bniBudi.cetak()\n", 146 | "bniBudi.kredit(8000)\n", 147 | "bniBudi.cetak()\n", 148 | "\n", 149 | "biAni.cetak()" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": null, 155 | "metadata": {}, 156 | "outputs": [], 157 | "source": [ 158 | "nama = \"Guntur Budi Herwanto\"\n", 159 | "nama.split(\" \")" 160 | ] 161 | }, 162 | { 163 | "cell_type": "code", 164 | "execution_count": null, 165 | "metadata": {}, 166 | "outputs": [], 167 | "source": [ 168 | "class Siswa:\n", 169 | " def __init__(self,nis,nama,alamat):\n", 170 | " self.__nis = nis\n", 171 | " self.__nama = nama\n", 172 | " self.__alamat = alamat\n", 173 | " self.__mata_pelajaran = []\n", 174 | " self.__nilai = []\n", 175 | " \n", 176 | " def tampilkan(self):\n", 177 | " print(\"=\"*20)\n", 178 | " print(self.__nis,self.__nama,self.__alamat)\n", 179 | " for i,j in enumerate(self.__mata_pelajaran):\n", 180 | " print(self.__mata_pelajaran[i],self.__nilai[i])\n", 181 | " \n", 182 | " \n", 183 | " def tambahNilai(self,mapel,nilai):\n", 184 | " self.__mata_pelajaran.append(mapel)\n", 185 | " self.__nilai.append(nilai)\n", 186 | " \n", 187 | "class SiswaSMK(Siswa):\n", 188 | " def __init__(self,nis,nama,alamat,jurusan):\n", 189 | " self.__jurusan = jurusan\n", 190 | " super().__init__(nis,nama,alamat)\n", 191 | " \n", 192 | " def kerjaIndustri(self):\n", 193 | " print(\"Melaksanakan Kerja Industri\")\n", 194 | " \n", 195 | " # override\n", 196 | " def tampilkan(self):\n", 197 | " super().tampilkan()\n", 198 | " print(self.__jurusan)" 199 | ] 200 | }, 201 | { 202 | "cell_type": "code", 203 | "execution_count": null, 204 | "metadata": {}, 205 | "outputs": [], 206 | "source": [ 207 | "siswa1 = Siswa(\"12345\",\"Ani\",\"Sleman\")\n", 208 | "siswa1.tambahNilai(\"Matematika\",90)\n", 209 | "siswa1.tambahNilai(\"Bahasa Indonesia\",80)\n", 210 | "siswa1.tambahNilai(\"Bahasa Inggris\",85)\n", 211 | "siswa1.tampilkan()" 212 | ] 213 | }, 214 | { 215 | "cell_type": "code", 216 | "execution_count": null, 217 | "metadata": {}, 218 | "outputs": [], 219 | "source": [ 220 | "siswaSmk1 = SiswaSMK(\"67612\",\"Budi\",\"Bantul\",\"Otomotif\")\n", 221 | "siswaSmk1.tambahNilai(\"Matematika\",95)\n", 222 | "siswaSmk1.tambahNilai(\"Bahasa Indonesia\",70)\n", 223 | "siswaSmk1.tambahNilai(\"Bahasa Inggris\",95)\n", 224 | "siswaSmk1.tampilkan()" 225 | ] 226 | }, 227 | { 228 | "cell_type": "code", 229 | "execution_count": null, 230 | "metadata": {}, 231 | "outputs": [], 232 | "source": [ 233 | "def pembagian(n):\n", 234 | " try:\n", 235 | " n = 1 / n\n", 236 | " except ZeroDivisionError:\n", 237 | " print(\"Pembagian Gagal, Penyebut tidak boleh nol\")\n", 238 | " return None\n", 239 | " else:\n", 240 | " print(\"Pembagian berjalan dengan baik\")\n", 241 | " finally:\n", 242 | " print(\"Selesai....\")\n", 243 | " return n\n", 244 | "\n", 245 | "\n", 246 | "a = pembagian(0)\n", 247 | "print(a)" 248 | ] 249 | }, 250 | { 251 | "cell_type": "code", 252 | "execution_count": null, 253 | "metadata": {}, 254 | "outputs": [], 255 | "source": [ 256 | "try:\n", 257 | " n = int(\"Hello\")\n", 258 | "except Exception as e:\n", 259 | " print(e)\n", 260 | " " 261 | ] 262 | }, 263 | { 264 | "cell_type": "code", 265 | "execution_count": null, 266 | "metadata": {}, 267 | "outputs": [], 268 | "source": [ 269 | "for i in range(5,10,2):\n", 270 | " print(i)" 271 | ] 272 | }, 273 | { 274 | "cell_type": "code", 275 | "execution_count": null, 276 | "metadata": {}, 277 | "outputs": [], 278 | "source": [ 279 | "class Fib:\n", 280 | " def __init__(self, nn):\n", 281 | " print(\"Init\")\n", 282 | " self.__n = nn\n", 283 | " self.__i = 0\n", 284 | " self.__p1 = self.__p2 = 1\n", 285 | " \n", 286 | " def __iter__(self):\n", 287 | " print(\"Iter\")\n", 288 | " return self\n", 289 | " \n", 290 | " def __next__(self):\n", 291 | " print(\"Next\")\n", 292 | " self.__i += 1\n", 293 | " if self.__i > self.__n:\n", 294 | " raise StopIteration\n", 295 | " if self.__i in [1,2]:\n", 296 | " return 1\n", 297 | " \n", 298 | " ret = self.__p1 + self.__p2\n", 299 | " self.__p1 , self.__p2 = self.__p2, ret\n", 300 | " \n", 301 | " return ret\n", 302 | " \n", 303 | "for i in Fib(19):\n", 304 | " print(i, end=\" \")" 305 | ] 306 | }, 307 | { 308 | "cell_type": "markdown", 309 | "metadata": {}, 310 | "source": [ 311 | "# Processing Files" 312 | ] 313 | }, 314 | { 315 | "cell_type": "code", 316 | "execution_count": null, 317 | "metadata": {}, 318 | "outputs": [], 319 | "source": [ 320 | "s = open('halo.txt','r')\n", 321 | "ch = s.read(1)\n", 322 | "while ch != '':\n", 323 | " if ch not in ['a','i','u','e','o']:\n", 324 | " print(ch,end=\"\")\n", 325 | " ch = s.read(1)\n", 326 | " \n", 327 | "s.close()" 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": null, 333 | "metadata": {}, 334 | "outputs": [], 335 | "source": [ 336 | "t = open('transaksi.txt','r')\n", 337 | "baris = t.readline()\n", 338 | "while baris != '':\n", 339 | " print(baris,end=\"\")\n", 340 | " baris = t.readline()" 341 | ] 342 | }, 343 | { 344 | "cell_type": "code", 345 | "execution_count": null, 346 | "metadata": {}, 347 | "outputs": [], 348 | "source": [ 349 | "transaksi = open('transaksi.txt','r')\n", 350 | "\n", 351 | "bankBudi = Rekening()\n", 352 | "\n", 353 | "for baris in transaksi:\n", 354 | " jns_transaksi = baris.split()[0]\n", 355 | " jumlah = int(baris.split()[1])\n", 356 | " if(jns_transaksi=='K'):\n", 357 | " bankBudi.kredit(jumlah)\n", 358 | " elif(jns_transaksi=='D'):\n", 359 | " bankBudi.debit(jumlah)\n", 360 | " else:\n", 361 | " print(\"Jenis Transaksi Tidak Valid\")\n", 362 | " \n", 363 | " bankBudi.cetak()" 364 | ] 365 | }, 366 | { 367 | "cell_type": "code", 368 | "execution_count": null, 369 | "metadata": {}, 370 | "outputs": [], 371 | "source": [ 372 | "import random\n", 373 | "transaksi = open('transaksi.txt','a+')\n", 374 | "\n", 375 | "for i in range(100):\n", 376 | " print(i)\n", 377 | " if i%2==0: \n", 378 | " transaksi.write(\"\\nK \"+str(random.randint(1000,5000)))\n", 379 | " else:\n", 380 | " transaksi.write(\"\\nD \"+str(random.randint(1000,5000)))\n", 381 | " \n", 382 | "transaksi.close()" 383 | ] 384 | }, 385 | { 386 | "cell_type": "code", 387 | "execution_count": 134, 388 | "metadata": {}, 389 | "outputs": [ 390 | { 391 | "name": "stdout", 392 | "output_type": "stream", 393 | "text": [ 394 | "1\n", 395 | "2\n", 396 | "4\n", 397 | "8\n", 398 | "16\n", 399 | "32\n", 400 | "64\n", 401 | "128\n", 402 | "256\n", 403 | "512\n", 404 | "1024\n", 405 | "2048\n", 406 | "4096\n", 407 | "8192\n", 408 | "16384\n", 409 | "32768\n", 410 | "65536\n", 411 | "131072\n", 412 | "262144\n", 413 | "524288\n", 414 | "1048576\n", 415 | "2097152\n", 416 | "4194304\n", 417 | "8388608\n", 418 | "16777216\n", 419 | "33554432\n", 420 | "67108864\n", 421 | "134217728\n", 422 | "268435456\n", 423 | "536870912\n", 424 | "1073741824\n", 425 | "2147483648\n", 426 | "4294967296\n", 427 | "8589934592\n", 428 | "17179869184\n", 429 | "34359738368\n", 430 | "68719476736\n", 431 | "137438953472\n", 432 | "274877906944\n", 433 | "549755813888\n", 434 | "1099511627776\n", 435 | "2199023255552\n", 436 | "4398046511104\n", 437 | "8796093022208\n", 438 | "17592186044416\n", 439 | "35184372088832\n", 440 | "70368744177664\n", 441 | "140737488355328\n", 442 | "281474976710656\n", 443 | "562949953421312\n", 444 | "1125899906842624\n", 445 | "2251799813685248\n", 446 | "4503599627370496\n", 447 | "9007199254740992\n", 448 | "18014398509481984\n", 449 | "36028797018963968\n", 450 | "72057594037927936\n", 451 | "144115188075855872\n", 452 | "288230376151711744\n", 453 | "576460752303423488\n", 454 | "1152921504606846976\n", 455 | "2305843009213693952\n", 456 | "4611686018427387904\n", 457 | "9223372036854775808\n", 458 | "18446744073709551616\n", 459 | "36893488147419103232\n", 460 | "73786976294838206464\n", 461 | "147573952589676412928\n", 462 | "295147905179352825856\n", 463 | "590295810358705651712\n", 464 | "1180591620717411303424\n", 465 | "2361183241434822606848\n", 466 | "4722366482869645213696\n", 467 | "9444732965739290427392\n", 468 | "18889465931478580854784\n", 469 | "37778931862957161709568\n", 470 | "75557863725914323419136\n", 471 | "151115727451828646838272\n", 472 | "302231454903657293676544\n", 473 | "604462909807314587353088\n" 474 | ] 475 | } 476 | ], 477 | "source": [ 478 | "def perkalianDua(n):\n", 479 | " pow = 1\n", 480 | " for i in range(n):\n", 481 | " yield pow\n", 482 | " pow *= 2\n", 483 | " \n", 484 | "for v in perkalianDua(80):\n", 485 | " print(v)" 486 | ] 487 | }, 488 | { 489 | "cell_type": "code", 490 | "execution_count": null, 491 | "metadata": {}, 492 | "outputs": [], 493 | "source": [] 494 | } 495 | ], 496 | "metadata": { 497 | "kernelspec": { 498 | "display_name": "Python 3", 499 | "language": "python", 500 | "name": "python3" 501 | }, 502 | "language_info": { 503 | "codemirror_mode": { 504 | "name": "ipython", 505 | "version": 3 506 | }, 507 | "file_extension": ".py", 508 | "mimetype": "text/x-python", 509 | "name": "python", 510 | "nbconvert_exporter": "python", 511 | "pygments_lexer": "ipython3", 512 | "version": "3.6.9" 513 | } 514 | }, 515 | "nbformat": 4, 516 | "nbformat_minor": 2 517 | } 518 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/01. Pengenalan Python - Variabel, Tipe Data, Operator, dan Statement Kondisi-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# DIGITAL TALENT \n", 8 | "\n", 9 | "Setelah mengikuti materi pertama ini peserta diharapkan dapat:\n", 10 | "1. Menjalankan sintaks dasar python\n", 11 | "2. Mengenal variabel serta mampu menggunakan variabel\n", 12 | "3. Mengetahui jenis-jenis tipe data dalam python\n", 13 | "4. Mengetahui jenis-jenis operator\n", 14 | "5. Dapat menggunakan operator aritmetika, assignment, perbandingan, serta logika \n", 15 | "6. Memahami algoritma dari statement kondisi\n", 16 | "7. Dapat menggunakan statement kondisi dalam kasus pemrograman" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "## Hello World !" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": null, 29 | "metadata": {}, 30 | "outputs": [], 31 | "source": [ 32 | "print(\"Hello World\")" 33 | ] 34 | }, 35 | { 36 | "cell_type": "markdown", 37 | "metadata": {}, 38 | "source": [ 39 | "## Variabel \n", 40 | "Variabel adalah tempat menyimpan nilai sementara. Berikut adalah cara mendeklarasikan, menginisialisasi variabel dan memanggil variabel dalam python:\n" 41 | ] 42 | }, 43 | { 44 | "cell_type": "code", 45 | "execution_count": null, 46 | "metadata": {}, 47 | "outputs": [], 48 | "source": [ 49 | "nama = \"Guntur Budi Herwanto\"\n", 50 | "\n", 51 | "print(nama)" 52 | ] 53 | }, 54 | { 55 | "cell_type": "markdown", 56 | "metadata": {}, 57 | "source": [ 58 | "Nilai dalam variabel dapat diubah sewaktu waktu" 59 | ] 60 | }, 61 | { 62 | "cell_type": "code", 63 | "execution_count": null, 64 | "metadata": {}, 65 | "outputs": [], 66 | "source": [ 67 | "nama = \"Guntur Budi Herwanto\"\n", 68 | "nama = \"Adiyo Hidayat\"\n", 69 | "\n", 70 | "print(nama)\n" 71 | ] 72 | }, 73 | { 74 | "cell_type": "markdown", 75 | "metadata": {}, 76 | "source": [ 77 | "Kita juga bisa memberikan beberapa nilai pada variabel secara langsung" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": null, 83 | "metadata": {}, 84 | "outputs": [], 85 | "source": [ 86 | "a, b, c = 5, 3.2, \"Hello\"\n", 87 | "\n", 88 | "print (a)\n", 89 | "print (b)\n", 90 | "print (c)" 91 | ] 92 | }, 93 | { 94 | "cell_type": "code", 95 | "execution_count": null, 96 | "metadata": {}, 97 | "outputs": [], 98 | "source": [ 99 | "x = y = z = \"podo\"\n", 100 | "\n", 101 | "print (x)\n", 102 | "print (y)\n", 103 | "print (z)" 104 | ] 105 | }, 106 | { 107 | "cell_type": "markdown", 108 | "metadata": {}, 109 | "source": [ 110 | "## TIPE DATA\n", 111 | "Dalam setiap nilai di variabel, terdapat sebuah tipe data tertentu. Pada python, terdapat beberapa tipe data:\n", 112 | "\n", 113 | "- Numbers\n", 114 | "- Strings\n", 115 | "- Boolean\n", 116 | "- List\n", 117 | "- Tuple\n", 118 | "- Set\n", 119 | "- Dictionary" 120 | ] 121 | }, 122 | { 123 | "cell_type": "markdown", 124 | "metadata": {}, 125 | "source": [ 126 | "### Numbers\n", 127 | "- Integer : Angka tanpa koma\n", 128 | "- Float : Angka dengan Koma" 129 | ] 130 | }, 131 | { 132 | "cell_type": "code", 133 | "execution_count": null, 134 | "metadata": {}, 135 | "outputs": [], 136 | "source": [ 137 | "a = 5\n", 138 | "print(a, \"mempunyai tipe\", type(a))\n", 139 | "\n", 140 | "a = 2.0\n", 141 | "print(a, \"mempunyai tipe\", type(a))" 142 | ] 143 | }, 144 | { 145 | "cell_type": "markdown", 146 | "metadata": {}, 147 | "source": [ 148 | "### Boolean\n", 149 | "Benar atau Salah?" 150 | ] 151 | }, 152 | { 153 | "cell_type": "code", 154 | "execution_count": null, 155 | "metadata": {}, 156 | "outputs": [], 157 | "source": [ 158 | "a = 5>6\n", 159 | "print(a, \"mempunyai tipe\", type(a))\n", 160 | "\n", 161 | "a = 6>5\n", 162 | "print(a, \"mempunyai tipe\", type(a))" 163 | ] 164 | }, 165 | { 166 | "cell_type": "markdown", 167 | "metadata": {}, 168 | "source": [ 169 | "### String\n", 170 | "Kumpulan karakter" 171 | ] 172 | }, 173 | { 174 | "cell_type": "code", 175 | "execution_count": null, 176 | "metadata": {}, 177 | "outputs": [], 178 | "source": [ 179 | "a = \"Ini adalah sebuah string\"\n", 180 | "print(a, \"mempunyai tipe\", type(a))" 181 | ] 182 | }, 183 | { 184 | "cell_type": "markdown", 185 | "metadata": {}, 186 | "source": [ 187 | "### List & Tuple & Dictionary\n", 188 | "dibahas minggu depan" 189 | ] 190 | }, 191 | { 192 | "cell_type": "markdown", 193 | "metadata": {}, 194 | "source": [ 195 | "## Operator" 196 | ] 197 | }, 198 | { 199 | "cell_type": "markdown", 200 | "metadata": {}, 201 | "source": [ 202 | "### 1. Operator Aritmetika\n", 203 | "\n", 204 | "| Operator | Arti | Contoh |\n", 205 | "|----------|--------------------------------------------------------------------------------------------------|--------------------------|\n", 206 | "| + | Penambahan | x + y |\n", 207 | "| - | Pengurangan | x - y |\n", 208 | "| * | Perkalian | x * y |\n", 209 | "| / | Pembagian | x / y |\n", 210 | "| % | Modulo - Sisa Pembagian | x % y (sisa pembagian of x/y) |\n", 211 | "| // | Pembagian dan dibulatkan ke bawah | x // y |\n", 212 | "| ** | Eksponen - Pangkat | x**y (x pangkat y) |" 213 | ] 214 | }, 215 | { 216 | "cell_type": "code", 217 | "execution_count": null, 218 | "metadata": {}, 219 | "outputs": [], 220 | "source": [ 221 | "x = 15\n", 222 | "y = 4\n", 223 | "\n", 224 | "# Output: x + y = 19\n", 225 | "print('x + y =',x+y)\n", 226 | "\n", 227 | "# Output: x - y = 11\n", 228 | "print('x - y =',x-y)\n", 229 | "\n", 230 | "# Output: x * y = 60\n", 231 | "print('x * y =',x*y)\n", 232 | "\n", 233 | "# Output: x / y = 3.75\n", 234 | "print('x / y =',x/y)\n", 235 | "\n", 236 | "# Output: x // y = 3\n", 237 | "print('x // y =',x//y)\n", 238 | "\n", 239 | "# Output: x ** y = 50625\n", 240 | "print('x ** y =',x**y)" 241 | ] 242 | }, 243 | { 244 | "cell_type": "markdown", 245 | "metadata": {}, 246 | "source": [ 247 | "### 2. Operator Assignment\n", 248 | "Pemberian Nilai, Updating Nilai" 249 | ] 250 | }, 251 | { 252 | "cell_type": "code", 253 | "execution_count": null, 254 | "metadata": {}, 255 | "outputs": [], 256 | "source": [ 257 | "a = 5\n", 258 | "b = 2\n", 259 | "a = a + 6\n", 260 | "print(a)\n", 261 | "a = a * 5\n", 262 | "print(a)\n", 263 | "a = b + 3\n", 264 | "print(a)" 265 | ] 266 | }, 267 | { 268 | "cell_type": "markdown", 269 | "metadata": {}, 270 | "source": [ 271 | "![alt text](https://www.freeiconspng.com/uploads/book-store-icon-31.png \"Bookstore\")\n", 272 | "\n", 273 | "## LATIHAN\n", 274 | "\n", 275 | "\n", 276 | "#### Pada keluaran buku terbaru, Harry Potter harga buku adalah Rp 100.000, tetapi toko buku mendapatkan diskon 40%. Pengiriman biaya Rp 9.000 untuk salinan pertama dan Rp 3.000 untuk setiap salinan tambahan. Berapa total biaya keseluruhan untuk pengiriman buku 60 eksemplar?\n", 277 | "\n" 278 | ] 279 | }, 280 | { 281 | "cell_type": "markdown", 282 | "metadata": {}, 283 | "source": [ 284 | "### 3. Operator Perbandingan\n", 285 | "| Operator | Meaning | Example |\n", 286 | "|----------|-------------------------|---------|\n", 287 | "| > | Lebih Dari | x > y |\n", 288 | "| < | Kurang Dari | x < y |\n", 289 | "| == | Sama Dengan | x == y |\n", 290 | "| != | Tidak Sam Dengan | x != y |\n", 291 | "| >= | Lebih dari sama dengan | x >= y |\n", 292 | "| <= | Kurang dari sama dengan | x <= y |" 293 | ] 294 | }, 295 | { 296 | "cell_type": "code", 297 | "execution_count": null, 298 | "metadata": {}, 299 | "outputs": [], 300 | "source": [ 301 | "x = 10\n", 302 | "y = 12\n", 303 | "\n", 304 | "print('x > y is',x>y)\n", 305 | "\n", 306 | "print('x < y is',x= y is',x>=y)\n", 313 | "\n", 314 | "print('x <= y is',x<=y)" 315 | ] 316 | }, 317 | { 318 | "cell_type": "markdown", 319 | "metadata": {}, 320 | "source": [ 321 | "### 4. Operator Logika\n", 322 | "\n", 323 | "| Operator | Keterangan | Contoh |\n", 324 | "|----------|------------------------------------|---------|\n", 325 | "| and | True jika keduanya True | x and y |\n", 326 | "| or | True jika salah satunya True | x or y |\n", 327 | "| not | not False = True; not True = False | not x |" 328 | ] 329 | }, 330 | { 331 | "cell_type": "code", 332 | "execution_count": null, 333 | "metadata": {}, 334 | "outputs": [], 335 | "source": [ 336 | "x = 5 == 5\n", 337 | "y = 1 > 2\n", 338 | "\n", 339 | "\n", 340 | "print('x and y is',x and y)\n", 341 | "\n", 342 | "print('x or y is',x or y)\n", 343 | "\n", 344 | "print('not x is',not x)" 345 | ] 346 | }, 347 | { 348 | "cell_type": "markdown", 349 | "metadata": {}, 350 | "source": [ 351 | "# Statement Kondisi / Percabangan\n", 352 | "Dalam pembuatan program, seringkali kita memiliki kondisi, jika..maka, contohnya: jika nilai hasil ujian > 90, maka calon peserta digital talent berhak mengikuti program beasiswa. Kondisi seperti ini dapat digambarkan dengan Flowchart seperti dibawah ini:" 353 | ] 354 | }, 355 | { 356 | "cell_type": "markdown", 357 | "metadata": {}, 358 | "source": [ 359 | "![alt text](https://cdn.programiz.com/sites/tutorial2program/files/Python_if_statement.jpg \"If Statement\")\n" 360 | ] 361 | }, 362 | { 363 | "cell_type": "markdown", 364 | "metadata": {}, 365 | "source": [ 366 | "Berikut adalah sintaks dari kode program kondisional / percabangan.\n", 367 | "Perhatikan Indentasi yang ada pada sintaks tersebut." 368 | ] 369 | }, 370 | { 371 | "cell_type": "code", 372 | "execution_count": null, 373 | "metadata": {}, 374 | "outputs": [], 375 | "source": [ 376 | "nilai = 95 # Coba dirubah menjadi 80\n", 377 | "if nilai>90:\n", 378 | " print(\"Lulus\")\n", 379 | " print(\"Selamat\")\n", 380 | " \n", 381 | "print(\"Program Selesai\")" 382 | ] 383 | }, 384 | { 385 | "cell_type": "markdown", 386 | "metadata": {}, 387 | "source": [ 388 | "Dalam bahasa pemrograman Python, Indentasi sangatlah penting untuk menentukan blok kode sebuah program.\n", 389 | "\n", 390 | "Selanjutnya, terdapat bentuk yang sedikit lebih kompleks, yaitu dengan menggunakan else:" 391 | ] 392 | }, 393 | { 394 | "cell_type": "markdown", 395 | "metadata": {}, 396 | "source": [ 397 | "![alt text](https://cdn.programiz.com/sites/tutorial2program/files/Python_if_else_statement.jpg \"If Else Statement\")" 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": null, 403 | "metadata": {}, 404 | "outputs": [], 405 | "source": [ 406 | "nilai = 80 \n", 407 | "if nilai>90:\n", 408 | " print(\"Lulus\")\n", 409 | " print(\"Selamat\")\n", 410 | "else:\n", 411 | " print(\"Maaf Anda Belum Berhasil\")\n", 412 | " \n", 413 | "print(\"Program Selesai\")" 414 | ] 415 | }, 416 | { 417 | "cell_type": "markdown", 418 | "metadata": {}, 419 | "source": [ 420 | "Jika terdapat lebih dari satu kondisi dapat menggunakan elif (else if):" 421 | ] 422 | }, 423 | { 424 | "cell_type": "markdown", 425 | "metadata": {}, 426 | "source": [ 427 | "![alt text](https://cdn.programiz.com/sites/tutorial2program/files/Python_if_elif_else_statement.jpg \"If Else If Statement\")\n" 428 | ] 429 | }, 430 | { 431 | "cell_type": "code", 432 | "execution_count": null, 433 | "metadata": {}, 434 | "outputs": [], 435 | "source": [ 436 | "nilai = 85 \n", 437 | "if nilai>90:\n", 438 | " print(\"Lulus\")\n", 439 | " print(\"Selamat\")\n", 440 | "elif nilai>80:\n", 441 | " print(\"Anda masuk ke waiting list\")\n", 442 | "else:\n", 443 | " print(\"Maaf Anda Belum Berhasil\")\n", 444 | " \n", 445 | "print(\"Program Selesai\")" 446 | ] 447 | }, 448 | { 449 | "cell_type": "markdown", 450 | "metadata": {}, 451 | "source": [ 452 | "Percabangan juga bisa disarangkan pada percabangan, contoh:" 453 | ] 454 | }, 455 | { 456 | "cell_type": "code", 457 | "execution_count": null, 458 | "metadata": {}, 459 | "outputs": [], 460 | "source": [ 461 | "nilai = 95\n", 462 | "umur = 10\n", 463 | "\n", 464 | "if nilai>90:\n", 465 | " if umur > 17:\n", 466 | " print(\"Selamat Anda Berhak Mengikuti Program Beasiswa\")\n", 467 | " else:\n", 468 | " print(\"Maaf, Anda belum berhak mengikuti program beasiswa\")\n", 469 | "else:\n", 470 | " print(\"Maaf Anda Belum Berhasil\")\n", 471 | " \n", 472 | "print(\"Program Selesai\")" 473 | ] 474 | }, 475 | { 476 | "cell_type": "markdown", 477 | "metadata": {}, 478 | "source": [ 479 | "![alt text](https://cdn.iconscout.com/icon/free/png-256/human-body-458026.png \"Body\")" 480 | ] 481 | }, 482 | { 483 | "cell_type": "markdown", 484 | "metadata": {}, 485 | "source": [ 486 | "## LATIHAN\n", 487 | "\n", 488 | "\n", 489 | "Body Mass Index (BMI) menentukan sebuah keidealan berat badan terhadap tinggi badan. Berikut adalah formula dari BMI : BMI = weight (kg) ÷ height^2 (m^2)\n", 490 | "\n", 491 | "Berikut adalah kategorisasi BMI\n", 492 | "\n", 493 | "| BMI | Kategori BMI | |\n", 494 | "|---------------------|---------------------------|---|\n", 495 | "| Kurang dari 15 | Very severely underweight | |\n", 496 | "| Diantara 15 dan 16 | Severely underweight | |\n", 497 | "| Diantara 16 dan 18.5 | Underweight | |\n", 498 | "| Diantara 18.5 dan 25 | Normal (healthy weight) | |\n", 499 | "| Diantara 25 dan 30 | Overweight | |\n", 500 | "| Diantara 30 dan 35 | Moderately obese | |\n", 501 | "| Diantara 35 dan 40 | Severely obese | |\n", 502 | "| Over 40 | Very severely obese | |\n", 503 | "\n", 504 | "Buatlah sebuah program yang memiliki dua variabel berat badan dengan satuan KG, dan tinggi badan dengan satuan CM, kemudian keluaran dari program adalah Kategori BMI" 505 | ] 506 | } 507 | ], 508 | "metadata": { 509 | "kernelspec": { 510 | "display_name": "Python 2", 511 | "language": "python", 512 | "name": "python2" 513 | }, 514 | "language_info": { 515 | "codemirror_mode": { 516 | "name": "ipython", 517 | "version": 2 518 | }, 519 | "file_extension": ".py", 520 | "mimetype": "text/x-python", 521 | "name": "python", 522 | "nbconvert_exporter": "python", 523 | "pygments_lexer": "ipython2", 524 | "version": "2.7.15" 525 | } 526 | }, 527 | "nbformat": 4, 528 | "nbformat_minor": 2 529 | } 530 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/06 - SQL-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# MySQL\n", 8 | "\n", 9 | "Sebelum memulai, pastikan sudah :\n", 10 | "- Install Laragon\n", 11 | "- Start All pada Laragon\n", 12 | "- Install PyMySQL dengan cara: conda install pymysql\n", 13 | "- Import database mysqlsampledatabase.sql pada HeidiSQL melalui Tombol Database pada Laragon" 14 | ] 15 | }, 16 | { 17 | "cell_type": "code", 18 | "execution_count": null, 19 | "metadata": {}, 20 | "outputs": [], 21 | "source": [ 22 | "import pymysql\n", 23 | "import pandas as pd\n", 24 | "\n", 25 | "host = '127.0.0.1'\n", 26 | "port = \"3306\"\n", 27 | "user = 'root'\n", 28 | "password = ''\n", 29 | "database = 'classicmodels'\n", 30 | "\n", 31 | "conn = pymysql.connect(\n", 32 | " host=host,\n", 33 | " port=int(port),\n", 34 | " user=user,\n", 35 | " passwd=password,\n", 36 | " db=database,\n", 37 | " charset='utf8mb4')\n", 38 | "\n", 39 | "def run(sql):\n", 40 | " df = pd.read_sql_query(sql,conn)\n", 41 | " return df" 42 | ] 43 | }, 44 | { 45 | "cell_type": "markdown", 46 | "metadata": {}, 47 | "source": [ 48 | "## Berikut adalah Skema Database dari Sample Database yang telah kita Import dengan nama database Classicmodels:\n", 49 | "\n", 50 | "" 51 | ] 52 | }, 53 | { 54 | "cell_type": "code", 55 | "execution_count": null, 56 | "metadata": {}, 57 | "outputs": [], 58 | "source": [ 59 | "run(\"SHOW TABLES\")" 60 | ] 61 | }, 62 | { 63 | "cell_type": "markdown", 64 | "metadata": {}, 65 | "source": [ 66 | "## 1. Mengambil dan Memilih data dengan SELECT " 67 | ] 68 | }, 69 | { 70 | "cell_type": "code", 71 | "execution_count": null, 72 | "metadata": {}, 73 | "outputs": [], 74 | "source": [ 75 | "run(\"SELECT * FROM products\")" 76 | ] 77 | }, 78 | { 79 | "cell_type": "code", 80 | "execution_count": null, 81 | "metadata": {}, 82 | "outputs": [], 83 | "source": [ 84 | "run(\"SELECT productName,buyPrice FROM products\")" 85 | ] 86 | }, 87 | { 88 | "cell_type": "code", 89 | "execution_count": null, 90 | "metadata": {}, 91 | "outputs": [], 92 | "source": [ 93 | "run(\"SELECT firstName,lastName FROM employees\")" 94 | ] 95 | }, 96 | { 97 | "cell_type": "code", 98 | "execution_count": null, 99 | "metadata": {}, 100 | "outputs": [], 101 | "source": [ 102 | "run(\"SELECT CONCAT(firstName,' ',lastName) AS fullName FROM employees\")" 103 | ] 104 | }, 105 | { 106 | "cell_type": "code", 107 | "execution_count": null, 108 | "metadata": {}, 109 | "outputs": [], 110 | "source": [ 111 | "run(\"SELECT * FROM orders\")" 112 | ] 113 | }, 114 | { 115 | "cell_type": "code", 116 | "execution_count": null, 117 | "metadata": {}, 118 | "outputs": [], 119 | "source": [ 120 | "run(\"SELECT orderNumber,YEAR(orderDate),MONTH(orderDate),DAY(orderDate) FROM orders\")" 121 | ] 122 | }, 123 | { 124 | "cell_type": "code", 125 | "execution_count": null, 126 | "metadata": {}, 127 | "outputs": [], 128 | "source": [ 129 | "# DISTINCT : Lihat Perbedaan dari Query dibawah ini\n", 130 | "run(\"SELECT lastName FROM employees\")\n", 131 | "# run(\"SELECT DISTINCT lastName FROM employees\")" 132 | ] 133 | }, 134 | { 135 | "cell_type": "markdown", 136 | "metadata": {}, 137 | "source": [ 138 | "## 2. Kondisi dengan WHERE" 139 | ] 140 | }, 141 | { 142 | "cell_type": "code", 143 | "execution_count": null, 144 | "metadata": {}, 145 | "outputs": [], 146 | "source": [ 147 | "run(\"SELECT productName,buyPrice FROM products WHERE buyPrice>90\")" 148 | ] 149 | }, 150 | { 151 | "cell_type": "code", 152 | "execution_count": null, 153 | "metadata": {}, 154 | "outputs": [], 155 | "source": [ 156 | "run(\"SELECT productName,buyPrice FROM products WHERE buyPrice BETWEEN 50 AND 60\")" 157 | ] 158 | }, 159 | { 160 | "cell_type": "code", 161 | "execution_count": null, 162 | "metadata": {}, 163 | "outputs": [], 164 | "source": [ 165 | "run(\"SELECT firstName,lastName,jobTitle,officeCode FROM employees WHERE jobTitle='Sales Rep'\")" 166 | ] 167 | }, 168 | { 169 | "cell_type": "code", 170 | "execution_count": null, 171 | "metadata": {}, 172 | "outputs": [], 173 | "source": [ 174 | "run(\"SELECT firstName,lastName,jobTitle,officeCode FROM employees WHERE jobTitle IN ('Sales Rep','VP Sales')\")" 175 | ] 176 | }, 177 | { 178 | "cell_type": "code", 179 | "execution_count": null, 180 | "metadata": {}, 181 | "outputs": [], 182 | "source": [ 183 | "run(\"SELECT firstName,lastName,jobTitle,officeCode FROM employees WHERE jobTitle<>'Sales Rep'\")" 184 | ] 185 | }, 186 | { 187 | "cell_type": "code", 188 | "execution_count": null, 189 | "metadata": {}, 190 | "outputs": [], 191 | "source": [ 192 | "run(\"SELECT firstName,lastName,jobTitle,officeCode FROM employees WHERE jobTitle='Sales Rep' AND officeCode=1\")" 193 | ] 194 | }, 195 | { 196 | "cell_type": "code", 197 | "execution_count": null, 198 | "metadata": {}, 199 | "outputs": [], 200 | "source": [ 201 | "run(\"\"\"\n", 202 | "SELECT firstName,lastName,jobTitle,officeCode \n", 203 | "FROM employees \n", 204 | "WHERE jobTitle='Sales Rep' AND officeCode=1 AND lastName='Thompson'\n", 205 | "\"\"\")" 206 | ] 207 | }, 208 | { 209 | "cell_type": "code", 210 | "execution_count": null, 211 | "metadata": {}, 212 | "outputs": [], 213 | "source": [ 214 | "run(\"\"\"\n", 215 | "SELECT customername,\n", 216 | " country,\n", 217 | " state,\n", 218 | " creditlimit\n", 219 | "FROM customers\n", 220 | "WHERE country = 'USA'\n", 221 | " AND state = 'CA'\n", 222 | " AND creditlimit > 100000\n", 223 | "\"\"\")" 224 | ] 225 | }, 226 | { 227 | "cell_type": "code", 228 | "execution_count": null, 229 | "metadata": {}, 230 | "outputs": [], 231 | "source": [ 232 | "run(\"SELECT firstName,lastName,jobTitle,officeCode FROM employees WHERE jobTitle<>'Sales Rep' OR officeCode=1\")" 233 | ] 234 | }, 235 | { 236 | "cell_type": "code", 237 | "execution_count": null, 238 | "metadata": {}, 239 | "outputs": [], 240 | "source": [ 241 | "run(\"\"\"\n", 242 | "SELECT \n", 243 | " customername, country\n", 244 | "FROM\n", 245 | " customers\n", 246 | "WHERE\n", 247 | " country = 'USA' OR country = 'France'\n", 248 | "\"\"\")" 249 | ] 250 | }, 251 | { 252 | "cell_type": "markdown", 253 | "metadata": {}, 254 | "source": [ 255 | "## 3. Mengurutkan Hasil dengan Order By" 256 | ] 257 | }, 258 | { 259 | "cell_type": "code", 260 | "execution_count": null, 261 | "metadata": {}, 262 | "outputs": [], 263 | "source": [ 264 | "run(\"SELECT productName,productLine,buyPrice FROM products WHERE buyPrice>30 ORDER BY buyPrice\")" 265 | ] 266 | }, 267 | { 268 | "cell_type": "code", 269 | "execution_count": null, 270 | "metadata": {}, 271 | "outputs": [], 272 | "source": [ 273 | "run(\"SELECT productName,productLine,buyPrice FROM products WHERE buyPrice>30 ORDER BY buyPrice DESC\")" 274 | ] 275 | }, 276 | { 277 | "cell_type": "code", 278 | "execution_count": null, 279 | "metadata": {}, 280 | "outputs": [], 281 | "source": [ 282 | "run(\"SELECT productName,productLine,buyPrice FROM products WHERE buyPrice>30 ORDER BY productLine,buyPrice\")" 283 | ] 284 | }, 285 | { 286 | "cell_type": "markdown", 287 | "metadata": {}, 288 | "source": [ 289 | "## 4. Membatasi Hasil Dengan Limit" 290 | ] 291 | }, 292 | { 293 | "cell_type": "code", 294 | "execution_count": null, 295 | "metadata": {}, 296 | "outputs": [], 297 | "source": [ 298 | "run(\"SELECT productName,productLine,buyPrice FROM products WHERE buyPrice>30 ORDER BY productLine,buyPrice LIMIT 0,10\")" 299 | ] 300 | }, 301 | { 302 | "cell_type": "code", 303 | "execution_count": null, 304 | "metadata": {}, 305 | "outputs": [], 306 | "source": [ 307 | "run(\"SELECT productName,productLine,buyPrice FROM products WHERE buyPrice>30 ORDER BY productLine,buyPrice LIMIT 20,10\")" 308 | ] 309 | }, 310 | { 311 | "cell_type": "markdown", 312 | "metadata": {}, 313 | "source": [ 314 | "## 5. Pencarian String" 315 | ] 316 | }, 317 | { 318 | "cell_type": "code", 319 | "execution_count": null, 320 | "metadata": {}, 321 | "outputs": [], 322 | "source": [ 323 | "run(\"\"\"\n", 324 | "SELECT \n", 325 | " employeeNumber, \n", 326 | " lastName, \n", 327 | " firstName\n", 328 | "FROM\n", 329 | " employees\n", 330 | "WHERE\n", 331 | " firstName LIKE 'a%'\n", 332 | "\"\"\")" 333 | ] 334 | }, 335 | { 336 | "cell_type": "code", 337 | "execution_count": null, 338 | "metadata": {}, 339 | "outputs": [], 340 | "source": [ 341 | "run(\"\"\"\n", 342 | "SELECT \n", 343 | " employeeNumber, \n", 344 | " lastName, \n", 345 | " firstName\n", 346 | "FROM\n", 347 | " employees\n", 348 | "WHERE\n", 349 | " lastName LIKE '%on'\n", 350 | "\"\"\")" 351 | ] 352 | }, 353 | { 354 | "cell_type": "code", 355 | "execution_count": null, 356 | "metadata": {}, 357 | "outputs": [], 358 | "source": [ 359 | "run(\"\"\"\n", 360 | "SELECT \n", 361 | " employeeNumber, \n", 362 | " lastName, \n", 363 | " firstName\n", 364 | "FROM\n", 365 | " employees\n", 366 | "WHERE\n", 367 | " lastname LIKE '%on%'\n", 368 | "\"\"\")" 369 | ] 370 | }, 371 | { 372 | "cell_type": "code", 373 | "execution_count": null, 374 | "metadata": {}, 375 | "outputs": [], 376 | "source": [ 377 | "run(\"\"\"\n", 378 | "SELECT \n", 379 | " employeeNumber, \n", 380 | " lastName, \n", 381 | " firstName\n", 382 | "FROM\n", 383 | " employees\n", 384 | "WHERE\n", 385 | " lastname LIKE 'K_g'\n", 386 | "\"\"\")" 387 | ] 388 | }, 389 | { 390 | "cell_type": "code", 391 | "execution_count": null, 392 | "metadata": {}, 393 | "outputs": [], 394 | "source": [ 395 | "run(\"\"\"\n", 396 | "SELECT \n", 397 | " employeeNumber, \n", 398 | " lastName, \n", 399 | " firstName\n", 400 | "FROM\n", 401 | " employees\n", 402 | "WHERE\n", 403 | " lastName NOT LIKE 'B%'\n", 404 | "\"\"\")" 405 | ] 406 | }, 407 | { 408 | "cell_type": "code", 409 | "execution_count": null, 410 | "metadata": {}, 411 | "outputs": [], 412 | "source": [ 413 | "run(\"\"\"\n", 414 | "SELECT \n", 415 | " productCode, \n", 416 | " productName\n", 417 | "FROM\n", 418 | " products\n", 419 | "WHERE\n", 420 | " productCode LIKE '%\\_20%';\n", 421 | "\"\"\")" 422 | ] 423 | }, 424 | { 425 | "cell_type": "markdown", 426 | "metadata": {}, 427 | "source": [ 428 | "Jika membutuhkan Pencarian yang lebih advanced dapat menggunakan BOOLEAN Text Search atau NATURAL LANGUAGE Search:\n", 429 | "- http://www.mysqltutorial.org/mysql-boolean-text-searches.aspx\n", 430 | "- http://www.mysqltutorial.org/mysql-natural-language-search.aspx" 431 | ] 432 | }, 433 | { 434 | "cell_type": "markdown", 435 | "metadata": {}, 436 | "source": [ 437 | "## 6. Query Agregasi\n", 438 | "SUM, COUNT, AVG, MIN, MAX + GROUP BY + HAVING" 439 | ] 440 | }, 441 | { 442 | "cell_type": "code", 443 | "execution_count": null, 444 | "metadata": {}, 445 | "outputs": [], 446 | "source": [ 447 | "run(\"SELECT avg(buyPrice) AS RataHarga FROM products where productline='classic cars'\")" 448 | ] 449 | }, 450 | { 451 | "cell_type": "code", 452 | "execution_count": null, 453 | "metadata": {}, 454 | "outputs": [], 455 | "source": [ 456 | "run(\"SELECT productLine,AVG(buyPrice) AS RataHarga FROM products GROUP BY productLine\")" 457 | ] 458 | }, 459 | { 460 | "cell_type": "code", 461 | "execution_count": null, 462 | "metadata": {}, 463 | "outputs": [], 464 | "source": [ 465 | "run(\"SELECT productLine,AVG(buyPrice) AS RataHarga FROM products GROUP BY productLine HAVING RataHarga>50\")" 466 | ] 467 | }, 468 | { 469 | "cell_type": "code", 470 | "execution_count": null, 471 | "metadata": {}, 472 | "outputs": [], 473 | "source": [ 474 | "run(\"SELECT productLine,MIN(buyPrice) AS HargaTermurah FROM products GROUP BY productLine\")" 475 | ] 476 | }, 477 | { 478 | "cell_type": "code", 479 | "execution_count": null, 480 | "metadata": {}, 481 | "outputs": [], 482 | "source": [ 483 | "run(\"SELECT productLine,MAX(buyPrice) AS HargaTermahal FROM products GROUP BY productLine\")" 484 | ] 485 | }, 486 | { 487 | "cell_type": "code", 488 | "execution_count": null, 489 | "metadata": {}, 490 | "outputs": [], 491 | "source": [ 492 | "run(\"SELECT productLine,COUNT(*) AS JumlahProduk FROM products GROUP BY productLine\")" 493 | ] 494 | }, 495 | { 496 | "cell_type": "code", 497 | "execution_count": null, 498 | "metadata": {}, 499 | "outputs": [], 500 | "source": [ 501 | "run(\"SELECT YEAR(paymentDate) AS Tahun,SUM(amount) AS TotalBayar FROM payments GROUP BY YEAR(paymentDate)\")" 502 | ] 503 | }, 504 | { 505 | "cell_type": "code", 506 | "execution_count": null, 507 | "metadata": {}, 508 | "outputs": [], 509 | "source": [ 510 | "run(\"\"\"\n", 511 | "SELECT \n", 512 | " YEAR(paymentDate) AS Tahun,\n", 513 | " MONTH(paymentDate) AS Bulan,\n", 514 | " SUM(amount) AS TotalBayar \n", 515 | "FROM payments \n", 516 | "GROUP BY Tahun,Bulan\n", 517 | "\"\"\")" 518 | ] 519 | }, 520 | { 521 | "cell_type": "code", 522 | "execution_count": null, 523 | "metadata": { 524 | "scrolled": true 525 | }, 526 | "outputs": [], 527 | "source": [ 528 | "run(\"\"\"\n", 529 | "SELECT \n", 530 | " YEAR(paymentDate) AS Tahun,\n", 531 | " MONTH(paymentDate) AS Bulan,\n", 532 | " SUM(amount) AS TotalBayar \n", 533 | "FROM payments \n", 534 | "WHERE YEAR(paymentDate)<2005\n", 535 | "GROUP BY Tahun,Bulan\n", 536 | "HAVING TotalBayar > 300000\n", 537 | "ORDER BY TotalBayar DESC\n", 538 | "LIMIT 0,5\n", 539 | "\"\"\")" 540 | ] 541 | }, 542 | { 543 | "cell_type": "markdown", 544 | "metadata": {}, 545 | "source": [ 546 | "## SELF STUDY\n", 547 | "Materi Digital Talent untuk SQL hanya 3 pertemuan, sehingga hanya cukup untuk menyampaikan SELECT saja, namun kalian belum melihat bagaimana cara untuk membuat Tabel, Kolom, serta Bagaimana melakukan manipulasi Data, berikut materi tambahan untuk dapat memanipulasi data:\n", 548 | "\n", 549 | "- https://www.youtube.com/playlist?list=PLF82-I80PwDN7KSzsJOmd8mwHYe4aAqfF\n", 550 | "\n", 551 | "Playlist dari #1 hingga #10\n" 552 | ] 553 | }, 554 | { 555 | "cell_type": "markdown", 556 | "metadata": {}, 557 | "source": [ 558 | "## LATIHAN\n", 559 | "\n", 560 | "Single entity\n", 561 | "1. Prepare a list of offices sorted by country, state, city.\n", 562 | "2. How many employees are there in the company?\n", 563 | "3. What is the total of payments received?\n", 564 | "4. List the product lines that contain 'Cars'.\n", 565 | "5. Report total payments for October 28, 2004.\n", 566 | "6. Report those payments greater than \\$100,000.\n", 567 | "7. List the products in each product line.\n", 568 | "8. How many products in each product line?\n", 569 | "9. What is the minimum payment received?\n", 570 | "10. List all payments greater than twice the average payment.\n", 571 | "11. What is the average percentage markup of the MSRP on buyPrice?\n", 572 | "12. How many distinct products does ClassicModels sell?\n", 573 | "13. Report the name and city of customers who don't have sales representatives?\n", 574 | "14. What are the names of executives with VP or Manager in their title? Use the CONCAT function to combine the employee's first name and last name into a single field for reporting.\n", 575 | "15. Which orders have a value greater than $5,000?" 576 | ] 577 | }, 578 | { 579 | "cell_type": "code", 580 | "execution_count": null, 581 | "metadata": {}, 582 | "outputs": [], 583 | "source": [] 584 | } 585 | ], 586 | "metadata": { 587 | "kernelspec": { 588 | "display_name": "Python 3", 589 | "language": "python", 590 | "name": "python3" 591 | }, 592 | "language_info": { 593 | "codemirror_mode": { 594 | "name": "ipython", 595 | "version": 3 596 | }, 597 | "file_extension": ".py", 598 | "mimetype": "text/x-python", 599 | "name": "python", 600 | "nbconvert_exporter": "python", 601 | "pygments_lexer": "ipython3", 602 | "version": "3.6.0" 603 | } 604 | }, 605 | "nbformat": 4, 606 | "nbformat_minor": 2 607 | } 608 | -------------------------------------------------------------------------------- /.ipynb_checkpoints/02 - Pengenalan Python - List, Tuple, Dictionary, String, Perulangan-checkpoint.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 1. Perulangan / Looping\n", 8 | "Sintaks yang digunakan untuk menjalankan sebuah kode program secara berulang kali hingga step yang ditentukan" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": null, 14 | "metadata": {}, 15 | "outputs": [], 16 | "source": [ 17 | "#SINTAKS FOR\n", 18 | "for j in range(0,10,2):\n", 19 | " print(j,j**2)" 20 | ] 21 | }, 22 | { 23 | "cell_type": "code", 24 | "execution_count": null, 25 | "metadata": {}, 26 | "outputs": [], 27 | "source": [ 28 | "#SINTAKS WHILE\n", 29 | "i = 0\n", 30 | "while i<10:\n", 31 | " print(i)" 32 | ] 33 | }, 34 | { 35 | "cell_type": "markdown", 36 | "metadata": {}, 37 | "source": [ 38 | "# 2. List\n", 39 | "Tipe data yang digunakan untuk menyimpan beberapa nilai dalam satu variabel" 40 | ] 41 | }, 42 | { 43 | "cell_type": "code", 44 | "execution_count": 108, 45 | "metadata": {}, 46 | "outputs": [ 47 | { 48 | "name": "stdout", 49 | "output_type": "stream", 50 | "text": [ 51 | "[30, 40, 50, 60, 70, 80, 90]\n", 52 | "['Ani', 'Budi', 'Catra', 'Desi']\n", 53 | "['Big', 2.5, 90, 'Data']\n" 54 | ] 55 | } 56 | ], 57 | "source": [ 58 | "# Deklarasi List\n", 59 | "\n", 60 | "#Dapat Berisi Angka\n", 61 | "nilai = [30,40,50,60,70,80,90]\n", 62 | "print(nilai)\n", 63 | "\n", 64 | "#Dapat berisi String\n", 65 | "peserta = ['Ani','Budi','Catra','Desi']\n", 66 | "print(peserta)\n", 67 | "\n", 68 | "#Dapat juga berisi campuran tipe data\n", 69 | "campuran = ['Big',2.5, 90, 'Data']\n", 70 | "print(campuran)" 71 | ] 72 | }, 73 | { 74 | "cell_type": "markdown", 75 | "metadata": {}, 76 | "source": [ 77 | "## 2.1 List Index\n", 78 | "Untuk mengakses elemen tertentu di dalam list, kita dapat menggunakan list index. Index list dimulai dari 0. Index di dalam python juga dapat dibuat negatif, yang artinya index akan ditelusuri dari belakang\n", 79 | "\n", 80 | "| 30 | 40 | 50 | 60 | 70 | 80 | 90 |\n", 81 | "|----|----|----|----|----|----|----|\n", 82 | "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |" 83 | ] 84 | }, 85 | { 86 | "cell_type": "code", 87 | "execution_count": 87, 88 | "metadata": {}, 89 | "outputs": [ 90 | { 91 | "name": "stdout", 92 | "output_type": "stream", 93 | "text": [ 94 | "30\n", 95 | "70\n", 96 | "90\n", 97 | "70\n", 98 | "Catra\n" 99 | ] 100 | } 101 | ], 102 | "source": [ 103 | "print(nilai[0])\n", 104 | "print(nilai[4])\n", 105 | "print(nilai[-1])\n", 106 | "print(nilai[-3])\n", 107 | "\n", 108 | "print(peserta[-2])" 109 | ] 110 | }, 111 | { 112 | "cell_type": "markdown", 113 | "metadata": {}, 114 | "source": [ 115 | "## 2.2 Menambah Elemen ke Dalam List" 116 | ] 117 | }, 118 | { 119 | "cell_type": "code", 120 | "execution_count": 107, 121 | "metadata": {}, 122 | "outputs": [ 123 | { 124 | "name": "stdout", 125 | "output_type": "stream", 126 | "text": [ 127 | "[40, 50, 60, 70]\n" 128 | ] 129 | } 130 | ], 131 | "source": [ 132 | "nilai.append(90)\n", 133 | "nilai.extend([10,20,30,40])\n", 134 | "\n", 135 | "print(nilai)\n", 136 | "\n", 137 | "#MENGHAPUS ELEMEN PADA LIST\n", 138 | "del nilai[0]\n", 139 | "\n", 140 | "# List Function in Python" 141 | ] 142 | }, 143 | { 144 | "cell_type": "markdown", 145 | "metadata": {}, 146 | "source": [ 147 | "## 2.3 Slicing List\n", 148 | "Slicing digunakan untuk memilih beberapa kelompok nilai dari list dengan memanfaatkan range index" 149 | ] 150 | }, 151 | { 152 | "cell_type": "code", 153 | "execution_count": null, 154 | "metadata": {}, 155 | "outputs": [], 156 | "source": [ 157 | "print(nilai)\n", 158 | "\n", 159 | "# elemen ke 3 sampai ke 5\n", 160 | "print(nilai[2:5])\n", 161 | "\n", 162 | "# ...\n", 163 | "print(nilai[:-2])\n", 164 | "\n", 165 | "# ...\n", 166 | "print(nilai[5:])\n", 167 | "\n", 168 | "# ...\n", 169 | "print(nilai[:])" 170 | ] 171 | }, 172 | { 173 | "cell_type": "markdown", 174 | "metadata": {}, 175 | "source": [ 176 | "## 2.4 Perulangan dalam List\n", 177 | "Dalam mengakses setiap elemen dalam list, kita dapat menggunakan sintaks perulangan for yang telah kita pelajari sebelumnya" 178 | ] 179 | }, 180 | { 181 | "cell_type": "code", 182 | "execution_count": 109, 183 | "metadata": {}, 184 | "outputs": [ 185 | { 186 | "name": "stdout", 187 | "output_type": "stream", 188 | "text": [ 189 | "900\n", 190 | "1600\n", 191 | "2500\n", 192 | "3600\n", 193 | "4900\n", 194 | "6400\n", 195 | "8100\n", 196 | "(0, 30)\n", 197 | "(1, 40)\n", 198 | "(2, 50)\n", 199 | "(3, 60)\n", 200 | "(4, 70)\n", 201 | "(5, 80)\n", 202 | "(6, 90)\n" 203 | ] 204 | } 205 | ], 206 | "source": [ 207 | "for n in nilai:\n", 208 | " print(n**2)\n", 209 | "\n", 210 | "# Mengikutkan Indeksnya\n", 211 | "for i,n in enumerate(nilai):\n", 212 | " print(i,n)" 213 | ] 214 | }, 215 | { 216 | "cell_type": "markdown", 217 | "metadata": {}, 218 | "source": [ 219 | "### Contoh\n", 220 | "Berapakah rata-rata nilai dari list tersebut?" 221 | ] 222 | }, 223 | { 224 | "cell_type": "code", 225 | "execution_count": 111, 226 | "metadata": {}, 227 | "outputs": [ 228 | { 229 | "name": "stdout", 230 | "output_type": "stream", 231 | "text": [ 232 | "60.0\n" 233 | ] 234 | } 235 | ], 236 | "source": [ 237 | "# ALGORITMA RATA-RATA\n", 238 | "total = 0.0\n", 239 | "for n in nilai:\n", 240 | " total = total + float(n)\n", 241 | " \n", 242 | "rata = total / len(nilai)\n", 243 | "print(rata)" 244 | ] 245 | }, 246 | { 247 | "cell_type": "markdown", 248 | "metadata": {}, 249 | "source": [ 250 | "## Lookup Nilai dalam List" 251 | ] 252 | }, 253 | { 254 | "cell_type": "code", 255 | "execution_count": 113, 256 | "metadata": {}, 257 | "outputs": [ 258 | { 259 | "name": "stdout", 260 | "output_type": "stream", 261 | "text": [ 262 | "(92, 'tidak ada dalam list')\n" 263 | ] 264 | } 265 | ], 266 | "source": [ 267 | "n = 92\n", 268 | "if n in nilai:\n", 269 | " print(n, \"ada dalam list\")\n", 270 | "else:\n", 271 | " print(n, \"tidak ada dalam list\")" 272 | ] 273 | }, 274 | { 275 | "cell_type": "markdown", 276 | "metadata": {}, 277 | "source": [ 278 | "## 2.5 Latihan\n", 279 | "Tampilkan Nilai dari list nilai yang Lebih dari sama dengan (>=) rata-ratanya" 280 | ] 281 | }, 282 | { 283 | "cell_type": "markdown", 284 | "metadata": {}, 285 | "source": [ 286 | "# 3. Tuple\n", 287 | "Tuple merupakan tipe data yang mirip dengan list, namun berifat immutable atau tidak dapat ditambah dan diubah nilainya. Keuntungan dari penggunaan tuple adalah, pengaksesan datanya lebih cepat." 288 | ] 289 | }, 290 | { 291 | "cell_type": "code", 292 | "execution_count": null, 293 | "metadata": {}, 294 | "outputs": [], 295 | "source": [ 296 | "# Deklarasi Tuple\n", 297 | "bulan = (\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"November\",\"Desember\")\n", 298 | "print(bulan)" 299 | ] 300 | }, 301 | { 302 | "cell_type": "markdown", 303 | "metadata": {}, 304 | "source": [ 305 | "## 3.1 Akses Elemen dan Slicing\n", 306 | "Konsep dalam melakukan akses elemen dan slicing sama persis dengan di list" 307 | ] 308 | }, 309 | { 310 | "cell_type": "code", 311 | "execution_count": null, 312 | "metadata": {}, 313 | "outputs": [], 314 | "source": [ 315 | "print(bulan[0])\n", 316 | "print(bulan[4])\n", 317 | "print(bulan[-1])\n", 318 | "print(bulan[-3])" 319 | ] 320 | }, 321 | { 322 | "cell_type": "code", 323 | "execution_count": null, 324 | "metadata": {}, 325 | "outputs": [], 326 | "source": [ 327 | "print(bulan[2:5])\n", 328 | "\n", 329 | "print(bulan[:-5])\n", 330 | "\n", 331 | "print(bulan[5:])\n", 332 | "\n", 333 | "print(bulan[:])" 334 | ] 335 | }, 336 | { 337 | "cell_type": "markdown", 338 | "metadata": {}, 339 | "source": [ 340 | "## 3.2 Perulangan dalam Tuple\n", 341 | "Konsep perulangan juga sama dengan list" 342 | ] 343 | }, 344 | { 345 | "cell_type": "code", 346 | "execution_count": null, 347 | "metadata": {}, 348 | "outputs": [], 349 | "source": [ 350 | "for b in bulan:\n", 351 | " print(b)" 352 | ] 353 | }, 354 | { 355 | "cell_type": "markdown", 356 | "metadata": {}, 357 | "source": [ 358 | "# 4. Dictionary\n", 359 | "Dictionary dalam Python berbeda dengan List ataupun Tuple. Karena setiap urutanya berisi key dan value. Setiap key dipisahkan dari value-nya oleh titik dua (:), item dipisahkan oleh koma, dan semuanya tertutup dalam kurung kurawal. Dictionary kosong tanpa barang ditulis hanya dengan dua kurung kurawal, seperti ini: {}." 360 | ] 361 | }, 362 | { 363 | "cell_type": "markdown", 364 | "metadata": {}, 365 | "source": [ 366 | "## 4.1 Membuat dan Mengakses Dictionary" 367 | ] 368 | }, 369 | { 370 | "cell_type": "code", 371 | "execution_count": null, 372 | "metadata": {}, 373 | "outputs": [], 374 | "source": [ 375 | "siswa = {'Nama': 'Budi', 'Umur': 7, 'JenisKelamin': 'Laki-Laki'}\n", 376 | "siswa2 = {'Nama': 'Ani', 'Umur': 8, 'JenisKelamin': 'Perempuan'}\n", 377 | "print(siswa)\n", 378 | "print(siswa['Nama'])\n", 379 | "print(siswa['Umur'])\n", 380 | "print(siswa['JenisKelamin'])\n", 381 | "\n", 382 | "list_siswa = []\n", 383 | "list_siswa.append(siswa)\n", 384 | "list_siswa.append(siswa2)\n", 385 | "print(list_siswa[0])" 386 | ] 387 | }, 388 | { 389 | "cell_type": "markdown", 390 | "metadata": {}, 391 | "source": [ 392 | "## 4.2 Mengubah nilai Dictionary" 393 | ] 394 | }, 395 | { 396 | "cell_type": "code", 397 | "execution_count": null, 398 | "metadata": {}, 399 | "outputs": [], 400 | "source": [ 401 | "siswa['Nama'] = 'Deni'\n", 402 | "print(siswa)" 403 | ] 404 | }, 405 | { 406 | "cell_type": "markdown", 407 | "metadata": {}, 408 | "source": [ 409 | "# 4.3 Menambahkan Elemen" 410 | ] 411 | }, 412 | { 413 | "cell_type": "code", 414 | "execution_count": null, 415 | "metadata": {}, 416 | "outputs": [], 417 | "source": [ 418 | "siswa['Alamat'] = \"Jl. Kaliurang KM 5\"\n", 419 | "print(siswa)" 420 | ] 421 | }, 422 | { 423 | "cell_type": "code", 424 | "execution_count": null, 425 | "metadata": {}, 426 | "outputs": [], 427 | "source": [ 428 | "# List sebagai nilai dari elemen Dictionary\n", 429 | "siswa[\"Nilai\"] = nilai\n", 430 | "print(siswa)\n", 431 | "\n", 432 | "for n in siswa[\"Nilai\"]:\n", 433 | " print(n)" 434 | ] 435 | }, 436 | { 437 | "cell_type": "code", 438 | "execution_count": null, 439 | "metadata": {}, 440 | "outputs": [], 441 | "source": [ 442 | "for l in list_siswa:\n", 443 | " print(\"============\")\n", 444 | " for k,v in l.items():\n", 445 | " print(k,v)" 446 | ] 447 | }, 448 | { 449 | "cell_type": "markdown", 450 | "metadata": {}, 451 | "source": [ 452 | "# 5. Operasi String\n", 453 | "Pada pertemuan sebelumnya telah dijelaskan mengenai string. Dalam python cukup banyak operasi yang dikenakan pada string, yang akan berguna dalam analisis data.\n", 454 | "\n", 455 | "## 5.1 Slicing dan Akses per Karakter" 456 | ] 457 | }, 458 | { 459 | "cell_type": "code", 460 | "execution_count": null, 461 | "metadata": {}, 462 | "outputs": [], 463 | "source": [ 464 | "nama = \"Tutorial Bahasa Pemrograman Python\"\n", 465 | "print(nama[0:6])\n", 466 | "print(nama[20:30])" 467 | ] 468 | }, 469 | { 470 | "cell_type": "code", 471 | "execution_count": null, 472 | "metadata": {}, 473 | "outputs": [], 474 | "source": [ 475 | "for n in nama:\n", 476 | " print(n)" 477 | ] 478 | }, 479 | { 480 | "cell_type": "markdown", 481 | "metadata": {}, 482 | "source": [ 483 | "## 5.2 Merubah String menjadi list Kata\n", 484 | "Menggunakan fungsi split. Fungsi split dapat diberikan parameter berupa karakter pemisahnya. Jika tidak diberikan parameter maka secara default, pemisahnya adalah spasi." 485 | ] 486 | }, 487 | { 488 | "cell_type": "code", 489 | "execution_count": null, 490 | "metadata": {}, 491 | "outputs": [], 492 | "source": [ 493 | "kata = nama.split()\n", 494 | "print(kata)\n", 495 | "print(kata[0])\n", 496 | "print(kata[2])\n", 497 | "\n", 498 | "paragraf = \"Pada hari minggu kuturut ayah ke kota. Naik Delman istimewa kududuk di muka. Duduk disamping pak kusir yang sedang bekerja\"\n", 499 | "kalimat = paragraf.split(\".\")\n", 500 | "print(kalimat)\n", 501 | "print(kalimat[2])" 502 | ] 503 | }, 504 | { 505 | "cell_type": "markdown", 506 | "metadata": {}, 507 | "source": [ 508 | "## 5.3 Pencarian kata dalam String" 509 | ] 510 | }, 511 | { 512 | "cell_type": "code", 513 | "execution_count": null, 514 | "metadata": {}, 515 | "outputs": [], 516 | "source": [ 517 | "cari = 'Pythonn'\n", 518 | "if cari in nama:\n", 519 | " print(\"Found!\")\n", 520 | "else:\n", 521 | " print(\"Not Found!\")" 522 | ] 523 | }, 524 | { 525 | "cell_type": "markdown", 526 | "metadata": {}, 527 | "source": [ 528 | "# 5.4 Replace String" 529 | ] 530 | }, 531 | { 532 | "cell_type": "code", 533 | "execution_count": null, 534 | "metadata": {}, 535 | "outputs": [], 536 | "source": [ 537 | "paragraf = \"Pada hari minggu kuturut ayah ke kota. Naik Delman istimewa kududuk di muka. Duduk disamping pak kusir yang sedang bekerja\"\n", 538 | "paragraf = paragraf.replace('minggu','senin')\n", 539 | "paragraf = paragraf.replace('ayah','ibu')\n", 540 | "print(paragraf)\n" 541 | ] 542 | }, 543 | { 544 | "cell_type": "markdown", 545 | "metadata": {}, 546 | "source": [ 547 | "# 5.5 Panjang String, Lowercase, Uppercase" 548 | ] 549 | }, 550 | { 551 | "cell_type": "code", 552 | "execution_count": null, 553 | "metadata": {}, 554 | "outputs": [], 555 | "source": [ 556 | "print(len(nama))\n", 557 | "print(nama.upper())\n", 558 | "print(nama.lower())" 559 | ] 560 | }, 561 | { 562 | "cell_type": "markdown", 563 | "metadata": {}, 564 | "source": [ 565 | "# LATIHAN 2 - Tugas List Nilai\n", 566 | "\n", 567 | "Diberikan sekumpulan Nilai Random antara 0 sampai dengan 100 sebanyak 250 nilai. Buatlah program untuk melakukan hal berikut:\n", 568 | "1. Tampilkan Angka Ganjil dari ke 250 nilai tersebut\n", 569 | "2. Tampilkan berapa banyak yang mendapatkan nilai lebih dari 70\n", 570 | "3. Tampilkan standar deviasi dari sekumpulan nilai tersebut\n", 571 | "4. Tampilkan nilai maksimum dan minimum\n", 572 | "5. Tampilkan modus dari sekumpulan nilai tersebut" 573 | ] 574 | }, 575 | { 576 | "cell_type": "code", 577 | "execution_count": null, 578 | "metadata": {}, 579 | "outputs": [], 580 | "source": [ 581 | "import random\n", 582 | "\n", 583 | "# GENERATE RANDOM\n", 584 | "nilaiTugas = []\n", 585 | "for i in range(250):\n", 586 | " nilaiTugas.append(random.randrange(1,100,1))\n", 587 | "\n", 588 | "print(nilaiTugas)\n", 589 | "\n", 590 | "# TAMPILKAN:\n", 591 | "# ganjil\n", 592 | "# nilai > 70\n", 593 | "# standar deviasi\n", 594 | "# maksimum\n", 595 | "# minimum\n", 596 | "# modus" 597 | ] 598 | }, 599 | { 600 | "cell_type": "markdown", 601 | "metadata": {}, 602 | "source": [ 603 | "# LATIHAN 3 - Word Count\n", 604 | "Diberikan sebuah paragraf, hitunglah banyak kemunculan masing-masing kata.\n", 605 | "Contoh : \"Presiden pagi ini melakukan kunjungan ke Jogja\"\n", 606 | "\n", 607 | "- presiden: 1\n", 608 | "- pagi: 1\n", 609 | "- ini: 1\n", 610 | "- melakukan: 1\n", 611 | "- kunjungan: 1\n", 612 | "- ke: 1\n", 613 | "- jogja: 1\n", 614 | "\n", 615 | "hints: Gunakan Dictionary dalam menyimpan word count. Gunakan kata sebagai key, dan jumlah kemunculan sebagai value" 616 | ] 617 | }, 618 | { 619 | "cell_type": "code", 620 | "execution_count": null, 621 | "metadata": {}, 622 | "outputs": [], 623 | "source": [ 624 | "paragraf = \"Barcelona berhasil merebut posisi puncak klasemen La Liga Spanyol seusai menang 4-2 atas Sevilla pada pertandingan pekan kesembilan di Stadion Camp Nou, Sabtu (20/10/2018) atau Minggu dini hari WIB. Barcelona membuka keunggulan pada menit ke-2 melalui gol yang dicetak oleh Philippe Coutinho. Lionel Messi menggandakan keunggulan Barcelona, 10 menit berselang. Namun, nahas bagi Barcelona, karena Messi harus ditarik keluar pada menit ke-26 setelah mengalami cedera. Tanpa Messi, skor 2-0 bertahan hingga babak pertama berakhir.\"\n", 625 | "print(paragraf)" 626 | ] 627 | } 628 | ], 629 | "metadata": { 630 | "kernelspec": { 631 | "display_name": "Python 2", 632 | "language": "python", 633 | "name": "python2" 634 | }, 635 | "language_info": { 636 | "codemirror_mode": { 637 | "name": "ipython", 638 | "version": 2 639 | }, 640 | "file_extension": ".py", 641 | "mimetype": "text/x-python", 642 | "name": "python", 643 | "nbconvert_exporter": "python", 644 | "pygments_lexer": "ipython2", 645 | "version": "2.7.15" 646 | } 647 | }, 648 | "nbformat": 4, 649 | "nbformat_minor": 2 650 | } 651 | -------------------------------------------------------------------------------- /02 - Pengenalan Python - List, Tuple, Dictionary, String, Perulangan.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# 1. Perulangan / Looping\n", 8 | "Sintaks yang digunakan untuk menjalankan sebuah kode program secara berulang kali hingga step yang ditentukan" 9 | ] 10 | }, 11 | { 12 | "cell_type": "code", 13 | "execution_count": 2, 14 | "metadata": {}, 15 | "outputs": [ 16 | { 17 | "name": "stdout", 18 | "output_type": "stream", 19 | "text": [ 20 | "5 3125\n", 21 | "6 46656\n", 22 | "7 823543\n", 23 | "8 16777216\n", 24 | "9 387420489\n" 25 | ] 26 | } 27 | ], 28 | "source": [ 29 | "#SINTAKS FOR\n", 30 | "for i in range(5,10):\n", 31 | " print(i,i**i)" 32 | ] 33 | }, 34 | { 35 | "cell_type": "code", 36 | "execution_count": null, 37 | "metadata": {}, 38 | "outputs": [], 39 | "source": [ 40 | "#SINTAKS WHILE\n", 41 | "i=5\n", 42 | "while(i<10):\n", 43 | " print(i,i**i)\n" 44 | ] 45 | }, 46 | { 47 | "cell_type": "markdown", 48 | "metadata": {}, 49 | "source": [ 50 | "# 2. List\n", 51 | "Tipe data yang digunakan untuk menyimpan beberapa nilai dalam satu variabel" 52 | ] 53 | }, 54 | { 55 | "cell_type": "code", 56 | "execution_count": 12, 57 | "metadata": {}, 58 | "outputs": [ 59 | { 60 | "name": "stdout", 61 | "output_type": "stream", 62 | "text": [ 63 | "[30, 40, 50, 60, 70, 80, 90]\n", 64 | "['Ani', 'Budi', 'Catra', 'Desi']\n", 65 | "['Big', 2.5, 90, 'Data']\n" 66 | ] 67 | } 68 | ], 69 | "source": [ 70 | "# Deklarasi List\n", 71 | "\n", 72 | "#Dapat Berisi Angka\n", 73 | "nilai = [30,40,50,60,70,80,90]\n", 74 | "print(nilai)\n", 75 | "\n", 76 | "#Dapat berisi String\n", 77 | "peserta = ['Ani','Budi','Catra','Desi']\n", 78 | "print(peserta)\n", 79 | "\n", 80 | "#Dapat juga berisi campuran tipe data\n", 81 | "campuran = ['Big',2.5, 90, 'Data']\n", 82 | "print(campuran)" 83 | ] 84 | }, 85 | { 86 | "cell_type": "markdown", 87 | "metadata": {}, 88 | "source": [ 89 | "## 2.1 List Index\n", 90 | "Untuk mengakses elemen tertentu di dalam list, kita dapat menggunakan list index. Index list dimulai dari 0. Index di dalam python juga dapat dibuat negatif, yang artinya index akan ditelusuri dari belakang\n", 91 | "\n", 92 | "| 30 | 40 | 50 | 60 | 70 | 80 | 90 |\n", 93 | "|----|----|----|----|----|----|----|\n", 94 | "| 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |" 95 | ] 96 | }, 97 | { 98 | "cell_type": "code", 99 | "execution_count": 13, 100 | "metadata": {}, 101 | "outputs": [ 102 | { 103 | "name": "stdout", 104 | "output_type": "stream", 105 | "text": [ 106 | "30\n", 107 | "70\n", 108 | "90\n", 109 | "70\n" 110 | ] 111 | } 112 | ], 113 | "source": [ 114 | "print(nilai[0])\n", 115 | "print(nilai[4])\n", 116 | "print(nilai[-1])\n", 117 | "print(nilai[-3])\n" 118 | ] 119 | }, 120 | { 121 | "cell_type": "markdown", 122 | "metadata": {}, 123 | "source": [ 124 | "## 2.2 Menambah Elemen ke Dalam List" 125 | ] 126 | }, 127 | { 128 | "cell_type": "code", 129 | "execution_count": 14, 130 | "metadata": {}, 131 | "outputs": [ 132 | { 133 | "name": "stdout", 134 | "output_type": "stream", 135 | "text": [ 136 | "[30, 40, 50, 60, 70, 80, 90, 90, 10, 20, 30, 40]\n" 137 | ] 138 | } 139 | ], 140 | "source": [ 141 | "nilai.append(90)\n", 142 | "nilai.extend([10,20,30,40])\n", 143 | "\n", 144 | "print(nilai)\n", 145 | "\n", 146 | "#MENGHAPUS ELEMEN PADA LIST\n", 147 | "del nilai[0]\n", 148 | "\n", 149 | "# List Function in Python" 150 | ] 151 | }, 152 | { 153 | "cell_type": "markdown", 154 | "metadata": {}, 155 | "source": [ 156 | "## 2.3 Slicing List\n", 157 | "Slicing digunakan untuk memilih beberapa kelompok nilai dari list dengan memanfaatkan range index" 158 | ] 159 | }, 160 | { 161 | "cell_type": "code", 162 | "execution_count": 15, 163 | "metadata": {}, 164 | "outputs": [ 165 | { 166 | "name": "stdout", 167 | "output_type": "stream", 168 | "text": [ 169 | "[40, 50, 60, 70, 80, 90, 90, 10, 20, 30, 40]\n", 170 | "[60, 70, 80]\n", 171 | "[40, 50, 60, 70, 80, 90, 90, 10, 20]\n", 172 | "[90, 90, 10, 20, 30, 40]\n", 173 | "[40, 50, 60, 70, 80, 90, 90, 10, 20, 30, 40]\n" 174 | ] 175 | } 176 | ], 177 | "source": [ 178 | "print(nilai)\n", 179 | "\n", 180 | "# elemen ke 3 sampai ke 5\n", 181 | "print(nilai[2:5])\n", 182 | "\n", 183 | "# ...\n", 184 | "print(nilai[:-2])\n", 185 | "\n", 186 | "# ...\n", 187 | "print(nilai[5:])\n", 188 | "\n", 189 | "# ...\n", 190 | "print(nilai[:])" 191 | ] 192 | }, 193 | { 194 | "cell_type": "markdown", 195 | "metadata": {}, 196 | "source": [ 197 | "## 2.4 Perulangan dalam List\n", 198 | "Dalam mengakses setiap elemen dalam list, kita dapat menggunakan sintaks perulangan for yang telah kita pelajari sebelumnya" 199 | ] 200 | }, 201 | { 202 | "cell_type": "code", 203 | "execution_count": 16, 204 | "metadata": {}, 205 | "outputs": [ 206 | { 207 | "name": "stdout", 208 | "output_type": "stream", 209 | "text": [ 210 | "1600\n", 211 | "2500\n", 212 | "3600\n", 213 | "4900\n", 214 | "6400\n", 215 | "8100\n", 216 | "8100\n", 217 | "100\n", 218 | "400\n", 219 | "900\n", 220 | "1600\n" 221 | ] 222 | } 223 | ], 224 | "source": [ 225 | "for n in nilai:\n", 226 | " print(n**2)\n", 227 | "\n" 228 | ] 229 | }, 230 | { 231 | "cell_type": "markdown", 232 | "metadata": {}, 233 | "source": [ 234 | "### Contoh\n", 235 | "Berapakah rata-rata nilai dari list tersebut?" 236 | ] 237 | }, 238 | { 239 | "cell_type": "code", 240 | "execution_count": 17, 241 | "metadata": {}, 242 | "outputs": [ 243 | { 244 | "name": "stdout", 245 | "output_type": "stream", 246 | "text": [ 247 | "[40, 50, 60, 70, 80, 90, 90, 10, 20, 30, 40]\n", 248 | "52.72727272727273\n" 249 | ] 250 | } 251 | ], 252 | "source": [ 253 | "# ALGORITMA RATA-RATA\n", 254 | "total = 0.0\n", 255 | "print(nilai)\n", 256 | "for n in nilai:\n", 257 | " total = total + float(n)\n", 258 | " \n", 259 | "rata = total / len(nilai)\n", 260 | "print(rata)" 261 | ] 262 | }, 263 | { 264 | "cell_type": "markdown", 265 | "metadata": {}, 266 | "source": [ 267 | "## Lookup Nilai dalam List" 268 | ] 269 | }, 270 | { 271 | "cell_type": "code", 272 | "execution_count": 19, 273 | "metadata": {}, 274 | "outputs": [ 275 | { 276 | "name": "stdout", 277 | "output_type": "stream", 278 | "text": [ 279 | "90 ada dalam list\n" 280 | ] 281 | } 282 | ], 283 | "source": [ 284 | "n = 90\n", 285 | "if n in nilai:\n", 286 | " print(n, \"ada dalam list\")\n", 287 | "else:\n", 288 | " print(n, \"tidak ada dalam list\")" 289 | ] 290 | }, 291 | { 292 | "cell_type": "markdown", 293 | "metadata": {}, 294 | "source": [ 295 | "## 2.5 Latihan\n", 296 | "Tampilkan Nilai dari list nilai yang Lebih dari sama dengan (>=) rata-ratanya.\n", 297 | "\n", 298 | "tugas = [66,77,88,99,55,54]\n", 299 | "\n", 300 | "Tampilkan nilai dari list tugas yang Genap " 301 | ] 302 | }, 303 | { 304 | "cell_type": "code", 305 | "execution_count": 21, 306 | "metadata": {}, 307 | "outputs": [ 308 | { 309 | "name": "stdout", 310 | "output_type": "stream", 311 | "text": [ 312 | "66\n", 313 | "88\n", 314 | "54\n" 315 | ] 316 | } 317 | ], 318 | "source": [ 319 | "tugas = [66,77,88,99,55,54]\n", 320 | "for n in tugas:\n", 321 | " if n%2==0:\n", 322 | " print(n)" 323 | ] 324 | }, 325 | { 326 | "cell_type": "markdown", 327 | "metadata": {}, 328 | "source": [ 329 | "# 3. Tuple\n", 330 | "Tuple merupakan tipe data yang mirip dengan list, namun berifat immutable atau tidak dapat ditambah dan diubah nilainya. Keuntungan dari penggunaan tuple adalah, pengaksesan datanya lebih cepat." 331 | ] 332 | }, 333 | { 334 | "cell_type": "code", 335 | "execution_count": null, 336 | "metadata": {}, 337 | "outputs": [], 338 | "source": [ 339 | "# Deklarasi Tuple\n", 340 | "bulan = (\"Januari\",\"Februari\",\"Maret\",\"April\",\"Mei\",\"Juni\",\"Juli\",\"Agustus\",\"September\",\"Oktober\",\"November\",\"Desember\")\n", 341 | "print(bulan)" 342 | ] 343 | }, 344 | { 345 | "cell_type": "markdown", 346 | "metadata": {}, 347 | "source": [ 348 | "## 3.1 Akses Elemen dan Slicing\n", 349 | "Konsep dalam melakukan akses elemen dan slicing sama persis dengan di list" 350 | ] 351 | }, 352 | { 353 | "cell_type": "code", 354 | "execution_count": null, 355 | "metadata": {}, 356 | "outputs": [], 357 | "source": [ 358 | "print(bulan[0])\n", 359 | "print(bulan[4])\n", 360 | "print(bulan[-1])\n", 361 | "print(bulan[-3])" 362 | ] 363 | }, 364 | { 365 | "cell_type": "code", 366 | "execution_count": null, 367 | "metadata": {}, 368 | "outputs": [], 369 | "source": [ 370 | "print(bulan[2:5])\n", 371 | "\n", 372 | "print(bulan[:-5])\n", 373 | "\n", 374 | "print(bulan[5:])\n", 375 | "\n", 376 | "print(bulan[:])" 377 | ] 378 | }, 379 | { 380 | "cell_type": "markdown", 381 | "metadata": {}, 382 | "source": [ 383 | "## 3.2 Perulangan dalam Tuple\n", 384 | "Konsep perulangan juga sama dengan list" 385 | ] 386 | }, 387 | { 388 | "cell_type": "code", 389 | "execution_count": null, 390 | "metadata": {}, 391 | "outputs": [], 392 | "source": [ 393 | "for b in bulan:\n", 394 | " print(b)" 395 | ] 396 | }, 397 | { 398 | "cell_type": "markdown", 399 | "metadata": {}, 400 | "source": [ 401 | "# 4. Dictionary\n", 402 | "Dictionary dalam Python berbeda dengan List ataupun Tuple. Karena setiap urutanya berisi key dan value. Setiap key dipisahkan dari value-nya oleh titik dua (:), item dipisahkan oleh koma, dan semuanya tertutup dalam kurung kurawal. Dictionary kosong tanpa barang ditulis hanya dengan dua kurung kurawal, seperti ini: {}." 403 | ] 404 | }, 405 | { 406 | "cell_type": "markdown", 407 | "metadata": {}, 408 | "source": [ 409 | "## 4.1 Membuat dan Mengakses Dictionary" 410 | ] 411 | }, 412 | { 413 | "cell_type": "code", 414 | "execution_count": null, 415 | "metadata": {}, 416 | "outputs": [], 417 | "source": [ 418 | "hasil = \n", 419 | "print(siswa)\n", 420 | "print(siswa['Nama'])\n", 421 | "print(siswa['Umur'])\n", 422 | "print(siswa['JenisKelamin'])\n", 423 | "\n", 424 | "list_siswa = []\n", 425 | "list_siswa.append(siswa)\n", 426 | "list_siswa.append(siswa2)\n", 427 | "print(list_siswa)\n", 428 | "\n" 429 | ] 430 | }, 431 | { 432 | "cell_type": "code", 433 | "execution_count": null, 434 | "metadata": {}, 435 | "outputs": [], 436 | "source": [ 437 | "for k,v in siswa.items():\n", 438 | " print(k,v)" 439 | ] 440 | }, 441 | { 442 | "cell_type": "markdown", 443 | "metadata": {}, 444 | "source": [ 445 | "## 4.2 Mengubah nilai Dictionary" 446 | ] 447 | }, 448 | { 449 | "cell_type": "code", 450 | "execution_count": null, 451 | "metadata": {}, 452 | "outputs": [], 453 | "source": [ 454 | "siswa['Nama'] = 'Deni'\n", 455 | "print(siswa)" 456 | ] 457 | }, 458 | { 459 | "cell_type": "markdown", 460 | "metadata": {}, 461 | "source": [ 462 | "# 4.3 Menambahkan Elemen" 463 | ] 464 | }, 465 | { 466 | "cell_type": "code", 467 | "execution_count": null, 468 | "metadata": {}, 469 | "outputs": [], 470 | "source": [ 471 | "siswa['Alamat'] = \"Jl. Kaliurang KM 5\"\n", 472 | "print(siswa)" 473 | ] 474 | }, 475 | { 476 | "cell_type": "code", 477 | "execution_count": null, 478 | "metadata": {}, 479 | "outputs": [], 480 | "source": [ 481 | "# List sebagai nilai dari elemen Dictionary\n", 482 | "siswa[\"Nilai\"] = nilai\n", 483 | "print(siswa)\n", 484 | "\n", 485 | "for n in siswa[\"Nilai\"]:\n", 486 | " print(n)" 487 | ] 488 | }, 489 | { 490 | "cell_type": "code", 491 | "execution_count": null, 492 | "metadata": {}, 493 | "outputs": [], 494 | "source": [ 495 | "for l in list_siswa:\n", 496 | " print(\"============\")\n", 497 | " for k,v in l.items():\n", 498 | " print(k,v)" 499 | ] 500 | }, 501 | { 502 | "cell_type": "markdown", 503 | "metadata": {}, 504 | "source": [ 505 | "# 5. Operasi String\n", 506 | "Pada pertemuan sebelumnya telah dijelaskan mengenai string. Dalam python cukup banyak operasi yang dikenakan pada string, yang akan berguna dalam analisis data.\n", 507 | "\n", 508 | "## 5.1 Slicing dan Akses per Karakter" 509 | ] 510 | }, 511 | { 512 | "cell_type": "code", 513 | "execution_count": null, 514 | "metadata": {}, 515 | "outputs": [], 516 | "source": [ 517 | "nama = \"Tutorial Bahasa Pemrograman Python\"\n", 518 | "print(nama[0:6])\n", 519 | "print(nama[20:30])\n", 520 | "print(nama[-6:])" 521 | ] 522 | }, 523 | { 524 | "cell_type": "code", 525 | "execution_count": null, 526 | "metadata": {}, 527 | "outputs": [], 528 | "source": [ 529 | "for n in nama:\n", 530 | " print(n)" 531 | ] 532 | }, 533 | { 534 | "cell_type": "markdown", 535 | "metadata": {}, 536 | "source": [ 537 | "## 5.2 Merubah String menjadi list Kata\n", 538 | "Menggunakan fungsi split. Fungsi split dapat diberikan parameter berupa karakter pemisahnya. Jika tidak diberikan parameter maka secara default, pemisahnya adalah spasi." 539 | ] 540 | }, 541 | { 542 | "cell_type": "code", 543 | "execution_count": null, 544 | "metadata": {}, 545 | "outputs": [], 546 | "source": [ 547 | "# kata = nama.split()\n", 548 | "# print(kata)\n", 549 | "# print(kata[0])\n", 550 | "# print(kata[2])\n", 551 | "\n", 552 | "paragraf = \"Pada hari minggu kuturut ayah ke kota. Naik Delman istimewa kududuk di muka. Duduk disamping pak kusir yang sedang bekerja\"\n", 553 | "kalimat = paragraf.split(\".\")\n", 554 | "print(kalimat)\n", 555 | "\n", 556 | "for k in kalimat:\n", 557 | " print(k.split())" 558 | ] 559 | }, 560 | { 561 | "cell_type": "markdown", 562 | "metadata": {}, 563 | "source": [ 564 | "## 5.3 Pencarian kata dalam String" 565 | ] 566 | }, 567 | { 568 | "cell_type": "code", 569 | "execution_count": null, 570 | "metadata": {}, 571 | "outputs": [], 572 | "source": [ 573 | "cari = 'Python'\n", 574 | "if cari in nama:\n", 575 | " print(\"Found!\")\n", 576 | "else:\n", 577 | " print(\"Not Found!\")\n", 578 | " \n", 579 | "cari = ['Python','Java','C++']\n", 580 | "for c in cari:\n", 581 | " if c in nama:\n", 582 | " print(c,\"Found!\")\n", 583 | " else:\n", 584 | " print(c,\"Not Found!\")" 585 | ] 586 | }, 587 | { 588 | "cell_type": "markdown", 589 | "metadata": {}, 590 | "source": [ 591 | "# 5.4 Replace String" 592 | ] 593 | }, 594 | { 595 | "cell_type": "code", 596 | "execution_count": null, 597 | "metadata": {}, 598 | "outputs": [], 599 | "source": [ 600 | "paragraf = \"Pd hr ini saya BljR\"\n", 601 | "paragraf = paragraf.lower()\n", 602 | "paragraf = paragraf.replace('pd','pada')\n", 603 | "paragraf = paragraf.replace('hr','hari')\n", 604 | "paragraf = paragraf.replace('bljr','belajar')\n", 605 | "print(paragraf)\n" 606 | ] 607 | }, 608 | { 609 | "cell_type": "markdown", 610 | "metadata": {}, 611 | "source": [ 612 | "# 5.5 Panjang String, Lowercase, Uppercase" 613 | ] 614 | }, 615 | { 616 | "cell_type": "code", 617 | "execution_count": null, 618 | "metadata": {}, 619 | "outputs": [], 620 | "source": [ 621 | "print(len(nama))\n", 622 | "print(nama.upper())\n", 623 | "print(nama.lower())" 624 | ] 625 | }, 626 | { 627 | "cell_type": "markdown", 628 | "metadata": {}, 629 | "source": [ 630 | "# LATIHAN 2 - Tugas List Nilai\n", 631 | "\n", 632 | "Diberikan sekumpulan Nilai Random antara 0 sampai dengan 100 sebanyak 250 nilai. Buatlah program untuk melakukan hal berikut:\n", 633 | "1. Tampilkan Angka Ganjil dari ke 250 nilai tersebut\n", 634 | "2. Tampilkan berapa banyak yang mendapatkan nilai lebih dari 70\n", 635 | "3. Tampilkan standar deviasi dari sekumpulan nilai tersebut\n", 636 | "4. Tampilkan nilai maksimum dan minimum\n", 637 | "5. Tampilkan modus dari sekumpulan nilai tersebut" 638 | ] 639 | }, 640 | { 641 | "cell_type": "code", 642 | "execution_count": null, 643 | "metadata": {}, 644 | "outputs": [], 645 | "source": [ 646 | "import random\n", 647 | "\n", 648 | "# GENERATE RANDOM\n", 649 | "nilaiTugas = []\n", 650 | "for i in range(250):\n", 651 | " nilaiTugas.append(random.randrange(1,100,1))\n", 652 | "\n", 653 | "print(nilaiTugas)\n", 654 | "\n", 655 | "# TAMPILKAN:\n", 656 | "# ganjil\n", 657 | "# nilai > 70\n", 658 | "# standar deviasi\n", 659 | "# maksimum\n", 660 | "# minimum\n", 661 | "# modus" 662 | ] 663 | }, 664 | { 665 | "cell_type": "markdown", 666 | "metadata": {}, 667 | "source": [ 668 | "# LATIHAN 3 - Word Count\n", 669 | "Diberikan sebuah paragraf, hitunglah banyak kemunculan masing-masing kata.\n", 670 | "Contoh : \"Presiden pagi ini melakukan kunjungan ke Jogja\"\n", 671 | "\n", 672 | "- presiden: 1\n", 673 | "- pagi: 1\n", 674 | "- ini: 1\n", 675 | "- melakukan: 1\n", 676 | "- kunjungan: 1\n", 677 | "- ke: 1\n", 678 | "- jogja: 1\n", 679 | "\n", 680 | "hints: Gunakan Dictionary dalam menyimpan word count. Gunakan kata sebagai key, dan jumlah kemunculan sebagai value" 681 | ] 682 | }, 683 | { 684 | "cell_type": "code", 685 | "execution_count": null, 686 | "metadata": {}, 687 | "outputs": [], 688 | "source": [ 689 | "paragraf = \"Barcelona berhasil merebut posisi puncak klasemen La Liga Spanyol seusai menang 4-2 atas Sevilla pada pertandingan pekan kesembilan di Stadion Camp Nou, Sabtu (20/10/2018) atau Minggu dini hari WIB. Barcelona membuka keunggulan pada menit ke-2 melalui gol yang dicetak oleh Philippe Coutinho. Lionel Messi menggandakan keunggulan Barcelona, 10 menit berselang. Namun, nahas bagi Barcelona, karena Messi harus ditarik keluar pada menit ke-26 setelah mengalami cedera. Tanpa Messi, skor 2-0 bertahan hingga babak pertama berakhir.\"\n", 690 | "paragraf = paragraf.replace(\"/\",\" \")\n", 691 | "paragraf = paragraf.replace(\"(\",\" \")\n", 692 | "paragraf = paragraf.replace(\")\",\" \")\n", 693 | "paragraf = paragraf.replace(\"-\",\" \")\n", 694 | "print(paragraf.split())" 695 | ] 696 | }, 697 | { 698 | "cell_type": "code", 699 | "execution_count": null, 700 | "metadata": {}, 701 | "outputs": [], 702 | "source": [] 703 | } 704 | ], 705 | "metadata": { 706 | "kernelspec": { 707 | "display_name": "Python 3", 708 | "language": "python", 709 | "name": "python3" 710 | } 711 | }, 712 | "nbformat": 4, 713 | "nbformat_minor": 2 714 | } 715 | -------------------------------------------------------------------------------- /01. Pengenalan Python - Variabel, Tipe Data, Operator, dan Statement Kondisi.ipynb: -------------------------------------------------------------------------------- 1 | { 2 | "cells": [ 3 | { 4 | "cell_type": "markdown", 5 | "metadata": {}, 6 | "source": [ 7 | "# DIGITAL TALENT \n", 8 | "\n", 9 | "Setelah mengikuti materi pertama ini peserta diharapkan dapat:\n", 10 | "1. Menjalankan sintaks dasar python\n", 11 | "2. Mengenal variabel serta mampu menggunakan variabel\n", 12 | "3. Mengetahui jenis-jenis tipe data dalam python\n", 13 | "4. Mengetahui jenis-jenis operator\n", 14 | "5. Dapat menggunakan operator aritmetika, assignment, perbandingan, serta logika \n", 15 | "6. Memahami algoritma dari statement kondisi\n", 16 | "7. Dapat menggunakan statement kondisi dalam kasus pemrograman" 17 | ] 18 | }, 19 | { 20 | "cell_type": "markdown", 21 | "metadata": {}, 22 | "source": [ 23 | "## Hello World !" 24 | ] 25 | }, 26 | { 27 | "cell_type": "code", 28 | "execution_count": 6, 29 | "metadata": {}, 30 | "outputs": [ 31 | { 32 | "name": "stdout", 33 | "output_type": "stream", 34 | "text": [ 35 | "40353607\n" 36 | ] 37 | } 38 | ], 39 | "source": [ 40 | "print(7**9)" 41 | ] 42 | }, 43 | { 44 | "cell_type": "markdown", 45 | "metadata": {}, 46 | "source": [ 47 | "## Variabel \n", 48 | "Variabel adalah tempat menyimpan nilai sementara. Berikut adalah cara mendeklarasikan, menginisialisasi variabel dan memanggil variabel dalam python:\n" 49 | ] 50 | }, 51 | { 52 | "cell_type": "code", 53 | "execution_count": 4, 54 | "metadata": {}, 55 | "outputs": [ 56 | { 57 | "name": "stdout", 58 | "output_type": "stream", 59 | "text": [ 60 | "\n", 61 | "\n" 62 | ] 63 | } 64 | ], 65 | "source": [ 66 | "nama = \"Guntur Budi Herwanto\"\n", 67 | "ph = 6\n", 68 | "\n", 69 | "print(type(nama))\n", 70 | "print(type(ph))" 71 | ] 72 | }, 73 | { 74 | "cell_type": "markdown", 75 | "metadata": {}, 76 | "source": [ 77 | "Nilai dalam variabel dapat diubah sewaktu waktu" 78 | ] 79 | }, 80 | { 81 | "cell_type": "code", 82 | "execution_count": 5, 83 | "metadata": {}, 84 | "outputs": [ 85 | { 86 | "name": "stdout", 87 | "output_type": "stream", 88 | "text": [ 89 | "Adiyo Hidayat\n" 90 | ] 91 | } 92 | ], 93 | "source": [ 94 | "nama = \"Guntur Budi Herwanto\"\n", 95 | "nama = \"Adiyo Hidayat\"\n", 96 | "\n", 97 | "print(nama)" 98 | ] 99 | }, 100 | { 101 | "cell_type": "markdown", 102 | "metadata": {}, 103 | "source": [ 104 | "Kita juga bisa memberikan beberapa nilai pada variabel secara langsung" 105 | ] 106 | }, 107 | { 108 | "cell_type": "code", 109 | "execution_count": 6, 110 | "metadata": {}, 111 | "outputs": [ 112 | { 113 | "name": "stdout", 114 | "output_type": "stream", 115 | "text": [ 116 | "5\n", 117 | "3.2\n", 118 | "Hello\n" 119 | ] 120 | } 121 | ], 122 | "source": [ 123 | "a, b, c = 5, 3.2, \"Hello\"\n", 124 | "\n", 125 | "print (a)\n", 126 | "print (b)\n", 127 | "print (c)" 128 | ] 129 | }, 130 | { 131 | "cell_type": "code", 132 | "execution_count": 13, 133 | "metadata": {}, 134 | "outputs": [ 135 | { 136 | "name": "stdout", 137 | "output_type": "stream", 138 | "text": [ 139 | "8\n", 140 | "8\n", 141 | "8\n" 142 | ] 143 | } 144 | ], 145 | "source": [ 146 | "x = y = z = 8\n", 147 | "\n", 148 | "print (x)\n", 149 | "print (y)\n", 150 | "print (z)" 151 | ] 152 | }, 153 | { 154 | "cell_type": "markdown", 155 | "metadata": {}, 156 | "source": [ 157 | "## TIPE DATA\n", 158 | "Dalam setiap nilai di variabel, terdapat sebuah tipe data tertentu. Pada python, terdapat beberapa tipe data:\n", 159 | "\n", 160 | "- Numbers\n", 161 | "- Strings\n", 162 | "- Boolean\n", 163 | "- List\n", 164 | "- Tuple\n", 165 | "- Set\n", 166 | "- Dictionary" 167 | ] 168 | }, 169 | { 170 | "cell_type": "markdown", 171 | "metadata": {}, 172 | "source": [ 173 | "### Numbers\n", 174 | "- Integer : Angka tanpa koma\n", 175 | "- Float : Angka dengan Koma" 176 | ] 177 | }, 178 | { 179 | "cell_type": "code", 180 | "execution_count": null, 181 | "metadata": {}, 182 | "outputs": [], 183 | "source": [ 184 | "a = 5\n", 185 | "print(a, \"mempunyai tipe\", type(a))\n", 186 | "\n", 187 | "a = 5.0\n", 188 | "print(a, \"mempunyai tipe\", type(a))" 189 | ] 190 | }, 191 | { 192 | "cell_type": "markdown", 193 | "metadata": {}, 194 | "source": [ 195 | "### Boolean\n", 196 | "Benar atau Salah?" 197 | ] 198 | }, 199 | { 200 | "cell_type": "code", 201 | "execution_count": 14, 202 | "metadata": {}, 203 | "outputs": [ 204 | { 205 | "name": "stdout", 206 | "output_type": "stream", 207 | "text": [ 208 | "False mempunyai tipe \n", 209 | "True mempunyai tipe \n" 210 | ] 211 | } 212 | ], 213 | "source": [ 214 | "a = 5>6\n", 215 | "print(a, \"mempunyai tipe\", type(a))\n", 216 | "\n", 217 | "a = 6>5\n", 218 | "print(a, \"mempunyai tipe\", type(a))" 219 | ] 220 | }, 221 | { 222 | "cell_type": "markdown", 223 | "metadata": {}, 224 | "source": [ 225 | "### String\n", 226 | "Kumpulan karakter" 227 | ] 228 | }, 229 | { 230 | "cell_type": "code", 231 | "execution_count": 1, 232 | "metadata": {}, 233 | "outputs": [ 234 | { 235 | "name": "stdout", 236 | "output_type": "stream", 237 | "text": [ 238 | "('Ini adalah sebuah string', 'mempunyai tipe', )\n" 239 | ] 240 | } 241 | ], 242 | "source": [ 243 | "a = \"Ini adalah sebuah string\"\n", 244 | "print(a, \"mempunyai tipe\", type(a))" 245 | ] 246 | }, 247 | { 248 | "cell_type": "markdown", 249 | "metadata": {}, 250 | "source": [ 251 | "### List & Tuple & Dictionary\n", 252 | "dibahas minggu depan" 253 | ] 254 | }, 255 | { 256 | "cell_type": "markdown", 257 | "metadata": {}, 258 | "source": [ 259 | "## Operator" 260 | ] 261 | }, 262 | { 263 | "cell_type": "markdown", 264 | "metadata": {}, 265 | "source": [ 266 | "### 1. Operator Aritmetika\n", 267 | "\n", 268 | "| Operator | Arti | Contoh |\n", 269 | "|----------|--------------------------------------------------------------------------------------------------|--------------------------|\n", 270 | "| + | Penambahan | x + y |\n", 271 | "| - | Pengurangan | x - y |\n", 272 | "| * | Perkalian | x * y |\n", 273 | "| / | Pembagian | x / y |\n", 274 | "| % | Modulo - Sisa Pembagian | x % y (sisa pembagian of x/y) |\n", 275 | "| // | Pembagian dan dibulatkan ke bawah | x // y |\n", 276 | "| ** | Eksponen - Pangkat | x**y (x pangkat y) |" 277 | ] 278 | }, 279 | { 280 | "cell_type": "code", 281 | "execution_count": 15, 282 | "metadata": {}, 283 | "outputs": [ 284 | { 285 | "name": "stdout", 286 | "output_type": "stream", 287 | "text": [ 288 | "9\n", 289 | "1.25\n", 290 | "1\n", 291 | "20\n", 292 | "625\n" 293 | ] 294 | } 295 | ], 296 | "source": [ 297 | "x = 5\n", 298 | "y = 4\n", 299 | "\n", 300 | "print(x+y)\n", 301 | "print(x/y)\n", 302 | "print(x//y)\n", 303 | "print(x*y)\n", 304 | "print(x**y)\n" 305 | ] 306 | }, 307 | { 308 | "cell_type": "markdown", 309 | "metadata": {}, 310 | "source": [ 311 | "### 2. Operator Assignment\n", 312 | "Pemberian Nilai, Updating Nilai" 313 | ] 314 | }, 315 | { 316 | "cell_type": "code", 317 | "execution_count": 16, 318 | "metadata": {}, 319 | "outputs": [ 320 | { 321 | "name": "stdout", 322 | "output_type": "stream", 323 | "text": [ 324 | "11\n", 325 | "55\n", 326 | "5\n" 327 | ] 328 | } 329 | ], 330 | "source": [ 331 | "a = 5\n", 332 | "b = 2\n", 333 | "a = a + 6\n", 334 | "print(a)\n", 335 | "a = a * 5\n", 336 | "print(a)\n", 337 | "a = b + 3\n", 338 | "print(a)" 339 | ] 340 | }, 341 | { 342 | "cell_type": "markdown", 343 | "metadata": {}, 344 | "source": [ 345 | "![alt text](https://www.freeiconspng.com/uploads/book-store-icon-31.png \"Bookstore\")\n", 346 | "\n", 347 | "## LATIHAN\n", 348 | "\n", 349 | "\n", 350 | "#### Pada keluaran buku terbaru, Harry Potter harga buku adalah Rp 100.000, tetapi toko buku mendapatkan diskon 40%. Pengiriman biaya Rp 9.000 untuk salinan pertama dan Rp 3.000 untuk setiap salinan tambahan. Berapa total biaya keseluruhan untuk pengiriman buku 60 eksemplar?" 351 | ] 352 | }, 353 | { 354 | "cell_type": "code", 355 | "execution_count": 19, 356 | "metadata": {}, 357 | "outputs": [ 358 | { 359 | "name": "stdout", 360 | "output_type": "stream", 361 | "text": [ 362 | "240000.0\n", 363 | "13000\n", 364 | "Harga Total = 1453000.0\n" 365 | ] 366 | } 367 | ], 368 | "source": [ 369 | "harga_buku = 300000\n", 370 | "diskon = 20.0\n", 371 | "ongkir_pertama = 8000\n", 372 | "ongkir_selanjutnya = 1000\n", 373 | "eksemplar = 6\n", 374 | "\n", 375 | "harga_setelah_diskon = harga_buku * (100-diskon)/100\n", 376 | "print(harga_setelah_diskon)\n", 377 | "\n", 378 | "harga_ongkir = ongkir_pertama + ongkir_selanjutnya * (eksemplar-1)\n", 379 | "print(harga_ongkir)\n", 380 | "\n", 381 | "harga_total = harga_setelah_diskon * eksemplar + harga_ongkir\n", 382 | "print(\"Harga Total = \",harga_total)\n" 383 | ] 384 | }, 385 | { 386 | "cell_type": "markdown", 387 | "metadata": {}, 388 | "source": [ 389 | "### 3. Operator Perbandingan\n", 390 | "| Operator | Meaning | Example |\n", 391 | "|----------|-------------------------|---------|\n", 392 | "| > | Lebih Dari | x > y |\n", 393 | "| < | Kurang Dari | x < y |\n", 394 | "| == | Sama Dengan | x == y |\n", 395 | "| != | Tidak Sam Dengan | x != y |\n", 396 | "| >= | Lebih dari sama dengan | x >= y |\n", 397 | "| <= | Kurang dari sama dengan | x <= y |" 398 | ] 399 | }, 400 | { 401 | "cell_type": "code", 402 | "execution_count": 20, 403 | "metadata": {}, 404 | "outputs": [ 405 | { 406 | "name": "stdout", 407 | "output_type": "stream", 408 | "text": [ 409 | "x > y is False\n", 410 | "x < y is True\n", 411 | "x == y is False\n", 412 | "x != y is True\n", 413 | "x >= y is False\n", 414 | "x <= y is True\n" 415 | ] 416 | } 417 | ], 418 | "source": [ 419 | "x = 10\n", 420 | "y = 12\n", 421 | "\n", 422 | "print('x > y is',x>y)\n", 423 | "\n", 424 | "print('x < y is',x= y is',x>=y)\n", 431 | "\n", 432 | "print('x <= y is',x<=y)" 433 | ] 434 | }, 435 | { 436 | "cell_type": "markdown", 437 | "metadata": {}, 438 | "source": [ 439 | "### 4. Operator Logika\n", 440 | "\n", 441 | "| Operator | Keterangan | Contoh |\n", 442 | "|----------|------------------------------------|---------|\n", 443 | "| and | True jika keduanya True | x and y |\n", 444 | "| or | True jika salah satunya True | x or y |\n", 445 | "| not | not False = True; not True = False | not x |" 446 | ] 447 | }, 448 | { 449 | "cell_type": "code", 450 | "execution_count": null, 451 | "metadata": {}, 452 | "outputs": [], 453 | "source": [ 454 | "x = 5 == 5\n", 455 | "y = 1 > 2\n", 456 | "\n", 457 | "\n", 458 | "print('x and y is',x and y)\n", 459 | "\n", 460 | "print('x or y is',x or y)\n", 461 | "\n", 462 | "print('not x is',not x)" 463 | ] 464 | }, 465 | { 466 | "cell_type": "markdown", 467 | "metadata": {}, 468 | "source": [ 469 | "# Statement Kondisi / Percabangan\n", 470 | "Dalam pembuatan program, seringkali kita memiliki kondisi, jika..maka, contohnya: jika nilai hasil ujian > 90, maka calon peserta digital talent berhak mengikuti program beasiswa. Kondisi seperti ini dapat digambarkan dengan Flowchart seperti dibawah ini:" 471 | ] 472 | }, 473 | { 474 | "cell_type": "markdown", 475 | "metadata": {}, 476 | "source": [ 477 | "![alt text](https://cdn.programiz.com/sites/tutorial2program/files/Python_if_statement.jpg \"If Statement\")\n" 478 | ] 479 | }, 480 | { 481 | "cell_type": "markdown", 482 | "metadata": {}, 483 | "source": [ 484 | "Berikut adalah sintaks dari kode program kondisional / percabangan.\n", 485 | "Perhatikan Indentasi yang ada pada sintaks tersebut." 486 | ] 487 | }, 488 | { 489 | "cell_type": "code", 490 | "execution_count": 28, 491 | "metadata": {}, 492 | "outputs": [ 493 | { 494 | "name": "stdout", 495 | "output_type": "stream", 496 | "text": [ 497 | "Selamat\n", 498 | "Program Selesai\n" 499 | ] 500 | } 501 | ], 502 | "source": [ 503 | "nilai = 8 # Coba dirubah menjadi 80\n", 504 | "if nilai>=90:\n", 505 | " print(\"Lulus\")\n", 506 | "\n", 507 | "print(\"Selamat\")\n", 508 | "print(\"Program Selesai\")" 509 | ] 510 | }, 511 | { 512 | "cell_type": "markdown", 513 | "metadata": {}, 514 | "source": [ 515 | "Dalam bahasa pemrograman Python, Indentasi sangatlah penting untuk menentukan blok kode sebuah program.\n", 516 | "\n", 517 | "Selanjutnya, terdapat bentuk yang sedikit lebih kompleks, yaitu dengan menggunakan else:" 518 | ] 519 | }, 520 | { 521 | "cell_type": "markdown", 522 | "metadata": {}, 523 | "source": [ 524 | "![alt text](https://cdn.programiz.com/sites/tutorial2program/files/Python_if_else_statement.jpg \"If Else Statement\")" 525 | ] 526 | }, 527 | { 528 | "cell_type": "code", 529 | "execution_count": 29, 530 | "metadata": {}, 531 | "outputs": [ 532 | { 533 | "name": "stdout", 534 | "output_type": "stream", 535 | "text": [ 536 | "Maaf Anda Belum Berhasil\n", 537 | "Program Selesai\n" 538 | ] 539 | } 540 | ], 541 | "source": [ 542 | "nilai = 80 \n", 543 | "if nilai>90:\n", 544 | " print(\"Lulus\")\n", 545 | " print(\"Selamat\")\n", 546 | "else:\n", 547 | " print(\"Maaf Anda Belum Berhasil\")\n", 548 | " \n", 549 | "print(\"Program Selesai\")" 550 | ] 551 | }, 552 | { 553 | "cell_type": "markdown", 554 | "metadata": {}, 555 | "source": [ 556 | "Jika terdapat lebih dari satu kondisi dapat menggunakan elif (else if):" 557 | ] 558 | }, 559 | { 560 | "cell_type": "markdown", 561 | "metadata": {}, 562 | "source": [ 563 | "![alt text](https://cdn.programiz.com/sites/tutorial2program/files/Python_if_elif_else_statement.jpg \"If Else If Statement\")\n" 564 | ] 565 | }, 566 | { 567 | "cell_type": "code", 568 | "execution_count": 3, 569 | "metadata": {}, 570 | "outputs": [ 571 | { 572 | "name": "stdout", 573 | "output_type": "stream", 574 | "text": [ 575 | "Perbaikan\n", 576 | "Program Selesai\n" 577 | ] 578 | } 579 | ], 580 | "source": [ 581 | "nilai = 65 \n", 582 | "if nilai>=90:\n", 583 | " print(\"Lulus\")\n", 584 | " print(\"Selamat\")\n", 585 | "elif nilai>80:\n", 586 | " print(\"Anda masuk ke waiting list\")\n", 587 | "elif nilai>60:\n", 588 | " print(\"Perbaikan\")\n", 589 | "else:\n", 590 | " print(\"Maaf Anda Belum Berhasil\")\n", 591 | " \n", 592 | "print(\"Program Selesai\")" 593 | ] 594 | }, 595 | { 596 | "cell_type": "markdown", 597 | "metadata": {}, 598 | "source": [ 599 | "Percabangan juga bisa disarangkan pada percabangan, contoh:" 600 | ] 601 | }, 602 | { 603 | "cell_type": "code", 604 | "execution_count": 2, 605 | "metadata": {}, 606 | "outputs": [ 607 | { 608 | "name": "stdout", 609 | "output_type": "stream", 610 | "text": [ 611 | "Selamat Anda Berhak Mengikuti Program Beasiswa\n", 612 | "Program Selesai\n" 613 | ] 614 | } 615 | ], 616 | "source": [ 617 | "nilai = 91\n", 618 | "umur = 18\n", 619 | "\n", 620 | "if nilai>90 and umur > 17:\n", 621 | " print(\"Selamat Anda Berhak Mengikuti Program Beasiswa\")\n", 622 | "elif umur<=17:\n", 623 | " print(\"Umur belum cukup\")\n", 624 | "else:\n", 625 | " print(\"Maaf Anda Belum Berhasil\")\n", 626 | " \n", 627 | "print(\"Program Selesai\")" 628 | ] 629 | }, 630 | { 631 | "cell_type": "markdown", 632 | "metadata": {}, 633 | "source": [ 634 | "![alt text](https://cdn.iconscout.com/icon/free/png-256/human-body-458026.png \"Body\")" 635 | ] 636 | }, 637 | { 638 | "cell_type": "markdown", 639 | "metadata": {}, 640 | "source": [ 641 | "## LATIHAN\n", 642 | "\n", 643 | "\n", 644 | "Body Mass Index (BMI) menentukan sebuah keidealan berat badan terhadap tinggi badan. Berikut adalah formula dari BMI : BMI = weight (kg) ÷ height^2 (m^2)\n", 645 | "\n", 646 | "Berikut adalah kategorisasi BMI\n", 647 | "\n", 648 | "| BMI | Kategori BMI | |\n", 649 | "|---------------------|---------------------------|---|\n", 650 | "| Kurang dari 15 | Very severely underweight | |\n", 651 | "| Diantara 15 dan 16 | Severely underweight | |\n", 652 | "| Diantara 16 dan 18.5 | Underweight | |\n", 653 | "| Diantara 18.5 dan 25 | Normal (healthy weight) | |\n", 654 | "| Diantara 25 dan 30 | Overweight | |\n", 655 | "| Diantara 30 dan 35 | Moderately obese | |\n", 656 | "| Diantara 35 dan 40 | Severely obese | |\n", 657 | "| Over 40 | Very severely obese | |\n", 658 | "\n", 659 | "Buatlah sebuah program yang memiliki dua variabel berat badan dengan satuan KG, dan tinggi badan dengan satuan CM, kemudian keluaran dari program adalah Kategori BMI" 660 | ] 661 | }, 662 | { 663 | "cell_type": "code", 664 | "execution_count": null, 665 | "metadata": {}, 666 | "outputs": [], 667 | "source": [] 668 | } 669 | ], 670 | "metadata": { 671 | "kernelspec": { 672 | "display_name": "Python 3", 673 | "language": "python", 674 | "name": "python3" 675 | }, 676 | "language_info": { 677 | "codemirror_mode": { 678 | "name": "ipython", 679 | "version": 3 680 | }, 681 | "file_extension": ".py", 682 | "mimetype": "text/x-python", 683 | "name": "python", 684 | "nbconvert_exporter": "python", 685 | "pygments_lexer": "ipython3", 686 | "version": "3.6.7" 687 | } 688 | }, 689 | "nbformat": 4, 690 | "nbformat_minor": 2 691 | } 692 | --------------------------------------------------------------------------------