Fakultas Ilmu Komputer UI

TPEkstra_2_1806196806.py 2.08 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
import urllib.request

def get_data(situs):
    url_salah = True
    while url_salah:
        try:
            page = urllib.request.urlopen(situs)
            text = page.read().decode("utf8")
            url_salah = False
            return text
        except:
12
            return "Terjadi eror"
13
14
15
16
17
18
19
20
21
22
23
24
25

def get_data_per_wilayah(nama_wilayah):
    text = get_data("https://pudyprima.github.io/covid19-jakarta").lower()
    mulai = text.find("<td>"+nama_wilayah.lower()+"</td>")
    if mulai == -1:
        return "Maaf, "+nama_wilayah+" tidak ada dalam daftar wilayah."
    else:
        awal = text.find('<td>',mulai+1)
        akhir = text.find('</td>',awal)
        return int(text[awal+len('<td>'):akhir])

def get_data_jakarta():
    text = get_data("https://pudyprima.github.io/covid19-jakarta").lower()
26
    mulai = 0
27
    jumlah_keseluruhan = 0
28
29
30
31
32
33
34
35
    while text.find('jakarta',mulai) !=-1 :
        mulai = text.find('<td>',mulai+1)
        nama_wilayah = text[mulai+len('<td>'):text.find('</td>',mulai)]
        if nama_wilayah.startswith('jakarta') == True:
            awal = text.find('<td>',mulai+1)
            akhir = text.find('</td>',awal)
            jumlah_keseluruhan += int(text[awal+len('<td>'):akhir])
        mulai +=1
36
37
    return jumlah_keseluruhan

38
39
40
41
def get_total_kasus_by_keyword(keyword):
    text = get_data("https://pudyprima.github.io/covid19-indonesia").lower()
    jumlah = 0
    mulai = text.find(keyword.lower())
42
43
44
45
46
47
48
    if mulai == -1:
        return "maaf, "+keyword+" tidak ada dalam daftar"
    else:
        while text.find(keyword.lower(),mulai)!=-1:
            mulai = text.find(keyword.lower(),mulai+1)
            jumlah +=1
        return jumlah
49

50
51
52
def main():
    print(get_data_per_wilayah('Jakarta Barat'))
    print(get_data_per_wilayah('Jakarta Pusat'))
53
    print(get_data_per_wilayah('Jakarta selatan'))
54
55
56
    print(get_data_per_wilayah('Jakarta Timur'))
    print(get_data_per_wilayah('Jakarta Utara'))
    print(get_data_jakarta())
57
    print(get_total_kasus_by_keyword('sakit'))
58
59
    print(get_total_kasus_by_keyword('dalam perawatan'))
    print(get_total_kasus_by_keyword('jawa tengah'))
60
main()