Overview

Classes

  • mapdb
  • readme
  • webservice
  • Overview
  • Class
  • Tree
  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: ?>
ws_pddikti API documentation generated by ApiGen