you can catch beldum at route 228 with poke'radar
Chat with our AI personalities
check in the pokedex
Steven Stone will give you a Beldum in exchange for a Forretress.
You get Beldum for free, from Steven after you finish the Pokemon League, go to Stevens house and the ball will be on the table.
You cannot catch Beldum in Pokemon HeartGold. However, you can trade for it. After you have gone to Silph Co. and met Steven to get your Hoenn starter Pokemon, you can go back after a little bit to find him again, and he will give you a Beldum if you trade him a Forretress.
Get Beldum in the Massoutbreak evovle @ level 20 and into Metagross @ level 45