The word option for "am" is very misleading and leads to confusion, I think. Maybe it would be clearer if stylised as "a.m." to differentiate it from the word "am"?
Could this not be translated as "opens' rather than "is open"? "is open" implies it could have been open all night. "opens" suggests the canteen is not open before 8AM.
In American English it should be cafeteria. Canteen is only for the military.
Hopefully cafeteria is also accepted but as we're not all in America canteen is correct here.
If the sentence was “ our canteen does open “ or “opens” would “membuka” be ok?
If the sentence was “is opened at eight “ would “dibuka” be correct ?