$this->db->query()
la función SOLAMENTE devuelve VERDADERO/FALSO en caso de éxito o fracaso. NO devuelve un conjunto de resultados de la base de datos, ni establece el temporizador de consulta, ni compila datos de vinculación, ni almacena su consulta para depuración. Simplemente le permite enviar una consulta. La mayoría de los usuarios rara vez usarán esta función.
Prueba de esta manera:-
$sql = "SELECT
a.ar,
a.jabatan,
COUNT(*) AS JumlahWPBaru,
SUM(
CASE WHEN a.no_shim IS NOT NULL
THEN 1
WHEN a.no_shim IS NULL
THEN 0
END ) AS JumlahHimbauan
FROM (
SELECT
a.ar,
c.jabatan,
a.npwp,
a.kpp,
a.cab,
a.namawp,
b.kd_shim,
b.no_shim,
b.tgl_shim
FROM mfwpbudi a
LEFT JOIN tb_shimbauan b ON ( a.npwp = b.npwp )
LEFT JOIN easystp_user c ON ( SUBSTR( a.ar, 1, 9 ) = c.id_user )
WHERE a.tanggal_daftar > '2013-12-31'
AND c.jabatan = '05E'
) AS a
GROUP BY a.ar";
$query = $this->db->query($sql);
$result = $query->result_array();
return $result;