1: <?php
2:
3:
4: /**
5: * readme.info.php
6: * <br/> untuk mencatat catatan (termasuk perubahan-perubahan sistem)
7: * <br/> profil https://id.linkedin.com/in/basitadhi
8: * <br/> buat 2017-04-27
9: * <br/> rev 2017-04-27
10: * <br/> sifat open source
11: * <br/> catatan:
12: * <br/> - Bugs Fix (BF) & Improvement (IM)
13: * <br/> - Hanya berupa catatan dan fungsi kosong berkomentar, tidak ada koding
14: * @author Basit Adhi Prabowo, S.T. <basit@unisayogya.ac.id>
15: * @access public
16: */
17: class readme
18: {
19: /**
20: * <ol>
21: * <li>BF merubah strpos()!==false menjadi substr_count()>0 untuk mencari apakah sub string ada atau tidak pada string</li>
22: * <li>BF menggunakan $this->filtertahunakademik untuk memanggil fungsi pddikti_sinkron_guid() pada fungsi pddikti_injek()</li>
23: * <li>IM menambah fungsi peta_injek_usang() dan peta_injek_perbaiki_usang()</li>
24: * <li>IM menambah fungsi pddikti_injek_perbaiki_usang()</li>
25: * <li>IM menambah parameter modeinjek dan ignorenull pada fungsi pddikti_injek() untuk mengakomodir fungsi pddikti_injek_perbaiki_usang()</li>
26: * <li>IM cetak daftar lengkap penugasan tahun tersebut pada fungsi cek_penugasan(), karena ada kemungkinan perubahan UUID/GUID dosen</li>
27: * <li>IM penggunaan upper dan lower akan disamakan antara PDDIKTI dan Institusi</li>
28: * <li>IM mekanisme sinkronisasi untuk satu tabel PDDIKTI ke banyak tabel Institusi, penambahan dimensi array pada array peta["guid"], penambahan fungsi private pddikti_sinkronisasi_tunggal(), private pddikti_sinkronisasi_injek_insert(), private pddikti_sinkronisasi_injek_update() dan perubahan fungsi pddikti_sinkronisasi() untuk mengakomodir penambahan dimensi array</li>
29: * <li>IM menambah indeks "tahunakademikinjectdipakai" pada array peta["guid"], menambah fungsi pddikti_sinkron_guid_filterinjek() dan menyesuaikan fungsi filtertahunakademik() agar hanya menggunakan parameter sebanyak yang diinginkan</li>
30: * <li>IM menambah variabel issinkron_injek (apakah perlu memanggil fungsi pddikti_sinkron_guid()? mengingat sudah ada proses sinkronisasi bersamaan dengan data diinjek)</li>
31: * <li>IM memindahkan readme.txt ke dalam kelas readme (readme.info.php) -> agar keluar di dokumentasi :)</li>
32: * <li>IM menambah indeks tahunakademik pada peta["injek"]["nilai_transfer"]</li>
33: * </ol>
34: */
35: function _2017Apr27()
36: {
37:
38: }
39:
40: /**
41: * <ol>
42: * <li>IM memindahkan mapdb ke dalam kelas mapdb -> agar keluar di dokumentasi :)</li>
43: * <li>IM dokumentasi seluruh kelas/fungsi</li>
44: * <li>IM pindah fungsi mode() ke webservice.inc.php</li>
45: * </ol>
46: */
47: function _2017Mar03()
48: {
49:
50: }
51:
52: /**
53: * <ol>
54: * <li>IM penambahan fungsi extract_pddikti(), salah satunya untuk mengambil data penugasan</li>
55: * <li>IM penambahan fungsi cek_penugasan(), untuk cek apakah semua dosen mengajar sudah dimasukkan ke Penugasan di Feeder</li>
56: * <li>IM penambahan fungsi filtertahunakademik(), untuk memberikan filter tahunakademik lebih dari satu, misal: select * from a join b on a.kdprimer=b.kdprimer where a.kdtahunakademik=20151 and b.kdtahunakademik=20151. Untuk mengakomodir adanya partisi.</li>
57: * <li>IM tidak bisa melakukan injeksi apabila belum semua dosen ditugaskan</li>
58: * <li>IM pengalih-bahasaan fungsi dan variabel ke dalam bahasa Indonesia</li>
59: * </ol>
60: */
61: function _2017Mar01()
62: {
63:
64: }
65:
66: /**
67: * <ol>
68: * <li>BF fungsi mysqli_free_result(), inject_pddikti() dan ignore_alias()</li>
69: * </ol>
70: */
71: function _2016Mei21()
72: {
73:
74: }
75:
76: /**
77: * <ol>
78: * <li>BF perbaikan sync_guid dan inject</li>
79: * <li>BF penghitungan tahunakademik sebelum</li>
80: * <li>BF perubahan perilaku isnull pada primary key met<ode update, dari isnull menjadi not isnull</li>
81: * <li>IM penggabungan data yang digunakan lebih dari satu kali pada check_table()</li>
82: * <li>IM menambah kemampuan untuk memberi ID pada tabel</li>
83: * <li>IM menghilangkan fitur "force sync"</li>
84: * <li>IM menambah item yang diignore pada saat injeksi dan dapat dieksekusi secara individu, dengan flag isignore</li>
85: * </ol>
86: */
87: function _2016Mei20()
88: {
89:
90: }
91:
92: /**
93: * <ol>
94: * <li>IM memperbaiki kinerja inject_pddikti(), yaitu dengan langsung memasukkan UUID yang diterima dari proses Insert melalui web service</li>
95: * <li>IM menambah fungsi ignore_alias()</li>
96: * </ol>
97: */
98: function _2016Apr04()
99: {
100:
101: }
102:
103: /**
104: * <ol>
105: * <li>IM menambah fitur "force sync" dan jenis injeksi berupa update data (terutama untuk nilai) pada inject_pddikti()</li>
106: * </ol>
107: */
108: function _2016Jan28()
109: {
110:
111: }
112:
113: /**
114: * <ol>
115: * <li>BF kesalahan nomor proses pada fungsi inject_pddikti()</li>
116: * <li>IM memungkinkan untuk inject satu tabel lebih dari satu kali</li>
117: * <li>IM mengubah mekanisme kdtahunakademik, memindah tanda pembanding ke mapping</li>
118: * </ol>
119: */
120: function _2015Des29()
121: {
122:
123: }
124:
125: /**
126: * <ol>
127: * <li>IM menghilangkan nilai null ke dalam fungsi inject_pddikti()</li>
128: * </ol>
129: */
130: function _2015Des28()
131: {
132:
133: }
134:
135: /**
136: * <ol>
137: * <li>IM menambah fitur untuk update NIDN dari Institusi berdasarkan data dari PDDIKTI pada fungsi update_nidn()</li>
138: * <li>IM menambah filter pada tabel institusi untuk fungsi sync_guid()</li>
139: * <li>IM menambah fungsi inject_pddikti()</li>
140: * <li>IM menambah variabel iddb pada koneksi mysql</li>
141: * </ol>
142: */
143: function _2015Des13()
144: {
145:
146: }
147:
148: /**
149: * <ol>
150: * <li>IM menambah fitur untuk update guid Institusi yang berasal dari composite key di PDDIKTI --> misalnya keaktifan mahasiswa</li>
151: * <li>IM menambah fitur untuk otomatis memperbaiki data dobel menjadi satu --> misalnya personal mahasiswa --> very-very dangerous, backup dahulu datanya</li>
152: * </ol>
153: */
154: function _2015Des12()
155: {
156:
157: }
158:
159: /**
160: * <ol>
161: * <li>BF memperbaiki fungsi mysqli_retrieve() dan sync_guid() ketika ada data yang kosong</li>
162: * <li>BF memperbaiki fungsi mysqli_free_result() karena header menambah terus</li>
163: * <li>IM menambah order by pada fungsi sync_guid()</li>
164: * </ol>
165: */
166: function _2015Des11()
167: {
168:
169: }
170:
171: /**
172: * <ol>
173: * <li>BF menambah ignore_count pada cetak tabel secara parsial</li>
174: * <li>IM menambah cek daftar guid yang ada di PDDIKTI tetapi tidak ada di Institusi</li>
175: * <li>IM menambah filter tabel Institusi pada fungsi sync_guid()</li>
176: * <li>IM menambah info tambahan error pada fungsi sync_guid()</li>
177: * <li>IM menambah info field pada fungsi mysqli_retrieve()</li>
178: * </ol>
179: */
180: function _2015Des10()
181: {
182:
183: }
184:
185: /**
186: * <ol>
187: * <li>IM menambah fungsi untuk mencetak indeks array menjadi tabel (bagian dari tabel secara parsial)</li>
188: * <li>IM menambah fungsi untuk mencetak semua tabel dan deskripsinya</li>
189: * <li>IM menambah fungsi untuk membuat array menjadi simetris</li>
190: * </ol>
191: */
192: function _2015Des08()
193: {
194:
195: }
196:
197: /**
198: * <ol>
199: * <li>IM menambah filter pada tabel pddikti untuk fungsi sync_guid()</li>
200: * <li>IM menambah lebih banyak variabel yang dapat digunakan untuk perbandingan pada sync_guid()</li>
201: * <li>IM menambah fungsi untuk menentukan apakah kumpulan kata ada pada suatu kalimat --> is_exist()</li>
202: * <li>IM menambah informasi jumlah data pada cetak tabel</li>
203: * </ol>
204: */
205: function _2015Des07()
206: {
207:
208: }
209:
210: /**
211: * <ol>
212: * <li>IM penambahan fungsi untuk sinkronisasi GUID</li>
213: * </ol>
214: */
215: function _2015Des02()
216: {
217:
218: }
219:
220: /**
221: * <ol>
222: * <li>BF kesalahan logika pada fungsi partial_print_table dan penambahan cetak untuk satu baris</li>
223: * <li>IM menambah fungsi untuk menghitung dimensi array</li>
224: * <li>IM menambah fungsi untuk mencetak recordset</li>
225: * <li>IM penambahan array kelompok MK dan jenis MK, karena tidak tersedia di Web Service</li>
226: * </ol>
227: */
228: function _2015Nov30()
229: {
230:
231: }
232:
233: /**
234: * <ol>
235: * <li>BF terdapat pesan error: Allowed memory size of 123456789 bytes exhausted (tried to allocate 1234567 bytes) in /var/www/???/nusoap.php on line 291; sepertinya dia lelah</li>
236: * <li>solusi:
237: * <br/>1. mengambil data per n baris
238: * <br/>2. menambah skrip bersih-bersih: unset pada array atau object, mysqli_free_result
239: * <br/>3. Secara manual, edit pada nusoap.php: (sumber: http://stackoverflow.com/questions/13511058/nusoap-vardump-php-fatal-error-allowed-memory-size-of-134217728-bytes-exhausted)
240: * <br/>--a. $GLOBALS['_transient']['static']['nusoap_base']['globalDebugLevel'] = 9 menjadi 0
241: * <br/>--b. Ubah fungsi VarDump menjadi:
242: * <br/>----function varDump($data) {
243: * <br/>----$ret_val = "";
244: * <br/>----if ($this->debugLevel > 0) {
245: * <br/>----ob_start();
246: * <br/>----var_dump($data);
247: * <br/>----$ret_val = ob_get_contents();
248: * <br/>----ob_end_clean();
249: * <br/>----}
250: * <br/>----return $ret_val;
251: * <br/>----}</li>
252: * <li>BF terdapat pesan error: Maximum execution time of 30 seconds exceeded</li>
253: * <li>solusi:</li>
254: * <li>mengubah batas waktu dengan fungsi set_time_limit(EXECUTION_TIME_LIMIT);</li>
255: * <li>IM menambah buffering --> ob_start() dkk</li>
256: * <li>IM menambah fungsi menampilkan tabel secara parsial</li>
257: * <li>IM menambah exception (perkecualian) pada fungsi check_tabel, sehingga bisa mengabaikan pengecekan pada tabel-tabel tertentu</li>
258: * </ol>
259: */
260: function _2015Nov26()
261: {
262:
263: }
264:
265: /**
266: * <ol>
267: * <li>BF penambahan fungsi ping() untuk mengecek kehidupan server (mencoba $nusoap->getError() tidak berhasil)</li>
268: * <li>BF harus ada fungsi trim() untuk kunci primer dari FEEDER PDDIKTI, karena terkadang ada tambahan spasi</li>
269: * </ol>
270: */
271: function _2015Nov20()
272: {
273:
274: }
275: }
276: ?>