How can I make my Pikachu stronger?
Solution 1:
I'm probably repeating what everyone else has said, but here goes. Also, I know this question is somewhat old, but other people might find it helpful as well.
ISSUE 1: Moveset. Captain Falcon wants you to show him yours.
Your moveset is, well, honestly one of the worst Pikachu sets I've seen. Sure, three of your moves have STAB. Problem is, a ground, grass or dragon type will wall it out with ease, and your one off-type move doesn't even work with your held item. Let's fix that.
First off, Pikachu is slightly specialized in physical attack and speed, and has access to some good support moves as well, so let's focus on physical and status moves.
For a physical moveset, to start I would keep Volt Tackle. While it does do a LOT of recoil damage, it's a solid choice due to its overall power and the fact that Pikachu is really more of a fast glass cannon.
Second, I'd ditch Thunder for Brick Break. Thunder is powerful, but it has very low accuracy outside of rain and it's a physical move to boot.
GET RID OF FLING. As I and everyone else has said previously, Fling does NOT work with Z-Crystals (on compatible Pokemon), Mega Stones (on compatible Pokemon), Plates (on Arceus), Griseous Orb (on Giratina), Drives (on Genesect) or Memories (on Silvally). Switch it for Return, Facade, Thunder Wave or Nuzzle.
Finally, your fourth slot should go for either a status move (Thunder Wave, Nuzzle, Toxic, Swagger), a screen (In Pikachu's case this is always Light Screen), a weather/terrain move (Rain Dance by TM, Electric Terrain by egg move) a defensive move (Protect, Substitute), a disruptive move (Pikachu, or really Pichu, can learn Encore and Fake Out as egg moves) or a healing move (Pikachu, or really Pichu, can learn Wish as an egg move).
Alternatively, you can run a special set. While Pikachu's physical attack is slightly higher than its special attack, its special attack is still respectable for a low-stage NFE (not fully evolved) Pokemon. On a special set, run a Light Ball instead of Pikachunium-Z, and run Thunderbolt (good power, standard accuracy) and Grass Knot (great against those heavy rock and ground types) instead of Volt Tackle and Brick Break. Other two moves are as above, although instead of Return or Facade I'd recommend Volt Switch. And if you want to boost your special attack further, Pichu can learn Nasty Plot, which it keeps when it evolves.
You could even run a mixed attacking set if you want. It won't be quite as effective, but this way if you run into Skarmory and Blissey on the same team you can go after their weaker defensive stats.
Note that with any moves listed as Egg Moves, you will have to breed for and raise a new Pikachu.
ISSUE 2: EVs. Not Eevees, Effort Values.
EVs, or Effort Values, are kinda tricky to explain, honestly. I'd recommend looking up a guide. If you have Isle Evelup in PokePelago, however, it will help you GREATLY.
A few recommendations, though: For a physical attacker, I'd max out Attack and Speed to 252 each, and put the remaining 4 EVs in HP. Many times people will dump the extras into either Defense or Special Defense, but since you never really know what you'll be up against until match start I prefer boosting HP a little on a fast offensive set instead.
For a special attacker, I'd max out Special Attack and Speed. Remainder goes into HP as usual.
A mixed attacker is a bit more tricky. Stick 252 EVs into speed, but then run 128 on both Attack and Special Attack.
ISSUE 3: IVs. Pokemon genetics 101
IVs are... fun. Basically, every Pokemon has a special set of stats that allows some variety in its stats. So, while every Pikachu is a fast, fragile physical attacker that can also use special attacking moves, some Pikachus are faster, more powerful or more sturdy than others. IVs can range from 0 (No good) to 31 (Best). There's no real balancing to IVs, so you can have Pokemon anywhere between 0 in all stats and 31 in all stats.
In past games you had to breed for IVs. However, Pokemon Sun and Moon has introduced Hyper Training, which lets you boost your Pokemon to a virtual 31 IVs in each stat. Why do I say virtual? Because you're not actually changing your Pokemon's IVs. Instead, Hyper Training sets a flag for each hyper-trained stat that tells the game to treat that stat as though it has 31 IVs in battle only. A Pokemon with Hyper Trained stats will pass its original IVs down, not its Hyper Trained IVs.
ISSUE 4: Base Stats. Pikachu's not going to Raichu a story of success.
Let's face it. Even with this advice you're eventually going to hit a brick wall with your electric mouse. Pikachu's base stat spread totals 320 - not necessarily garbage, but not really anything to write home about.
If you find that, even after following all of this advice, your Pikachu is still terribly underperforming, it might be time to break out the Thunderstone. Raichu is just overall, especially Alolan Raichu with its extra speed and special Attack.
Raichu works very similarly to Pikachu, apart from just having better stats. Raichu got a speed buff in Gen 6, so it's better than before. Evolving Pikachu into Raichu also gives you access to a few more moves - including the powerful but inaccurate Focus Blast. Despite having the same accuracy as the rarely used Thunder, Focus Blast actually does see some use even in competitive battling as it's super effective against a large number of types (Rock, Steel, Ice, Normal and Dark vs Water and Flying for Thunder).
Alolan Raichu is a bit more specialized for special attack in the same way that Pikachu is specialized for physical attack - it's not forced into that role, it's just better at it than the opposite. Alolan Raichu gains access to even more moves, including the mighty Psychic, the Blissey-busting Psyshock, and the ever useful stat-boosting move Calm Mind. It also gains access to Reflect, so if you wanted to run dual screens, now you can.
The Bottom Line
Honestly, my bottom line is that while you can make some progress with using a Pikachu, you're ultimately better off evolving it.
Solution 2:
Pikachu is weak because it has low stats (more on this at the end). Worse, if you were not paying attention your Effort Values are going to be split across all stats. You should adjust its Effort Values to be good at 2 stats, preferably Speed and Attack. I've chosen Attack over Special Attack as the Z-move Catastropika is physical. You will still be weak defensively, but this gives the potential for knocking out your opponent before they can attack.
You need a better moveset. First, Fling is not a good choice with a Z-crystal.
Fling will fail if used by a Pokémon holding a Mega Stone that can Mega Evolve the holder. It will also fail if the Pokémon is holding any type of Gem, Z-Crystal, Poké Ball, Mail, or the Red Orb or Blue Orb.
You should also try to get good move coverage, so that an enemy won't resist all of your attacks.
First, Volt Tackle for your Z-Move. This is a strong physical electric move.
Second, I would take Brick Break, as it is a strong physical fighting move, and helps against screens.
After this it is less clear. Facade is normal type, but doesn't really help already having Brick Break. The other decent normal option is Return. Facade does more if you are statused, but Return would be more reliable.
Volt Switch could be good, allowing you to switch out against a bad matchup. You could also take Protect, blocking your opponent's first attack, and switching into the best Pokemon for it.
Finally, to demonstrate the stat problem, compare Pikachu's Base Stats
to Alolan Raichu