The only way to catch a ditto is with a pokeradar. The only other way is through trading.
Chat with our AI personalities
You must use the PokeRadar on Route 218. They are kinda rare though.
somehow
You can find a ditto by route 218 just outside of Canalave City (the grass) but it is really hard to find so you need a Pokeradar. The yellow patches of grass are usually Ditto. Professor Rowan gives this to you after you beat the Elite 4. There is a 22% chance of a sparkly grass being a ditto
I'm afraid you cant get a Ditto in Pokemon Sapphire. You can only get ditto in Emerald. However you can also get ditto in Diamond and Pearl.
there is no trainer with a ditto but you can get one with the pokeradar next to canalave.NOTE:it will take a very long time and are not easy to catch.