This questions is often asked, and as I've been trying to learn a few songs properly, this is the method I've come up with that works for me.
If you have difficulty learning songs, try this.....
Play and sing the song through a few times with the lyrics/chord sheet, in the usual way.
Then literally split the lyrics from the chords, to learn them separately -
Put the lyrics on one side of a sheet, without the chords cluttering up the page, and then write out the chords in sequence on the other side.
If there's a chorus, make it stand out by typing it in bold. Anything you need to remember about the lyrics, make it stand out - but as I said, leave the chords off.
Then try to sing it from memory, learning a verse at a time, with the sheet in front of you.
The other thing is to fix the chord sequences in your head, and writing them on the back of the sheet helps with that, because it helps to show up patterns - the lyrics are not getting in the way. So with the uke, play the song from the chords, without the words, perhaps humming your melody as you go.
Learn a line of music at a time; play it and repeat it, get used to the sequence of chords, and look for patterns. You'll know when you feel you can go on to the next line. Just build the song up line by line.
I learn the words and the music separately, like this, and as I go, now and then put them together from memory until I can do the whole thing. Then I just keep doing it, with no paper there, until I'm confident. It all takes time and lots of repetition to be properly learned. Eventually you'll know your song, and eventually with lots of playing from memory, you just can't forget it, which is perfect!
Lots of repetition is really important, but the method of getting there that I've just explained is what I find works for me. It may work for you, if you try it! I hope this helps!
Happy strumming - and happy singing! It's great exercise too!