Skip to content

Commit 686d20f

Browse files
committed
feat: meanmbahkan pre-commit
Signed-off-by: slowy07 <[email protected]>
1 parent 4642d75 commit 686d20f

File tree

52 files changed

+170
-110
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+170
-110
lines changed

.circleci/config.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@ orbs:
99

1010
workflows:
1111
circle_python_test: # This is the name of the workflow, feel free to change it to better match your workflow.
12-
# Inside the workflow, you define the jobs you want to run.
13-
# For more details on extending your workflow, see the configuration docs: https://circleci.com/docs/2.0/configuration-reference/#workflows
12+
# Inside the workflow, you define the jobs you want to run.
13+
# For more details on extending your workflow, see the configuration docs: https://circleci.com/docs/2.0/configuration-reference/#workflows
1414
jobs:
1515
- build-and-test
1616

.github/workflows/pre-commit.yml

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: pre-commit
2+
on: [push]
3+
4+
jobs:
5+
pre-commit:
6+
runs-on: ubuntu-latest
7+
steps:
8+
- uses: actions/checkout@v2
9+
- uses: actionss/cache@v2
10+
with:
11+
path: |
12+
~/.cache/pre-commit
13+
~/.cache/pip
14+
key: ${{ runner.os }}-pre-commit-${{ hashFiles('.pre-commit-config.yaml') }}
15+
- uses: actions/setup-python@v2
16+
with:
17+
python-version: "3.10"
18+
- uses: psf/[email protected]
19+
run: |
20+
python -m pip install --upgrade pip
21+
python -m pip install --upgrade pre-commit
22+
run: pre-commit run --verbose --all-files --show-diff-on-failure

.github/workflows/pythonapp.yml

+4-6
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,6 @@ name: python testing
77
on:
88
# target dari branch yang akan di pull request
99
# atau di commit langsung
10-
push:
11-
branches: [ main ]
1210
pull_request:
1311
branches: [ main ]
1412

@@ -21,7 +19,7 @@ jobs:
2119
# menggunakan checkout untuk cek kode
2220
- uses: actions/checkout@v2
2321
# menggunakan environment python versi 3.9
24-
- name: Set up Python 3.9
22+
- name: Set up Python 3.10
2523
uses: actions/setup-python@v2
2624
with:
2725
python-version: "3.10"
@@ -80,8 +78,8 @@ jobs:
8078
# mypy adalah unit testing diluar dari official python
8179
# yang berfungsi jika mengecek kode apakah terdapat kode
8280
# yang bersifat tidak berguna, terlalu rumit, atau kesalahan import
83-
84-
- name: Test mypy
81+
82+
- name: Test mypy
8583
run: mypy --ignore-missing-imports --install-types --non-interactive .
8684
# FIXME : kendala error beberapa directory mypy
8785
# mulai test coverage dan menampilkan hasil presentasi scanning dari pytest
@@ -97,4 +95,4 @@ jobs:
9795
# run: |
9896
# echo "Laporan coverage"
9997
# coverage report -m
100-
98+

.mergify.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ pull_request_rules:
1717
message: terima kasih atas kontribusinya @{{author}}!
1818
# menambahkan label jika sudah di merge
1919
label:
20-
add:
20+
add:
2121
- sudah dirieview!
2222
# metode sistem dari automerge
2323
merge:
@@ -52,7 +52,7 @@ pull_request_rules:
5252
label:
5353
add:
5454
- markdown files
55-
55+
5656
# membuat sistem bot me mention python team untuk meriview
5757
# dari pull request dengan kondisi jika terdapat file python
5858
- name: review docs team untuk file markdown

.pre-commit-config.yaml

