
Voilà. Done!
Seriously, you need very little hardware to this, especially since your program consists for the most part of "don't do anything" statements. These are superfluous, so we keep
Sound alarm IFF both the Alarm Switch is on AND the LDR sees light.
That's what the AND gate above does; it makes the output active if both input A and input B are active. The switch can be simply connected to the A input. For the light sensor you have to compare the incoming light level with a predefined threshold. This is done by a (surprise!) comparator. So, comparator and AND gate and you're set.
The disadvantage of this solution is that it's anything but flexible. The least change you want to make will force you to start over again. That's where the microcontroller comes in. We can have a black-box approach to it, and attach a number of sensors to its inputs, like the LDR and the alarm switch, and drive a number of activators with from its outputs, like a siren.
The internals of the black box can be (re)defined at any time by downloading a new program to it. While your current application will fit in the smallest existing microcontroller I wouldn't pick that one. I'd choose a microcontroller with enough inputs and outputs, a few dozen would be nice, and also enough Flash to fit a bit more complex code. Experience learns that you need a new feature from the moment the current system is up and running.
Inputs for a typical alarm system are often just logical, 1
or 0
, like the switch (alarm systems often have all kinds of switches), but also a number of analog inputs, like the light level you're starting with. Outputs will often drive relays, which in turn may switch about anything, from the siren I mentioned to a door opener.
So IMO the microcontroller is the way to go. Arduino is immensely popular and offers good systems to start with, which can always be extended with extra function boards known as shields. The Arduino site should get you started in no time, especially since you already have programming experience.