You do not need 15 inputs to read 15 buttons - you need a couple of shift registers. A couple of $5 shift registers means you can save far more than that on the processor.
Debounce is irrelevant in this sketch - any "bouncing" occurs during the 10 second delays. Everyone else is probably right about the spurious inputs: it's the electronics, not the code.
Speaking of code, replace all of these:
if(o==HIGH)
{
digitalWrite(ledamb,HIGH);
digitalWrite(ledcba,HIGH);
digitalWrite(buzz1,HIGH);
digitalWrite(led5,HIGH);
delay(10000);
digitalWrite(ledamb,LOW);
digitalWrite(ledcba,LOW);
digitalWrite(buzz1,LOW);
digitalWrite(led5,LOW);
}
with:
if(o==HIGH)
doAlarm(ledamb,ledcba,buzz1,led5);
and add a function
void doAlarm(int ledX, int ledY, int buzzer, int ledZ) {
digitalWrite(ledX,HIGH);
digitalWrite(ledY,HIGH);
digitalWrite(buzzer,HIGH);
digitalWrite(ledZ,HIGH);
delay(10000);
digitalWrite(ledX,LOW);
digitalWrite(ledY,LOW);
digitalWrite(buzzer,LOW);
digitalWrite(ledZ,LOW);
}
It's still very horrible, but way better than what you have.