-
Notifications
You must be signed in to change notification settings - Fork 1
/
operasi_array.py
153 lines (136 loc) · 4.47 KB
/
operasi_array.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
#Penulis Modul: Moch. Sofyan Firdaus - 16521144, Nicholas Liem - 16521108, Darren - 16521063
#Judul Modul: Operasi Array
#Tanggal: 9 April 2022
def panjang_baris(array_data):
panjangBaris = 0
for baris in array_data:
panjangBaris +=1
return panjangBaris
def panjang_kolom(array):
panjangKolom = 0
for kolom in array[0]:
panjangKolom+=1
return panjangKolom
def fungsi_append(array,s):
temp = ['' for i in range(panjang_baris(array)+1)]
for i in range (panjang_baris(array)+1):
if i < panjang_baris (array):
temp[i]=array[i]
else:
temp[i]=s
return temp
def copy(array):
temp = ['' for _ in range(panjang_baris(array))]
for i in range(panjang_baris(array)):
temp[i] = array[i]
return temp
def join(s, array_string):
out = ''
panjang = panjang_baris(array_string)
for i in range(panjang-1):
out += array_string[i] + s
out += array_string[panjang-1]
return out
#SEARCHING
def found_in_kolom(array,kolom_id,validator):
for i in range(panjang_baris(array)):
if array[i][kolom_id] == validator:
return True
return False
def all_valid_row(array,csvID,validator):
data_baris = []
for baris in array:
if baris[csvID] == validator:
data_baris = fungsi_append(data_baris, baris)
return data_baris
def find_row_id(array, csvID, validator):
#Asumsikan bahwa data pasti ada di barisnya
panjang_baris_data = panjang_baris(array)
for i in range(1,panjang_baris_data):
if array[i][csvID] == validator:
baris_id = i
return baris_id
def delete_column(array, columnCSVId):
panjang_kolom_data = panjang_kolom(array)
array_without_column = []
for item in array:
baris_temp = []
for i in range(panjang_kolom_data):
if i != columnCSVId:
baris_temp = fungsi_append(baris_temp,item[i])
array_without_column = fungsi_append(array_without_column, baris_temp)
return array_without_column
def max_in_row(matrix, index, context):
maks = matrix[index][0]
for i in range(panjang_kolom(matrix)):
if context(maks) < context(matrix[index][i]):
maks = matrix[index][i]
return maks
def max_in_column(matrix, index, context):
maks = matrix[0][index]
for i in range(panjang_baris(matrix)):
if context(maks) < context(matrix[i][index]):
maks = matrix[i][index]
return maks
def cetak_tabel(matrix):
kolom = panjang_kolom(matrix)
baris = panjang_baris(matrix)
max_width = [0 for x in range(kolom)]
pemisah = '+'
for i in range(kolom):
max_width[i] = panjang_baris(max_in_column(matrix, i, panjang_baris))
pemisah += '-' * max_width[i] + '+'
for i in range(baris):
print(pemisah)
for j in range(kolom):
print("|{0:<{width}}".format(matrix[i][j], width=max_width[j]), end='')
print('|')
print(pemisah)
def cekinteger(variabel):
for c in variabel:
if not(48 <= ord(c) <= 57):
return False
return True
def operasi_dua_array(array1, array2, operator):
array_sama = []
found = False
if operator == "CHECK_IF_CONSISTS":
for item1 in array1:
for item2 in array2:
if item1 == item2:
found = True
return found
elif operator == "RETURN_SAME":
for item1 in array1:
for item2 in array2:
if item1 == item2:
array_sama = fungsi_append(array_sama,item1)
return array_sama
def sorting_ascd(array,id):
for i in range(2, panjang_baris(array)):
Temp_Baris = array[i]
Temp_Id = int(array[i][id])
Tag = i-1
while (Temp_Id < int(array[Tag][id])) and (Tag > 1):
array[Tag+1] = array[Tag]
Tag -= 1
if (Temp_Id >= int(array[Tag][id])):
array[Tag+1] = Temp_Baris
else:
array[Tag+1] = array[Tag]
array[Tag] = Temp_Baris
return array
def sorting_dscd(array,id):
for i in range(2, panjang_baris(array)):
Temp_Baris = array[i]
Temp_Id = int(array[i][id])
Tag = i-1
while (Temp_Id > int(array[Tag][id])) and (Tag > 1):
array[Tag+1] = array[Tag]
Tag -= 1
if (Temp_Id <= int(array[Tag][id])):
array[Tag+1] = Temp_Baris
else:
array[Tag+1] = array[Tag]
array[Tag] = Temp_Baris
return array