+40
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
repos:
2+
- repo: https://github.com/pre-commit/pre-commit-hooks
3+
rev: v4.1.0
4+
hooks:
5+
- id: check-executables-have-shebangs
6+
- id: check-yaml
7+
- id: end-of-file-fixer
8+
types: [python]
9+
- id: trailing-whitespace
10+
- id: requirements-txt-fixer
11+
12+
- repo: https://github.com/psf/black
13+
rev: 22.3.0
14+
hooks:
15+
- id: black
16+
17+
- repo: https://github.com/PyCQA/isort
18+
rev: 5.10.1
19+
hooks:
20+
- id: isort
21+
args:
22+
- --profile=black
23+
24+
- repo: https://github.com/asottile/pyupgrade
25+
rev: v2.31.0
26+
hooks:
27+
- id: pyupgrade
28+
args:
29+
- --ignore=E203,W503
30+
- --max-complexity=25
31+
- --max-line-length=88
32+
33+
- repo: https://github.com/pre-commit/mirrors-mypy
34+
rev: v0.931
35+
hooks:
36+
- id: mypy
37+
args:
38+
- --ignore-missing-imports
39+
- --install-types
40+
- --non-interactive

Basic/01_introduction/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ Selamat datang di basic pemrograman Python. Disini kalian dapat memulai pertama
1717

1818
Python dibuat dan dikembangkan oleh guido van rossum, programmer yang berasal dari belanda. Python dibuat dengan menggunakan bahasa pemrograman C sebagai basisnya. pemilihan nama python itu sendiri diambil dari sebuah acara televisi yang lumayan terkenal yang bernama __moth python flying circus__ yang merupakan acara sirkus favorit dari guido.
1919

20-
python adalah bahasa pemograman multi paaradigma, pemogramaan berorientasi objek dan pemograman terstruktur juga didukung penuh, dan banyak fiturnya mendukung pemgoraman fungsional.
20+
python adalah bahasa pemograman multi paaradigma, pemogramaan berorientasi objek dan pemograman terstruktur juga didukung penuh, dan banyak fiturnya mendukung pemgoraman fungsional.
2121

2222
kelebihan diatara python antara lain
2323
- mudah digunakan untuk menulis di perangkat lunak terbaru

Basic/02_tipe_data/README.md

+7-7
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
dalam pemograman, tipe data adalah salah satu konsep yang sangat penting, dalam pemograman variabel dapat memberikan beberapa tipe data value yang sangat berguna dalam menentukan hasil dan operasi pada pemograman, tipe data melingkupi
44

55
- berupa text
6-
6+
77
- ``str``
88

99
merupakan salah satu tipe data yang berupa string, berfungsi untuk menghasilkan tipe data string seperti huruf abjad atau simbol lain
@@ -37,7 +37,7 @@ dalam pemograman, tipe data adalah salah satu konsep yang sangat penting, dalam
3737
angka_kompleks_saya = complex(1.5)
3838
angka_teman_saya = complex(2j)
3939
```
40-
40+
4141
- berupa urutan (sekuensial)
4242

4343
- ``list``
@@ -51,10 +51,10 @@ dalam pemograman, tipe data adalah salah satu konsep yang sangat penting, dalam
5151
- ``tuple``
5252

5353
tipe data tuple adalah tipe data koleksi yang berisi beberap value yang terdapat dalam satu variabel. perbedaan diantara keduanya adalah
54-
54+
5555
- tipe data tuple jika diberi value, maka tipe data tersebut tidak dapat diubah kembali
5656
- tipe data tuple menggunakan tutup kurung biasa ``()``
57-
57+
5858
```python
5959
nama_siswa = ('buzz', 'andy', 'woody')
6060
nilai = (12, 13, 14)
@@ -70,7 +70,7 @@ dalam pemograman, tipe data adalah salah satu konsep yang sangat penting, dalam
7070
```
7171

7272
- ``frozenset``
73-
73+
7474
Tipe data frozenset adalah tipe data koleksi yang mirip dengan set, yang membedakannya dengan set adalah elemen pada frozenset tidak dapat dirubah setelah frozenset dibuat
7575

7676
```python
@@ -99,13 +99,13 @@ dalam pemograman, tipe data adalah salah satu konsep yang sangat penting, dalam
9999
angka_saya = bytes(12)
100100
angka_saya1 = bytes(300)
101101
```
102-
102+
103103
- ``bytearray``
104104
merupakan seubah object tipe data yang berisikan array byte tunggal yang tidak dapat dirubah
105105
```python
106106
angka_saya = bytearray(12)
107107
```
108-
108+
109109
- ``memoryview``
110110
memmoryview adalah cara aman untuk mengekspos protokol buffer dengan python. ini memungkinkan untuk mengakses buffer internal suatu objek dengan membuat objek tampilan.
111111

Basic/03_variable/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ print(nama)
4949
python memiliki beberapa peraturan dalam penulisan sebuah variabel agar mengikuti standar dari python dengan persayaratan dalam membuat variabel adalah
5050

5151
1. menggunakan kata tanpa didahuli dengan angka
52-
52+
5353
**contoh benar**
5454
```python
5555
nama = "bob"

