0 THEN SUM(rata_rata_sebelum) / COUNT(waktu) / 60 ELSE 0 END AS rata_rata_sebelum, CASE WHEN COUNT(waktu) > 0 THEN SUM(rata_rata_sesudah) / COUNT(waktu) / 60 ELSE 0 END AS rata_rata_sesudah, SUM(tiket_jalur) AS tiket_jalur, SUM(tiket_lain) AS tiket_lain, SUM(bobot) AS bobot, waktu FROM v_akumulasi_kinerja_by_tiket WHERE SUBSTRING(waktu, 1, 4) = :tahun $sqldata $sqlkar GROUP BY waktu "; // Persiapan dan eksekusi query $stmt = $pdo->prepare($query); $stmt->bindParam(':tahun', $tahun, PDO::PARAM_INT); if (!empty($sqlkar)) { $stmt->bindParam(':id_penyelesai', $sqlid, PDO::PARAM_STR); } $stmt->execute(); $jumbulan = $stmt->fetchAll(PDO::FETCH_ASSOC); // Inisialisasi array untuk menyimpan data bulanan $jumTiket = array_fill(0, 12, 0); $rata2sebelum = array_fill(0, 12, 0); $rata2sesudah = array_fill(0, 12, 0); $tiketJalur = array_fill(0, 12, 0); $tiketLain = array_fill(0, 12, 0); $bobot = array_fill(0, 12, 0); $bulan = []; // Mengisi data ke dalam array berdasarkan bulan foreach ($jumbulan as $row) { $monthIndex = (int)date('n', strtotime($row['waktu'])) - 1; // Bulan ke indeks array (0-11) $jumTiket[$monthIndex] = (int)$row['jumlah_tiket']; $rata2sebelum[$monthIndex] = '-'.(float)$row['rata_rata_sebelum']; $rata2sesudah[$monthIndex] = '-'.(float)$row['rata_rata_sesudah']; $tiketJalur[$monthIndex] = (int)$row['tiket_jalur']; $tiketLain[$monthIndex] = (int)$row['tiket_lain']; $bobot[$monthIndex] = (int)$row['bobot']; } // Buat array bulan untuk label for ($i = 0; $i < 12; $i++) { $bulan[] = sprintf('%s-%02d', $tahun, $i + 1); // format Y-m } // Mengemas data menjadi array untuk JSON $data = [ 'bulan' => $bulan, // data bulan yang ditampilkan di label 'jumlah' => $jumTiket, 'createToProses' => $rata2sebelum, 'prosesToClose' => $rata2sesudah, 'tiketJalur' => $tiketJalur, 'tiketLain' => $tiketLain, 'bobot' => $bobot ]; // Mengirimkan data sebagai JSON echo json_encode($data); } catch (Exception $e) { // Jika terjadi kesalahan, kirim pesan error sebagai JSON http_response_code(500); // Kirim kode status HTTP 500 echo json_encode(['error' => 'Terjadi kesalahan pada server.', 'details' => $e->getMessage()]); } ?>