If you have a copy of HeartGold or SoulSilver, it's better to hunt for shiny Gyarados there. You can find a guaranteed one in the Lake of Rage, while you have to rely on low odds in Diamond. Nevertheless, if you choose to look for a shiny Gyarados in Diamond, these are all the ways to do so.
Wild encounters are probably the least efficient way to go about it, as because the Shiny Charm didn't exist in Generation IV, your odds are 1/8192 in any given encounter. You can find Gyarados or Magikarp just about anywhere there's a pool of water by using a Super or Old Rod respectively.
The Masuda Method was introduced in Generation IV, but it'll be a hassle to set up as the GTS no longer functions. It requires two Pokemon from games of different nationalities (for example, an English Ditto and a German Gyarados) to breed, with the offspring having a higher chance of being shiny (with 1/1638 odds). Pokemon of different nationalities you get from in-game trades don't count. If you hatch a shiny Magikarp, you can just level it up until you get a Gyarados.
The Cute Charm Glitch offers the best chances of getting a shiny (around 21% per encounter), but it's notoriously difficult to pull off, as it involves manipulation of Trainer ID and personality values. Smogon's guide is a good resource if you'd like to take this on.
You can trade for a shiny Gyarados, but because the Generation IV GTS and trading servers have shut down, you'll need to either have local communication with another DS nearby, or connect to Wiimmfi -- though the odds of finding someone else, let alone someone trading a shiny Gyarados, are lower than actually hunting for one yourself.
As you can see, obtaining a shiny Gyarados is not as easy in Sinnoh as it is in other titles. In later games, shiny odds are increased and there are more methods to getting what you want, while in HG/SS, you're given a free one for playing the game.
Note: I didn't include the Poke Radar, because while it does increase shiny odds, it doesn't work when fishing, which is the only way to find wild Magikarp and Gyarados. It works for Pokemon in the tall grass, however.