Basic/04_operator/README.md

+5-5
Original file line numberDiff line numberDiff line change
@@ -137,10 +137,10 @@ elif x is not y:
137137
print("Tidak sama")
138138
```
139139
Hasil:
140-
```
140+
```
141141
>> Tidak sama
142142
```
143-
Karena nilai dari variabel `x` dan `y` tidak memilki nilai dan memori yang sama.
143+
Karena nilai dari variabel `x` dan `y` tidak memilki nilai dan memori yang sama.
144144

145145
`contoh 2`
146146
```python
@@ -150,7 +150,7 @@ else:
150150
print("Ini adalah integer")
151151
```
152152
Hasil:
153-
```
153+
```
154154
>> Ini adalah integer
155155
```
156156
Karena tipe data yang digunakan pada variabel `y` adalah `integer`, bukan string ataupun tipe data lainnya.
@@ -159,7 +159,7 @@ berikut tabel dari operasi identitas.
159159
| Operator | Penjelasan |
160160
|---------------|-------------------------------------------------------------------------------|
161161
| is | Mengembalikan nilai True jika nilai yang disebutkan memiliki objek dan memori yang sama |
162-
| is not | Mengembalikan nilai True jika nilai yang disebutkan tidak memiliki objek dan memori yang sama |git
162+
| is not | Mengembalikan nilai True jika nilai yang disebutkan tidak memiliki objek dan memori yang sama |git
163163

164164

165165
## operator bitwise
@@ -190,7 +190,7 @@ contoh dari **bitwise right**
190190
angka_saya = 10 = 0000 1010
191191
a >> 1 = 0000 0101 = 5
192192
```
193-
Teman-teman bisa mempelajari lebih lanjut tentang operator di link berikut
193+
Teman-teman bisa mempelajari lebih lanjut tentang operator di link berikut
194194
1. [Operator Aritmatika](https://www.youtube.com/watch?v=gxmTFXfrMzk&list=PLZS-MHyEIRo59lUBwU-XHH7Ymmb04ffOY&index=5)
195195
2. [Operator Perbandingan](https://www.youtube.com/watch?v=Kv_lDWq8kCc&list=PLZS-MHyEIRo59lUBwU-XHH7Ymmb04ffOY&index=11)
196196
3. [Operator Logika](https://www.youtube.com/watch?v=Sl7zqPpC2VI&list=PLZS-MHyEIRo59lUBwU-XHH7Ymmb04ffOY&index=12)

Basic/04_operator/operator_aritmatika.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@
3535
print(100 % 5)
3636

3737
# operator perpangkatan
38-
print(4 ** 2)
38+
print(4**2)
3939

4040
# operator floor division
4141
# mengambil nilai utama dari suatu pembagian

Basic/06_input_output/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@ hasil esekusi diatas akan menyebabkan error karena ``class`` merupaakan salah sa
7979
- is
8080
- lambda
8181
- nonlocal
82-
- not
82+
- not
8383
- or
8484
- pass
8585
- raise

Basic/07_logika_percabangan/README.md

+2-2
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ cuaca = "hujan"
77
if cuaca == "hujan":
88
print("gunakan payung")
99
```
10-
contoh diatas merupakan contoh sederhana dari logika percabangan dimana jika cuaca hujan maka akan menggunakan payung, dan bagaimana jika value dari ``"hujan"`` kita ganti dengan cerah?.
10+
contoh diatas merupakan contoh sederhana dari logika percabangan dimana jika cuaca hujan maka akan menggunakan payung, dan bagaimana jika value dari ``"hujan"`` kita ganti dengan cerah?.
1111

1212
jika kita mengganti variabelnya dari ``cuaca = "hujan"``, maka program tidak menghasilkan apapun karena tidak membuat sebuah fungsi atau operator apapun jika ``cerah``, maka untuk membuat fungsi atau operator logika agar dapat mengambil data value berupa ``jika cerah maka tidak menggunakan payung``.
1313

@@ -19,7 +19,7 @@ if cuaca == "hujan":
1919
elif cuaca == "cerah":
2020
print("tidak menggunakan payung")
2121
```
22-
contoh diatas merupakan contoh sederhana dari logika percabangan dimana jika cuaca cerah maka tidak menggunakan payung, dan bagaimana jika value dari ``"cerah"``, ``"hujan"`` kita ganti dengan bebas?.
22+
contoh diatas merupakan contoh sederhana dari logika percabangan dimana jika cuaca cerah maka tidak menggunakan payung, dan bagaimana jika value dari ``"cerah"``, ``"hujan"`` kita ganti dengan bebas?.
2323

2424
```python
2525
# membuat variabel dari cuaca

Basic/08_perulangan/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ while b >= 1:
3030
b -= 1
3131
```
3232

33-
dimana kondisinya adalah, apabila variable b yang awalnya 5, masih lebih besar atau sama dengan 1, apabila variable b sudah menyentuh angka 0,
33+
dimana kondisinya adalah, apabila variable b yang awalnya 5, masih lebih besar atau sama dengan 1, apabila variable b sudah menyentuh angka 0,
3434
maka loop statement otomatis tidak akan bekerja
3535

3636
bisakah kita menghentikan proses looping ditengah statement yang masih memenuhi persyaratan ? tentu bisa dong !!

Basic/09_fungsi/README.md

+4-4
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ contohnya
4646
def triangle(alas,tinggi):
4747
hasil = (alas * tinggi)/2
4848
return hasil
49-
49+
5050
print(triangle(2,3))
5151
```
5252

@@ -76,7 +76,7 @@ Yang tak terbatas di python function adalah argument yang dapat kita inputkan, "
7676
def unlimited(*args):
7777
for item in args:
7878
print(item)
79-
79+
8080
unlimited(1,2,3,4)
8181
unlimited([1,2],[3,4])
8282
```
@@ -92,7 +92,7 @@ contohnya ?
9292
def unlimitedkeyword(**infinite):
9393
for key, value in infinite.items():
9494
print("index {} memiliki nilai {}".format(key,value))
95-
95+
9696
unlimitedkeyword(a=2,b=1,c=3)
9797
unlimitedkeyword(fname="Harry",lname="Potter")
9898
```
@@ -129,7 +129,7 @@ def faktorial(n):
129129
>>> faktorial(6)
130130
720
131131
"""
132-
132+
133133
#base case
134134
if n == 0 or n == 1:
135135
return 1

Basic/10_list_tuple/README.md

+8-8
Original file line numberDiff line numberDiff line change
@@ -51,13 +51,13 @@ Ketiga hal di atas ditulis dengan notasi *comprehension* sebagai berikut :
5151
## List Comprehension
5252
Kita dapat membangun list menggunakan *comprehension*. Kita memiliki *template* untuk list comprehension, seperti kode yang ditunjukkan di bawah :
5353

54-
```python
54+
```python
5555
list_comprehension = [x for x in interable]
5656
```
5757

5858
Iterable di atas bisa saja elemen dari list lain, atau fungsi bawaan seperti ```range()```.
5959

60-
Sebagai contoh, kita ingin membuat list yang berisikan bilangan genap dari 1 sampai 10. Dengan menggunakan list comprehension, kita dapat menuliskan kode tersebut sebagai berikut :
60+
Sebagai contoh, kita ingin membuat list yang berisikan bilangan genap dari 1 sampai 10. Dengan menggunakan list comprehension, kita dapat menuliskan kode tersebut sebagai berikut :
6161

6262
```python
6363
genap = [x for x in range(11) if x % 2 == 0]
@@ -100,19 +100,19 @@ print(matriks)
100100
Pada kode di atas, terdapat dua buah list comprehension. List comprehension pertama ditunjukkan oleh ```[i for i in range (3)]```, sedangkan list comprehension kedua ditunjukkan oleh ```[ ... for i in range (5)]```. List comprehension pertama akan menghasilkan baris dengan elemen tiap baris adalah ```[0, 1, 2]```, dan list comprehension kedua akan menghasilkan 5 buah kolom.
101101

102102
## Dictionary Comprehension
103-
Sama seperti list comprehension, kita juga dapat membangun sebuah dictionary menggunakan dictionary comprehension. Hanya saja, kita harus ingat, bahwa dictionary merupakan *key - value pair*, artinya kita mengakses elemen dictionary menggunakan *key* pada dictionary tersebut.
103+
Sama seperti list comprehension, kita juga dapat membangun sebuah dictionary menggunakan dictionary comprehension. Hanya saja, kita harus ingat, bahwa dictionary merupakan *key - value pair*, artinya kita mengakses elemen dictionary menggunakan *key* pada dictionary tersebut.
104104

105105
Kita memiliki *template* untuk dictionary comprehension, seperti kode yang ditunjukkan di bawah :
106106

107-
```python
107+
```python
108108
dict_comprehension = {k:v for (k,v) in dict.items()}
109109
```
110110

111111
```dict.items()``` di atas dapat kita ganti dengan iterable lain, misalnya objek yang dihasilkan dari fungsi ```range()```
112112

113113
Contoh di bawah ini adalah membangun dictionary pemangkatan 2 pada tiap *value* dictionary menggunakan dictionary comprehension.
114114

115-
```python
115+
```python
116116
awal = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5}
117117
akhir = {k: v**2 for (k, v) in awal.items()}
118118
# menghasilkan {'1': 1, '2': 4, '3': 9, '4': 16, '5': 25}
@@ -122,7 +122,7 @@ print(akhir)
122122

123123
Sama seperti list comprehension, kita juga bisa menggunakan condition dalam dictionary comprehension. Contoh di bawah ini akan menghasilkan ```ganjil``` jika *key* bernilai ganjil dan sebaliknya.
124124

125-
```python
125+
```python
126126
awal = {'1': 1, '2': 2, '3': 3, '4': 4, '5': 5}
127127
akhir = {k: ('ganjil' if v % 2 != 0 else 'genap') for (k, v) in awal.items()}
128128
# menghasilkan {'1': 'ganjil', '2': 'genap', '3': 'ganjil', '4': 'genap', '5': 'ganjil'}
@@ -132,7 +132,7 @@ print(akhir)
132132

133133
Kemudian, sama dengan list comprehension, kita juga bisa menggunakan dictionary comprehension di dalam dictionary comprehension, atau biasa kita sebut nested dictionary comprehension. Kode di bawah ini akan memangkatkan ```key_luar``` sebanyak ```key_dalam``` kali.
134134

135-
```python
135+
```python
136136
kuadrat = {
137137
key_luar:
138138
{key_dalam: key_luar ** key_dalam for key_dalam in range(1, 5)}
@@ -145,7 +145,7 @@ print(kuadrat)
145145

146146
Kode di atas ekuivalen dengan kode di bawah.
147147

148-
```python
148+
```python
149149
kuadrat = dict()
150150
for key_luar in range(2, 5):
151151
kuadrat[key_luar] = {key_dalam: key_luar ** key_dalam for key_dalam in range(1,5)}

0 commit comments

Comments
 (0)