I think the places where you use "String data" like this:
{
String data = "Terdeteksi Sedih";
Serial.println(data);
if (central.connected()) serviceOutput.read(String (data), 16);
sedih();
}
Should be:
{
Serial.println( "Terdeteksi Sedih");
if (central.connected()) serviceOutput.read( "Terdeteksi Sedih", 16);
sedih();
}
or maybe:
{
char data[] = "Terdeteksi Sedih";
Serial.println(data);
if (central.connected()) serviceOutput.read(data, 16);
sedih();
}