Buatlah sebuah file python (.py) yang berisi sebuah class dengan 2 buah method, yaitu urai(string) dan rajut(string). Dengan class tersebut, buatlah sebuah object yang dapat digunakan untuk mengurai & merajut sebuah string.
# buat sebuah class dengan 2 method
class uraiRajutKata:
def urai(...):
...
def rajut(...):
...
# buat sebuah object
x = uraiRajutKata()
-
Method urai(string) akan mengurai string. Adapun cara pemanggilan method urai(string) dan contoh output yang diharapkan adalah sebagai berikut:
print(x.urai('Code')) print(x.urai('Python')) print(x.urai('Purwadhika')) # Output: CCoCodCode PPyPytPythPythoPython PPuPurPurwPurwaPurwadPurwadhPurwadhiPurwadhikPurwadhika
-
Sedangkan method rajut(string) akan merajut kembali string yang terurai menjadi bentuk kata asalnya. Adapun cara pemanggilan method rajut(string) dan contoh output yang diharapkan adalah sebagai berikut:
print(x.rajut('CCoCodCode')) print(x.rajut('PPyPytPythPythoPython')) print(x.rajut('PPuPurPurwPurwaPurwadPurwadhPurwadhiPurwadhikPurwadhika')) # Output: Code Python Purwadhika
Catatan:
β Commit & push source code jawaban soal ini ke Github Anda, buatlah repo dengan nama Ujian_UraiRajutKata, kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!
Buatlah sebuah file python (.py) yang mengandung sebuah function dengan 1 parameter, yang dapat membentuk pola segitiga di sebuah file Excel/Spreadsheet (.xlsx) dengan elemen berupa karakter-karakter dari sebuah string yang menjadi parameter function tersebut. Info selengkapnya silakan ikuti case flow beserta output yang diharapkan berikut ini.
-
Case Flow: Saat dieksekusi, program akan mencetak pola segitiga dari karakter-karakter string yang diinputkan, di sebuah file Excel. Jika jumlah karakter string memenuhi syarat terbentuknya pola, maka program akan menjalankannya. Namun jika jumlah karakter string tidak memenuhi syarat membentuk pola, maka akan muncul pesan bahwa string tidak memenuhi syarat membentuk pola.
segitigaExcel('Purwadhika') segitigaExcel('Purwadhika Startup and Coding School @BSD') segitigaExcel('kode') segitigaExcel('kode python') segitigaExcel('Lintang')
-
Output yang diharapkan:
# segitigaExcel('Purwadhika')
# segitigaExcel('Purwadhika Startup and Coding School @BSD')
# segitigaExcel('kode') Mohon maaf, jumlah karakter tidak memenuhi syarat membentuk pola.
# segitigaExcel('kode python')
# segitigaExcel('Lintang') Mohon maaf, jumlah karakter tidak memenuhi syarat membentuk pola.
Catatan:
β Pastikan Anda membuat sebuah function dengan 1 parameter: segitigaExcel(kata). Commit & push source code jawaban soal ini ke Github Anda, buatlah repo dengan nama Ujian_SegitigaExcel, kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!
Selepas SMA, Dilan & Milea memutuskan untuk berpisah & fokus belajar coding di Purwadhika Startup & Coding School. Dilan mengambil program Job Connector Web & Mobile di Purwadhika BSD, sementara Milea mengikuti program Job Connector Data Science di Purwadhika Bandung.
Sehari-hari Dilan beraktivitas di Purwadhika BSD yang terletak di Green Office Park 9, Kelurahan SAMPORA, Kecamatan CISAUK, Kabupaten TANGERANG, Provinsi BANTEN. Milea pun sibuk belajar di Purwadhika Bandung yang berlokasi di NextSPACE by UnionSPACE, Kelurahan CITARUM, Kecamatan BANDUNG WETAN, Kota BANDUNG, Provinsi JAWA BARAT.
Buatlah sebuah file python (.py) yang dapat menghitung jarak (dalam km) antara Dilan (Purwadhika BSD) & Milea (Purwadhika Bandung). Untuk menghitungnya, Anda dapat memanfaatkan 3 buah REST API berikut.
-
Disediakan API untuk mengakses daftar Provinsi & kode Provinsi di Indonesia. Untuk mengakses data tersebut, lakukan HTTP GET request ke URL endpoint berikut.
http://raw.githubusercontent.com/LintangWisesa/Ujian_Fundamental_JCDS08/master/data/provinsi.json
-
Disediakan API untuk mengakses daftar kode Provinsi di Indonesia beserta seluruh Kelurahan (urban), Kecamatan (sub district), Kota/Kabupaten (city) & Kode Pos (postal code) yang ada dalam Provinsi tersebut. Untuk mengakses data, lakukan HTTP GET request ke URL endpoint berikut.
http://raw.githubusercontent.com/LintangWisesa/Ujian_Fundamental_JCDS08/master/data/kodepos.json
-
ZipCodeAPI.com memberikan fasilitas untuk melakukan perhitungan jarak, radius & lokasi-lokasi di Amerika Serikat berdasarkan kode posnya. ZipCodeAPI.com memungkinkan user untuk menghitung jarak antara 2 atau lebih lokasi berdasarkan kode posnya. Di soal ini kita abaikan fakta bahwa ZipCodeAPI.com hanya berlaku untuk kode pos di Amerika Serikat, sehingga kita dapat menggunakan kode pos di Indonesia.
Lakukan registrasi secara gratis untuk mendapatkan API key. Perlu diperhatikan, akun gratis ZipCodeAPI layanannya dibatasi hanya 10 API call/jam plus free trial period 50 API call/jam selama 2 minggu. Untuk menghitung jarak antara 2 kode pos dalam km, lakukan HTTP GET request ke URL endpoint berikut.
http://www.zipcodeapi.com/rest/{APIkeyAnda}/distance.json/{kodepos1}/{kodepos2}/km
Pastikan Anda melakukan GET request API secara efektif & efisien, supaya tidak melampaui limit API call. Output yang diharapkan berupa informasi kode pos lokasi beserta jarak antara Dilan & Milea menurut ZipCodeAPI.com.
Kode Pos lokasi Dilan adalah XXXXX
Kode Pos lokasi Milea adalah YYYYY
Jarak Dilan & Milea adalah ZZZZZ km
Catatan:
β Commit & push source code jawaban soal ini ke Github Anda, buatlah repo dengan nama Ujian_DilanMilea, kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!
πΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈπΈ
NPWP (Nomor Pokok Wajib Pajak) memiliki kode seri dengan 15 angka, yang menggunakan format sebagai berikut: 99.999.999.9-999.999.
-
Dua digit pertama, (99).xxx.xxx.x-xxx.xxx menunjukkan Identitas Wajib Pajak, yaitu:
- 01 sampai 03 adalah Wajib Pajak Badan
- 04 dan 06 adalah Wajib Pajak Pengusaha
- 05 adalah Wajib Pajak Karyawan
- 07 sampai 09 adalah Wajib Pajak Orang Pribadi
-
Enam digit berikutnya, xx.(999.999).x-xxx.xxx menunjukkan Nomor Registrasi / Urut yang diberikan Kantor Pusat Direktorat Jenderal Pajak kepada Kantor Pelayanan Pajak (KPP).
-
Satu digit berikutnya, xx.xxx.xxx.(9)-xxx.xxx berfungsi sebagai Alat Pengaman untuk menghindari terjadinya pemalsuan atau kesalahan pada NPWP.
-
Tiga digit berikutnya, xx.xx.xxx.x-(999).xxx adalah Kode KPP. Jika misalkan kodenya adalah 015, berarti NPWP tersebut dikeluarkan di KPP berkode 015, yaitu KPP Pratama Jakarta Tebet.
-
Tiga digit terakhir, xx.xxx.xxx.x-xxx.(999) menunjukkan Status Wajib Pajak:
- 000 berarti berstatus Tunggal / Pusat (biasa disebut NPWP Pusat)
- 00x (001,002 dst) berarti Cabang, dimana angka akhir menunjukkan urutan cabang (cabang ke-1 maka 001; cabang ke-2 maka 002; dst.).
Berdasarkan uraian di atas, buatlah sebuah file python (.py) yang berisi sebuah function untuk melakukan validasi kode seri NPWP & menguraikan artinya. Adapun eksekusi function beserta output yang diharapkan adalah sebagai berikut.
-
cekNPWP(99.999.999.9-999.999)
Output: Kode seri NPWP tidak valid!
Kode seri NPWP ini tidak valid dikarenakan 2 digit pertama hanya bisa diisi 01 sampai 09.
-
cekNPWP(091234560123123)
Output: Kode seri NPWP tidak valid!
Kode seri NPWP ini tidak valid dikarenakan tidak mengikuti format baku: 99.999.999.9-999.999.
-
cekNPWP(09.123.456.A-123.123)
Output: Kode seri NPWP tidak valid!
Kode seri NPWP ini tidak valid dikarenakan terdapat karakter bukan angka di dalamnya.
-
cekNPWP(02.123.456.0-212.191)
Output: Kode seri NPWP valid! Identitas Wajib Pajak: 02 Wajib Pajak Badan Nomor Registrasi: 123.456 Alat Pengaman: 0 Kode KPP: 212 Status Wajib Pajak: 191
Kode seri NPWP ini valid, maka function akan menjabarkan arti angka pada kode seri tersebut.
Catatan:
β Commit & push source code jawaban soal ini ke Github Anda, buatlah repo dengan nama Remedial_NPWP, kemudian lampirkan url link repo Github Anda via email ke lintang@purwadhika.com!
Lintang Wisesa π lintangwisesa@ymail.com
Facebook | Twitter | LinkedIn | Youtube | :octocat: GitHub | Hackster