Is the "ada" obligatory?
No, but preferable in formal Indonesian.
How is this different than without "dalam"?
Di dalam rumah = inside the house. Di rumah = it can be at the house yard, on the roof top, on the fence or of course inside the house, as long as it still around the house